I can see there are a few threads similar to this one but since they all seemed to have partial solutions I wanted to share the process I went through today to get this to work - took me several hours to navigate all the possibilities until I found a solution.
Background - wanted to setup a single button Ikea Tradfri to actuate a relay. I’m on the latest HA and have a the SkyConnect USB connected to an old RaspberryPi 2 (I know but it does work). I’m using ZHA but also tried Zibee to MQTT (Z2M) and had the same problems.
-
Initially the button seemed to pair but it wouldn’t trigger actions and there was nothing appearing in the log when it was pressed. I tried repairing many times including brining it close the SkyConnect and leaving it overnight - same issue every time. Reconfiguring partially worked but threw an error at the end (it still does but that doesn’t seem to mater). The button would report battery level but that was about it.
-
Reading info from here: [SOLVED] Using Ikea Tradfri Shortcut Button and Tradfri On/Off switch and here: Adding IKEA Tradfri Devices with ZHA on Home Assistant · GitHub
I realised it was probably the fact I had an old firmware on the button that was causing an issue - looking in settings>devices>zigbee>[your button] > zigbee info will show the firmware - I was on the old one 23015xxxx the current new one is 2308xxxx. -
Several steps are needed to update the firmware Over the Air (OTA) updates need to be enabled in HA and then an update needs to be initiated (apparently this should happen automatically if left but that didn’t work for me). I followed the guide here: OTA Device Firmware Updates · zigpy/zigpy Wiki · GitHub
to configure HA to give OTA updates. Note almost every step required a restart to get this to work. Having got OTA updates enabled in HA I then had to force an update - leaving it didn’t work like I said. I tried various ways to force this update following the guide here: Reddit - Dive into anything
However in the end the only way I could force an update was using the GUI method - see the guide above but basically this boils down to go to the zigbee device > click the three dots and select manage Zigbee device > clusters > commands > image notify then the key bit was to set QueryJitter to 100. Then clicked issue command and received a green tick. It was this step that took ages as I couldn’t get the command to issue and be accepted.
- If you’ve enabled verbose logging you should then see in the logs something to the effect of OTA upgrade progress. I still had to leave it for a few hours but eventually was rewarded with a newer firmware (see step 2). At that point I deleted the device and repairs and magic it worked.
Hope that saves someone a few hours - note all I did was read a bunch of really excellent threads (links above)