Set the Indicator Light on a Zooz ZEN32 Scene Controller button to Match the State of a Light

For use with a Zooz ZEN32 Scene Controller.

Sets the indicator light on one of your scene controller buttons based on the state of a light.
Default behavior:

  • Indicator off if light fully on
  • Indicator blue if light on but dimmed
  • Indicator white if light off

I recommend using this in conjunction with my automation that makes it easy to control a light using the same button on your scene controller:
Control a Light with a Button on a Zooz ZEN32 Scene Controller

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.
GitHub Gist

blueprint:
  name: Set Indicator Light on Scene Controller
  description: For Zooz ZEN32. Sets the indicator color when light is off or dimmed.
  domain: automation
  input:
    zooz_switch:
      name: Zooz Switch
      description: List of available Zooz ZEN32 switches.
      selector:
        device:
          filter:
              - integration: zwave_js
                manufacturer: Zooz
                model: ZEN32
              - integration: zwave_js
                manufacturer: Zooz
                model: "ZEN32 800LR"
    target_light:
      name: Light
      description: The light to link to button
      selector:
        entity:
    scene_button:
      name: Scene Button
      description: The button to link to light
      selector:
        select:
          mode: dropdown
          options:
            - label: Scene 5 (Big Button)
              value: '0' # param 1 for on/off, param 6 for color
            - label: Scene 1 (Top Left)
              value: '1' # param 2 for on/off, param 7 for color
            - label: Scene 2 (Top Right)
              value: '2' # param 3 for on/off, param 8 for color
            - label: Scene 3 (Bottom Left)
              value: '3' # param 4 for on/off, param 9 for color
            - label: Scene 4 (Bottom Right)
              value: '4' # param 5 for on/off, param 10 for color
    off_color:
      name: Off Color
      description: Color to make indicator when light is off (default white)
      default: White
      selector:
        select:
          mode: dropdown
          options:
            - label: White
              value: '0'
            - label: Blue
              value: '1'
            - label: Green
              value: '2'
            - label: Red
              value: '3'
    dimmed_color:
      name: Dimmed Color
      description: Color to make indicator when light is dimmed (default blue)
      default: Blue
      selector:
        select:
          mode: dropdown
          options:
            - label: White
              value: '0'
            - label: Blue
              value: '1'
            - label: Green
              value: '2'
            - label: Red
              value: '3'
            - label: Magenta
              value: '4'
            - label: Yellow
              value: '5'
            - label: Cyan
              value: '6'
mode: single
max_exceeded: silent
variables:
  controller_id: !input 'zooz_switch'
  light_id: !input 'target_light'
  button_id: !input 'scene_button'
  toggle_offset: 1
  color_offset: 6
  on_value: 3
  off_value: 2
  off_color: !input 'off_color'
  dimmed_color: !input 'dimmed_color'
  full_brightness: 255
trigger:
  - platform: state
    entity_id: !input 'target_light'
    attribute: brightness
    for:
      hours: 0
      minutes: 0
      seconds: 5
  - platform: state
    entity_id: !input 'target_light'
action:
- choose:
  - conditions: '{{ is_state(light_id, ''off'') }}' # light off, turn on indicator
    sequence:
      - parallel:
        - service: zwave_js.set_config_parameter # set indicator color
          data:
            parameter: '{{ (button_id | int) + (color_offset | int) }}'
            value: '{{ off_color }}'
          target: 
            device_id: '{{ controller_id }}'
        - service: zwave_js.set_config_parameter # turn on indicator
          data:
            parameter: '{{ (button_id | int) + (toggle_offset | int) }}'
            value: '{{ on_value }}'
          target: 
            device_id: '{{ controller_id }}'
  - conditions: '{{ is_state(light_id, ''on'') and not is_state_attr(light_id, ''brightness'', full_brightness) }}' # light on but dim, show dimmed color
    sequence:
        - parallel:
        - service: zwave_js.set_config_parameter # set indicator color
          data:
            parameter: '{{ (button_id | int) + (color_offset | int) }}'
            value: '{{ dimmed_color }}'
          target: 
            device_id: '{{ controller_id }}'
        - service: zwave_js.set_config_parameter # turn on indicator
          data:
            parameter: '{{ (button_id | int) + (toggle_offset | int) }}'
            value: '{{ on_value }}'
          target: 
            device_id: '{{ controller_id }}'
  - conditions: '{{ is_state(light_id, ''on'') and is_state_attr(light_id, ''brightness'', full_brightness) }}' # light on all the way, turn off indicator
    sequence:
      - service: zwave_js.set_config_parameter # turn off indicator
        data:
          parameter: '{{ (button_id | int) + (toggle_offset | int) }}'
          value: '{{ off_value }}'
        target: 
          device_id: '{{ controller_id }}'
5 Likes

Alex,

Thank you so much for giving me the starting point I needed to get to where I wanted!

I took the liberty of making some tweaks to this to make it possible to choose when the leds should be turned on/off, and which colors they should be. So here is my small contribution
Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.
It looks like this

I also needed the ability to sync the leds with a SWITCH status rather than a light status (one of the button toggles the state of an outdoor switch with no dimmer). So here is the blueprint to sync the ZEN32 indicator led with the state of a switch.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

Here is what it looks like

Hey there, @sle118 ,

Thanks for this… It looks like both of the blueprints are the same. The augmented light version also downloads the switch version. I would love the augmented light version if its possible. thanks

2 Likes

I don’t know if I have a newer firmware or what but this automation/blueprint is not working for me on my Zen32

@sle118

Thank you for the “switch” blueprint. I would also use the “light” blueprint if available. As mentioned by @samedarkclouds, it looks like same link was posted in both places for the “switch” variant.

Is anyone having an issue when using this for the relay button? For some reason, when I do that, it causes the switch to report the relay is on even though the switch isn’t. Any ideas? I don’t have any issues for the other buttons

:clap: I just wanted to take a moment here to send a HUGE thank you to @halomademeapc and so many others over the recent years that have made this system SO GREAT.

Back in 2017 I tried doing this with another, earlier, zwave controller…

After a long struggle making sure that the zwave device configuration was correct, the proper branches of zwave and homeassistant were being used, the associations were correct, a custom component was created and the yaml scripts were in place, I was able to get something that kind of worked (as long as my wife didn’t try to use it).

Yesterday, I unboxed the Zen32, clicked to import the blueprints and in a matter of clicks I am comfortable with a scene controller the whole family uses.

Thank you, thank you… thank you!

2 Likes

Also extending thanks here, this works GREAT with my ZEN32 controllers.
I customized it a bit to use it with a binary_sensor and simplify some things down in my setup. Never would have gotten there without what you put together.

blueprint:
  name: Set Indicator Light on Scene Controller (Sensor)
  description: For Zooz ZEN32. Sets the indicator color based on sensor.
  domain: automation
  input:
    zooz_switch:
      name: Zooz Switch
      description: List of available Zooz ZEN32 switches.
      selector:
        device:
          integration: zwave_js
          manufacturer: Zooz
          model: ZEN32
    target_sensor:
      name: Sensor
      description: The sensor to link to button
      selector:
        entity:
          domain: binary_sensor
    scene_button:
      name: Scene Button
      description: The button to link to light
      selector:
        select:
          mode: dropdown
          options:
            - label: Scene 5 (Big Button)
              value: '0' # param 1 for on/off, param 6 for color
            - label: Scene 1 (Top Left)
              value: '1' # param 2 for on/off, param 7 for color
            - label: Scene 2 (Top Right)
              value: '2' # param 3 for on/off, param 8 for color
            - label: Scene 3 (Bottom Left)
              value: '3' # param 4 for on/off, param 9 for color
            - label: Scene 4 (Bottom Right)
              value: '4' # param 5 for on/off, param 10 for color
    on_color:
      name: On Color
      description: Color to make indicator when sensor is on (default white)
      default: White
      selector:
        select:
          mode: dropdown
          options:
            - label: White
              value: '0'
            - label: Blue
              value: '1'
            - label: Green
              value: '2'
            - label: Red
              value: '3'
mode: single
max_exceeded: silent
variables:
  controller_id: !input 'zooz_switch'
  sensor_id: !input 'target_sensor'
  button_id: !input 'scene_button'
  toggle_offset: 1
  color_offset: 6
  on_value: 3
  off_value: 2
  on_color: !input 'on_color'
  full_brightness: 255
trigger:
  - platform: state
    entity_id: !input 'target_sensor'
action:
- choose:
  - conditions: '{{ is_state(sensor_id, ''on'') }}' # sensor on, turn on indicator
    sequence:
      - parallel:
        - service: zwave_js.set_config_parameter # set indicator color
          data:
            parameter: '{{ (button_id | int) + (color_offset | int) }}'
            value: '{{ on_color }}'
          target: 
            device_id: '{{ controller_id }}'
        - service: zwave_js.set_config_parameter # turn on indicator
          data:
            parameter: '{{ (button_id | int) + (toggle_offset | int) }}'
            value: '{{ on_value }}'
          target: 
            device_id: '{{ controller_id }}'
  - conditions: '{{ is_state(sensor_id, ''off'') }}' # sensor off, turn off indicator
    sequence:
      - service: zwave_js.set_config_parameter # turn off indicator
        data:
          parameter: '{{ (button_id | int) + (toggle_offset | int) }}'
          value: '{{ off_value }}'
        target: 
          device_id: '{{ controller_id }}'

Updated blueprint to remove light domain restriction on entity picker. This allows it to work with fans, switches, etc. You can use this with this blueprint and just call the toggle service for the other domain you are using:

A suggestion if someone is willing: Considering there are 5 of these buttons per switch, a single automation to handle a single switch would be vastly preferred, especially if it can include the additional options @sle118 included.

Over my head at the moment, and thank you @halomademeapc for at least getting me started :slight_smile:

Hi @sle118 . Thank you for your contribution on the switch version of the blueprint. It looks like the blueprint for the light version (on/off/dim) points back to the same switch version. Would you have a chance to provide a corrected link to your light version of the blueprint?

Thanks,
Rick

I got this blueprint to work with the indicator lights. However, I would like an option to have the indicator light green when the light is on instead of the indicator light being off. How do I go about changing that? There isn’t an option in the blueprint to change that parameter.

I’m in the same boat here. I have a deck with two zooz outdoor switches. one is attached to some rope light, and another is attached to some string lights. I’ve set the buttons to have their respective colors, and i’d like the light to be on if the switch is on, and off if the light is off - im going to have a second zen32 switch across the room which will basically act as a remote for the first, so i’d like to have the granular control of the lights as thezfunk described.

okay, i deployed this blueprint and it does everything i want, except for one thing - if something else chages the state of the switch a button controls, the buttons light doesnt change. I’d like the status of the assigned switch to govern if the corresponding button light is on or off, has anyone twiddled with that yet?

This is awesome! Exactly what I was looking to do. Has anyone had any success combining this blueprint with that of the “Actions” blueprint for the switch? ZEN32 Scene Controller - Z-Wave JS

It would be nice to set everything up (actions for each scene button) and the LED light behaviors for each button on the controller

For anyone who may stumble across this and wonder “Where is the LIGHT version of the modified blueprint referenced by @sle118 ?”

Working just fine with a ZEN32 800LR on the latest firmware (after updating the model in the blueprint). You may also want to disable the LED Settings Indicator (Param 23) on your ZEN32, otherwise you get green led blinks on every state change.

@Viss
I used the following blueprint to keep the little button indicator LED in sync with the state of the controlled smart plug:

If you’ve done this for a zooz zen32 800R, i’m curious how you aimed this at the actual lights themselves - because all I can see are the scene controllers for the button presses, and when i tried that it just blinked the light green a couple times and didnt change the color or keep the light on. Is there a way you found to specify the light on each button?

I’ve imported this blueprint, and updated the model to zen32 800lr, and added in the extra colors (i prefer magenta), however having disabled parameter 32, and changed the blueprint to work on switches (i have a bunch of zooz outdoor switches controling deck lighting) im trying to get two zooz zen32 800lrs to be syncronized when the deck lights are on or off.

at the minute whats happening is that I press the scene 1 button, and the lights come on, but the indicator light on the button just flashes blue and stays off. I press it again, the indicator flashes white and turns off. My objective is to have the indicator off if the lights are off and magenta if the lights are on, but I can’t seem to figure out how to make this blueprint do that for me. I think I may be doing something wrong?

@Viss

Try setting all the LED’s to Off by default in the zwave config and then use 5 instances of the Linked Entities blueprint above, one for each button and LED (on both Zen32’s) and your remote smart plug. Probably disable the Zen32 blueprint.

The LED indicator light is controlled through the properties that look like:

…Controller Button 3 indication - Binary


I have to say that I am new to HA and zwave and after I started using this Zen32 and a smart plug that is 8’ away I was having some terrible unresponsiveness of the whole system with big delays for things to turn on or off or the HA app not able to control anything for a while and the smart plug kept going dead until I physically pushed the button on the side.
All of that made me suspicious of all these blueprints as actually working.

I swapped in a new smart plug and now everything seems to be working including all the Zen32 indicator lights tracking the remote device status.