diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index add87e6abdc..a8d561239fb 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -385,3 +385,116 @@ Button three release|Circle|3|1 Button four tap|Circle with Line|4|0 Button four hold|Circle with Line|4|2 Button four release|Circle with Line|4|1 + +### {% linkable_title RFWDC Cooper 5-button Scene Control Keypad %} + +For the RFWDC Cooper 5-button Scene Control Keypad, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: + +```xml + + + + + + + + + +``` + +Below is a table of the action/scenes for the Buttons: + +**Action**|**scene\_id** +:-----:|:-----: +Button one tap|1 +Button two tap|2 +Button three tap|3 +Button four tap|4 +Button five tap|5 + +When a button turns off, the controller sends `basic_set` in a generic `node_event` and does not specify which button was pressed. The status of the buttons is encoded into the `indicator` value, so in order to determine the status of each button, you need to refresh the indicator value. You can also control the LEDs for each button by setting the indicator value. For responsiveness, automations should be triggered with `zwave.scene_activated` events rather than the switch status. + +Here is an example configuration needed for the scene controller: + +{% raw %} +```yaml +automation: + - alias: Sync the indicator value on button events + trigger: + - platform: event + event_type: zwave.scene_activated + event_data: + entity_id: zwave.scene_contrl + - platform: event + event_type: zwave.node_event + event_data: + entity_id: zwave.scene_contrl + action: + - service: zwave.refresh_indicator + data: + node_id: 3 +switch: + - platform: template + switches: + button_1_led: + value_template: "{{ states.sensor.scene_contrl_indicator.state | int | bitwise_and(1) > 0 }}" + turn_on: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int + 1 }}" + turn_off: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int - 1 }}" + button_2_led: + value_template: "{{ states.sensor.scene_contrl_indicator.state | int | bitwise_and(2) > 0 }}" + turn_on: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int + 2 }}" + turn_off: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int - 2 }}" + button_3_led: + value_template: "{{ states.sensor.scene_contrl_indicator.state | int | bitwise_and(4) > 0 }}" + turn_on: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int + 4 }}" + turn_off: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int - 4 }}" + button_4_led: + value_template: "{{ states.sensor.scene_contrl_indicator.state | int | bitwise_and(8) > 0 }}" + turn_on: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int + 8 }}" + turn_off: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int - 8 }}" + button_5_led: + value_template: "{{ states.sensor.scene_contrl_indicator.state | int | bitwise_and(16) > 0 }}" + turn_on: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int + 16 }}" + turn_off: + service: zwave.set_indicator + data_template: + node_id: 3 + value: "{{ states.sensor.scene_contrl_indicator.state | int - 16 }}" +``` +{% endraw %} \ No newline at end of file