Upgrade Hue dimmer switch not completing

When trying to upgrade a Hue dimmer switch (model RWL021) it looks like it is sending the correct recent firmware, but at the end it seems to fail and stay on the current version. Below is a snapshot of the debug log, showing the progress and the final messages:

debug 2020-10-09 20:10:36: Received MQTT message on 'zigbee2mqtt/bridge/ota_update/update' with data 'switch_landing_1st'
info  2020-10-09 20:10:36: Updating 'switch_landing_1st' to latest firmware
info  2020-10-09 20:10:36: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"meta":{"device":"switch_landing_1st","status":"update_in_progress"},"msg":"Updating 'switch_landing_1st' to latest firmware","type":"ota_update"}'
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}' from endpoint 1 with groupID 0
debug 2020-10-09 20:10:40: No converter available for '324131092621' with cluster 'genBasic' and type 'readResponse' and data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}'
debug 2020-10-09 20:10:40: Updating to latest '0x001788010634d4e1' (RWL021)
debug 2020-10-09 20:10:40: Using endpoint '2'
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'commandHueNotification', cluster 'manuSpecificPhilips', data '{"button":4,"time":0,"type":0,"unknown1":3145728,"unknown2":0}' from endpoint 2 with groupID 0
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'commandOffWithEffect', cluster 'genOnOff', data '{"effectid":0,"effectvariant":0}' from endpoint 1 with groupID 0
debug 2020-10-09 20:10:40: Received Zigbee message from 'switch_landing_1st', type 'commandHueNotification', cluster 'manuSpecificPhilips', data '{"button":4,"time":1,"type":2,"unknown1":3145728,"unknown2":0}' from endpoint 2 with groupID 0
info  2020-10-09 20:10:40: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"action":"off-press","battery":100,"brightness":255,"counter":1,"duration":0,"linkquality":21,"update_available":true}'
info  2020-10-09 20:10:40: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"action":"","battery":100,"brightness":255,"counter":1,"linkquality":21,"update_available":true}'
info  2020-10-09 20:10:40: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st/action', payload 'off-press'
debug 2020-10-09 20:10:45: Received Zigbee message from 'switch_landing_1st', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1107314102,"imageType":265,"manufacturerCode":4107}' from endpoint 2 with groupID 0
debug 2020-10-09 20:10:45: Got OTA request '{"fieldControl":0,"manufacturerCode":4107,"imageType":265,"fileVersion":1107314102}'
debug 2020-10-09 20:10:45: getNewImage for '0x001788010634d4e1', meta {"fileVersion":1107324829,"fileSize":240760,"url":"http://fds.dc1.philips.com/firmware/ZGB_100B_0109/1107324829/Switch-ATmega_6.1.1.28573_0012.sbl-ota"}
debug 2020-10-09 20:10:45: getNewImage for '0x001788010634d4e1', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4107,"imageType":265,"fileVersion":1107324829,"zigbeeStackVersion":2,"otaHeaderString":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":240760}
debug 2020-10-09 20:10:46: Got new image for '0x001788010634d4e1'
debug 2020-10-09 20:10:46: Starting upgrade
debug 2020-10-09 20:10:47: Received Zigbee message from 'switch_landing_1st', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1107314102,"imageType":265,"manufacturerCode":4107}' from endpoint 2 with groupID 0
debug 2020-10-09 20:10:53: OTA update at 0%, remaining Infinity seconds
info  2020-10-09 20:10:53: Update of 'switch_landing_1st' at 0.00%
info  2020-10-09 20:10:53: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"battery":100,"brightness":255,"counter":1,"linkquality":21,"update_available":false}'
info  2020-10-09 20:10:53: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Update of 'switch_landing_1st' at 0.00%","meta":{"device":"switch_landing_1st","progress":0,"status":"update_progress"},"type":"ota_update"}'
debug 2020-10-09 20:11:23: OTA update at 1.12%, remaining 3341.289347376201 seconds
info  2020-10-09 20:11:23: Update of 'switch_landing_1st' at 1.12%, +- 56 minutes remaining
...
debug 2020-10-09 20:49:18: OTA update at 87.75%, remaining 322.9210118529178 seconds
...
info  2020-10-09 20:56:19: Update of 'switch_landing_1st' at 100.00%
info  2020-10-09 20:56:19: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"battery":100,"brightness":255,"counter":1,"linkquality":13,"update_available":false}'
info  2020-10-09 20:56:19: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Update of 'switch_landing_1st' at 100.00%","meta":{"device":"switch_landing_1st","progress":100,"status":"update_progress"},"type":"ota_update"}'
debug 2020-10-09 20:56:23: Received Zigbee message from 'switch_landing_1st', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}' from endpoint 1 with groupID 0
debug 2020-10-09 20:56:23: No converter available for '324131092621' with cluster 'genBasic' and type 'readResponse' and data '{"dateCode":"20160302","swBuildId":"5.45.1.17846"}'
info  2020-10-09 20:56:23: Finished update of 'switch_landing_1st', from '{"dateCode":"20160302","softwareBuildID":"5.45.1.17846"}' to '{"dateCode":"20160302","softwareBuildID":"5.45.1.17846"}'
info  2020-10-09 20:56:23: MQTT publish: topic 'zigbee2mqtt/switch_landing_1st', payload '{"battery":100,"brightness":255,"counter":1,"linkquality":13,"update_available":false}'
info  2020-10-09 20:56:23: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"switch_landing_1st","meta":{"device":"switch_landing_1st","from":{"date_code":"20160302","software_build_id":"5.45.1.17846"},"status":"update_succeeded","to":{"date_code":"20160302","software_build_id":"5.45.1.17846"}},"type":"ota_update"}'
debug 2020-10-09 20:56:28: Received Zigbee message from 'switch_landing_1st', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1107314102,"imageType":265,"manufacturerCode":4107}' from endpoint 2 with groupID 0
debug 2020-10-09 20:56:28: Check if update available for '0x001788010634d4e1' (RWL021)
debug 2020-10-09 20:56:28: Is new image available for '0x001788010634d4e1', current '{"fieldControl":0,"manufacturerCode":4107,"imageType":265,"fileVersion":1107314102}', latest meta '{"fileVersion":1107324829,"fileSize":240760,"url":"http://fds.dc1.philips.com/firmware/ZGB_100B_0109/1107324829/Switch-ATmega_6.1.1.28573_0012.sbl-ota"}'
debug 2020-10-09 20:56:28: Update available for '0x001788010634d4e1': YES

It all looks to go correct and still won’t complete. Is this a bug or doesn’t it work with the current (5.45.1.17846) firmware and have to use the Hue Bridge?

1 Like

I do have the same issue, my hue dimmer has the same initial firmware version.
Have you already found a solution in the meantime?

Unfortunately not. I think I will have to connect it first to the Hue Bridge, then re-connect to Z2M.

I had this issue too. I took the battery off and put it back in again and it now it says it’s up to date. I was actually trying to reset the device to re-try in the hope it would accept the code again, but I think I just forced the device to restart. It makes me wonder if there is a command missing to make it do that.

Yes I think you are right. I think the reboot command isn’t triggered properly.

When I registered mine with the Hue hub (by using the reset button) it showed up with the new version, so it did save it but didn’t boot into it.