Koenkk / zigbee-herdsman

A Node.js Zigbee library
MIT License
456 stars 277 forks source link

Error message when old Philips Hue bulbs are requested to report status updates #110

Closed bodiroga closed 4 years ago

bodiroga commented 4 years ago

Hi @Koenkk!

As requested in https://github.com/Koenkk/zigbee2mqtt/issues/1064#issuecomment-566697914, I open this issue to track the problem.

The problem is that, after enabling 'reporting' in zigbee2mqtt's configuration file, some old Philips Hue bulbs report that they don't support the feature and zigbee-herdsman ignores the message and just waits until the timeout timer expires. Instead, I propose to catch that message, cancel the reporting timer and print something like "warn - Device 'x' doesn't allow reporting functionality."

Attached to this message you can find the packages captured by a CC2531 sniffer (my main controller is a new CC2652R) and zigbee2mqtt's log file, with debug enabled:

Wireshark - zigbee2mqtt.zip zigbee2mqtt.txt

Don't hesitate to ask anything you want, please :wink:

Thank you for your awesome support and best regards,

Aitor

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

ndfred commented 3 years ago

I am seeing the same issue on my old Philips Hue bulbs. Following 0x0017880100db65c0, the bulb is recognised:

zigbee2mqtt:info  2019-12-19 20:20:31: philips-white-1 (0x0017880100db65c0): 433714 - Philips Hue Lux A19 bulb E27 (Router)

Reporting is set up:

zigbee2mqtt:debug 2019-12-19 20:20:32: Setup reporting for '0x0017880100db65c0' - 11 - genOnOff

zigbee-herdsman executes the bind request, this takes 1s:

2019-12-19T19:20:32.107Z zigbee-herdsman:adapter:zStack:znp:SREQ --> ZDO - bindReq - {"dstaddr":49932,"srcaddr":"0x0017880100db65c0","srcendpoint":11,"clusterid":6,"dstaddrmode":3,"dstaddress":"0x00124b001caabf2b","dstendpoint":1}
2019-12-19T19:20:32.107Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,23,37,33,12,195,192,101,219,0,1,136,23,0,11,6,0,3,43,191,170,28,0,75,18,0,1,72]
2019-12-19T19:20:32.160Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,101,33,0,69,254,5]
2019-12-19T19:20:32.160Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,101,33,0,69,254,5]
2019-12-19T19:20:32.160Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 5 - 33 - [0] - 69
2019-12-19T19:20:32.160Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- ZDO - bindReq - {"status":0}
2019-12-19T19:20:32.161Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,5]
2019-12-19T19:20:32.161Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [69,196,64,69,1,33,181,20]
2019-12-19T19:20:32.161Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,5,69,196,64,69,1,33,181,20]
2019-12-19T19:20:32.161Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 5 - 2 - 5 - 196 - [64,69,1,33,181] - 20
2019-12-19T19:20:32.161Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":17728,"relaycount":1,"relaylist":[46369]}
2019-12-19T19:20:32.161Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2019-12-19T19:20:32.172Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,161,12,195,0,40]
2019-12-19T19:20:32.172Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,161,12,195,0,40]
2019-12-19T19:20:32.172Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 161 - [12,195,0] - 40
2019-12-19T19:20:32.172Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - bindRsp - {"srcaddr":49932,"status":0}

Zigbee2MQTT reports a failure after 10s:

zigbee2mqtt:error 2019-12-19 20:20:42: Failed to setup reporting for '0x0017880100db65c0' - Error: Timeout - 49932 - 11 - 2 - 6 - 7 after 10000ms
    at Timeout.object.timer.setTimeout [as _onTimeout] (/app/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)

I wonder if bindRsp setting "status":0 is enough to determine that binding has failed? I'll check my bulbs, some of which exhibit that behaviour and some of which do not.

ndfred commented 3 years ago

Looks like we are skipping binding / reporting when it is already set up. For the record here is what the whole sequence looks like with a recent Zigbee2MQTT install.

Following 0x0017880102218e1d, the bulb is recognised:

Sep 17 21:19:36 bagend npm[7840]: Zigbee2MQTT:info  2020-09-17 21:19:36: living_room_bookshelf_light (0x0017880102218e1d): 8718696548738 - Philips Hue white ambiance E26/E27 (Router)

Reporting is set up, zigbee-herdsman executes the bind followed by the ConfigureReporting request, this takes 1s (with a random message coming back 6s later):

Sep 17 21:21:06 bagend npm[7840]: Zigbee2MQTT:debug 2020-09-17 21:21:06: Setup reporting for '0x0017880102218e1d' - 11 - genOnOff
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.981Z zigbee-herdsman:controller:endpoint Bind 0x0017880102218e1d/11 genOnOff from '0x00124b0018df5b10/1'
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.982Z zigbee-herdsman:adapter:zStack:znp:SREQ --> ZDO - bindReq - {"dstaddr":29499,"srcaddr":"0x0017880102218e1d","srcendpoint":11,"clusterid":6,"dstaddrmode":3,"dstaddress":"0x00124b0018df5b10","dstendpoint":1}
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.982Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,23,37,33,59,115,29,142,33,2,1,136,23,0,11,6,0,3,16,91,223,24,0,75,18,0,1,175]
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.994Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,101,33,0,69]
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.995Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,101,33,0,69]
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.995Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 5 - 33 - [0] - 69
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.995Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- ZDO - bindReq - {"status":0}
Sep 17 21:21:06 bagend npm[7840]: 2020-09-17T20:21:06.996Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.019Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,59,115,0,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.019Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,59,115,0,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.019Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [59,115,0] - 202
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.019Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":29499,"relaycount":0,"relaylist":[]}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.020Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.105Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,59,115,0,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.105Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,59,115,0,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.105Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [59,115,0] - 202
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.105Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":29499,"relaycount":0,"relaylist":[]}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.105Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.189Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,161,59,115,0,175]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.189Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,161,59,115,0,175]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.190Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 161 - [59,115,0] - 175
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.190Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - bindRsp - {"srcaddr":29499,"status":0}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.190Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.192Z zigbee-herdsman:controller:endpoint ConfigureReporting 0x0017880102218e1d/11 genOnOff([{"attribute":"onOff","minimumReportInterval":0,"maximumReportInterval":300,"reportableChange":0}], {"timeout":10000,"disableResponse":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null})
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.192Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x0017880102218e1d:29499/11 (0,0)
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.193Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":29499,"destendpoint":11,"srcendpoint":1,"clusterid":6,"transid":12,"options":0,"radius":30,"len":11,"data":{"type":"Buffer","data":[16,7,6,0,0,0,16,0,0,44,1]}}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.194Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,21,36,1,59,115,11,1,6,0,12,0,30,11,16,7,6,0,0,0,16,0,0,44,1,65]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.206Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.207Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.207Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.207Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.207Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.213Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,12,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.213Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,12,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.213Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,12] - 202
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.214Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":12}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.214Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.227Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,59,115,0,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.228Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,59,115,0,202]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.228Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [59,115,0] - 202
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.228Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":29499,"relaycount":0,"relaylist":[]}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.228Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.315Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,25,68,129,0,0,6,0,59,115,11,1,0,15,0,96,18,194,0,0,5,24,7,11,6,130,59,115,29,231]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.315Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,25,68,129,0,0,6,0,59,115,11,1,0,15,0,96,18,194,0,0,5,24,7,11,6,130,59,115,29,231]
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.316Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 25 - 2 - 4 - 129 - [0,0,6,0,59,115,11,1,0,15,0,96,18,194,0,0,5,24,7,11,6,130,59,115,29] - 231
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.316Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":6,"srcaddr":29499,"srcendpoint":11,"dstendpoint":1,"wasbroadcast":0,"linkquality":15,"securityuse":0,"timestamp":12718688,"transseqnumber":0,"len":5,"data":{"type":"Buffer","data":[24,7,11,6,130]}}
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.317Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0},"transactionSequenceNumber":7,"manufacturerCode":null,"commandIdentifier":11},"Payload":{"cmdId":6,"statusCode":130}},"address":29499,"endpoint":11,"linkquality":15,"groupID":0}'
Sep 17 21:21:07 bagend npm[7840]: 2020-09-17T20:21:07.318Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.156Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,181,163,0,148]
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.156Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,181,163,0,148]
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.156Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [181,163,0] - 148
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.157Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":41909,"relaycount":0,"relaylist":[]}
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.157Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.229Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,27,68,129,0,0,8,0,181,163,1,1,0,70,0,108,90,194,0,0,7,8,124,10,0,0,32,254,181,163,29,222]
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.229Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,27,68,129,0,0,8,0,181,163,1,1,0,70,0,108,90,194,0,0,7,8,124,10,0,0,32,254,181,163,29,222]
Sep 17 21:21:13 bagend npm[7840]: 2020-09-17T20:21:13.230Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 27 - 2 - 4 - 129 - [0,0,8,0,181,163,1,1,0,70,0,108,90,194,0,0,7,8,124,10,0,0,32,254,181,163,29] - 222

Zigbee2MQTT reports a failure after 20s:

Sep 17 21:21:30 bagend npm[7840]: 2020-09-17T20:21:30.260Z zigbee-herdsman:adapter:zStack:adapter Response timeout (0x0017880102218e1d:29499,1)
Sep 17 21:21:30 bagend npm[7840]: 2020-09-17T20:21:30.261Z zigbee-herdsman:controller:endpoint ConfigureReporting 0x0017880102218e1d/11 genOnOff([{"attribute":"onOff","minimumReportInterval":0,"maximumReportInterval":300,"reportableChange":0}], {"timeout":10000,"disableResponse":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null}) failed (Timeout - 29499 - 11 - 7 - 6 - 7 after 10000ms)
Sep 17 21:21:30 bagend npm[7840]: Zigbee2MQTT:error 2020-09-17 21:21:30: Failed to setup reporting for '0x0017880102218e1d' - Error: ConfigureReporting 0x0017880102218e1d/11 genOnOff([{"attribute":"onOff","minimumReportInterval":0,"maximumReportInterval":300,"reportableChange":0}], {"timeout":10000,"disableResponse":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null}) failed (Timeout - 29499 - 11 - 7 - 6 - 7 after 10000ms)
Sep 17 21:21:30 bagend npm[7840]:     at Timeout._onTimeout (/srv/zigbee2mqtt/node_modules/zigbee-herdsman/dist/utils/waitress.js:46:35)
Sep 17 21:21:30 bagend npm[7840]:     at listOnTimeout (internal/timers.js:549:17)
Sep 17 21:21:30 bagend npm[7840]:     at processTimers (internal/timers.js:492:7)
ndfred commented 3 years ago

I managed to get around the issue by hardcoding the Philips Hue bulb models that were failing to report that way, works well but obviously too broad a fix to be reasonably upstreamed (see devices.js for reference):

diff --git a/lib/extension/report.js b/lib/extension/report.js
index 2cfb04c..05d7b24 100644
--- a/lib/extension/report.js
+++ b/lib/extension/report.js
@@ -16,6 +16,9 @@ const devicesNotSupportingReporting = [
     zigbeeHerdsmanConverters.devices.find((d) => d.model === 'BASICZBR3'),
     zigbeeHerdsmanConverters.devices.find((d) => d.model === 'ZM-CSW032-D'),
     zigbeeHerdsmanConverters.devices.find((d) => d.model === 'TS0001'),
+    zigbeeHerdsmanConverters.devices.find((d) => d.model === '8718696548738'),
+    zigbeeHerdsmanConverters.devices.find((d) => d.model === '7299355PH'),
+    zigbeeHerdsmanConverters.devices.find((d) => d.model === '9290012573A'),
 ];

 const reportKey = 1;
Koenkk commented 3 years ago

@ndfred I'm not sure if blocking them from reporting is the correct solution as it doesn't depend on the model but the firmware. @sjorge what is your opinion about this?

sjorge commented 3 years ago

@Koenkk if I am not mistaken we have a try/catch for reporting somewhere for a different device already.

I would say we do the same for the hue bulbs? Try to configure it, this we have reporting on older bulbs with old firmwares and newer devices that do support some reporting. But don't throw exceptions.

Edit: here is the example I was talking about https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices.js#L951

ndfred commented 3 years ago

@Koenkk: I just meant to share my hacky local fix if this behaviour bothers other people, I didn’t mean to suggest that upstream. Catching that the device doesn’t support reporting and logging that would work, but I would actually either blacklist these devices after the first time we see that behaviour or allow to configure bulbs not to use reporting in the configuration file.

Another alternative is what you are suggesting: blacklist a series of firmware versions, though that could get very long really quickly.

The reason I am looking into this at all is that my controller is hanging / crashing which causes my remotes to be unresponsive, and I thought binding / reporting failing might cause too much traffic and overwhelm the network / controller. It is stable after I put that hack in place, but there are many factors that could have lead to that.

Koenkk commented 3 years ago

@ndfred can you share the data/database.db of this bulb that does not support reporting?

ndfred commented 3 years ago

Sure, I just looked through them and there are actually quite a few, I'll share one database entry for each model assuming they are all the same. I upgraded them all to the latest firmware they support. The color bulbs and light strip are really ancient, the white ambiance bulbs are more recent purchases. 0x00124b0018df5b10 is my CC2531 coordinator.

8718696548738 - Philips Hue white ambiance E26/E27 (Router):

{
  "id": 17,
  "type": "Router",
  "ieeeAddr": "0x0017880102218e1d",
  "nwkAddr": 29499,
  "manufId": 4107,
  "manufName": "Philips",
  "powerSource": "Mains (single phase)",
  "modelId": "LTW001",
  "epList": [
    11,
    242
  ],
  "endpoints": {
    "11": {
      "profId": 49246,
      "epId": 11,
      "devId": 544,
      "inClusterList": [
        0,
        3,
        4,
        5,
        6,
        8,
        4096,
        768
      ],
      "outClusterList": [
        25
      ],
      "clusters": {
        "genBasic": {
          "attributes": {
            "modelId": "LTW001",
            "manufacturerName": "Philips",
            "powerSource": 1,
            "zclVersion": 1,
            "appVersion": 2,
            "stackVersion": 1,
            "hwVersion": 20,
            "dateCode": "20191216",
            "swBuildId": "5.130.1.30000"
          }
        }
      },
      "binds": [
        {
          "cluster": 6,
          "type": "endpoint",
          "deviceIeeeAddress": "0x00124b0018df5b10",
          "endpointID": 1
        }
      ]
    },
    "242": {
      "profId": 41440,
      "epId": 242,
      "devId": 97,
      "inClusterList": [
        33
      ],
      "outClusterList": [
        33
      ],
      "clusters": {
      },
      "binds": [

      ]
    }
  },
  "appVersion": 2,
  "stackVersion": 1,
  "hwVersion": 20,
  "dateCode": "20191216",
  "swBuildId": "5.130.1.30000",
  "zclVersion": 1,
  "interviewCompleted": true,
  "meta": {
  },
  "lastSeen": 1600629426405
}

9290012573A - Philips Hue white and color ambiance E26/E27/E14 (Router):

{
  "id": 16,
  "type": "Router",
  "ieeeAddr": "0x0017880100b87540",
  "nwkAddr": 62098,
  "manufId": 4107,
  "manufName": "Philips",
  "powerSource": "Mains (single phase)",
  "modelId": "LCT001",
  "epList": [
    11,
    242
  ],
  "endpoints": {
    "11": {
      "profId": 49246,
      "epId": 11,
      "devId": 528,
      "inClusterList": [
        0,
        3,
        4,
        5,
        6,
        8,
        4096,
        768,
        64513
      ],
      "outClusterList": [
        25
      ],
      "clusters": {
        "genBasic": {
          "attributes": {
            "modelId": "LCT001",
            "manufacturerName": "Philips",
            "powerSource": 1,
            "zclVersion": 1,
            "appVersion": 2,
            "stackVersion": 1,
            "hwVersion": 1,
            "dateCode": "20181129",
            "swBuildId": "5.127.1.26581"
          }
        }
      },
      "binds": [
        {
          "cluster": 6,
          "type": "endpoint",
          "deviceIeeeAddress": "0x00124b0018df5b10",
          "endpointID": 1
        }
      ]
    },
    "242": {
      "profId": 41440,
      "epId": 242,
      "devId": 97,
      "inClusterList": [
        33
      ],
      "outClusterList": [
        33
      ],
      "clusters": {
      },
      "binds": [

      ]
    }
  },
  "appVersion": 2,
  "stackVersion": 1,
  "hwVersion": 1,
  "dateCode": "20181129",
  "swBuildId": "5.127.1.26581",
  "zclVersion": 1,
  "interviewCompleted": true,
  "meta": {
  },
  "lastSeen": 1600629403038
}

7299355PH - Philips Hue white and color ambiance LightStrip (Router):

{
  "id": 11,
  "type": "Router",
  "ieeeAddr": "0x0017880100cfc630",
  "nwkAddr": 53334,
  "manufId": 4107,
  "manufName": "Philips",
  "powerSource": "Mains (single phase)",
  "modelId": "LST001",
  "epList": [
    11,
    242
  ],
  "endpoints": {
    "11": {
      "profId": 49246,
      "epId": 11,
      "devId": 512,
      "inClusterList": [
        0,
        3,
        4,
        5,
        6,
        8,
        4096,
        768,
        64513
      ],
      "outClusterList": [
        25
      ],
      "clusters": {
        "genBasic": {
          "attributes": {
            "modelId": "LST001",
            "manufacturerName": "Philips",
            "powerSource": 1,
            "zclVersion": 1,
            "appVersion": 2,
            "stackVersion": 1,
            "hwVersion": 5,
            "dateCode": "20181129",
            "swBuildId": "5.127.1.26581"
          }
        },
        "genLevelCtrl": {
          "attributes": {
            "currentLevel": 1
          }
        }
      },
      "binds": [
        {
          "cluster": 6,
          "type": "endpoint",
          "deviceIeeeAddress": "0x00124b0018df5b10",
          "endpointID": 1
        }
      ]
    },
    "242": {
      "profId": 41440,
      "epId": 242,
      "devId": 97,
      "inClusterList": [
        33
      ],
      "outClusterList": [
        33
      ],
      "clusters": {
      },
      "binds": [

      ]
    }
  },
  "appVersion": 2,
  "stackVersion": 1,
  "hwVersion": 5,
  "dateCode": "20181129",
  "swBuildId": "5.127.1.26581",
  "zclVersion": 1,
  "interviewCompleted": true,
  "meta": {
  },
  "lastSeen": 1600629356487
}
Koenkk commented 3 years ago

And non of them support reporting, right?

@sjorge I want to block setting up reporting based on the swBuildId meaning we would block 5.127.1.26581 and 5.130.1.30000, does this match with your case?

sjorge commented 3 years ago

Not near the bulb, but only the very early firmware revision has reporting for genOnOff for me, so blocking it on anything from 2019 onwards seems fine I think.

~ sjorge

On 21 Sep 2020, at 20:39, Koen Kanters notifications@github.com wrote:

 And non of them support reporting, right?

@sjorge I want to block setting up reporting based on the swBuildId meaning we would block 5.127.1.26581 and 5.130.1.30000, does this match with your case?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

ndfred commented 3 years ago

Hue bulbs have auto update for Zigbee2MQTT right? If that is the case, I guess we can assume people who care enough to run reporting would have the latest firmware.

As a side note, it would be nice to report a failure to set reporting immediately so people can see that in the logs right away, it took a while for me to have all the bulbs come back with a timeout failure. I don't know if that clogs some queue somewhere and delays other commands too.

Koenkk commented 3 years ago

@ndfred devices are never automatically updated. You always need to execute a command yourself to do this.

In the latest dev branch reporting will not be set up anymore for the devices with your softwareBuildID.

ndfred commented 3 years ago

Just checked and it is all working well, thanks!