Unable to update any inovelli firmware OTA
What happened?
Attempting to update to latest 2.15 firmware from (mostly) 2.14… Every single switch “Fails to respond” to OTA request in Z2M. I’ve tried cycling the switch + Z2M to no avail.
Z2M logs:
Initial firmware version request works fine:
zigbee2mqtt | [2024-05-04 12:04:46] info: z2m: Updating 'Front Door Foyer Lights' to latest firmware
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:controller:endpoint: ZCL command 0x040d84fffe02b0de/1 genBasic.read(["dateCode","swBuildId"], {"timeout":10000,"disableResponse":false,"di
sableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy"
:"immediate"})
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack: sendZclFrameToEndpointInternal 0x040d84fffe02b0de:53992/1 (0,0,1)
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":53992,"destendpoint":1,"srcendpoint":1,"clusterid":0,"transid":105,"options":0,"radius
":30,"len":7,"data":{"type":"Buffer","data":[16,86,0,6,0,0,64]}}
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:writer: --> frame [254,17,36,1,232,210,1,1,0,0,105,0,30,7,16,86,0,6,0,0,64,126]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext []
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,105,175]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,105,175]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,105] - 175
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":105}
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext []
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: <-- [254,3,69,196,232,210,0,184]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext [254,3,69,196,232,210,0,184]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 5 - 196 - [232,210,0] - 184
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: AREQ: <-- ZDO - srcRtgInd - {"dstaddr":53992,"relaycount":0,"relaylist":[]}
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext []
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: <-- [254,45,68,129,0,0,0,0,232,210,1,1,0,18,0,54,50,161,0,0,25,24,86,1,6,0,0,66,8,50,48,50,51,48,51,51,49,0,64,0,66,4,
50,46,49,52,232,210,29,69]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext [254,45,68,129,0,0,0,0,232,210,1,1,0,18,0,54,50,161,0,0,25,24,86,1,6,0,0,66,8,50,48,50,51,48,51,51,49,0,
64,0,66,4,50,46,49,52,232,210,29,69]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --> parsed 45 - 2 - 4 - 129 - [0,0,0,0,232,210,1,1,0,18,0,54,50,161,0,0,25,24,86,1,6,0,0,66,8,50,48,50,51,48,51,51,49,
0,64,0,66,4,50,46,49,52,232,210,29] - 69
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":0,"srcaddr":53992,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"link
quality":18,"securityuse":0,"timestamp":10564150,"transseqnumber":0,"len":25,"data":{"type":"Buffer","data":[24,86,1,6,0,0,66,8,50,48,50,51,48,51,51,49,0,64,0,66,4,50,46,49,52]}}
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext []
zigbee2mqtt | [2024-05-04 12:04:46] debug: z2m: Received Zigbee message from 'Front Door Foyer Lights', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20230331","swBuildId":"2.14"}' from endpoint 1 with groupID 0
Z2M then sends the update request:
zigbee2mqtt | [2024-05-04 12:04:46] debug: zhc:ota:common: Updating to latest '0x040d84fffe02b0de' (VZM31-SN)
zigbee2mqtt | [2024-05-04 12:04:46] debug: zhc:ota:common: Using endpoint '1'
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:controller:endpoint: CommandResponse 0x040d84fffe02b0de/1 genOta.imageNotify({"payloadType":0,"queryJitter":100}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false,"sendPolicy":"immediate"})
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack: sendZclFrameToEndpointInternal 0x040d84fffe02b0de:53992/1 (0,0,1)
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":53992,"destendpoint":1,"srcendpoint":1,"clusterid":25,"transid":106,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[25,87,0,0,100]}}
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:writer: --> frame [254,15,36,1,232,210,1,1,25,0,106,0,30,5,25,87,0,0,100,82]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext []
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,106,172]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,106,172]
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,106] - 172
zigbee2mqtt | [2024-05-04 12:04:46] debug: zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":106}
And then eventually times out:
zigbee2mqtt | [2024-05-04 12:05:46] error: z2m: Update of 'Front Door Foyer Lights' failed (OTA: Device didn't respond to OTA request)
zigbee2mqtt | [2024-05-04 12:05:46] debug: z2m: Error: OTA: Device didn't respond to OTA request
zigbee2mqtt | at requestOTA (/app/node_modules/zigbee-herdsman-converters/src/lib/ota/common.ts:314:15)
zigbee2mqtt | at Object.updateToLatest (/app/node_modules/zigbee-herdsman-converters/src/lib/ota/common.ts:436:21)
zigbee2mqtt | at OTAUpdate.onMQTTMessage (/app/lib/extension/otaUpdate.ts:273:41)
zigbee2mqtt | at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:174:17)
Searching the logs for the addr=53992 yields no other response, so it doesnt look like the response is received but not being parsed correctly or something.
This happens on all of my ~20 switches around the house, so I dont suspect it’s a switch-specific issue. I’m wondering if Z2M is sending a correctly-formatted update request to the switches. Other non-inovelli devices update just fine, so I dont think it's a coordinator/hardware issue.
Z2M config:
Zigbee2MQTT version
1.37.0 commit: 46f34c8
Coordinator type zStack3x0
Coordinator revision 20240315
What did you expect to happen?
No response
How to reproduce it (minimal and precise)
No response
Zigbee2MQTT version
1.37
Adapter firmware version
20240315
Adapter
ZBDongle-P
Setup
Docker
Debug log
No response