Same goes for me; I’m having this problem with a wall module which until recently worked fine with 2 momentary switches. It suddenly switched to rocker mode and ever since, I can only set it to 1 button rocker or 1 button momentary switch (modes 0 and 1), all other modes just raise an error when trying to set them.
I assume this fix will be in the next release, but if anyone needs to fix this asap because of non-functioning switches like me, this is what I did (but do so at your own risk!)
Install Advanced SSH & Web Terminal and turn off Protection Mode
Open Terminal and enter the Docker container: docker exec -it homeassistant /bin/bash
Change the working directory to /usr/local/lib/python3.13/site-packages/zhaquirks/philips: cd /usr/local/lib/python3.13/site-packages/zhaquirks/philips
(Optional) Make a backup of the current quirk file: cp wall_switch.py wall_switch.py.bck
Download the new quirk file and overwrite the old one: curl -4 https://raw.githubusercontent.com/zigpy/zha-device-handlers/d2895d591cb3d9e884de5f990741c5a2cd05f0ab/zhaquirks/philips/wall_switch.py > wall_switch.py (I had to force IPv4 in order for this to work using -4, this may be different for you)
Restart Home Assistant Core
Retry setting the mode using the new values mentioned above
Turn on Protection Mode for Advanced SSH & Web Terminal and optionally remove it if you don’t plan on using it in the future
As far as I’m aware, the homeassistant Docker container can be recreated at any time, which means the change will be undone, but I don’t think this will cause any issues with wall modules that have already been configured.
As I said before, do this at your own risk; I don’t know much about the Home Assistant internals, just enough to be dangerous!
On my RDM001, I had today actually human readable values in the mode. Also see the Cluster is not the same as mentioned in the post. I tested to write “SwitchMode.SinglePush”, “SwitchMode.SingleRocker”, “SwitchMode.DoublePush” and “SwitchMode.DoubleRocker” and all work and seem to have the desired behaviour from the log, thus, as you see, I use it as a Single Rocker and just read the release event to toggle my light.
I still hope it can help someone because I had absolutely no useful hit in google with these attributes I was reading from the cluster mode attribute.
thx a lot for the fresh info. I have many RDM001 switch modules and I don’t get this new cluster. Do you use a quirk file?
I try to change the mode to doublepush, but I don’t get it.
Same problem here… no matter what I do, I can’t get the PhilipsBasicCluster to show up.
Used both Python quirks for rdm004 or rdm001 & rdm004.
Removed, rebooted and re-added under different names dozen of times. But it doesn’t seem to work.
I get the same as the screenshot above. The device id reported is a rdm001.
I can see in the logging that the quirks are being loaded.
In the meantime I realized that Zigbee2MQTT has better support (however I also reported some bugs there because the push button option reports the events twice) so I added another coordinator just for the Z2M.
It means I have 2 networks ZHA and Z2M for different devices - whichever supports which best - and I sync the thing in Home Assistant with the automations sometimes listening to ZHA events sometimes to MQTT actions… it might seems hacky but its actually quite flexible and robust in the same time
I spent quite a bit of time and effort figuring this out, but I finally managed to get it working! The main issue seems to be that I’m using ZHA instead of Zigbee2MQTT, which offers less compatibility.
I paired the RDM001 in-wall module with my ZHA instance successfully, but it didn’t create any entities. After some troubleshooting, I tried the quirks method to expose the PhilipsBasicCluster, but that didn’t work either.
However, I did notice log entries when I pressed the buttons:
Switch On event was fired
Switch Off With Effect event was fired, with parameters: {‘effect_id’: 0, ‘effect_variant’: 0}
After some digging, I realized these log entries weren’t being saved in the Logbook, so I couldn’t capture them to trigger any events. It turned out the logging was being handled by a third-party add-on.
With that in mind, I tried using the zha_event listener in Developer Tools and that did the trick! I was able to capture the exact events there and use them to trigger my automations.
The only downside is that I have a two rocker switch, but only one rocker is functional. Since this is in a bedroom where both lights are usually turned on anyway, I’m not too bothered by it.
For anyone who’s interested, here are my automations:
Your zha_event worked well for me with the SingleRocker.
I have configured another RDM004 as a DoubleRocker. There is a “Remote Button Short Press - Right event was fired” for the second switch, for example. Can you tell me how I can integrate this into the automation?
I’m having trouble with the wall swithces, as well. I have the old RDM001, and it does not load the quirk when pairing the device. So I don’t have the options available to change the button modes. It even says so within the log file:
I tried to replace the quirk file with the latest from the Github Link posted above but the contents are identical. It seems to use the latest version.
Hey,
I’m using the wall module RDM004 with ZHA. The custom quirk in this thread is applied. I want to have the double rocker setup (value 2). I can set it in the PhilipsBasicCluster mode (id: 0x0034) to the values 0 and 1, but 2 and 3 are not working: Failed to perform the action zha/set_zigbee_cluster_attribute. ‘2’