Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Device Support Request] Philips Hue Wall Switch Module #858

Open
aleex1848 opened this issue Apr 19, 2021 · 77 comments
Open

[Device Support Request] Philips Hue Wall Switch Module #858

aleex1848 opened this issue Apr 19, 2021 · 77 comments

Comments

@aleex1848
Copy link

aleex1848 commented Apr 19, 2021

Describe the solution you'd like
There should be a zha_event triggered when the switch is pushed.

**Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be

Log of the device joining the network:

Device 0x2ab8 (00:17:88:01:0b:00:12:18) joined the network
[0x2ab8:zdo] ZDO request ZDOCmd.Device_annce: [0x2AB8, 00:17:88:01:0b:00:12:18, 128]
[0x2ab8] Requesting 'Node Descriptor'
Tries remaining: 2
[0x2ab8] Extending timeout for 0x52 request
[0x2ab8] Node Descriptor: NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=4107, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=0, *allocate_address=True, *complex_descriptor_available=False, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False, *is_valid=True, *logical_type=<LogicalType.EndDevice: 2>, *user_descriptor_available=False)
[0x2ab8] Discovering endpoints
Tries remaining: 3
[0x2ab8] Extending timeout for 0x53 request
[0x2ab8] Discovered endpoints: [1]
[0x2ab8:1] Discovering endpoint information
Tries remaining: 3
[0x2ab8] Extending timeout for 0x54 request
[0x2ab8:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=2080, device_version=1, input_clusters=[0, 1, 3, 64512], output_clusters=[3, 4, 6, 8, 25])
[0x2ab8] Extending timeout for 0x55 request
light.osram_classic_b40_tw_lightify_e287a900_level_light_color_on_off: polling current state
[0x5a9a:3:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=86 command_id=Command.Read_Attributes_rsp>
[0x5a9a:3:0x0008] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=87 command_id=Command.Read_Attributes_rsp>
[0x5A9A:3:0x0008]: received attribute: 0 update with value: 26
[0x5a9a:3:0x0300] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=88 command_id=Command.Read_Attributes_rsp>
[0x2ab8:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=85 command_id=Command.Read_Attributes_rsp>
[0x2ab8:1] Manufacturer: Signify Netherlands B.V.
[0x2ab8:1] Model: RDM001
Checking quirks for Signify Netherlands B.V. RDM001 (00:17:88:01:0b:00:12:18)
Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1}
Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
Fail because device_type mismatch on at least one endpoint
device - 0x2AB8:00:17:88:01:0b:00:12:18 entering async_device_initialized - is_new_join: True
device - 0x2AB8:00:17:88:01:0b:00:12:18 has joined the ZHA zigbee network
[0x2AB8](RDM001): started configuration
[0x2AB8:ZDO](RDM001): 'async_configure' stage succeeded
[0x2ab8] Extending timeout for 0x59 request
[0x2ab8] Extending timeout for 0x5a request
[0x2ab8] Extending timeout for 0x5b request
[0x2AB8:1:0x0000]: bound 'basic' cluster: Status.SUCCESS
[0x2AB8:1:0x0000]: finished channel configuration
[0x2AB8:1:0x0001]: bound 'power' cluster: Status.SUCCESS
[0x2ab8] Extending timeout for 0x5c request
[0x2ab8] Extending timeout for 0x5d request
[0x2ab8:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=92 command_id=Command.Configure_Reporting_rsp>
[0x2AB8:1:0x0001]: reporting 'battery_voltage' attr on 'power' cluster: 3600/10800/1: Result: '[[ConfigureReportingResponseRecord(status=0)]]'
[0x2ab8] Extending timeout for 0x5e request
[0x2AB8:1:0xfc00]: bound 'manufacturer_specific' cluster: Status.SUCCESS
[0x2AB8:1:0xfc00]: finished channel configuration
[0x2ab8] Extending timeout for 0x5f request
[0x2ab8:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=94 command_id=Command.Configure_Reporting_rsp>
[0x2AB8:1:0x0001]: reporting 'battery_percentage_remaining' attr on 'power' cluster: 3600/10800/1: Result: '[[ConfigureReportingResponseRecord(status=0)]]'
[0x2AB8:1:0x0001]: finished channel configuration
[0x2ab8] Extending timeout for 0x60 request
[0x2AB8:1:0x0008]: bound 'level' cluster: Status.SUCCESS
[0x2AB8:1:0x0008]: finished channel configuration
[0x2AB8:1:0x0006]: bound 'on_off' cluster: Status.SUCCESS
[0x2AB8:1:0x0006]: finished channel configuration
[0x2AB8:1:0x0019]: bound 'ota' cluster: Status.SUCCESS
[0x2AB8:1:0x0019]: finished channel configuration
[0x2AB8:1:0x0000]: 'async_configure' stage succeeded
[0x2AB8:1:0x0001]: 'async_configure' stage succeeded
[0x2AB8:1:0xfc00]: 'async_configure' stage succeeded
[0x2AB8:1:0x0008]: 'async_configure' stage succeeded
[0x2AB8:1:0x0006]: 'async_configure' stage succeeded
[0x2AB8:1:0x0019]: 'async_configure' stage succeeded
[0x2AB8](RDM001): completed configuration
[0x2AB8](RDM001): stored in registry: ZhaDeviceEntry(name='Signify Netherlands B.V. RDM001', ieee='00:17:88:01:0b:00:12:18', last_seen=1618816060.5545013)
[0x2ab8] Extending timeout for 0x61 request
[0x2ab8:1:0x0003] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=97 command_id=Command.Default_Response>
[0x2AB8:1:0x0003]: executed 'trigger_effect' command with args: '(2, 0)' kwargs: '{}' result: [64, <Status.UNSUP_CLUSTER_COMMAND: 129>]
[0x2AB8](RDM001): started initialization
[0x2AB8:ZDO](RDM001): 'async_initialize' stage succeeded
[0x2AB8:1:0x0000]: initializing channel: from_cache: False
[0x2AB8:1:0x0000]: finished channel configuration
[0x2AB8:1:0x0001]: initializing channel: from_cache: False
[0x2ab8] Extending timeout for 0x62 request
[0x2AB8:1:0xfc00]: initializing channel: from_cache: False
[0x2AB8:1:0xfc00]: finished channel configuration
[0x2AB8:1:0x0008]: initializing channel: from_cache: False
[0x2AB8:1:0x0008]: finished channel configuration
[0x2AB8:1:0x0006]: initializing channel: from_cache: False
[0x2AB8:1:0x0006]: finished channel configuration
[0x2AB8:1:0x0019]: initializing channel: from_cache: False
[0x2AB8:1:0x0019]: finished channel configuration
[0x2ab8:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=98 command_id=Command.Read_Attributes_rsp>
[0x2ab8] Extending timeout for 0x63 request
[0x2ab8:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=99 command_id=Command.Read_Attributes_rsp>
[0x2AB8:1:0x0001]: finished channel configuration
[0x2AB8:1:0x0000]: 'async_initialize' stage succeeded
[0x2AB8:1:0x0001]: 'async_initialize' stage succeeded
[0x2AB8:1:0xfc00]: 'async_initialize' stage succeeded
[0x2AB8:1:0x0008]: 'async_initialize' stage succeeded
[0x2AB8:1:0x0006]: 'async_initialize' stage succeeded
[0x2AB8:1:0x0019]: 'async_initialize' stage succeeded
[0x2AB8](RDM001): power source: Battery or Unknown
[0x2AB8](RDM001): completed initialization
@Hedda
Copy link
Contributor

Hedda commented Apr 20, 2021

Can you check and verify if that Philips Hue Wall Switch Module is a ZGP (Zigbee Green Power) device or not?

I am guessing that it is and if so then you should know that ZGP is not yet supported by zigpy (or ZHA), see: zigpy/zigpy#341

Developers are however working on it in zigpy/zigpy#519 and zigpy/zigpy#656

@aleex1848
Copy link
Author

Can you check and verify if that Philips Hue Wall Switch Module is a ZGP (Zigbee Green Power) device or not?

I am guessing that it is and if so then you should know that ZGP is not yet supported by zigpy (or ZHA), see: zigpy/zigpy#341

Developers are however working on it in zigpy/zigpy#519 and zigpy/zigpy#656

I'm sorry, but i've no clue how to check if this device is ZGP. Never heard about that before.
On the main product page there is no info about ZGP https://www.philips-hue.com/de-de/p/hue-philips-hue-wall-switch-modul/8719514318045#specifications

@Hedda
Copy link
Contributor

Hedda commented Apr 20, 2021

On the main product page there is no info about ZGP https://www.philips-hue.com/de-de/p/hue-philips-hue-wall-switch-modul/8719514318045#specifications

Ah, I thought you meant a different product. FYI, if a specific device is always connected to mains-power then that will normally mean that it would never be a ZGP device. ZGP are low-energy devices that normally use energy harvesting technology (or sometimes energy harvesting technology and a battery-operated by a small coin-cell battery as backup power). Regardless it's probably safe to ignore my comments/links about ZGP in regards to that device since no mention of it anywhere.

Philips Hue wall switch module looks like it is basically a remote control that can use the buttons from any standard wall switch:

https://www.philips-hue.com/en-gb/p/hue-philips-hue-wall-switch-module/8719514318045

https://www.philips-hue.com/en-gb/p/hue-philips-hue-wall-switch-module/8719514318045#specifications

https://www.philips-hue.com/en-gb/p/hue-philips-hue-wall-switch-module-2-pack/8719514318021

https://zigbee.blakadder.com/Philips_RDM001.html

https://www.zigbee2mqtt.io/devices/929003017102.html

https://zigbeealliance.org/zigbee_products/philips-hue-wall-switch-module/

https://api.knack.com/v1/applications/54e658034b4f44e42fb18201/download/asset/6005a6f2693cc6001bb99b52/60435273001_philipshuewallswitchmodule_pics.zip

From the above references:

Zigbee ID: "RDM001"

Zigbee Alliance Certificate ID: ZIG21081ZB330941-24

Manufacturer: Philips / Signify

Philips Hue wall switch module 1-pack = EAN/UPC product code: 8719514318045 (12NC Material number: 929003017101)
Philips Hue wall switch module 2-pack = EAN/UPC product code: 8719514318021(12NC Material number: 929003017102)

Batteries included: Yes
ZigBee Light Link: No

PS: It is wierd that they did not make it mains-powered but I guess that removes the need to get an electrician to install it legally.

@Adminiuga
Copy link
Contributor

Do you get anything in the logs when you press buttons? Post the logs when you turn the switch on/off.

@aleex1848
Copy link
Author

Do you get anything in the logs when you press buttons? Post the logs when you turn the switch on/off.

I activated debug logging like this:
https://www.home-assistant.io/integrations/zha/#debug-logging

But unfortunately there is nothing logged when i push the button.

@Adminiuga
Copy link
Contributor

Well, if device doesn't send anything, then the quirk unlikely to help.
Can you try the following:

  1. Unbind remote from the coordinator: devices -> your remote -> Manage zigbee clusters -> device binding -> pick your coordinator (what radio are you using) -> unbind. After you press unbind, wake up the remove by pressing any button on it
  2. check what groups your coordinator is member of?
  3. Bind the remote the one of the groups that coordinator is member of

post the separate logs of unbinding and binding.
Alternatively you could put the lights you'd like to control with that remote into a new group and bind remote to that group and see if it control the lights

@jonas18z
Copy link

jonas18z commented May 5, 2021

Yes, this would be greate if wall switch module is supported

@dieneuser
Copy link

dieneuser commented May 13, 2021

@Adminiuga: Perhaps the following links will help. Both deconz and zigbee2mqtt support the switch:
deconz:

zigbee2mqtt

overview

@Hedda: It's not a ZGP device.

@Adminiuga
Copy link
Contributor

There's nothing specific in those other implementations.
Out of the box zha should originate the events.

@dieneuser
Copy link

dieneuser commented May 14, 2021

@Adminiuga "

Nothing specific

is probably not it.
I got a wall switch and can register it with ZHA, but only see a sensor with battery status but i cannot see any ZHA event when the switch is pressed. But i can see much of "unknown cluster-specific commands" in the log:

2021-05-14 16:38:44 DEBUG (MainThread) [zigpy.zcl] [0xb6ad:1:0x0400] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=45 command_id=Command.Report_Attributes>
2021-05-14 16:38:44 DEBUG (MainThread) [zigpy.zcl] [0xb6ad:1:0x0400] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=uint16_t, value=27316>)]]
2021-05-14 16:38:44 DEBUG (MainThread) [zigpy.zcl] [0xb6ad:1:0x0400] Attribute report received: measured_value=27316
2021-05-14 16:38:52 DEBUG (MainThread) [zigpy.zcl] [0x2e33:1:0x0400] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=106 command_id=Command.Report_Attributes>
2021-05-14 16:38:52 DEBUG (MainThread) [zigpy.zcl] [0x2e33:1:0x0400] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=uint16_t, value=39043>)]]
2021-05-14 16:38:52 DEBUG (MainThread) [zigpy.zcl] [0x2e33:1:0x0400] Attribute report received: measured_value=39043
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4107 tsn=19 command_id=0>
2021-05-14 16:38:55 WARNING (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] Unknown cluster-specific command 0
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL request 0x0000: b'\x01\x00\x000\x00!\x00\x00'
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] No handler for cluster command 0
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4107 tsn=20 command_id=0>
2021-05-14 16:38:55 WARNING (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] Unknown cluster-specific command 0
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL request 0x0000: b'\x01\x00\x000\x02!\x01\x00'
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] No handler for cluster command 0
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4107 tsn=21 command_id=0>
2021-05-14 16:38:55 WARNING (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] Unknown cluster-specific command 0
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL request 0x0000: b'\x01\x00\x000\x00!\x00\x00'
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] No handler for cluster command 0
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4107 tsn=22 command_id=0>
2021-05-14 16:38:55 WARNING (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] Unknown cluster-specific command 0
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL request 0x0000: b'\x01\x00\x000\x02!\x01\x00'
2021-05-14 16:38:55 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] No handler for cluster command 0
2021-05-14 16:38:56 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=True is_reply=True disable_default_response=True> manufacturer=4107 tsn=23 command_id=0>
2021-05-14 16:38:56 WARNING (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] Unknown cluster-specific command 0
2021-05-14 16:38:56 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] ZCL request 0x0000: b'\x01\x00\x000\x00!\x00\x00'
2021-05-14 16:38:56 DEBUG (MainThread) [zigpy.zcl] [0x655a:1:0xfc00] No handler for cluster command 0
2021-05-14 16:38:56 DEBUG (MainThread) [zigpy.zcl] [0xb4d4:1:0x0019] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=162 command_id=1>
2021-05-14 16:38:56 DEBUG (MainThread) [zigpy.zcl] [0xb4d4:1:0x0019] ZCL req

It must be possible to set the switch mode during setup. (singlerocker, singlepushbutton, dualrocker, dualpushbutton): dresden-elektronik/deconz-rest-plugin#4566 (comment)
I do not know how.

@aleex1848
Copy link
Author

I just updated from core-2021.4.3 to core-2021.6.2 but unfortunately nothing changed. There are still no zha_events when pushing the hue wall switch.

@jonas18z
Copy link

@dieneuser I have exactly the same problem as you I can ad but only find the battery level. I have a hue dimmer which I can find all different buttons. Anyone figure ut how to use this?

I have also updated the firmware on my conbeeII

@dieneuser
Copy link

@jonas18z ZHA does not (yet) support the switch. As a workaround, I use the Deconz integration in parallel - also for existing Hue Tap switch modules. There, the wall switch is already supported in the beta phoscon web app.

@jonas18z
Copy link

Ok, let’s hope that it will be supported. It’s only ZHA that misses the support now. I don’t think you can run conbee II at the same time in ZHA and deconz?

@htodep
Copy link

htodep commented Aug 14, 2021

How/where can we request ZHA support? Really need this device ;)

@dieneuser
Copy link

dieneuser commented Aug 14, 2021

I don’t think you can run conbee II at the same time in ZHA and deconz?

That's right. I use a second Conbee II with deconz integration.

@jonas18z
Copy link

Is there some guide how to add new devices. I will try to add it I was thinking to just modify the hue dimmer switch file to make this wall switch to work. But I don’t find anything here

@MattWestb
Copy link
Contributor

https://github.com/zigpy/zha-device-handlers#how-to-contribute

@jonas18z
Copy link

https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/philips/rwl022.py
rename the file to RDM001
in the file Find RWL022 replace with RDM001

is it that simple or what do I miss?

What is "DEVICE_SPECIFIC_UNKNOWN = 64512"

@MattWestb
Copy link
Contributor

The 64512 (in dec you must calculating it from the hex in the device signature) is the number of one manufacture specific cluster that for Philips HUE that they is using.
If your device is using it you need adding it so it can being reconciled of the quirk and if its not then you shall deleting all references to it.

@Hedda
Copy link
Contributor

Hedda commented Aug 27, 2021

Maybe now test your Philips Hue Wall Switch Modules again with the recently released zha-device-handlers / zha-quirk 0.0.60 and zigpy 0.37.0 releases or later as those contain new features in zigpy so quirks should no longer be needed for most if not all new Philips Hue Zigbee devices. See:

zha-quirks==0.0.60 -> https://github.com/zigpy/zha-device-handlers/releases/tag/0.0.60

and

zigpy==0.37.x -> https://github.com/zigpy/zigpy/releases/tag/0.37.0 or better yet https://github.com/zigpy/zigpy/releases/tag/0.37.1

Specifically, zigpy 0.37.0 added zigpy/zigpy#788 and zha-device-handlers 0.0.60 added #993

Note! The mentioned zha-quirk and zigpy releases are not yet included even in the latest Home Assistant release so to test those follow https://github.com/zigpy/zha-device-handlers#testing-new-releases and https://github.com/zigpy/zigpy/blob/dev/CONTRIBUTING.md#testing-new-releases

PS: Looking at home-assistant/core#55242 and https://github.com/home-assistant/core/milestone/429 it seems that these zha-quirk and zigpy releases will first be used in the upcoming Home Assistant 2021.9.0 https://rc.home-assistant.io/blog/2021/08/25/release-20219/

@jonas18z
Copy link

jonas18z commented Sep 2, 2021

Thanks, Installed 2021.9 and did a new search for device and the device is found and added via ZHA but now next problem is that it only founds two triggers "Device Offline" and "power battery level changes" For example my dimmer RWL021 founds all trigger on,off, dim up, dim down etc with RDM001. So maybe there is some more editing needed in the Python file but I can't find what?

EDIT: I don't se any zha_event when pushing a button.

@MarvinSchenkel
Copy link

Thanks, Installed 2021.9 and did a new search for device and the device is found and added via ZHA but now next problem is that it only founds two triggers "Device Offline" and "power battery level changes" For example my dimmer RWL021 founds all trigger on,off, dim up, dim down etc with RDM001. So maybe there is some more editing needed in the Python file but I can't find what?

EDIT: I don't se any zha_event when pushing a button.

I have the exact same issue. Has anyone found the reason for this?

@jonas18z
Copy link

jonas18z commented Sep 27, 2021

I still have the same issue and no solution. if some know what could be wrong or what I could try to make it work.

@htodep
Copy link

htodep commented Oct 21, 2021

What's the current status of this issue? I really want to use these modules in ZHA.

@th3d00d
Copy link

th3d00d commented Oct 29, 2021

I've been wondering as well, is there any progress on how to integrate a HUE wall switch module into HASS using ZHA?

@florianw12
Copy link

florianw12 commented Nov 12, 2021

Hello I think I have the same issue but I am not sure. I am using a raspberry pi 4 with homeassistant in a docker container and the conbee 2 usb on the raspberry with deconz also in a container. I have managed to connect the hue wall switch and I get events in home assistant but I am not able to use them for anything. Wall switch also shows just as battery in devices
image

@MattWestb
Copy link
Contributor

In ZHA is normal switches (or if battery powered remotes) only getting one battery.
All things one switch is doing event and you is getting them by development, events, listening to events and putting in zha_event and clicking start listening to events and you is getting all in the log window.

One remote dont have any state like one light that can being on or off or dimmed and only sending events.

Also if Philips have making it good it shall having one switch configure cluster for changing the function of the wall switch but i cant saying if its having it then no one have posting one device signature.

@MattWestb
Copy link
Contributor

If some like implanting the switch configuration i think i have found the attribute that need being added in one quirk for getting it working.
https://github.com/dresden-elektronik/deconz-rest-plugin/blob/3338039cb8a498f90f5000f0b118ded7ef963a84/general.xml#L211-L229

@wigster
Copy link

wigster commented Nov 14, 2021

and you is getting them by development, events, listening to events and putting in zha_event and clicking start listening to events and you is getting all in the log window.

So does this mean that XHA supports the module or not yet? I was about to purchase a few but am hesitating.

@MRedZac
Copy link

MRedZac commented Feb 17, 2022

Well, somehow I must be too dumb to understand all these shreds of information... I have sucessfully paired the wall switch module with ZHA, I created an automation, where the alarm panel should be disarmed with a button press of this switch and I have a finger print module connected to the wall switch module, which closes contact on correct finger print reading. This works exactly once to disable the alarm, but after that no longer anymore. So I think, that the wall switch module is set as a switch and keeps its condition as "on" instead of working like a button press, which releases its condition to "off" after the button was pressed once... I tried to change the value in cluster settings to 1, like shown here on the pictures, but obviously, the wall switch module does not eat this... If I disconnect the wall switch module from the cable, it immediately disarms the alarm panel and I can start over from the beginning again... But with all these pieces of info here, I got somewhere lost on the way, as I don't know what to do, to make this wall switch module to eat the command to act as a single button press instead of a rocker... Help appreciated !! Step by step for dummies please ! - For now, I just connected it via Hue Bridge and this works flawesly without any issues !

@ark-
Copy link

ark- commented Mar 16, 2022

I have got the custom quirks working with my wall module. What's preventing this being merged into the repo and released to the next release of HA?

@tube0013
Copy link
Contributor

I'll try and get this into a proper PR so it can be put into a release.

@tube0013
Copy link
Contributor

#1434

@m4dmin
Copy link

m4dmin commented Mar 24, 2022

I'm trying to configure my Hue wall Switch Module as Dual Rocker, but I can't get it to work.

I've followed all the steps mentiones in this thread:

  1. Added the Custom Quirk file

you add the zha: section like this:

zha:
  custom_quirks_path: zha_custom_quirks

then in your config folder create a folder named zha_custom_quirks and within that drop the .py file that's in the zip I posted:

image

  1. Enabled the Second Input Mode via Manage Cluster:

Worked with @dmulcahey and got a rough quirk working for this device. device automation triggers are only for the 1st input.
still some thought to be done on how best to implement this in the code base, but this is usable as a custom zha quirk just drop the py file in the custom quirk folder as defined in your configuration.yaml under zha. https://www.home-assistant.io/integrations/zha/#custom_quirks_path
to enable the second input - go to the devices configuration page > Manage Clusters.
pick the Philips Basic cluster - pick the mode attribute, put 2 in the value and set attirbute (toggle switch to wake the device so it gets the setting.
image
rdm001.py.zip

After many months i'm finaly able to use the switch module. Thank you so much!!

  1. Verfied the correct setting via Debug Log:

2022-03-24 13:40:56 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x4A45](RDM001): set: 2 for attr: 52 to cluster: 0 for ept: 1 - res: [[WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]]
2022-03-24 13:40:56 DEBUG (MainThread) [homeassistant.components.zha.api] Set attribute for: cluster_id: [0] cluster_type: [in] endpoint_id: [1] attribute: [52] value: [2] manufacturer: [None] response: [[[WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]]]

  1. Created two automations, one for the first and one for the second switch.

But in the end I can only use the first switch.

  • Am I missing something?
  • How can I adress the second switch within an automation?

@evpaassen
Copy link

How can I adress the second switch within an automation?

@m4dmin I'm using an Event trigger to listen to a zha_event which I captured using the developer tools:

image

When you go into Developer tools > Events you can enter the zha_event type and listen to those events. If you flip your switch, this will show you the device_ieee.

@m4dmin
Copy link

m4dmin commented Mar 24, 2022

Thanks @evpaassen. That was the missing piece :)

@RaveGun
Copy link

RaveGun commented Apr 6, 2022

Hi, After the update to Home Assistant 2022.4.0 the ZHA is not starting because of an error from the rdm001.py.
This is what is in the log recorded:

Error setting up entry ConBee II, s/n: DE2225070 - dresden elektronik ingenieurtechnik GmbH for zha
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 335, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/zha/__init__.py", line 99, in async_setup_entry
    setup_quirks(config)
  File "/usr/local/lib/python3.9/site-packages/zhaquirks/__init__.py", line 409, in setup
    importer.find_module(modname).load_module(modname)
  File "<frozen importlib._bootstrap_external>", line 529, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 1029, in load_module
  File "<frozen importlib._bootstrap_external>", line 854, in load_module
  File "<frozen importlib._bootstrap>", line 274, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/zha_custom_quirks/rdm001.py", line 51, in <module>
    class PhilipsBasicCluster(CustomCluster, Basic):
  File "/usr/local/lib/python3.9/site-packages/zigpy/zcl/__init__.py", line 91, in __init_subclass__
    raise TypeError(
TypeError: `manufacturer_attributes` is deprecated. Copy the parent class's `attributes` dictionary and update it with your manufacturer-specific `attributes`. Make sure to specify that it is manufacturer-specific through the  appropriate constructor or tuple!

I do not understand the issue and how to modify the python file to make it work.

Any hints?

Thank you.

@BrendanxP
Copy link

Hi, After the update to Home Assistant 2022.4.0 the ZHA is not starting because of an error from the rdm001.py. This is what is in the log recorded:

Error setting up entry ConBee II, s/n: DE2225070 - dresden elektronik ingenieurtechnik GmbH for zha
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 335, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/zha/__init__.py", line 99, in async_setup_entry
    setup_quirks(config)
  File "/usr/local/lib/python3.9/site-packages/zhaquirks/__init__.py", line 409, in setup
    importer.find_module(modname).load_module(modname)
  File "<frozen importlib._bootstrap_external>", line 529, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 1029, in load_module
  File "<frozen importlib._bootstrap_external>", line 854, in load_module
  File "<frozen importlib._bootstrap>", line 274, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/zha_custom_quirks/rdm001.py", line 51, in <module>
    class PhilipsBasicCluster(CustomCluster, Basic):
  File "/usr/local/lib/python3.9/site-packages/zigpy/zcl/__init__.py", line 91, in __init_subclass__
    raise TypeError(
TypeError: `manufacturer_attributes` is deprecated. Copy the parent class's `attributes` dictionary and update it with your manufacturer-specific `attributes`. Make sure to specify that it is manufacturer-specific through the  appropriate constructor or tuple!

I do not understand the issue and how to modify the python file to make it work.

Any hints?

Thank you.

Exactly the same issue here. I deleted the ZHA quirks from my configuration.yaml file and everything works now!

@tube0013
Copy link
Contributor

tube0013 commented Apr 6, 2022

the quirk was added to the most recent quirks release and is in the new HA release. if you installed it to custom_quirks, deleted the rdm001.py from the custom_quirks folder in your config.

@RaveGun
Copy link

RaveGun commented Apr 6, 2022

Oh, that was an easy fix.
Delete I can do :)
Thank you a lot.

@maddingamer
Copy link

maddingamer commented Apr 8, 2022

When you go into Developer tools > Events you can enter the zha_event type and listen to those events. If you flip your switch, this will show you the device_ieee.

When I flip switch 2 it does not trigger an zha_event. How do you make switch 2 work? (Using zha on HA 2022.4)

EDIT: Reading all the info would be good next time, added cluster and it works. Sorry..

@deridderlab
Copy link

deridderlab commented Apr 23, 2022

Thanks for sharing! Managed to get both the left_press and right_press enabled through setting the Cluster Attributes.

However....

Anyone has the issue that an actual button press issues both a "left_press" and "left_press_release" event? And in fact, the actual button release does the same (also a "left_press" and "left_press_release" event)? Not a huge issue, but unexpected behavior...

@niwi-hh
Copy link

niwi-hh commented Apr 24, 2022

I wonder if using the walls witch with ZHA can cause the battery to run low much faster than normally. Two of my four wall switches are out of power after using them about a month with ZHA. A third more close the my zigbee bridge is still fine as well as the fourth switch still controlled by a hue bridge. The batteries should last about 5 years. I bought the switches some months ago.

@github-actions
Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Issue is inactivate and might get closed soon label Oct 21, 2022
@Hedda
Copy link
Contributor

Hedda commented Oct 23, 2022

Please do not stale, (I do not have these myself but Philips Hue is still one of the most popular
brands for Zigbee products so should ideally all work in ZHA).

@github-actions github-actions bot removed the stale Issue is inactivate and might get closed soon label Oct 23, 2022
@TheJulianJES
Copy link
Collaborator

Is the only issue here that the device triggers are missing for the right button if activated?
(And that we should probably have a config entity in HA for changing the mode?)

@TheJulianJES
Copy link
Collaborator

The right trigger buttons should be available in the UI now (2023.2.0 and later).
Due to how only the left button was added first, it's named a bit weirdly in the UI (would have been a breaking change otherwise).

Are there any remaining issues with this?

@tkreeftmeijer
Copy link

I found the following zha_event seems to have no corresponding device event in HA. Did I something wrong or miss I something? I have set mode to 2. It would be really nice if we can set it via the UI.

event_type: zha_event
data:
device_ieee: 00:17:88:01:0c:c2:80:80
unique_id: 00:17:88:01:0c:c2:80:80:1:0x0006
device_id: ee58328b287b1d7cc64ad14c5e2fe090
endpoint_id: 1
cluster_id: 6
command: toggle
args: []
params: {}
origin: LOCAL
time_fired: "2023-02-04T16:58:40.592149+00:00"
context:
id: 01GRENV82GM0410GKKN2DS5604
parent_id: null
user_id: null

@TheJulianJES
Copy link
Collaborator

That's an event for when the module is directly bound to a bulb. When in mode 2, it should also produce the following events:

device_automation_triggers = {
(SHORT_PRESS, TURN_ON): {COMMAND: "left_press"},
(LONG_PRESS, TURN_ON): {COMMAND: "left_hold"},
(DOUBLE_PRESS, TURN_ON): {COMMAND: "left_double_press"},
(TRIPLE_PRESS, TURN_ON): {COMMAND: "left_triple_press"},
(QUADRUPLE_PRESS, TURN_ON): {COMMAND: "left_quadruple_press"},
(QUINTUPLE_PRESS, TURN_ON): {COMMAND: "left_quintuple_press"},
(SHORT_RELEASE, TURN_ON): {COMMAND: "left_short_release"},
(LONG_RELEASE, TURN_ON): {COMMAND: "left_long_release"},
(SHORT_PRESS, RIGHT): {COMMAND: "right_press"},
(LONG_PRESS, RIGHT): {COMMAND: "right_hold"},
(DOUBLE_PRESS, RIGHT): {COMMAND: "right_double_press"},
(TRIPLE_PRESS, RIGHT): {COMMAND: "right_triple_press"},
(QUADRUPLE_PRESS, RIGHT): {COMMAND: "right_quadruple_press"},
(QUINTUPLE_PRESS, RIGHT): {COMMAND: "right_quintuple_press"},
(SHORT_RELEASE, RIGHT): {COMMAND: "right_short_release"},
(LONG_RELEASE, RIGHT): {COMMAND: "right_long_release"},
}

Do you also get these events?

@tkreeftmeijer
Copy link

That's an event for when the module is directly bound to a bulb. When in mode 2, it should also produce the following events:

device_automation_triggers = {
(SHORT_PRESS, TURN_ON): {COMMAND: "left_press"},
(LONG_PRESS, TURN_ON): {COMMAND: "left_hold"},
(DOUBLE_PRESS, TURN_ON): {COMMAND: "left_double_press"},
(TRIPLE_PRESS, TURN_ON): {COMMAND: "left_triple_press"},
(QUADRUPLE_PRESS, TURN_ON): {COMMAND: "left_quadruple_press"},
(QUINTUPLE_PRESS, TURN_ON): {COMMAND: "left_quintuple_press"},
(SHORT_RELEASE, TURN_ON): {COMMAND: "left_short_release"},
(LONG_RELEASE, TURN_ON): {COMMAND: "left_long_release"},
(SHORT_PRESS, RIGHT): {COMMAND: "right_press"},
(LONG_PRESS, RIGHT): {COMMAND: "right_hold"},
(DOUBLE_PRESS, RIGHT): {COMMAND: "right_double_press"},
(TRIPLE_PRESS, RIGHT): {COMMAND: "right_triple_press"},
(QUADRUPLE_PRESS, RIGHT): {COMMAND: "right_quadruple_press"},
(QUINTUPLE_PRESS, RIGHT): {COMMAND: "right_quintuple_press"},
(SHORT_RELEASE, RIGHT): {COMMAND: "right_short_release"},
(LONG_RELEASE, RIGHT): {COMMAND: "right_long_release"},
}

Do you also get these events?

A complete reset (of the module and remove it from ZHA) did the job. It works now. It was not directly bound to a light, I think that was still the problem. Thanks.

@markrossington
Copy link

markrossington commented Jun 8, 2023

My Wall Switch Module on HA OS with HA2023.6 using a Skyconnect still only reports left presses and not right presses

Is this to be expected?

Got it to work by writing to the mode register manually and setting it to 3

image

@andyjenkinson
Copy link

My Wall Switch Module on HA OS with HA2023.6 using a Skyconnect still only reports left presses and not right presses

Is this to be expected?

Got it to work by writing to the mode register manually and setting it to 3

Yes if you don't configure it otherwise, the module is factory defaulted to mode 0 - a single rocker switch. If you have installed it connected to a double momentary switch then you have to simulate what the Hue app does, i.e. configuring the mode attribute. The switch hardware doesn't automatically know how you have it physically wired. Not sure if ZHA could implement a custom device configuration workflow in the UI like the Hue app does but for the moment AFAIK there is not one.

@mirceadb7
Copy link

I have a few Hue Wall Switch RDM004 and HA Yellow, in zigbee zha integration I don’t have the cluster: Philips Basic Cluster.

@KWOAD
Copy link

KWOAD commented Feb 23, 2024

I have a few Hue Wall Switch RDM004 and HA Yellow, in zigbee zha integration I don’t have the cluster: Philips Basic Cluster.

Correct, I also can't find that cluster in the new version of the Philips Hue Wall Switch, the RDM004. I'm waiting for ZHA supports it. Really annoying because otherwise it works fine. I looked in all the clusters, but can't find 'mode' or '0x0034'.

@Dryghor
Copy link

Dryghor commented Aug 9, 2024

I have a few Hue Wall Switch RDM004 and HA Yellow, in zigbee zha integration I don’t have the cluster: Philips Basic Cluster.

Correct, I also can't find that cluster in the new version of the Philips Hue Wall Switch, the RDM004. I'm waiting for ZHA supports it. Really annoying because otherwise it works fine. I looked in all the clusters, but can't find 'mode' or '0x0034'.

@KWOAD and @mirceadb7 did you try to delete the py file from the custom_quirks folder ?
I had this same issue (and my automation was barely working : bulb was on then instantly off when triggered), delete it then I was able to find 'mode' attribute under 'PhilipsBasicCluster' again.

I am on HA Green with Connect ZBT-1 (SkyConnect) and RDM001

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests