[APP][Pro] Universal TUYA Zigbee Device App - test

Dropped v5.11.200 on the test channel just now.

v5.11.199: Added support for 3 new device fingerprints across existing drivers., Added _TZE284_ne4pikwm (TS0601) for Nedis SmartLife Radiator Control valves., Expanded fingerprint database with latest community reports to improve automatic device matching.

Covers a huge range of Tuya devices at this point.

Hi Dylan, SOS buttons still not responding,
Diagnostic code: dd45fb41-8499-4c5a-a3e3-9b1b33c2dea8


Good luck and thanks again Peter.

Dropped v5.11.198 on the test channel just now.

Added support for new devices:

  • r_purifier (_TYST11_d0yu2xgi, _TZ3000_6uzkisv2, _TZ3000_fllyghyj, _TZ3000_sqcn0y, _TZ3000_utwgoauk, _TZ3000_xr3htd96, _TZ3000_zl1kmjqx, _TZE200_0nauxa0p, _TZE200_1agwnems, _TZE200_2se8efxh, _TZE200_3p5ydos3, _TZE200_3towulqd, _TZE200_44af8vyi, _TZE200_4mh6tyyo, _TZE200_579lguh2, _TZE200_8ygsuhe1, _TZE200_9cqcpkgb, _TZE200_9cxuhakf, _TZE200_9i9dt8is, _TZE200_9yapgbuv, _TZE200_a0syesf5, _TZE200_aqnazj70, _TZE200_bh3n6gk8, _TZE200_bjawzodf, _… and more.

Covers a huge range of Tuya devices at this point.

Hi Peter, thanks for the diagnostic report. You are absolutely right, there was a race condition happening. The button is a “sleepy” device, meaning it only wakes up for a split second to send the SOS signal. Previous code versions tried to quickly request battery readings exactly at that same moment, which overwhelmed the device and blocked the actual SOS alert from coming through! I’ve just pushed a new test version where I completely stripped down these polling requests during the alarm event. Update to the latest test version, give it a quick re-pair to ensure the clusters align properly, and let me know if it fixes your issue!

Hi @Meruem, thank you for providing the detailed Docker crash log, it was incredibly helpful!

The logs clearly highlighted a zdoInvalidEndpoint crash. This happened because your radar sensor (_TZE284_bquwrqh1) is mains-powered and does not natively support the ZCL battery cluster, but the app was globally trying to bind to it during the initial pairing sequence for presence sensors.

I have completely patched this in the driver configuration and explicitly mapped your _TZE284_bquwrqh1 signature. The fix will be available in the upcoming test version update.

Regarding your Homey Self-Hosted Server experience returning “Unknown Zigbee Device”: Make sure your local setup is pulling the absolute newest test packages. Sometimes sideloaded containers lag behind the live early access versions which contain the most recent fingerprints. Let me know if the pairing goes smoothly once you have the new update!

Hi Dylan Good evening, thanks for your quick response and tried a repair but that didn’t change anything, after deleting the device tried to add it again but no luck it only find it as a universal ZigBee device.

Regards Peter.

v5.11.201 is up on test.

v5.11.200: Added support for ZG-204ZM., Added support for WiFi water sensor., Stabilized functionality for sleepy devices.

Covers a huge range of Tuya devices at this point.

Can’t find on the diag log the manufacturer name cloud you please give me it’s on the website https://tools.developer.homey.app/

v5.11.203 is up on test.

v5.11.201: Added support for 3 new device fingerprints, including the Nedis SmartLife Radiator Control (_TZE284_ne4pikwm)., Fixed connection drops and CIE self-healing for SOS emergency button devices., Resolved battery status probing on sleepy SOS devices to ensure accurate and timely updates.

Covers a huge range of Tuya devices at this point.

Hi Dylan do you need this:

Regards Peter.

Dropped v5.11.204 on the test channel just now.

v5.11.203: Emergency SOS Button

Covers a huge range of Tuya devices at this point.

Dropped v5.11.205 on the test channel just now.

v5.11.204: Implemented ‘Full State Card’ discovery for the SOS button driver, improving identity and force report handling., No new features added in this release., No improvements made in this release.

Covers a huge range of Tuya devices at this point.

Hi Dylan I’m on Ver 205 now but no luck, still adding as Universal ZigBee device, even after restart of the Homey.

Good luck and Good night Peter..

yes app crashed , i fix asap

Hi @dlnraja , thank you for your reply and for all your effort.

In a past version it seems to discover some of my tested Zigbee devices in Universal Tuya, some worked fine others connected but didn’t work correctly using the Power ON/OFF switch, so I waited for an update.

I’m now on version v5.11.206 and it seems to have a bug again, since the same devices that connected now were recognized as Unknown Zigbee Devices. I’ll post here the docker log to help. If you need any more information just ask me and I’d gladly try it again.

First device, an Presence Radar Sensor and Illuminance (Tuya Zigbee) - https://pt.aliexpress.com/item/1005009911393115.htm

2026-Apr-06 04:06:57
Homey [log][ManagerApiLocal] IO homey:manager:drivers:createPairSession
2026-Apr-06 04:06:57
Homey [log][ManagerApiLocal] IO homey:manager:drivers:createPairSession → Success 200
2026-Apr-06 04:06:58
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
2026-Apr-06 04:06:58
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
2026-Apr-06 04:07:01
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
2026-Apr-06 04:07:02
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
2026-Apr-06 04:07:02
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
2026-Apr-06 04:07:02
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
2026-Apr-06 04:07:02
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
2026-Apr-06 04:07:02
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Status: ADD_NODE_STATUS_LEARN_READY
2026-Apr-06 04:07:02
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
2026-Apr-06 04:07:02
Homey [log][ManagerZigbee] Waiting for node to join...
2026-Apr-06 04:07:02
zigbee:process:join waiting for node to join
2026-Apr-06 04:07:06
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx update node address networkAddress=12345
2026-Apr-06 04:07:06
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx node joined networkAddress=12345
2026-Apr-06 04:07:06
zigbee:process:join node joined { ieeeAddress: 'xx:xx:xx:xx:xx:xx:xx:xx', networkAddress: 12345 }
2026-Apr-06 04:07:06
Homey [log][ManagerZigbee] Node joined with ieeeAddress xx:xx:xx:xx:xx:xx:xx:xx
2026-Apr-06 04:07:06
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [245] get node capabilities
2026-Apr-06 04:07:07
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
2026-Apr-06 04:07:07
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
2026-Apr-06 04:07:07
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx zdo end device announce indication Bitmap [ allocateAddress ]
2026-Apr-06 04:07:07
Homey [log][ManagerZigbee] received end device announce indication with ieeeAddress: xx:xx:xx:xx:xx:xx:xx:xx
2026-Apr-06 04:07:07
zigbee:process:interview Get match descriptor for poll control cluster
2026-Apr-06 04:07:07
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [246] get match descriptor profileId=260 inputClusters=[ 32 ]
2026-Apr-06 04:07:07
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [247] get active endpoints
2026-Apr-06 04:07:07
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [245] get node capabilities error: This operation was aborted
2026-Apr-06 04:07:07
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [246] got match descriptor { matchList: [], nwkAddrOfInterest: 12345, status: 'ZSuccess' }
2026-Apr-06 04:07:07
zigbee:process:interview Got match descriptor response { matchList: [], nwkAddrOfInterest: 12345, status: 'ZSuccess' }
2026-Apr-06 04:07:07
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [247] got active endpoints [ 1 ]
2026-Apr-06 04:07:07
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [248] get simple descriptor endpointId=1
2026-Apr-06 04:07:08
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [248] got simple descriptor endpointId=1 { endpointId: 1, applicationProfileId: 260, applicationDeviceId: 81, applicationDeviceVersion: 0, _reserved1: 1, inputClusters: [ 4, 5, 61184, 0, 60672 ], outputClusters: [ 25, 10 ], nwkAddrOfInterest: 12345, _reserved: 0, status: 'ZSuccess' }
2026-Apr-06 04:07:08
zigbee:process:interview get basic attributes
2026-Apr-06 04:07:08
zigbee:controller:node:xx:xx:xx:xx:xx:xx:xx:xx [249] enabling route discovery for nwkAddr=12345
2026-Apr-06 04:07:08
zigbee:process:interview got basic attributes: { modelId: 'TS0601', manufacturerName: '_TZE284_bquwrqh1' }
2026-Apr-06 04:07:08
zigbee:process:interview complete { ieeeAddress: 'xx:xx:xx:xx:xx:xx:xx:xx', networkAddress: 12345, modelId: 'TS0601', manufacturerName: '_TZE284_bquwrqh1', endpointDescriptors: [ { endpointId: 1, applicationProfileId: 260, applicationDeviceId: 81, applicationDeviceVersion: 0, _reserved1: 1, inputClusters: [Array], outputClusters: [Array], nwkAddrOfInterest: 12345, _reserved: 0, status: 'ZSuccess' } ], deviceType: 'enddevice', receiveWhenIdle: false, swBuildId: undefined, touchlinkGroupIds: undefined, capabilities: { alternatePANCoordinator: false, deviceType: false, powerSourceMains: false, receiveWhenIdle: false, security: false, allocateAddress: true }, pollControl: undefined }
2026-Apr-06 04:07:08
zigbee:process:interview Received abort signal { reason: 'Destroyed' }
2026-Apr-06 04:07:08
zigbee:process:interview destroyed
2026-Apr-06 04:07:08
zigbee:process:join Received abort signal { reason: 'Destroyed' }
2026-Apr-06 04:07:08
zigbee:process:join destroyed
2026-Apr-06 04:07:08
Homey [log][ManagerZigbee] Node interviewed: modelId: TS0601, manufacturerName: _TZE284_bquwrqh1, ieeeAddress: xx:xx:xx:xx:xx:xx:xx:xx, networkAddress: 12345
2026-Apr-06 04:07:08
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Searching for installed driver (_TZE284_bquwrqh1 - TS0601)
2026-Apr-06 04:07:08
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Using driver: undefined (id: undefined, installed: true)
2026-Apr-06 04:07:08
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Finish
2026-Apr-06 04:07:08
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
2026-Apr-06 04:07:08
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
2026-Apr-06 04:07:08
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback
2026-Apr-06 04:07:08
Homey [log][ManagerDriversLocal][PairSession:45h23jk5h35k3h5kh5kj23h5k3jh5k23jh53k] onCallback {
2026-Apr-06 04:07:08
callbackId: '.........',
2026-Apr-06 04:07:08
data: [ null, null ]
2026-Apr-06 04:07:08
}
2026-Apr-06 04:07:08
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback → Success 204
2026-Apr-06 04:07:08
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback
2026-Apr-06 04:07:08
Homey [log][ManagerDriversLocal][PairSession:45h23jk5h35k3h5kh5kj23h5k3jh5k23jh53k] onCallback {
2026-Apr-06 04:07:08
callbackId: '.........',
2026-Apr-06 04:07:08
data: [ null, null ]
2026-Apr-06 04:07:08
}
2026-Apr-06 04:07:08
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback → Success 204
2026-Apr-06 04:07:11
Homey [log][ManagerApiLocal] IO homey:manager:drivers:deletePairSession
2026-Apr-06 04:07:11
Homey [log][ManagerApiLocal] IO homey:manager:drivers:deletePairSession → Success 204

Second device, a Zigbee Plug (outlet) - https://pt.aliexpress.com/item/1005006722824875.html

2026-Apr-06 04:10:11
Homey [log][ManagerZigbee] Node interviewed: modelId: TS011F, manufacturerName: Zbeacon, ieeeAddress: XX:XX:XX:XX:XX:XX:XX:XX, networkAddress: 29817
2026-Apr-06 04:10:11
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Searching for installed driver (Zbeacon - TS011F)
2026-Apr-06 04:10:11
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Searching app store for drivers (Zbeacon - TS011F)
2026-Apr-06 04:10:13
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
2026-Apr-06 04:10:13
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
2026-Apr-06 04:10:13
Homey [err][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Could not find driver: app_not_found
2026-Apr-06 04:10:13
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Using driver: undefined (id: undefined, installed: true)
2026-Apr-06 04:10:13
Homey [log][ManagerZigbee] bind ieeeAddress=XX:XX:XX:XX:XX:XX:XX:XX, endpointId=1, clusterId=6
2026-Apr-06 04:10:13
zigbee:controller:node:XX:XX:XX:XX:XX:XX:XX:XX [279] bind endpointId=1 clusterId=6 target=YY:YY:YY:YY:YY:YY:YY:YY:Y
2026-Apr-06 04:10:13
zigbee:controller:node:XX:XX:XX:XX:XX:XX:XX:XX [279] bind success endpointId=1 clusterId=6
2026-Apr-06 04:10:13
Homey [log][ManagerZigbee] bind ieeeAddress=XX:XX:XX:XX:XX:XX:XX:XX, endpointId=1, clusterId=1794
2026-Apr-06 04:10:13
zigbee:controller:node:XX:XX:XX:XX:XX:XX:XX:XX [280] bind endpointId=1 clusterId=1794 target=YY:YY:YY:YY:YY:YY:YY:YY:Y
2026-Apr-06 04:10:13
zigbee:controller:node:XX:XX:XX:XX:XX:XX:XX:XX [280] bind success endpointId=1 clusterId=1794
2026-Apr-06 04:10:13
Homey [log][ManagerZigbee] bind ieeeAddress=XX:XX:XX:XX:XX:XX:XX:XX, endpointId=1, clusterId=2820
2026-Apr-06 04:10:13
zigbee:controller:node:XX:XX:XX:XX:XX:XX:XX:XX [281] bind endpointId=1 clusterId=2820 target=YY:YY:YY:YY:YY:YY:YY:YY:Y
2026-Apr-06 04:10:13
zigbee:controller:node:XX:XX:XX:XX:XX:XX:XX:XX [281] bind success endpointId=1 clusterId=2820
2026-Apr-06 04:10:13
Homey [log][ManagerVirtualDeviceLocal][VirtualDriverZigbee:driver] Finish
2026-Apr-06 04:10:13
Homey [log][ManagerZigbee] bind ieeeAddress=XX:XX:XX:XX:XX:XX:XX:XX, endpointId=1, clusterId=6
2026-Apr-06 04:10:13
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent
2026-Apr-06 04:10:13
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingEvent → Success 204
2026-Apr-06 04:10:13
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback
2026-Apr-06 04:10:13
Homey [log][ManagerDriversLocal][PairSession:ZZZZZZZZZZ-ZZZZZZ-ZZZZZ-ZZZZZZ] onCallback {
2026-Apr-06 04:10:13
callbackId: '.............',
2026-Apr-06 04:10:13
data: [ null, null ]
2026-Apr-06 04:10:13
}
2026-Apr-06 04:10:13
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback → Success 204
2026-Apr-06 04:10:14
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback
2026-Apr-06 04:10:14
Homey [log][ManagerDriversLocal][PairSession:ZZZZZZZZZZ-ZZZZZZ-ZZZZZ-ZZZZZZ] onCallback {
2026-Apr-06 04:10:14
callbackId: '.............',
2026-Apr-06 04:10:14
data: [ null, null ]
2026-Apr-06 04:10:14
}
2026-Apr-06 04:10:14
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingCallback → Success 204
2026-Apr-06 04:10:14
Homey [log][ManagerZigbee] bind ieeeAddress=XX:XX:XX:XX:XX:XX:XX:XX, endpointId=1, clusterId=1794
2026-Apr-06 04:10:14
Homey [log][ManagerZigbee] bind ieeeAddress=XX:XX:XX:XX:XX:XX:XX:XX, endpointId=1, clusterId=2820
2026-Apr-06 04:10:14
Homey [log][ManagerInsightsLocal] Warning: Already creating item with id: asdahskjdhaskjflhgfklajhglkfj:log:homey:device:QWEDFS-ASFDEWT-ETWTW-SDFFD-12345:energy_power, returning existing create promise
2026-Apr-06 04:10:14
Homey [log][ManagerInsightsLocal] Warning: Already creating item with id: asdahskjdhaskjflhgfklajhglkfj:log:homey:device:QWEDFS-ASFDEWT-ETWTW-SDFFD-12345:energy_power, returning existing create promise
2026-Apr-06 04:10:18
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat
2026-Apr-06 04:10:18
Homey [log][ManagerApiLocal] IO homey:manager:drivers:emitPairingHeartbeat → Success 204
2026-Apr-06 04:10:18
Homey [log][ManagerApiLocal] IO homey:manager:drivers:deletePairSession
2026-Apr-06 04:10:18
Homey [log][ManagerApiLocal] IO homey:manager:drivers:deletePairSession → Success 204

v5.12.2 is up on test.

Added support for new devices:

  • r_purifier (_TYST11_d0yu2xgi, _TZ3000_6uzkisv2, _TZ3000_fllyghyj, _TZ3000_sqcn0y, _TZ3000_utwgoauk, _TZ3000_xr3htd96, _TZ3000_zl1kmjqx, _TZE200_0nauxa0p, _TZE200_1agwnems, _TZE200_2se8efxh, _TZE200_3p5ydos3, _TZE200_3towulqd, _TZE200_44af8vyi, _TZE200_4mh6tyyo, _TZE200_579lguh2, _TZE200_8ygsuhe1, _TZE200_9cqcpkgb, _TZE200_9cxuhakf, _TZE200_9i9dt8is, _TZE200_9yapgbuv, _TZE200_a0syesf5, _TZE200_aqnazj70, _TZE200_bh3n6gk8, _TZE200_bjawzodf, _… and more.

Covers a huge range of Tuya devices at this point.

Hi Dylan

I’m trying to add a LCD Temperature and Humidity sensor and it appears as a Universal Zeegbee device. Is it possible to add this device?

_TZE284_9ern5sfh

TS0601

enddevice

https://a.aliexpress.com/_EQlvhhm

Hi! What soil devices are you using? I have bought 2 from aliexpress and only one connected to Homey via this app, but it is doing strange things. For example it shows soil moisture drop to 0% for an hour or 2 and then back to around 50% (see the screen).

Also Water Shortage alarm is on for 7 days. IDK why :man_shrugging:

Update: v6.1.1 pushed to Test channel!

I’ve just implemented several fixes based on your reports:

@Fantuz: Added support for the _TZE284_9ern5sfh (LCD Sensor). It is now correctly mapped to the dedicated LCD driver for better icons. Please remove and re-add the device to apply. I’ve added a fallback for DPs 101 and 102. Some newer LCD models use these instead of the standard ones. Please remove and re-add the sensor to see if your temperature/humidity values start moving now!

@Wojciech_Ciarkowski: Fixed the “Moisture Canyon” bug (0% drops). The new BVB v6.1.1 engine now detects persistent garbage and allows “Recovery Jumps” so your moisture values return to 50% instantly without lag. I also added a force-reset for the Water Shortage alarm—if your moisture is over 30%, the alarm will now clear automatically even if the sensor hardware is “stuck.” I’ve added specialized filters for 32767 and -32768. If your sensors were sending these error codes instead of 0, they will now be blocked automatically, keeping your charts clean!

Please update to the latest test version and let me know if it’s stable, it wil be pushed asap

Hi, I know the problem too, but I have timers running that send me a push when the humidity consistently drops to the value I set over a few hours. If it’s fixed now, that’s nice too. A nice curve is very good for evaluations :slight_smile:

I have these devices in use:


HOBEIAN

ZG-303Z

A89G12C

_TZE284_oitavov2

_TZE284_hdml1aav

_TZE284_aao3yzhs

_TZE200_npj9bug3