[New device support] Tuya Fan Touch Switch TS0601 (_TZE204_w0ztfxrw) speed state sync issue
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.7k
- Forks
- 2k
- Avg merge
- 18h 55m
- Merged PRs (30d)
- 35
Description
Link
Database entry
{"id":53,"type":"Router","ieeeAddr":"0xa4c138840823e1e5","nwkAddr":"0xDE9F","model":"TS0601","vendor":"Tuya","description":"Zigbee Fan Touch Switch","supported":false}
Zigbee2MQTT version
2.14.1-1
External definition
import * as tuya from 'zigbee-herdsman-converters/lib/tuya';
import * as exposes from 'zigbee-herdsman-converters/lib/exposes';
const e = exposes.presets;
const ea = exposes.access;
export default {
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_w0ztfxrw']),
model: 'TS0601_fan_switch',
vendor: 'Tuya',
description: 'Zigbee Fan Touch Switch',
extend: [tuya.modernExtend.tuyaBase({dp: true})],
exposes: [
tuya.exposes.switch(),
e.power_on_behavior(['off', 'on']).withAccess(ea.STATE_SET),
tuya.exposes.countdown().withValueMin(0).withValueMax(43200).withUnit('s'),
e.numeric('fan_speed', ea.STATE_SET).withValueMin(1).withValueMax(5).withValueStep(1),
],
meta: {
tuyaDatapoints: [
[1, 'state', tuya.valueConverter.onOff],
[2, 'countdown', tuya.valueConverter.countdown],
[3, 'fan_speed', tuya.valueConverterBasic.lookup({
'1': tuya.enum(0), '2': tuya.enum(1), '3': tuya.enum(2),
'4': tuya.enum(3), '5': tuya.enum(4),
})],
[11, 'power_on_behavior', tuya.valueConverterBasic.lookup({off: tuya.enum(0), on: tuya.enum(1)})],
],
},
};
What does/doesn't work with the external definition?
The on/off toggle works and syncs bi-directionally. However, the fan speed control does not sync: changing the fan speed via the physical touch buttons changes the physical fan speed, but it does not update or reflect on the software UI slider/exposes state.
Notes
Device model is TS0601 with manufacturer signature _TZE204_w0ztfxrw. It appears datapunkt 3 needs proper handling for incoming speed reports to sync back to the state.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the external definition for the TS0601 fingerprint _TZE204_w0ztfxrw, especially the datapoint 3 fan_speed mapping and its incoming-report handling. Verify that physical speed changes update the exposed software state and that the existing on/off synchronization remains working.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100