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 theaddr=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
Z2M config:
Zigbee2MQTT version
1.37.0 commit: 46f34c8
Coordinator type zStack3x0
Coordinator revision 20240315