Koenkk / zigbee-herdsman-converters

Collection of device converters to be used with zigbee-herdsman
MIT License
861 stars 2.85k forks source link

Bosch Twinguard: No converter available for `8750001213` #7312

Closed dignifiedquire closed 3 months ago

dignifiedquire commented 3 months ago

Pairing worked without issues, but now getting this in the logs

Zigbee2MQTT:debug 2024-04-02 17:31:02: Received Zigbee message from '0x000d6f0019104fa8', type 'attributeReport', cluster 'manuSpecificTuya_2', data '{"16384":4024,"16388":2344,"16389":194,"16393":1000}' from endpoint 3 with groupID 0
Zigbee2MQTT:debug 2024-04-02 17:31:02: No converter available for '8750001213' with cluster 'manuSpecificTuya_2' and type 'attributeReport' and data '{"16384":4024,"16388":2344,"16389":194,"16393":1000}'
burmistrzak commented 3 months ago

Pairing worked without issues, but now getting this in the logs

Zigbee2MQTT:debug 2024-04-02 17:31:02: Received Zigbee message from '0x000d6f0019104fa8', type 'attributeReport', cluster 'manuSpecificTuya_2', data '{"16384":4024,"16388":2344,"16389":194,"16393":1000}' from endpoint 3 with groupID 0
Zigbee2MQTT:debug 2024-04-02 17:31:02: No converter available for '8750001213' with cluster 'manuSpecificTuya_2' and type 'attributeReport' and data '{"16384":4024,"16388":2344,"16389":194,"16393":1000}'
  • 0x000d6f0019104fa8 I confirmed that this is the twinguard

Hi @dignifiedquire, I did some of the very recent work on the Twinguard converter. ✋

What's your Z2M version/build? Also please share your Twinguard's firmware build, if possible.

dignifiedquire commented 3 months ago

Status output

Last seen N/A
Availability Disabled
Device type EndDevice
Zigbee Model Champion
Zigbee Manufacturer BOSCH ST
Description Twinguard
Support status Supported

IEEE Address 0x000d6f0019104fa8
Network address 0xCE7E
Firmware build date 20230420
Firmware version 6b6048b
Manufacturer [Bosch](https://www.zigbee2mqtt.io/supported-devices/#v=Bosch)
Model 8750001213
Power Battery 
Interview completed True

I am running Z2M from master, version 1.36.1

dignifiedquire commented 3 months ago
Screenshot 2024-04-02 at 22 04 14

Unfortunately it seems though none of the values are getting populated though

burmistrzak commented 3 months ago

Aha, I see. Just upgraded my dev setup to the latest release myself, and see the same thing. The cluster manuSpecificBosch3 that should be on Endpoint 3 gets somehow misidentified as manuSpecificTuya_2...

@dignifiedquire Can you please do me a favor, while I investigate? Go to Dev console and issue a read on Endpoint 3, at cluster manuSpecificBosch3, for attribute airpurity. VOC & CO2 should now display a value.

dignifiedquire commented 3 months ago

Didn't work unfortunately, these are the logs

Zigbee2MQTT:debug 2024-04-02 22:51:54: Received MQTT message on 'zigbee2mqtt/0x000d6f0019104fa8/3/set' with data '{"read":{"attributes":["airpurity"],"cluster":"manuSpecificBosch3","options":{}}}'
Zigbee2MQTT:debug 2024-04-02 22:51:54: Publishing 'set' 'read' to '0x000d6f0019104fa8'
Zigbee2MQTT:debug 2024-04-02 22:51:55: Received Zigbee message from '0x000d6f0019104fa8', type 'readResponse', cluster 'manuSpecificTuya_2', data '{"16387":0}' from endpoint 3 with groupID 0
Zigbee2MQTT:debug 2024-04-02 22:51:55: No converter available for '8750001213' with cluster 'manuSpecificTuya_2' and type 'readResponse' and data '{"16387":0}'
Zigbee2MQTT:info  2024-04-02 22:51:55: Read result of 'manuSpecificBosch3': {"16387":0}
Zigbee2MQTT:debug 2024-04-02 22:51:56: Received Zigbee message from '0x000d6f0019104fa8', type 'readResponse', cluster 'manuSpecificTuya_2', data '{"16387":0}' from endpoint 3 with groupID 0
Zigbee2MQTT:debug 2024-04-02 22:51:56: No converter available for '8750001213' with cluster 'manuSpecificTuya_2' and type 'readResponse' and data '{"16387":0}'
Zigbee2MQTT:info  2024-04-02 22:51:56: Read result of 'manuSpecificBosch3': {"16387":0}
burmistrzak commented 3 months ago

Ok, so I think I know what's going on here.

The latest release includes updated ZCL definitions, and some of them, namely zosungIRControl and manuSpecificTuya_2, share IDs with custom clusters from Bosch. And when support for Twinguard was first introduced, the ID (e.g. 0xE002) for each those clusters was used, instead of the then yet unspecified cluster name.

@Koenkk I'm preparing a hotfix 🔥 for this. Is it sufficient for clusters in ZCL to have a unique name or must the ID also be unique across clusters?

Edit: Also the manufacturerCode for Bosch is incorrect. Bug found & squashed. 🐛

dignifiedquire commented 3 months ago

appreciate the quick response, will wait for new code to test :)

burmistrzak commented 3 months ago

appreciate the quick response, will wait for new code to test :)

Happy to help. Besides, my own Twinguard also no longer works. 😉

Hotfixes are ready to be merged, but there's a chance that a rollback of ZCL might be required, if IDs have to be globally unique. Also, we'll probably have to reset & re-pair our Twinguards, just FYI.

Edit: Can confirm that as soon as my PRs are merged & released, everything just works.™

dignifiedquire commented 3 months ago

Okay, pulled your two PRs and can confirm that it works now

Screenshot 2024-04-03 at 11 56 38

On question, how do you update your twinguards? I am trying to avoid having to buy the bosch smart home bridge 😅 I already have too many bridges in my house.

dignifiedquire commented 3 months ago

The only error that is popping up constantly now is

Zigbee2MQTT:error 2024-04-03 15:19:23: Failed to apply calibration to 'temperature': 'temperature_precision' is not a number, got string ()
burmistrzak commented 3 months ago

On question, how do you update your twinguards? I am trying to avoid having to buy the bosch smart home bridge 😅 I already have too many bridges in my house.

Excellent question! I was in a similar position, and 'am now moving everything to Z2M. Already eliminated two Hue Bridges. 😏 It's currently a bit difficult to get OTA blobs for Bosch devices... So I'm still using my BSHC Gen. I to update new devices. An official firmware repository hasn't been found yet, AFAIK.

burmistrzak commented 3 months ago

The only error that is popping up constantly now is

Zigbee2MQTT:error 2024-04-03 15:19:23: Failed to apply calibration to 'temperature': 'temperature_precision' is not a number, got string ()

Hmm, you tried setting a calibration for your Twinguard? Did you used the slider? Seems to work fine for me. 🤔

Edit: I'll also suggest you reconfigure 🔄 the Twinguard once, just for good measure.

burmistrzak commented 3 months ago

Okay, pulled your two PRs and can confirm that it works nows

Would you mind sharing a bit about your Z2M setup? I guess you're not running it in a container?

dignifiedquire commented 3 months ago

Would you mind sharing a bit about your Z2M setup? I guess you're not running it in a container?

No just directly on my laptop (mac m1), with a sonoff zigbee dongle. So I can easily test things out

dignifiedquire commented 3 months ago

Hmm, you tried setting a calibration for your Twinguard? Did you used the slider? Seems to work fine for me. 🤔

Edit: I'll also suggest you reconfigure 🔄 the Twinguard once, just for good measure.

Did both, it shows now 0 and reconfigured the twinguards afterwards. The error still shows up

dignifiedquire commented 3 months ago

some logs if helpful

Zigbee2MQTT:debug 2024-04-03 17:49:22: Received Zigbee message from '0x000d6f0019104fa8', type 'attributeReport', cluster 'manuSpecificBosch3', data '{"humidity":5234,"temperature":2073,"unknown3":22,"unknown5":978}' from endpoint 3 with groupID 0
Zigbee2MQTT:error 2024-04-03 17:49:22: Failed to apply calibration to 'temperature': 'temperature_precision' is not a number, got string ()
Zigbee2MQTT:info  2024-04-03 17:49:22: MQTT publish: topic 'zigbee2mqtt/0x000d6f0019104fa8', payload '{"aqi":0,"co2":500,"heartbeat":"ON","humidity":52.34,"illuminance_lux":0,"linkquality":135,"pre_alarm":"ON","self_test":false,"sensitivity":"medium","siren_state":"clear","smoke":false,"temperature":20.73,"voc":0}'
zh:zstack:unpi:parser: <-- [254,45,68,129,0,0,2,224,118,208,3,1,0,99,0,65,84,238,0,0,25,28,9,18,88,10,0,64,33,227,20,4,64,41,52,8,5,64,33,221,1,9,64,33,232,3,118,208,29,61]
zh:zstack:unpi:parser: --- parseNext [254,45,68,129,0,0,2,224,118,208,3,1,0,99,0,65,84,238,0,0,25,28,9,18,88,10,0,64,33,227,20,4,64,41,52,8,5,64,33,221,1,9,64,33,232,3,118,208,29,61]
zh:zstack:unpi:parser: --> parsed 45 - 2 - 4 - 129 - [0,0,2,224,118,208,3,1,0,99,0,65,84,238,0,0,25,28,9,18,88,10,0,64,33,227,20,4,64,41,52,8,5,64,33,221,1,9,64,33,232,3,118,208,29] - 61
zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":57346,"srcaddr":53366,"srcendpoint":3,"dstendpoint":1,"wasbroadcast":0,"linkquality":99,"securityuse":0,"timestamp":15619137,"transseqnumber":0,"len":25,"data":{"type":"Buffer","data":[28,9,18,88,10,0,64,33,227,20,4,64,41,52,8,5,64,33,221,1,9,64,33,232,3]}}
zh:controller: Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":true,"direction":1,"disableDefaultResponse":true,"reservedBits":0},"transactionSequenceNumber":88,"manufacturerCode":4617,"commandIdentifier":10},"Payload":[{"attrId":16384,"dataType":33,"attrData":5347},{"attrId":16388,"dataType":41,"attrData":2100},{"attrId":16389,"dataType":33,"attrData":477},{"attrId":16393,"dataType":33,"attrData":1000}],"Command":{"ID":10,"name":"report","parameters":[{"name":"attrId","type":33},{"name":"dataType","type":32},{"name":"attrData","type":1000}]}},"address":53366,"endpoint":3,"linkquality":99,"groupID":0,"wasBroadcast":false,"destinationEndpoint":1}'
zh:zstack:unpi:parser: --- parseNext []
Zigbee2MQTT:debug 2024-04-03 17:51:11: Received Zigbee message from '0x000d6f001910500e', type 'attributeReport', cluster 'manuSpecificBosch3', data '{"humidity":5347,"illuminance_lux":477,"temperature":2100,"unknown5":1000}' from endpoint 3 with groupID 0
Zigbee2MQTT:info  2024-04-03 17:51:11: MQTT publish: topic 'zigbee2mqtt/0x000d6f001910500e', payload '{"aqi":0,"battery":100,"co2":500,"heartbeat":"ON","humidity":53.47,"illuminance_lux":239,"linkquality":99,"pre_alarm":"ON","self_test":false,"siren_state":"clear","smoke":false,"temperature":21,"voc":0}'
dignifiedquire commented 3 months ago

also note, voc seems to be 0 most of the time, is this expected?

burmistrzak commented 3 months ago

also note, voc seems to be 0 most of the time, is this expected?

When AQI is also zero and your indoor air is clean and/or well ventilated, then yes. 😉

burmistrzak commented 3 months ago

temperature_precision is not a number, got string ()

Hmm, seems like you have set it to string in your configuration.yaml? Make sure temperature_precision is actually a number (i.e. without quotes).