Issue with TRADFRI on/off switch

I have a similar issue that was previously reported on github, Strange issue with IKEA Tradfri ON/OFF (Dimmer) Switch CB10 · Issue #2107 · dresden-elektronik/deconz-rest-plugin · GitHub.

My issue is not with pairing a TRADFRI device, it is related to the secondary issue that was reported with all lights being reported as “on”, but the lights don’t actually turn on.

Whilst for the most part, its not an issue as after a short period of time the lights will report their correct state, this is causing me issues with home assist as I have automation rules set up for certain light switches in my home are turned on.

I’m running on a Raspberry Pi4, using docker
Device: Conbee II
Gateway Version: 2.24.3
Firmware: 26780700
docker image: deconzcommunity/deconz

Here is a copy of the logs which show the behaviour. When the switch is triggered on, all groups, lights report a status of on, even though nothing is on.

09:31:50:859 [INFO] - No button handler for: TRADFRI on/off switch, unicast to: 0x0000, endpoint: 0x01, cluster: 0x0001, command: 0x0A, payload: 21002022, zclSeq: 73
09:31:50:859 ZCL attribute report 0x003C84FFFE1C7EB1 for cluster: 0x0001, ep: 0x01, frame control: 0x08, mfcode: 0x0000 
09:31:50:860 	payload: 21002022
09:31:50:860 Websocket 192.168.0.210:38078 send message: {"attr":{"id":"15","lastannounced":"2024-03-15T22:28:29Z","lastseen":"2024-03-17T08:31Z","manufacturername":"IKEA of Sweden","modelid":"TRADFRI on/off switch","name":"Bedroom 1 Remote","productid":"E1743","swversion":"2.2.010","type":"ZHASwitch","uniqueid":"00:3c:84:ff:fe:1c:7e:b1-01-1000"},"e":"changed","id":"15","r":"sensors","t":"event","uniqueid":"00:3c:84:ff:fe:1c:7e:b1-01-1000"} (ret = 387)
09:31:50:862 Websocket 192.168.0.210:38078 send message: {"config":{"alert":"none","battery":34,"on":true,"reachable":true},"e":"changed","id":"15","r":"sensors","t":"event","uniqueid":"00:3c:84:ff:fe:1c:7e:b1-01-1000"} (ret = 162)
09:31:50:864 APS-DATA.request id: 172, addrmode: 0x02, addr: 0x0425, profile: 0x0104, cluster: 0x0001, ep: 0x01 -> 0x01 queue: 0 len: 5 tx.options 0x04
09:31:50:864 	asdu (length: 5): 10490B0A00
09:31:50:880 APS-DATA.confirm id: 172, status: 0x00 SUCCESS
09:31:50:881 APS-DATA.confirm request id: 172 -> erase from queue
09:31:50:899 aps request id: 172 finished, erase from queue
09:31:51:162 poll node e0:13:03:10:e0:0b:fd:b0-04
09:31:51:163 Poll light node Bathroom Heat Lamp Switch 2
09:31:51:210 Poll APS request to 0xE0130310E00BFDB0 cluster: 0x0006 dropped, values are fresh enough
09:31:51:446 APS-DATA.indication srcAddr: 0x0425, srcEp: 0x01 dstAddrMode: 1, profile: 0x0104, cluster: 0x0006, lqi: 255, rssi: -62
09:31:51:447 	asdu: 014a01
**09:31:51:448 [INFO] - Button 1002 - TRADFRI on/off switch, broadcast to: 0x0000, endpoint: 0x01, cluster: ONOFF (0x0006), action: On, payload: None, zclSeq: 74**
09:31:51:449 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"17","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:04:49:db:d9-0b"} (ret = 142)
09:31:51:450 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"33","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"79:2b:02:11:e0:0b:fd:b0-01"} (ret = 150)
09:31:51:452 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"34","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"79:2b:02:11:e0:0b:fd:b0-02"} (ret = 150)
09:31:51:454 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"45","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:06:af:62:bc-0b"} (ret = 142)
09:31:51:455 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"46","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:06:af:62:bc-0c"} (ret = 142)
09:31:51:457 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"26","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:02:a8:5f:c3-01"} (ret = 142)
09:31:51:458 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"27","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:02:a8:5f:c3-02"} (ret = 142)
09:31:51:460 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"28","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:02:a8:5f:c3-03"} (ret = 142)
09:31:51:462 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"11","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"88:13:03:10:e0:0b:fd:b0-01"} (ret = 150)
09:31:51:463 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"12","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"88:13:03:10:e0:0b:fd:b0-02"} (ret = 150)
09:31:51:465 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"13","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"88:13:03:10:e0:0b:fd:b0-03"} (ret = 150)
09:31:51:467 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"30","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:12:4b:00:21:0a:a8:d6-11"} (ret = 142)
09:31:51:468 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"31","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:12:4b:00:21:0a:a8:d6-12"} (ret = 142)
09:31:51:470 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"32","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:12:4b:00:21:0a:a8:d6-13"} (ret = 142)
09:31:51:472 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"44","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:12:4b:00:24:6d:fc:5e-01"} (ret = 142)
09:31:51:473 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"4","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:05:66:99:4a-0b"} (ret = 141)
09:31:51:475 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"23","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:06:b3:9c:a2-01"} (ret = 142)
09:31:51:476 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"24","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:06:b3:9c:a2-02"} (ret = 142)
09:31:51:478 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"25","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:06:b3:9c:a2-03"} (ret = 142)
09:31:51:479 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"18","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"b9:17:03:10:e0:0b:fd:b0-01"} (ret = 150)
09:31:51:480 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"19","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"b9:17:03:10:e0:0b:fd:b0-02"} (ret = 150)
09:31:51:482 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"20","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"b9:17:03:10:e0:0b:fd:b0-03"} (ret = 150)
09:31:51:483 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"21","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"b9:17:03:10:e0:0b:fd:b0-04"} (ret = 150)
09:31:51:485 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"10","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:04:49:57:f9-0b"} (ret = 142)
09:31:51:486 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"1","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:05:66:9f:53-0b"} (ret = 141)
09:31:51:487 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"15","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:02:a8:17:80-02"} (ret = 142)
09:31:51:489 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"16","r":"lights","state":{"alert":"none","on":true,"reachable":true},"t":"event","uniqueid":"00:15:8d:00:02:a8:17:80-03"} (ret = 142)
09:31:51:490 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"6","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"e0:13:03:10:e0:0b:fd:b0-01"} (ret = 149)
09:31:51:492 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"7","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"e0:13:03:10:e0:0b:fd:b0-02"} (ret = 149)
09:31:51:493 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"8","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"e0:13:03:10:e0:0b:fd:b0-03"} (ret = 149)
09:31:51:494 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"9","r":"lights","state":{"alert":"none","bri":0,"on":true,"reachable":true},"t":"event","uniqueid":"e0:13:03:10:e0:0b:fd:b0-04"} (ret = 149)
09:31:51:496 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"15","r":"sensors","state":{"buttonevent":1002,"lastupdated":"2024-03-17T08:31:51.449"},"t":"event","uniqueid":"00:3c:84:ff:fe:1c:7e:b1-01-1000"} (ret = 165)
09:31:51:497 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"65520","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 91)
09:31:51:499 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"2","r":"groups","state":{"all_on":false,"any_on":true},"t":"event"} (ret = 88)
09:31:51:500 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"11","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:501 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"22","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:502 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"13","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:503 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"17","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:504 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"6","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 87)
09:31:51:505 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"15","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:506 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"8","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 87)
09:31:51:507 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"14","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:509 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"5","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 87)
09:31:51:510 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"3","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 87)
09:31:51:511 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"10","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:512 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"4","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 87)
09:31:51:513 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"1","r":"groups","state":{"all_on":false,"any_on":true},"t":"event"} (ret = 88)
09:31:51:514 read attributes of 0xE0130310E00BFDB0 cluster: 0x0008: [ 09:31:51:515 0x0000 09:31:51:515 ]
09:31:51:516 add task 1165714 type 19 to 0xE0130310E00BFDB0 cluster 0x0008 req.id 177
09:31:51:516 Poll APS request 177 to 0xE0130310E00BFDB0 cluster: 0x0008
09:31:51:517 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"16","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)
09:31:51:519 Websocket 192.168.0.210:38078 send message: {"e":"changed","id":"12","r":"groups","state":{"all_on":true,"any_on":true},"t":"event"} (ret = 88)

Any assistance on possible work arounds to stop this behaviour would be greatly appreciated

Hi, I have a similar issue with 2 of my tradfri buttons after migrating to Conbee 3.
One is doing a unicast the other a broadcast to all lights group.

I tried already to unbind them from this group as decribed in the FAQ on GitHub but my switches seem to be not bound to this group but still trigger all lights.

Btw most lights only show state on in deconz but do not really turn on, only a few with is preventing me from using the buttons anyway.

What worked for me was this:

As you seem to have the same issue “Ghost turn on”, here is what i did to solve this.

  • Setting Group 0xFFF0 to deleted
  • Remove the switch (if already paired), make sure delete all group assignments manually before removing!
  • Re-pair the switch

After setting group 0xFFF0 to deleted, i had to remove the switch from all groups, delete the switch and re-pair it. This solved the issue for me.

If you use HomeAssistant, it is quite hard to login into the docker container to update the DB, here is a hint:

Install the COMMUNITY SSH & Web Terminal add-on (the one made by Frenk, NEEDS config! just set a username and password!), then use docker container ls to list docker containers. Then I accessed the required container (for me it was the one with deconz in the name) using docker exec -it 21332546 bash replacing 21332546_influxdb with container ID with deconz.

Also i did the update with Deconz running and restarted afterwards (could not figure out how to stop only deconz and not the docker container …).

I think this is a BUG!, there is no reason to bind a new switch to all lights when added.

If I recall correctly , it is in the device firmware.