GX03 (_TZE284_8zizsafo): incoming /set via friendly_name topic silently ignored, IEEE address topic works
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.7k
- Forks
- 2k
- Avg merge
- 18h 55m
- Merged PRs (30d)
- 35
Description
What happened?
What happened?
For device GIEX GX03 (manufacturer _TZE284_8zizsafo, model GX03), publishing a /set command to the topic based on the device's friendly_name is silently ignored (no reaction, no log output whatsoever, even with full debug logging enabled). The exact same payload published to the topic based on the device's IEEE address works correctly and switches the valve as expected.
Outgoing state publishes (device → MQTT) correctly use the friendly_name topic (zigbee2mqtt/Ventil_2er_1). Only the incoming direction (/set) for this specific friendly_name topic is affected.
What did you expect to happen?
Publishing to zigbee2mqtt/<friendly_name>/set should behave identically to publishing to zigbee2mqtt/<ieee_address>/set, since the documentation states: "The FRIENDLY_NAME is the IEEE-address or, if defined, the friendly_name of a device or group."
How to reproduce it (minimal steps)
- Device is paired and has a
friendly_nameconfigured inconfiguration.yaml:devices: '0x781c9dfffe13d95e': friendly_name: Ventil_2er_1 - Confirm the device publishes state correctly under the friendly name:
→ State messages (includingmosquitto_sub -h <broker> -t 'zigbee2mqtt/Ventil_2er_1/#' -vvalve_1,valve_2, etc.) are published correctly under this topic. - Send a set command using the friendly_name topic:
→ No reaction. No corresponding log entry appears even with:mosquitto_pub -h <broker> -t 'zigbee2mqtt/Ventil_2er_1/set' -m '{"valve_1":"ON"}'
(initially also tested withadvanced: log_level: debuglog_namespaced_levels: z2m:mqtt: debugexplicitly set, after discovering it was previously set towarning— still no entry for the incoming message). - Send the exact same payload using the IEEE address topic instead:
→ Works immediately. Valve switches on, confirmed both physically and via subsequent state publish onmosquitto_pub -h <broker> -t 'zigbee2mqtt/0x781c9dfffe13d95e/set' -m '{"valve_1":"ON"}'zigbee2mqtt/Ventil_2er_1.
Troubleshooting already performed (to rule out other causes)
- Confirmed via MQTT broker's own client/session list: no duplicate/zombie MQTT client connections.
- Confirmed Z2M's MQTT subscription is a broad wildcard
zigbee2mqtt/#(via broker's own SUBSCRIBE log), which covers the friendly_name topic. - Confirmed via a neutral third-party
mosquitto_subclient that the broker correctly delivers messages published tozigbee2mqtt/Ventil_2er_1/setto all subscribers. - Confirmed Z2M does receive and process other incoming MQTT messages from the same broker connection without issue (e.g.
zigbee2mqtt/bridge/request/permit_joinworks immediately). - Confirmed no duplicate/stale device entry in
database.dbfor this IEEE address (grep -creturns exactly 1 match). - Confirmed no duplicate/conflicting entry in
configuration.yaml(single, correctly formattedfriendly_nameentry, same format as all other working devices). - Confirmed the device is not a delayed-delivery "sleepy end device" issue: tested immediately after the device sent an unsolicited Zigbee message (proving it was awake/reachable) — friendly_name
/setstill had zero effect. - Compared against Z2M's own frontend: When switching via the Z2M web UI (which works correctly), the browser's WebSocket traffic shows it publishes to
0x781c9dfffe13d95e/set(IEEE address) — not the friendly_name topic. This suggests the frontend itself may be working around the same underlying issue, rather than confirming friendly_name-based/setas untested-but-working.
Zigbee2MQTT version
Please fill in: <run 'zigbee2mqtt/bridge/info' or check frontend footer>
Adapter firmware version
EmberZNet, coordinator firmware 7.4.4 [GA] (from zigbee2mqtt/bridge/info → coordinator.meta)
Adapter
EZSP/EmberZNet (Silicon Labs based coordinator)
Setup
- Zigbee2MQTT running as a systemd service, connecting to a self-hosted MQTT broker (FHEM
MQTT2_SERVER). - Device joined and renamed via
configuration.yamldevices section (not viazigbee2mqtt/bridge/request/device/renameMQTT API — unclear if this is relevant).
Device
- Model: GIEX GX03 (2-zone watering timer)
- Manufacturer:
_TZE284_8zizsafo - IEEE address:
0x781c9dfffe13d95e - Zigbee model: TS0601
Additional context
This is a fairly unusual and hard-to-reproduce symptom since it only affects the friendly_name-based /set direction for this one device, while every other direction/topic (state publish, bridge commands, IEEE-based /set) works normally. Happy to provide further debug logs, database.db excerpt, or configuration.yaml excerpt if helpful — already have full command-by-command reproduction history from an extensive support session.
What did you expect to happen?
No response
How to reproduce it (minimal and precise)
No response
Zigbee2MQTT version
2.12.1
Adapter firmware version
EmberZNet, coordinator firmware 7.4.4 [GA]
Adapter
EZSP/EmberZNet (Silicon Labs based coordinator)
Setup
Zigbee2MQTT running as a systemd service, connecting to a self-hosted MQTT broker (FHEM MQTT2_SERVER).
Device joined and renamed via configuration.yaml devices section (not via zigbee2mqtt/bridge/request/device/rename MQTT API — unclear if this is relevant).
Device database.db entry
'0x781c9dfffe13d95e': friendly_name: Ventil_2er_1
Debug log
No response
Notes
No response
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
Reproduce the behavior with the friendly_name and IEEE-address MQTT commands, using the configuration.yaml friendly_name and the matching database.db entry described in the report. Trace the incoming MQTT topic handling and friendly-name lookup; done means the friendly_name /set command produces the same valve reaction and logging behavior as the IEEE-address topic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100