Update ZigBee firmware using deCONZ on Hass.io

First thanks a lot for sharing the detailed instruction! This is something I’ve been looking for for quite some time!

But, hmmm… I’m not sure how it works in real life… I followed your instructions to the point of pressing Query button and then nothing happens… I did wait for quite some time and no progress visible at all. Hovering mouse cursor over the Version field shows that update is available (version with higher number). Progress field shows No File message.
What is interesting to me is the Update button… while hovering the mouse over it I can see message Start update for selected node. File must be choosen first. No file is selected however in Otau file field. While clicking on file selection buton (…) I can see the list of files (seems somehow uploaded to Phoscon data folder), but naming convention for these is, well, unreadible… I’d not take the risk of selecting one of these for updating firmware. :slight_smile:
So the question is what exactly should we expect to happen in step of Update? How long it might take in real life to start seing update (I waited ~30 minutes). What is your experience with this? Perhaps I’m facing some connectivity issues…
Also I have multiple devices of the same type (~25 GU10 bulbs from Ikea), should I repeat the same operation for each device to get it updated or will phoscon handle it?

2 Likes

I have the same questions and I also see the ‘No file’ message, but I’m trying it with Philips Hue bulbs and Xiaomi Aqara hardware. (Just wanted to see if that’s going to work :slight_smile:)

Unfortunatly it would work only for a few brands, mainly Ikea.
Here is the available firmware in /root/otau

10005777-4.1-TRADFRI-control-outlet-2.0.022.ota.ota.signed
10005778-4.1-TRADFRI-onoff-shortcut-control-2.2.008.ota.ota.signed
10032198-2.1-TRADFRI-gateway-1.9.27.p.elf.sig.ota.signed
10035514-TRADFRI-bulb-ws-1.2.221.ota.ota.signed
10035515-TRADFRI-bulb-cws-1.3.009.ota.ota.signed
10035534-TRADFRI-bulb-ws-gu10-1.2.221.ota.ota.signed
10037585-5.1-TRADFRI-connected-blind-2.2.009.ota.ota.signed
10037603-3.1-TRADFRI-signal-repeater-2.2.005.ota.ota.signed
10038562-TRADFRI-sy5882-bulb-ws-2.0.022.ota.ota.signed
10039874-1.0-TRADFRI-motion-sensor-2-2.0.022.ota.ota.signed
10040611-3.2-TRADFRI-sy5882-unified-2.1.022.ota.ota.signed
10046695-1.1-TRADFRI-light-unified-w-2.1.022.ota.ota.signed
1014-0005-14010400.zigbee                     
1135-0000-2010009B-FLS-PP3_RGBW.zigbee        
1135-0000-2010009B-FLS-PP3_RGBW.zigbee.md5    
1135-0000-201000A0-FLS-PP3_RGBW.zigbee        
1135-0000-201000A0-FLS-PP3_RGBW.zigbee.md5    
1135-0006-20100021-Ribag.zigbee               
1135-0006-20100021-Ribag.zigbee.md5           
117C-0002-165801BC.zigbee                     
117C-1101-20022623.zigbee                     
117C-1102-22005631.zigbee                     
117C-1187-22009631.zigbee                     
117C-11C1-23014631.zigbee                     
117C-11C2-12248572.zigbee                     
117C-11C4-12214572.zigbee                     
117C-11C5-22008631.zigbee                     
117C-11C8-20022623.zigbee                     
117C-2101-12214572.zigbee                     
117C-2201-12221572.zigbee                     
117C-2202-12217572.zigbee                     
117C-2203-12221572.zigbee                     
117C-2801-13009572.zigbee                     
117C-4101-12245572.zigbee                     
117C-4103-21022631.zigbee                     
117C-4201-12217572.zigbee                     
117C-4202-12217572.zigbee                     
117C-4203-20022623.zigbee                     
117C-4204-20022623.zigbee                     
117C-4205-21022631.zigbee                     
14010400_0x0005.zigbee                        
14010400_0x0005.zigbee.md5                    
159495-TRADFRI-transformer-1.2.245.ota.ota.signed
159695-TRADFRI-bulb-ws-1000lm-1.2.217.ota.ota.signed
159696-TRADFRI-bulb-w-1000lm-1.2.214.ota.ota.signed
159697-TRADFRI-driver-hp-1.2.217.ota.ota.signed
159698-TRADFRI-driver-lp-1.2.217.ota.ota.signed
159699-5.1-TRADFRI-remote-control-2.3.014.ota.ota.signed
159700-TRADFRI-motion-sensor-1.2.214.ota.ota.signed
159701-TRADFRI-wireless-dimmer-1.2.248.ota.ota.signed
190579-ncp572b444.ebl.ota.ota.signed          
191100-4.1-TRADFRI-sy5882-driver-ws-2.0.022.ota.ota.signed

For OSRAM devices there is this a small guide at https://phoscon.de/en/support#ota-update-osram-devices.

Philips Hue devices are currently not supported as there are no firmware files available yet easily (on Github someone could extract the URL for one hue light but we couldn’t manage to get this working in a broad sense yet).

3 Likes

That’s great, thanks for sharing it !

I have used that guide to successfully upgrade my Osram devices a few weeks ago.

When using Hassio you can use the steps below to upload the OTAU files to the Deconz add-on, so you can easily select the file in step 5b of the instruction:

  1. Download the OTAU file as mentioned in step 4.
  2. Copy the file to your Hassio share folder.
  3. Use the SSH & Web Terminal add-on to SSH into Hassio.
  4. Run this command to copy the OTAU file to the Deconz addon

docker cp /share/ZLL_MK_0x01020510_CLA60_W_CLEAR.ota addon_core_deconz:/data/otau/

where ZLL_MK_0x01020510_CLA60_W_CLEAR.ota is an example of an OTAU filename.

7 Likes

Thanks for the post! This was great, and worked great for my Trådfri devices.
Does anybody know if INNR-plugs are upgradable? I got the “No file…” on that one.

Exactly the same here. Everything just says no file. Query does nothing. Some of my Tradfri devices are definitely out of date and the correct files are in the folder.

1 Like

Strange. I can only repeat that for me it took also some time after clicking Query (several minutes). I had already given up and then for no obvious reason when I looked again I found that the update process had started.

Could it be that you have to restart your HA deCONZ add-on after activating the STD OTAU Plugin? The log of my add-on shows the following lines at a restart that indicate that some IKEA related code has been initialized:

[09:50:04] INFO: Running the deCONZ OTA updater...
[09:50:04] INFO: Running the IKEA OTA updater...
[09:50:04] INFO: deCONZ is set up and running!
1 Like

@Jpsy, where do you get deCONZ log from? I see some similarily looking deCONZ entries in home-assistant.log, but no such info as you posted, only something about setting up different ZigBee components.
I restarted hassio few times in meantime, one thing I noticed is that after every restart I have to re-enable STD OTAU Plugin - it is not active anymore. I tried to find any option in preferences to have it done automaticaly, but found nothing. Perhaps this is the problem.

@Jpsy those lines appear in my log, but as with @mirekmal theres no OTAU plugin at launch - it needs to be readded. Do you by any chance have the ikea plugs at all? Can you confirm what firmware deconz (none vnc) shows? I see the following :

58

In the OTAU folder I see a file for 2.0.022 so it seems this is out of date, but perhaps deconz has in fact updated it and it shows as 1.4 anyway?

EDIT:

I see OTAU disabled in the bottom right of this window… does yours say enabled?

04

Thanks,

Dan

@Dan for me message changes from OTAU disabled to enabled when I click on Query button. It stays like that until next restart, then it needs to be re-enabled again.
Regarding ikea plug version - inconsistency of version representation is very annoing in Phoscon :frowning:

  • Phoscon add-on in hassio shows current version 2.0.022
  • Plugin shows in version column 0x20022623
  • After hovering the mouse over I can see that latest available version is 2.0 build 140835
  • in data folder I can see 2.0.022 being available (10005777-4.1-TRADFRI-control-outlet-2.0.022.ota.ota.signed)

Thanks. One more quick request if I may (your help is very much appreciated). Does the OTAU section in the node menu look this this for you? (This screenshot shows my conbee and one of my ikea plugs). OTAU looks greyed out in the plug menu and Im curious if you see the same.

38 )

For ikea plug it looks identical. There are differences for the the controller though (also conbe II):

The log I am talking about is the dedicated log in the HA deCONZ plug-in. Go to the “Hass.io” menu item, choose the deCONZ plug-in and scroll all the way down to find it. You can restart the plug-in without restarting HA and that log will fill with information about the plug-in initialization process (you may have to hit the refresh button below the log).
Maybe I can post some screenshots of my VNC view tomorrow. What I can tell you right now is that the upgrade did NOT increase the version number of my IKEA GU10 bulbs, but only the build number. I do not own any IKEA plugs though.

Thanks @Jpsy for additional info!
Well, I looked at the log directly in deCONZ component in hass.io section, but looked quite different from what you posted. Here is sample of my one (with irrelevant info, unfortunatelly):

09:27:43:214 APS-DATA.confirm id: 3, status: 0x00 SUCCESS
09:27:43:214 APS-DATA.confirm request id: 3 -> erase from queue
09:27:43:234 aps request id: 3 finished, erase from queue
09:27:43:276 APS-DATA.indication srcAddr: 0xec16, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0006, lqi: 143, rssi: -76
09:27:43:276 ZCL got data for node=0xEC16, cl=0x0006, at=0x0000, status=0x00, type=0x10
09:27:43:314 APS-DATA.request id: 7, addrmode: 0x02, addr: 0x0000, profile: 0x0000, cluster: 0x0004, ep: 0x00 -> 0x00 queue: 2 len: 4 tx.options 0x00
09:27:43:314 ZDP send request id: 0x05 to 0x00212effff042329
09:27:43:334 APS-DATA.confirm id: 7, status: 0x00 SUCCESS
09:27:43:334 APS-DATA.confirm request id: 7 -> confirmed, timeout 1577694463
09:27:43:340 APS-DATA.indication srcAddr: 0x0000, srcEp: 0x00 dstAddrMode: 2, profile: 0x0000, cluster: 0x8004, lqi: 143, rssi: -76
09:27:43:340 APS-DATA.indication request id: 7 -> finished
09:27:43:340 APS-DATA.request id: 7 erase from queue
09:27:43:340 ZDP status = 0x00 -> SUCCESS
09:27:43:340 ZDP Simple_Descriptor_rsp 0x00212EFFFF042329 - 0x0000

I tried your advise to restart deCONZ and check the log… It is updating too fast to spot something interesting, though at one point of time I’ve seen message starting with INFO: prefix (like your log entries). This made me wondering, if you have any specific setup for deCONZ log, that would allow to see for example only INFO entries? This would help to find relevant information…

My full log after a restart looks like this:

starting version 232
[09:51:47] INFO: Waiting for device...
[09:51:48] INFO: Starting VNC server...
[09:51:51] INFO: Starting the deCONZ gateway...
libEGL warning: DRI2: failed to open swrast (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
libEGL warning: DRI2: failed to open swrast (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
libpng warning: iCCP: known incorrect sRGB profile
[09:51:54] INFO: Starting Nginx...
[09:51:54] INFO: Running Hass.io discovery task...
[09:51:54] INFO: Running the deCONZ OTA updater...
[09:51:54] INFO: Running the IKEA OTA updater...
[09:51:54] INFO: deCONZ is set up and running!
2019/12/30 09:51:54 [notice] 342#342: using the "epoll" event method
2019/12/30 09:51:54 [notice] 342#342: nginx/1.10.3
2019/12/30 09:51:54 [notice] 342#342: OS: Linux 4.14.98-v7
2019/12/30 09:51:54 [notice] 342#342: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2019/12/30 09:51:54 [notice] 342#342: start worker processes
2019/12/30 09:51:54 [notice] 342#342: start worker process 369
[09:52:04] INFO: Successfully send discovery information to Home Assistant.
09:51:53:918 HTTP Server listen on address 0.0.0.0, port: ....., root: /usr/share/deCONZ/webapp/
09:51:53:937 CTRL. 3.16.209:51:54:107 dev /dev/ttyAMA0
09:51:54:107 COM: /dev/ttyACM0 / serialno: DE.......
09:51:54:107 COM: --dev: /dev/ttyACM0 (ConBee II)
09:51:54:107 ZCLDB init file /data/.local/share/dresden-elektronik/deCONZ/zcldb.txt
09:51:54:604 parent process bash
09:51:54:604 gw run mode: docker/hassio
09:51:54:605 GW sd-card image version file does not exist: /data/.local/share/dresden-elektronik/deCONZ/gw-version
09:51:54:605 sd-card cid: 035........
09:51:54:645 DB sqlite version 3.16.2
09:51:54:649 DB PRAGMA page_count: 30
09:51:54:649 DB PRAGMA page_size: 4096
09:51:54:649 DB PRAGMA freelist_count: 0
09:51:54:649 DB file size 122880 bytes, free pages 0
09:51:54:649 DB PRAGMA user_version: 6
09:51:54:649 DB cleanup
09:51:54:651 DB create temporary views
09:51:54:671 don't close database yet, keep open for 900 seconds
09:51:54:673 started websocket server at port 8081
09:51:54:688 found node plugin: libde_rest_plugin.so - REST API Plugin
09:51:54:695 found node plugin: libde_signal_plugin.so - Signal Monitor Plugin
09:51:58:671 found node plugin: libstd_otau_plugin.so - STD OTAU Plugin
09:51:58:713 dev /dev/ttyAMA0
09:51:58:713 COM: /dev/ttyACM0 / serialno: DE.......
09:51:58:713 COM: --dev: /dev/ttyACM0 (ConBee II)
09:51:59:685 dev /dev/ttyAMA0
09:51:59:685 COM: /dev/ttyACM0 / serialno: DE.......
09:51:59:685 COM: --dev: /dev/ttyACM0 (ConBee II)
09:51:59:719 dev /dev/ttyAMA0
09:51:59:719 COM: /dev/ttyACM0 / serialno: DE.......
09:51:59:719 COM: --dev: /dev/ttyACM0 (ConBee II)
09:51:59:884 dev /dev/ttyAMA0
09:51:59:884 COM: /dev/ttyACM0 / serialno: DE.......
09:51:59:884 COM: --dev: /dev/ttyACM0 (ConBee II)
09:51:59:919 dev /dev/ttyAMA0
09:51:59:919 COM: /dev/ttyACM0 / serialno: DE.......
09:51:59:919 COM: --dev: /dev/ttyACM0 (ConBee II)
09:52:00:611 dev /dev/ttyAMA0
09:52:00:678 Device firmware version 0x264A0700
09:52:00:708 unlocked max nodes: 200
09:52:00:801 Device protocol version: 0x010B
09:52:00:817 new node - ext: 0x00212effff05007d, nwk: 0x0000
09:52:00:881 don't close database yet, keep open for 900 seconds
09:52:00:884 LightNode 11: Esstisch Kronleuchter added
09:52:00:898 don't close database yet, keep open for 900 seconds
09:52:00:899 LightNode 8: Esstisch 1 added
09:52:00:912 don't close database yet, keep open for 900 seconds
09:52:00:913 LightNode 10: Esstisch 2 added
09:52:01:041 Current channel 15
09:52:01:062 CTRL ANT_CTRL 0x03
09:52:01:092 Device protocol version: 0x010B
09:52:01:154 Current channel 15
09:52:01:174 CTRL ANT_CTRL 0x03
09:52:01:291 Announced to internet http://dresden-light.appspot.com/discover
09:52:01:292 discovery server date: Mon, 30 Dec 2019 08:52:01 GMT
09:52:01:292 	 local time seems to be ok
09:52:01:292 discovery found version 2.04.35 for update channel stable
09:52:06:016 don't close database yet, keep open for 900 seconds
09:52:07:454 New websocket 172.30.32.1:49450 (state: 3) 
09:52:11:055 dev /dev/ttyAMA0
09:52:11:056 GW update firmware found: /usr/share/deCONZ/firmware/deCONZ_ConBeeII_0x26490700.bin.GCF
09:52:11:056 GW firmware version: 0x264a0700
09:52:11:056 GW firmware version is up to date: 0x264a0700
09:52:25:115 Bind response success for 0xd0cf5efffebda49d cluster 0x0000
09:52:25:210 ZCL configure reporting rsp seq: 68 0xD0CF5EFFFEBDA49D for cluster 0x0000 attr 0x4000 status 0x00
09:52:25:308 Bind response success for 0xd0cf5efffebda49d cluster 0x0006
09:52:25:419 ZCL configure reporting rsp seq: 70 0xD0CF5EFFFEBDA49D for cluster 0x0006 attr 0x0000 status 0x00
09:52:25:514 Bind response success for 0xd0cf5efffebda49d cluster 0x0008
09:52:25:514 skip configure report for cluster: 0x0008 attr: 0x0000 of node 0xD0CF5EFFFEBDA49D (wait reading or unsupported)
09:52:26:595 Bind response success for 0xd0cf5efffebda49d cluster 0x0300
09:52:26:595 skip configure report for cluster: 0x0300 attr: 0x0003 of node 0xD0CF5EFFFEBDA49D (wait reading or unsupported)

If you see more than the above entries, it is possible, that you have switched into a higher debug output level. I have not set any debug output level. In fact, my deCONZ config only contains “device” and “vnc_password”. I also have NO entries for deCONZ in my configuration.yaml. It is all done through HA discovery and the integrations page of Hass.io - exactly as described in the setup instructions of the plug-in.

I just went into the VNC view again and tried the update process again. From the moment I clicked “Query” it took a full 10 minutes (!) until the Version column of the selected node changed from 0x00000000 to a meaningful hex address and the node info became available. I have no idea, what deCONZ does in the meantime.

Hmmm… Indeed I had all debug options enabled in deCONZ configuration, I hoped this will help to get OTAU related messages in the log. So I removed these and restarted plugin… not much change, perhaps less messages, but stil pleanty of these with no reference to OTAU :frowning:
Regarding running query; it is starnge, I tested it on every single node and for all nodes that are permanently powered on (e.g. bulbs I have instant responce with updating version (e.g. change from 0x00000000 to 0x12214572… yet hovering mouse over this value hints newer version is available…