Koenkk / Koenkk/zigbee2mqtt

AOYAN AY-204Z detected successfully but reports only null values

Open Beginner friendly
#32,589 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

problem stale
Dominant language
TypeScript
Stars
15.7k
Forks
2k
Avg merge
18h 55m
Merged PRs (30d)
35

Description

What happened?

Two AOYAN AY-204Z motion sensors show exactly the same behavior.

The devices pair successfully, the interview completes successfully and Zigbee2MQTT reports that the devices are configured successfully.

However, they never report any sensor values.

The MQTT payload always contains:

  • battery: null
  • occupancy: null
  • sensitivity: null
  • keep_time: null
  • linkquality: 255

Changing configuration values like keep_time works (for example null → 30), but the sensors never report occupancy, battery or illuminance.

After some time the devices become unavailable.

What did you expect to happen?

The sensors should report occupancy, battery level and illuminance after pairing. The values should be updated when motion is detected, as described in the Zigbee2MQTT documentation.

How to reproduce it (minimal and precise)
  1. Pair an AOYAN AY-204Z motion sensor with Zigbee2MQTT.
  2. Wait until the interview completes successfully.
  3. Verify that the device is configured successfully.
  4. Move in front of the sensor and wait for updates.

Result:
The device never reports occupancy, battery or illuminance. The MQTT payload only contains null values (except linkquality). Changing configuration values such as keep_time works, but no sensor data is ever received. After some time the device becomes unavailable.

Zigbee2MQTT version

2.12.1

Adapter firmware version

EmberZNet 7.4.4 GA

Adapter

Sonoff Zigbee Dongle E EmberZNet

Setup

Home Assistant OS 16.3 running as a virtual machine on Proxmox VE.

Zigbee2MQTT is installed as the official Home Assistant add-on.

Coordinator:
Sonoff Zigbee Dongle E

Adapter:
ember

Coordinator firmware:
EmberZNet 7.4.4 GA

Device database.db entry

No response

Debug log

[17.7.2026, 18:04:25] zh:controller: Interview for '0xa4c1384479f55b70' started
...
[17.7.2026, 18:04:35] z2m: Successfully interviewed '0xa4c1384479f55b70', device has successfully been paired
[17.7.2026, 18:04:35] z2m: Device '0xa4c1384479f55b70' is supported, identified as: AOYAN Luminance motion sensor (AY-204Z)
...
[17.7.2026, 18:04:35] z2m: Successfully configured '0xa4c1384479f55b70' (definition v0.0.0)
[17.7.2026, 18:04:53] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c1384479f55b70', payload '{"battery":null,"keep_time":null,"linkquality":152,"occupancy":null,"sensitivity":"medium"}'
[17.7.2026, 18:04:54] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c1384479f55b70', payload '{"battery":null,"keep_time":"30","linkquality":152,"occupancy":null,"sensitivity":"medium"}'

Notes

I found what appears to be a missing converter for the AY-204Z occupancy sensor.
The current device definition uses tuya.modernExtend.tuyaBase({dp: true}), which only registers the Tuya MCU datapoint converter.
However, my device reports occupancy through the IAS Zone cluster (ssIasZone) using commandStatusChangeNotification instead of Tuya datapoints.
Zigbee2MQTT correctly receives the IAS message but cannot process it because no IAS converter is attached to the device definition.

Debug log
Motion detected:
[2026-07-17 19:00:24] debug: zh:controller: Received payload:
clusterID=1280,
frame={
"payload":{
"zonestatus":1,
"extendedstatus":0,
"zoneID":0,
"delay":0
},
"command":{
"name":"statusChangeNotification"
}
}

[2026-07-17 19:00:24] debug:
z2m: Received Zigbee message from '0xa4c1384479f55b70',
type 'commandStatusChangeNotification',
cluster 'ssIasZone',
data '{"delay":0,"extendedstatus":0,"zoneID":0,"zonestatus":1}'

[2026-07-17 19:00:24] debug:
z2m: No converter available for 'AY-204Z'
with cluster 'ssIasZone'
and type 'commandStatusChangeNotification'
and data '{"delay":0,"extendedstatus":0,"zoneID":0,"zonestatus":1}'

Motion cleared:
[2026-07-17 19:00:40] debug:
z2m: Received Zigbee message from '0xa4c1384479f55b70',
type 'commandStatusChangeNotification',
cluster 'ssIasZone',
data '{"delay":0,"extendedstatus":0,"zoneID":0,"zonestatus":0}'

[2026-07-17 19:00:40] debug:
z2m: No converter available for 'AY-204Z'
with cluster 'ssIasZone'
and type 'commandStatusChangeNotification'
and data '{"delay":0,"extendedstatus":0,"zoneID":0,"zonestatus":0}'

While debugging, I verified that:
ias_occupancy_alarm_1 already exists in fromZigbee.js.
tuyaBase() only registers the Tuya MCU converter (manuSpecificTuya) and does not include an IAS Zone converter.
Therefore, the IAS messages are received but ignored for this device.
It looks like newer AY-204Z firmware reports occupancy through IAS Zone instead of Tuya datapoints.

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the AY-204Z device definition and the existing IAS occupancy converter in fromZigbee.js. Trace how ssIasZone commandStatusChangeNotification messages are matched for this device, then verify that motion and clear events produce occupancy updates instead of the reported “No converter available” result.

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
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.