Page 1 of 1

Neo siren pairing issue

Posted: Tuesday 18 April 2023 22:05
by mce35
Hello,

I have a Neo Siren (Zigbee ID _TZE204_t1blo2bj listed as supported on blakadder), but I am not able to pair it.

Plugin version: 6.3.012
Domoticz: 2023.1 (build 15178)
Coordinator: Sonoff USB dongle plus (CC2652P), Firmware: Znp - Z-Stack 3.30+ (build 20221226)

This is what I get in the logs when trying to pair it:

Code: Select all

Apr 17 22:08:00 rasp3 domoticz: Zigate: Accepting new Hardware: Enable (On)
Apr 17 22:08:20 rasp3 domoticz: Zigate: [None] NEW OBJECT: 80e4 None
Apr 17 22:08:20 rasp3 domoticz: Zigate: [-] NEW OBJECT: 80e4 Active Endpoint Response Ep: 01 LQI: 0
Apr 17 22:08:20 rasp3 domoticz: Zigate: [-] NEW OBJECT: 80e4 Active Endpoint Response Ep: f2 LQI: 0
Apr 17 22:08:25 rasp3 domoticz: Zigate: [0] NEW OBJECT: 80e4 Model Name: TS0601
Apr 17 22:08:25 rasp3 domoticz: Zigate: [0] NEW OBJECT: 80e4 Manufacturer Name: _TZE204_t1blo2bj
Apr 17 22:08:30 rasp3 domoticz: Zigate: [1] NEW OBJECT: 80e4 Model Name: TS0601
Apr 17 22:08:30 rasp3 domoticz: Zigate: [1] NEW OBJECT: 80e4 Manufacturer Name: _TZE204_t1blo2bj
Apr 17 22:08:35 rasp3 domoticz: Zigate: [2] NEW OBJECT: 80e4 Model Name: TS0601
Apr 17 22:08:35 rasp3 domoticz: Zigate: [2] NEW OBJECT: 80e4 Manufacturer Name: _TZE204_t1blo2bj
Apr 17 22:08:40 rasp3 domoticz: Zigate: [3] NEW OBJECT: 80e4 Model Name: TS0601
Apr 17 22:08:40 rasp3 domoticz: Zigate: [3] NEW OBJECT: 80e4 Manufacturer Name: _TZE204_t1blo2bj
Apr 17 22:08:45 rasp3 domoticz: Zigate: [4] NEW OBJECT: 80e4 Model Name: TS0601
Apr 17 22:08:45 rasp3 domoticz: Zigate: [4] NEW OBJECT: 80e4 Manufacturer Name: _TZE204_t1blo2bj
Apr 17 22:08:50 rasp3 domoticz: Zigate: [5] NEW OBJECT: 80e4 Model Name: TS0601
Apr 17 22:08:50 rasp3 domoticz: Zigate: [5] NEW OBJECT: 80e4 Manufacturer Name: _TZE204_t1blo2bj
Apr 17 22:08:55 rasp3 domoticz: Zigate: [6] NEW OBJECT: 80e4 Not able to get all needed attributes on time
Apr 17 22:08:55 rasp3 domoticz: Zigate: processNotinDB - not able to find response from 80e4 stop process at 0043
Apr 17 22:08:55 rasp3 domoticz: Zigate: processNotinDB - Collected Infos are : {'Version': '3', 'ZDeviceName': '', 'Status': 'UNKNOW', 'SQN': '6f', 'Ep': {'01': {'0000': {'0004': '_TZE204_t1blo2bj', '0000': '3', '0001': '74', '0005': 'TS0601', '0007': '1', 'fffe': '0', 'ffe2': '56', 'ffe4': '0', 'ffdf': '\x7f+f\x7f+\x12'}}, 'f2': {}}, 'Heartbeat': '1', 'RIA': '6', 'LQI': 80, 'Battery': {}, 'Model': 'TS0601', 'ForceAckCommands': [], 'MacCapa': '8e', 'IEEE': 'a4c1382c4e2f6a67', 'Type': {}, 'ProfileID': {}, 'ZDeviceID': {}, 'App Version': '74', 'Attributes List': {}, 'DeviceType': 'FFD', 'HW Version': '', 'Last Cmds': [], 'LogicalType': 'Router', 'Manufacturer': '', 'Manufacturer Name': '_TZE204_t1blo2bj', 'NbEp': '2', 'PowerSource': 'Main', 'ReadAttributes': {'Ep': {'01': {'0000': {'TimeStamp': 1681762113, 'iSQN': {'0004': '00', '0000': '00', '0001': '00', '0005': '00', '0007': '00', 'fffe': '00'}, 'Attributes': {'0004': '00', '0000': '00', '0001': '00', '0005': '00', '0007': '00', 'fffe': '00', 'ffe2': '00', 'ffe4': '00', 'ffdf': '00'}, 'ZigateRequest': {}}}}}, 'ReceiveOnIdle': '', 'Stack Version': '', 'Stamp': {'time': 1681762113.4834332, 'Time': '2023-04-17 22:08:33', 'MsgType': '8011', 'LastSeen': 1681762113}, 'ZCL Version': '3', 'Health': 'Live', 'Capability': ['Full-Function Device', 'Main Powered', 'Receiver during Idle', 'Standard security', 'NwkAddr should be allocated'], 'ZCLSQN': '00', 'ZDPSQN': '01', 'RollingLQI': [80, 80, 80, 76, 76, 76, 76, 76, 76, 80, 80], 'WriteAttributes': {'Ep': {'01': {'0000': {'TimeStamp': 0, 'iSQN': {}, 'Attributes': {}, 'ZigateRequest': {}}}}}, 'Epv2': {'01': {'ClusterIn': {}, 'ClusterOut': {}, 'ProfileID': {}, 'ZDeviceID': {}}, 'f2': {'ClusterIn': {}, 'ClusterOut': {}, 'ProfileID': {}, 'ZDeviceID': {}}}, 'ZCL-IN-SQN': {'ef00': '68', '000a': '69', '0000': '6f'}, 'SQN_000a': '69', 'PairingInProgress': True, 'ConsistencyCheck': 'Bad Pairing'}
Apr 17 22:08:55 rasp3 domoticz: Zigate: [6] NEW OBJECT: 80e4 Model Name: TS0601
Apr 17 22:08:55 rasp3 domoticz: Zigate: [6] NEW OBJECT: 80e4 Manufacturer Name: _TZE204_t1blo2bj
I have 48 other objects (10 routers, 38 sensors) from different vendors (Xiaomi, Aqara, Philips, Ikea, Heiman, Legrand) in my network, all working properly.

What could be the issue with the siren?

I can provide additional logs if needed.

Thank you.

Re: Neo siren pairing issue

Posted: Saturday 29 April 2023 21:57
by mce35
Hello,

It turns out this particular siren model (_TZE204_t1blo2bj) is not supported by the plugin (looks like only _TZE200_t1blo2bj is supported). I did some changes to make it work partially for now (it probably breaks the _TZE200_t1blo2bj model as it seems to use different actions to trigger the alarm):

Code: Select all

diff --git a/Modules/command.py b/Modules/command.py
index 43525d55..fd474e3f 100644
--- a/Modules/command.py
+++ b/Modules/command.py
@@ -328,7 +328,7 @@ def mgtCommand(self, Devices, Unit, Command, Level, Color):
             UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev)
             return
 
-        if DeviceType == "SwitchAlarm" and _model_name == "TS0601-_TZE200_t1blo2bj":
+        if DeviceType == "SwitchAlarm" and (_model_name == "TS0601-_TZE200_t1blo2bj" or _model_name == "TS0601-_TZE204_t1blo2bj"):
             tuya_siren2_trigger(self, NWKID, '00')
             UpdateDevice_v2(self, Devices, Unit, 0, "Off", BatteryLevel, SignalLevel, ForceUpdate_=forceUpdateDev)
             return
diff --git a/Modules/tuya.py b/Modules/tuya.py
index b2e3b349..c02cf0e7 100644
--- a/Modules/tuya.py
+++ b/Modules/tuya.py
@@ -306,7 +306,7 @@ def tuya_response(self, Devices, _ModelName, NwkId, srcEp, ClusterID, dstNWKID,
     elif _ModelName in ( "TS0601-sirene", ):
         tuya_siren_response(self, Devices, _ModelName, NwkId, srcEp, ClusterID, dstNWKID, dstEP, dp, datatype, data)
 
-    elif _ModelName in ( "TS0601-_TZE200_t1blo2bj", ):
+    elif _ModelName in ( "TS0601-_TZE200_t1blo2bj", "TS0601-_TZE204_t1blo2bj", ):
         tuya_siren2_response(self, Devices, _ModelName, NwkId, srcEp, ClusterID, dstNWKID, dstEP, dp, datatype, data)
 
     elif _ModelName in ( "TS0601-dimmer", "TS0601-2Gangs-dimmer"):
diff --git a/Modules/tuyaConst.py b/Modules/tuyaConst.py
index fa01290e..3413a72e 100644
--- a/Modules/tuyaConst.py
+++ b/Modules/tuyaConst.py
@@ -50,6 +50,7 @@ TUYA_TEMP_HUMI = (
 
 TUYA_SIREN_MANUFACTURER = (
     "_TZE200_d0yu2xgi",
+    "_TZE204_t1blo2bj",
     "_TYST11_d0yu2xgi",
 )
 TUYA_SIREN_MODEL = (
diff --git a/Modules/tuyaSiren.py b/Modules/tuyaSiren.py
index c5c9bba5..90f8da9c 100644
--- a/Modules/tuyaSiren.py
+++ b/Modules/tuyaSiren.py
@@ -196,7 +196,7 @@ def tuya_siren_alarm(self, nwkid, onoff, alarm_num=1):
     sqn = get_and_inc_ZCL_SQN(self, nwkid)
     cluster_frame = "11"
     cmd = "00"  # Command
-    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x0168))[0]
+    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x010D))[0]
     data = "%02x" % onoff
     tuya_cmd(self, nwkid, EPout, cluster_frame, sqn, cmd, action, data)
 
@@ -335,7 +335,7 @@ def tuya_siren_alarm_duration(self, nwkid, duration):
     sqn = get_and_inc_ZCL_SQN(self, nwkid)
     cluster_frame = "11"
     cmd = "00"  # Command
-    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x0267))[0]
+    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x0207))[0]
     data = "%08x" % duration
     tuya_cmd(self, nwkid, EPout, cluster_frame, sqn, cmd, action, data)
 
@@ -351,7 +351,7 @@ def tuya_siren_alarm_volume(self, nwkid, volume):
     sqn = get_and_inc_ZCL_SQN(self, nwkid)
     cluster_frame = "11"
     cmd = "00"  # Command
-    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x0474))[0]
+    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x0405))[0]
     data = "%02x" % volume
     tuya_cmd(self, nwkid, EPout, cluster_frame, sqn, cmd, action, data)
 
@@ -367,7 +367,7 @@ def tuya_siren_alarm_melody(self, nwkid, melody):
     sqn = get_and_inc_ZCL_SQN(self, nwkid)
     cluster_frame = "11"
     cmd = "00"  # Command
-    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x0466))[0]
+    action = "%04x" % struct.unpack("H", struct.pack(">H", 0x0415))[0]
     data = "%02x" % melody
     tuya_cmd(self, nwkid, EPout, cluster_frame, sqn, cmd, action, data)
 

Re: Neo siren pairing issue

Posted: Sunday 30 April 2023 13:36
by gizmocuz
Working fine here with zigbee2mqtt