[Device Support / Home Assistant Integration] 'action' property missing in initial payload for ZG-101ZS, causing missing device action entities in Home Assistant
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.7k
- Forks
- 2k
- Avg merge
- 18h 55m
- Merged PRs (30d)
- 35
Description
What happened?
Zigbee2MQTT Version
2.13.0
Device Model
ZG-101ZS (Scene Switch)
Problem Description
When the ZG-101ZS scene switch is paired, the initial MQTT payload published by Zigbee2MQTT does not contain the action key/property in its payload structure. Because the initial state broadcast lacks the action field, Home Assistant's MQTT Discovery fails to expose/register the device triggers or action entities properly for Home Assistant UI automation.
Initial Payload Example
Topic: zigbee2mqtt/장면스위치
Payload: {"battery":100,"linkquality":156,"voltage":3000}
What did you expect to happen?
No response
How to reproduce it (minimal and precise)
{"action": null, "battery":100,"linkquality":156,"voltage":3000}
Zigbee2MQTT version
2.13.0
Adapter firmware version
8.0.2 [GA]
Adapter
EmberZNet
Setup
Docker Container
Device database.db entry
{"id":13,"type":"EndDevice","ieeeAddr":"0xa4c1386b85490994","nwkAddr":29819,"manufId":4742,"manufName":"_TZ3000_bgtzm4ny","powerSource":"Battery","modelId":"TS0044","epList":[1,2,3,4],"endpoints":{"1":{"profId":260,"epId":1,"devId":0,"inClusterList":[0,1,6],"outClusterList":[10,25],"clusters":{"genBasic":{"attributes":{"modelId":"TS0044","manufacturerName":"_TZ3000_bgtzm4ny","powerSource":3,"zclVersion":3,"appVersion":151,"stackVersion":2,"hwVersion":1,"dateCode":"18032026","swBuildId":"0118032026"}},"genPowerCfg":{"attributes":{"batteryPercentageRemaining":200,"batteryVoltage":30}},"genOnOff":{"attributes":{"onOff":0}}},"binds":[],"configuredReportings":[],"meta":{}},"2":{"profId":260,"epId":2,"devId":0,"inClusterList":[1,6],"outClusterList":[],"clusters":{"genOnOff":{"attributes":{"onOff":0}}},"binds":[],"configuredReportings":[],"meta":{}},"3":{"profId":260,"epId":3,"devId":0,"inClusterList":[1,6],"outClusterList":[],"clusters":{"genOnOff":{"attributes":{"onOff":0}}},"binds":[],"configuredReportings":[],"meta":{}},"4":{"profId":260,"epId":4,"devId":0,"inClusterList":[1,6],"outClusterList":[],"clusters":{"genOnOff":{"attributes":{"onOff":0}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":151,"stackVersion":2,"hwVersion":1,"dateCode":"18032026","swBuildId":"0118032026","zclVersion":3,"interviewCompleted":true,"interviewState":"SUCCESSFUL","meta":{"configured":"0.0.0"},"lastSeen":1786541789667}
Debug log
[2026-08-12 22:06:07] info: z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/장면스위치', payload '{"battery":100,"linkquality":156,"voltage":3000}'
Notes
Workaround / Temporary Fix
Setting homeassistant.legacy_sensor_action: true in configuration.yaml allows Home Assistant to manually generate a sensor.<device_name>_action entity, but without this legacy option enabled, the action triggers are entirely inaccessible in Home Assistant automations.
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
Search the device support for model TS0044 and manufacturer _TZ3000_bgtzm4ny, then trace how the initial MQTT payload is assembled for the reported ZG-101ZS device. Use the payload example and debug log as the reproduction; done means the initial payload includes an action property and Home Assistant can expose the device action entities without the legacy workaround.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100