Neo siren pairing issue

Xiaomi, Ikea TRÅDFRI, Philips Hue and more.

Moderator: leecollings

Post Reply
mce35
Posts: 5
Joined: Monday 17 April 2023 22:15
Target OS: Linux
Domoticz version:
Contact:

Neo siren pairing issue

Post 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.
mce35
Posts: 5
Joined: Monday 17 April 2023 22:15
Target OS: Linux
Domoticz version:
Contact:

Re: Neo siren pairing issue

Post 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)
 
User avatar
gizmocuz
Posts: 2504
Joined: Thursday 11 July 2013 18:59
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: Top of the world
Contact:

Re: Neo siren pairing issue

Post by gizmocuz »

Working fine here with zigbee2mqtt
Quality outlives Quantity!
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest