[ZG-101ZL] _TZ3000_wc3gjyp3 does not implement tuyaOperationMode; operation_mode should not be exposed
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.7k
- Forks
- 2k
- Avg merge
- 18h 55m
- Merged PRs (30d)
- 35
Description
What happened?
The ZG-101ZL definition exposes operation_mode, but the variant _TZ3000_wc3gjyp3 does not implement the tuyaOperationMode attribute of genOnOff at all.
Both write and read fail with UNSUPPORTED_ATTRIBUTE:
Publish 'set' 'operation_mode' to 'test_btn' failed: 'Error: ZCL command
0xa4c1387b4250eb63/1 genOnOff.write({"tuyaOperationMode":0}, ...)
failed (Status 'UNSUPPORTED_ATTRIBUTE')'
Publish 'set' 'read' to 'test_btn' failed: 'Error: ZCL command
0xa4c1387b4250eb63/1 genOnOff.read(["tuyaOperationMode"], ...)
failed (Status 'UNSUPPORTED_ATTRIBUTE')'
The read was issued manually from the dev console while the device was
awake, so this is not a sleepy-end-device timeout — the device actively
rejects the attribute.
The triple click documented on the device page has no effect either:
it produces no action and no attribute change. The device stays in
event mode permanently.
Consequences:
operation_modeis unusable and z2m logs an error on every attempt- binding cannot work: the device keeps sending commands to the
coordinator regardless of the binding table
Observed behaviour (unchanged before and after binding genOnOff
to another device): each press produces two messages ~200 ms apart —
a Tuya action and a standard genOnOff command.
| gesture | action | genOnOff command |
|---|---|---|
| single | single | (no action field, likely toggle) |
| double | double | on |
| hold | hold | off |
Binding genOnOff from this device to a light succeeds
("Successfully bound cluster 'genOnOff'"), but the light does not
react and the commands still reach the coordinator.
What did you expect to happen?
Either operation_mode works, or it is not exposed for this
fingerprint.
Suggested fix: a separate fingerprint for _TZ3000_wc3gjyp3 without
operation_mode and without the tuyaOperationMode write in
configure.
How to reproduce it (minimal and precise)
- Pair the device.
- Publish
{"operation_mode": "command"}to<device>/set
→ UNSUPPORTED_ATTRIBUTE. - Dev console → read
tuyaOperationModefromgenOnOffep 1
→ UNSUPPORTED_ATTRIBUTE.
Zigbee2MQTT version
2.14.1
Adapter firmware version
9.1.0 [GA]
Adapter
SOnOff Dongle-M (EmberZNet)
Setup
plain Z2M docker container
Device database.db entry
{"id":9,"type":"EndDevice","ieeeAddr":"0xa4c1387b4250eb63","nwkAddr":51692,"manufId":4742,"manufName":"_TZ3000_wc3gjyp3","powerSource":"Battery","modelId":"TS004F","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":0,"inClusterList":[0,1,3,4,6,4096,57345],"outClusterList":[25,10,3,4,6,8,4096],"clusters":{"genBasic":{"attributes":{"modelId":"TS004F","manufacturerName":"_TZ3000_wc3gjyp3","powerSource":3,"zclVersion":3,"appVersion":151,"stackVersion":2,"hwVersion":1,"dateCode":"16042026","swBuildId":"0116042026"}},"genOnOff":{"attributes":{"32772":1,"tuyaOperationMode":1}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200,"batteryVoltage":30}}},"binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0xa4c138692471623a","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":151,"stackVersion":2,"hwVersion":1,"dateCode":"16042026","swBuildId":"0116042026","zclVersion":3,"interviewCompleted":true,"interviewState":"SUCCESSFUL","meta":{},"lastSeen":1789331181015}
Debug log
No response
Notes
Zigbee Model: TS004F
Zigbee Manufacturer: _TZ3000_wc3gjyp3
manufacturerID: 4742
Definition: ZG-101ZL (Loginovo)
Sold as: KOJIMA-SPB-ZGB-W (kojima.ru)
IEEE OUI: Telink Semiconductor (Taipei)
applicationVersion: 151
stackVersion: 2
hardwareVersion: 1
dateCode: 16042026
softwareBuildID: 0116042026
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 from the ZG-101ZL device definition and its fingerprint and configure handling. Add a separate fingerprint for _TZ3000_wc3gjyp3 without operation_mode or the tuyaOperationMode write, then verify that operation_mode is no longer exposed and the reported UNSUPPORTED_ATTRIBUTE operations are not attempted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100