Closed G1K closed 3 years ago
Are you able to identify which is not re-releasing the PDU ? As in fact the Zigbee stack itself is also allocating Pdus when the devices are requesting Default Response
I can throw off the full log of communication with zigate and sniff when pairing
Even without pairing, after several restarts the device started sending Data request -> 0x0000 and ZCL identify -> Broadcast There were no other packages on the network
Example
Data request
0000 63 88 cc 6e 1d 00 00 2b 28 04 4a 73
ZCL Identify
0000 41 88 36 6e 1d ff ff 00 00 08 02 ff ff 2b 28 1d
0010 aa 28 27 40 06 00 e6 fe 9f 03 00 8d 15 00 00 7b
0020 47 96 75 38 80 4e 61 35 66 a6 26 5c 5a b3 da 88
ZiGate does not send messages, but after the next request, 0x9999 with status 0x81 began to arrive By sending the command permit join, I saw the status
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 80 02 10 02 10 02 1b 97 02 10 02 10 02 10 14 02 10 02 10 02 10 02 17 02 16 02 19 02 10 03> +19ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 80 00 00 0b 97 00 00 00 14 00 00 00 07 06 09 00 03> +20ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 80 00>, msgLengthBytes: <Buffer 00 0b>, checksumBytes: <Buffer 97>, msgPayloadBytes: <Buffer 00 00 00 14 00 00 00 07 06 09>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> Status 0x8000 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 0, sequence: 0, packetType: 20, requestSent: 0, seqApsNum: 0, PDUM_u8GetNpduUse: 0, u8GetApduUse: 7, PDUM_u8GetMaxNpduUse: 6, u8GetMaxApduUse: 9 } +20ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +13s
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +0ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +2ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +15s
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +15s
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +15s
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +0ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +0ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +0ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +15s
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +15s
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +15s
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +0ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +1ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +15s
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +15s
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +0ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +15s
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +1ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
zigbee-herdsman:adapter:zigate:driver:log --> parsed frame >>>> ExtendedStatusCallBack 0x9999 <<<< +0ms
zigbee-herdsman:adapter:zigate:driver:ziGateObject:info --> frame to object { status: 129 } +1ms
zigbee-herdsman:adapter:zigate:driver:log --- parseNext <Buffer 01 99 99 02 10 02 12 83 81 02 10 03> +0ms
zigbee-herdsman:adapter:zigate:driver:frame:log decoded frame >>> <Buffer 01 99 99 00 02 83 81 00 03> +0ms
zigbee-herdsman:adapter:zigate:driver:frame:log ZiGateFrame { msgCodeBytes: <Buffer 99 99>, msgLengthBytes: <Buffer 00 02>, checksumBytes: <Buffer 83>, msgPayloadBytes: <Buffer 81>, rssiBytes: <Buffer 00>, msgLengthOffset: -1 } +0ms
@fairecasoimeme , I think that the recent changes tested last week shows a correct behaviour on teh Schneider Wiser for instance. Not sure if it will address all cases
pretty good improvement made @fairecasoimeme . do not see further leak on PDU with the recent code
Firmware 31e
Firmware latest COORDINATOR (APDU Instances 9) along with PR https://github.com/fairecasoimeme/ZiGate/pull/342 , but sometimes APDUs are not released (further constantly u8getapduuse: 7). Seen by messages 0x8000 .
Below is a part of the log. This occurs after the RawAPSDataRequest 0x0530. It is also noteworthy that in the messages there was nothing about 5,6 immediately after u8getapduuse: 4 turned out to be 7 and hung in this position. In the 0x8000 messages at the end, I also added PDUM_u8GetMaxNpduUse u8GetMaxApduUse for debugging.
After that, messages 0x9999 with a load of 0x81 often start arriving, sometimes 5-10 times in a row.
This behavior was previously on firmware 3.1 c before the fix https://github.com/fairecasoimeme/ZiGate/commit/42bdd0b3cc601162ce3331adcfc477902f289ea9
But even now, when the maximum APDU is reached, messages 0x8000 with the status A6 are received