Control LEDs and LED Effects on Inovelli Black, Red, Blue, and White Series Devices by Floor, Area, Group, Device ID, or Entity

Appreciate the quick fix! I actually have another issue: the areas and groups don’t seem to work, I’ve only had success when addressing a specific device. I’m no expert in reading these traces but it looks like it’s interesting through 11 device_types and not finding any switches, but I have several VZM31-SN. I’m using Z2M, I’m not sure where to find the model name in HA to see if it matches but perhaps this screenshot helps. Otherwise please let me know where I should look to figure it out?

image

The model is in your second screenshot ("2-in-1 switch + dimmer) and that’s what it’s searching for. These should be in the light domain (i.e. light.entity_id) but if you’ve changed them to switches, they’ll be filtered out. That’s one possible issue. If the entity_id is still in the light domain, take a look at comment #106 above and send me that info? I’m especially looking for anything with an exclamation mark, like the service call at the bottom of this trace:

I found two bugs and fixed them. Reimport your blueprint after 12:00PM Pacific and see if that helps. One is a bug in ZHA but the other fix might be what you were seeing. If it doesn’t help, get me the service calls and variable info from comment #106 and I’m sure I can figure this out.

1 Like

I tried out the latest version but have the same error. I haven’t changed any of the types, they’re still lights. I also don’t have any errors or exclamation points in the trace. The only service call that runs seems to be clear effects.

To keep it basic I’m using one of the examples from github like so, can you let me know if this part looks correct, it could just be my error:

action: script.inovelli_led
data:
  entity: light.bathroom_ceiling
  LEDcolor_off: RED
  LEDbrightness_off: 2

The only service that runs is this one and it actually seems correct, but all the others are skipped.

data:
  topic: zigbee2mqtt/{{ states[repeat.item].attributes.friendly_name }}/set
  payload: >-
    {"led_effect":{"duration":"{{duration_values[duration]}}","effect":"{{effects}}"
    }}
action: mqtt.publish

It’s hard to screenshot but it looks like the only other condition that evaluates to true is:

'{{ LEDcolor != "no change" }}'

I don’t see any service calls that set the led color or brightness.

That example is only going to set the off color but it should work. Can you send me the output of your travel from the top box and “changed variables”? When I get home I can try that example on one of my VZM31-SN entities.

I appreciate it! Take your time :slight_smile:

I’m only trying to get a basic example working since I figure it will be easier to track down.

I’m not sure what info you mean but here’s what I think you mean. I’m also on discord if this is easier.

this:
  entity_id: script.inovelli_led
  state: 'off'
  attributes:
    last_triggered: '2025-01-11T22:05:07.316665+00:00'
    mode: parallel
    current: 0
    max: 100
    friendly_name: Inovelli LED
  last_changed: '2025-01-11T22:12:46.302563+00:00'
  last_reported: '2025-01-11T22:12:46.302563+00:00'
  last_updated: '2025-01-11T22:12:46.302563+00:00'
  context:
    id: 01JHBPTH2Y86EJ5MD7NTAVDN7H
    parent_id: null
    user_id: null
entity: light.bathroom_ceiling
LEDcolor_off: no change
LEDbrightness_off: 11
input_floor: []
input_area: []
input_group: []
input_device: []
input_entity: []
input_LEDnumber: all
input_LEDcolor: no change
input_LEDcolor_off: no change
input_LEDbrightness: '11'
input_LEDbrightness_off: '11'
input_duration: '0'
input_effect: Clear Effect
input_brightness: '11'
input_color: no change
color_set:
  'off': 0
  red: 0
  orange: 8
  lemon: 28
  yellow: 42
  lime: 64
  green: 85
  cyan: 127
  teal: 145
  blue: 170
  purple: 190
  magenta: 212
  light pink: 220
  pink: 234
  hot pink: 234
  white: 255
  all clear:
    led 1: 255
    led 2: 255
    led 3: 255
    led 4: 255
    led 5: 255
    led 6: 255
    led 7: 255
    all: 0
  all unicorn:
    led 1: 234
    led 2: 234
    led 3: 170
    led 4: 170
    led 5: 170
    led 6: 85
    led 7: 85
    all: 0
  all usa:
    led 1: 170
    led 2: 170
    led 3: 255
    led 4: 255
    led 5: 0
    led 6: 0
    led 7: 0
    all: 255
led_map:
  all: -1
  led 1: 0
  led 2: 1
  led 3: 2
  led 4: 3
  led 5: 4
  led 6: 5
  led 7: 6
duration_values:
  '0': 0
  'off': 0
  1 second: 1
  1 seconds: 1
  2 seconds: 2
  3 seconds: 3
  4 seconds: 4
  5 seconds: 5
  6 seconds: 6
  7 seconds: 7
  8 seconds: 8
  9 seconds: 9
  10 seconds: 10
  15 seconds: 15
  20 seconds: 20
  25 seconds: 25
  30 seconds: 30
  35 seconds: 35
  40 seconds: 40
  45 seconds: 45
  50 seconds: 50
  55 seconds: 55
  60 seconds: 60
  1 minute: 60
  1 minutes: 60
  2 minutes: 62
  3 minutes: 63
  4 minutes: 64
  5 minutes: 65
  6 minutes: 66
  7 minutes: 67
  8 minutes: 68
  9 minutes: 69
  10 minutes: 70
  15 minutes: 75
  30 minutes: 90
  45 minutes: 105
  60 minutes: 120
  1 hour: 120
  2 hours: 122
  forever: 255
  indefinitely: 255
LZW30_effects:
  'off': 0
  clear effect: 0
  aurora: 0
  blink: 0
  blink fast: 0
  blink medium: 0
  blink slow: 0
  chase: 0
  chase fast: 0
  chase medium: 0
  chase slow: 0
  fall fast: 0
  fall medium: 0
  fall slow: 0
  open close: 0
  pulse: 0
  rise fast: 0
  rise medium: 0
  rise slow: 0
  siren fast: 0
  siren slow: 0
  small to big: 0
  solid: 0
  fast blink: 0
  slow blink: 0
LZW31_effects:
  'off': 0
  clear effect: 0
  aurora: 0
  blink: 0
  blink fast: 0
  blink medium: 0
  blink slow: 0
  chase: 0
  chase fast: 0
  chase medium: 0
  chase slow: 0
  fall fast: 0
  fall medium: 0
  fall slow: 0
  open close: 0
  pulse: 0
  rise fast: 0
  rise medium: 0
  rise slow: 0
  siren fast: 0
  siren slow: 0
  small to big: 0
  solid: 0
  fast blink: 0
  slow blink: 0
LZW30SN_effects:
  'off': 0
  clear effect: 0
  aurora: 4
  blink: 3
  blink fast: 2
  blink medium: 3
  blink slow: 3
  chase: 2
  chase fast: 2
  chase medium: 2
  chase slow: 3
  fall fast: 2
  fall medium: 3
  fall slow: 3
  open close: 4
  pulse: 4
  rise fast: 2
  rise medium: 3
  rise slow: 3
  siren fast: 4
  siren slow: 4
  small to big: 4
  solid: 1
  fast blink: 2
  slow blink: 3
LZW31SN_effects:
  'off': 0
  clear effect: 255
  aurora: 4
  blink: 4
  blink fast: 3
  blink medium: 4
  blink slow: 4
  chase: 2
  chase fast: 2
  chase medium: 2
  chase slow: 2
  fall fast: 2
  fall medium: 2
  fall slow: 2
  open close: 2
  pulse: 5
  rise fast: 2
  rise medium: 2
  rise slow: 2
  siren slow: 2
  siren fast: 2
  small to big: 2
  solid: 1
  fast blink: 3
  slow blink: 4
LZW36_light_effects:
  'off': 0
  clear effect: 255
  aurora: 4
  blink: 4
  blink fast: 3
  blink medium: 4
  blink slow: 4
  chase: 2
  chase fast: 2
  chase medium: 2
  chase slow: 2
  fall fast: 2
  fall medium: 2
  fall slow: 2
  open close: 2
  pulse: 5
  rise fast: 2
  rise medium: 2
  rise slow: 2
  siren slow: 2
  siren fast: 2
  small to big: 2
  solid: 1
  fast blink: 3
  slow blink: 4
LZW36_fan_effects:
  'off': 0
  clear effect: 255
  aurora: 4
  blink: 4
  blink fast: 3
  blink medium: 4
  blink slow: 4
  chase: 2
  chase fast: 2
  chase medium: 2
  chase slow: 2
  fall fast: 2
  fall medium: 2
  fall slow: 2
  open close: 2
  pulse: 5
  rise fast: 2
  rise medium: 2
  rise slow: 2
  siren slow: 2
  siren fast: 2
  small to big: 2
  solid: 1
  fast blink: 3
  slow blink: 4
VZW31SN_effects:
  'off': 0
  clear effect: 255
  aurora: 8
  blink: 15
  blink fast: 2
  blink medium: 15
  blink slow: 3
  chase: 5
  chase fast: 17
  chase medium: 5
  chase slow: 16
  fall fast: 11
  fall medium: 10
  fall slow: 9
  open close: 6
  pulse: 4
  rise fast: 14
  rise medium: 13
  rise slow: 12
  siren fast: 18
  siren slow: 19
  small to big: 7
  solid: 1
  fast blink: 2
  slow blink: 3
VZM31SN_ZHA_effects:
  'off': 0
  clear effect: 255
  aurora: 8
  blink: 15
  blink fast: 2
  blink medium: 15
  blink slow: 3
  chase: 5
  chase fast: 17
  chase medium: 5
  chase slow: 16
  fall fast: 11
  fall medium: 10
  fall slow: 9
  open close: 6
  pulse: 4
  rise fast: 14
  rise medium: 13
  rise slow: 12
  siren fast: 18
  siren slow: 19
  small to big: 7
  solid: 1
  fast blink: 2
  slow blink: 3
VZM31SN_Z2M_effects:
  'off': 'off'
  clear effect: clear_effect
  aurora: aurora
  blink: blink
  blink fast: fast_blink
  blink medium: medium_blink
  blink slow: slow_blink
  chase: chase
  chase fast: fast_chase
  chase medium: chase
  chase slow: slow_chase
  fall fast: fast_falling
  fall medium: medium_falling
  fall slow: slow_falling
  open close: open_close
  pulse: pulse
  rise fast: fast_rising
  rise medium: medium_rising
  rise slow: slow_rising
  siren fast: fast_siren
  siren slow: slow_siren
  small to big: small_to_big
  solid: solid
  fast blink: fast_blink
  slow blink: slow_blink
VZM35SN_ZHA_effects:
  'off': 0
  clear effect: 255
  aurora: 8
  blink: 15
  blink fast: 2
  blink medium: 15
  blink slow: 3
  chase: 5
  chase fast: 17
  chase medium: 5
  chase slow: 16
  fall fast: 11
  fall medium: 10
  fall slow: 9
  open close: 6
  pulse: 4
  rise fast: 14
  rise medium: 13
  rise slow: 12
  siren fast: 18
  siren slow: 19
  small to big: 7
  solid: 1
  fast blink: 2
  slow blink: 3
VZM35SN_Z2M_effects:
  'off': 'off'
  clear effect: clear_effect
  aurora: aurora
  blink: blink
  blink fast: fast_blink
  blink medium: medium_blink
  blink slow: slow_blink
  chase: chase
  chase fast: fast_chase
  chase medium: chase
  chase slow: slow_chase
  fall fast: fast_falling
  fall medium: medium_falling
  fall slow: slow_falling
  open close: open_close
  pulse: pulse
  rise fast: fast_rising
  rise medium: medium_rising
  rise slow: slow_rising
  siren fast: fast_siren
  siren slow: slow_siren
  small to big: small_to_big
  solid: solid
  fast blink: fast_blink
  slow blink: slow_blink
zwave_models:
  - LZW30
  - LZW31
  - LZW30-SN
  - LZW31-SN
  - LZW36
  - VZW31-SN
zigbee2mqtt_models:
  - Inovelli 2-in-1 switch + dimmer (VZM31-SN)
  - Inovelli Fan Controller (VZM35-SN)
  - 2-in-1 switch + dimmer (VZM31-SN)
  - Fan Controller (VZM35-SN)
  - 2-in-1 switch + dimmer
  - Fan controller
zha_models:
  - VZM31-SN
  - VZM35-SN
allowed_domains:
  - fan
  - light
  - switch
parameters:
  LZW30_all_effect_bulk: 'null'
  LZW30_all_effect_color: 'null'
  LZW30_all_effect_brightness: 'null'
  LZW30_all_effect_duration: 'null'
  LZW30_all_effect_effect: 'null'
  LZW30_all_ledcolor: LED Indicator Color
  LZW30_all_ledbrightness: LED Indicator Intensity (When on)
  LZW30_all_ledbrightness_off: LED Indicator Intensity (When Off)
  LZW31_all_effect_bulk: 'null'
  LZW31_all_effect_color: 'null'
  LZW31_all_effect_brightness: 'null'
  LZW31_all_effect_duration: 'null'
  LZW31_all_effect_effect: 'null'
  LZW31_all_ledcolor: LED Indicator Color
  LZW31_all_ledbrightness: LED Indicator Intensity
  LZW31_all_ledbrightness_off: LED Indicator Intensity (When Off)
  LZW31SN_all_effect_bulk: 16
  LZW31SN_all_effect_color: 'LED Indicator: Effect Color'
  LZW31SN_all_effect_brightness: 'LED Indicator: Effect Brightness'
  LZW31SN_all_effect_duration: 'LED Indicator: Effect Duration'
  LZW31SN_all_effect_effect: 'LED Indicator: Effect Type'
  LZW31SN_all_ledcolor: 'LED Indicator: Color'
  LZW31SN_all_ledbrightness: 'LED Indicator: Brightness When On'
  LZW31SN_all_ledbrightness_off: 'LED Indicator: Brightness When Off'
  LZW30SN_all_effect_bulk: 8
  LZW30SN_all_effect_color: LED Effect Color
  LZW30SN_all_effect_brightness: LED Effect Brightness
  LZW30SN_all_effect_duration: LED Effect Duration
  LZW30SN_all_effect_effect: LED Effect Type
  LZW30SN_all_ledcolor: LED Indicator Color
  LZW30SN_all_ledbrightness: LED Indicator Brightness
  LZW30SN_all_ledbrightness_off: LED Indicator Brightness When Off
  LZW36_light_all_effect_bulk: 24
  LZW36_light_all_effect_color: Light LED Effect Color
  LZW36_light_all_effect_brightness: Light LED Effect Brightness
  LZW36_light_all_effect_duration: Light LED Effect Duration
  LZW36_light_all_effect_effect: Light LED Effect Type
  LZW36_light_all_ledcolor: Light LED Indicator Color
  LZW36_light_all_ledbrightness: Light LED Strip Brightness
  LZW36_light_all_ledbrightness_off: Light LED Strip Brightness When Off
  LZW36_fan_all_effect_bulk: 25
  LZW36_fan_all_effect_color: Fan LED Effect Color
  LZW36_fan_all_effect_brightness: Fan LED Effect Brightness
  LZW36_fan_all_effect_duration: Fan LED Effect Duration
  LZW36_fan_all_effect_effect: Fan LED Effect Type
  LZW36_fan_all_ledcolor: Fan LED Indicator Color
  LZW36_fan_all_ledbrightness: Fan LED Strip Brightness
  LZW36_fan_all_ledbrightness_off: Fan LED Strip Brightness When Off
  VZW31SN_all_effect_bulk: 99
  VZW31SN_all_effect_color: All LED Strip Effect - Color
  VZW31SN_all_effect_brightness: All LED Strip Effect - Level
  VZW31SN_all_effect_duration: All LED Strip Effect - Duration
  VZW31SN_all_effect_effect: All LED Strip Effect - Effect
  VZW31SN_all_ledcolor: Default All LED Strip Color When On
  VZW31SN_all_ledcolor_off: Default All LED Strip Color When Off
  VZW31SN_all_ledbrightness: Default All LED Strip Brightness When On
  VZW31SN_all_ledbrightness_off: Default All LED Strip Brightness When Off
  VZW31SN_1_effect_bulk: 64
  VZW31SN_1_effect_color: LED1 Strip Effect - Color
  VZW31SN_1_effect_brightness: LED1 Strip Effect - Level
  VZW31SN_1_effect_duration: LED1 Strip Effect - Duration
  VZW31SN_1_effect_effect: LED1 Strip Effect - Effect
  VZW31SN_2_effect_bulk: 69
  VZW31SN_2_effect_color: LED2 Strip Effect - Color
  VZW31SN_2_effect_brightness: LED2 Strip Effect - Level
  VZW31SN_2_effect_duration: LED2 Strip Effect - Duration
  VZW31SN_2_effect_effect: LED2 Strip Effect - Effect
  VZW31SN_3_effect_bulk: 74
  VZW31SN_3_effect_color: LED3 Strip Effect - Color
  VZW31SN_3_effect_brightness: LED3 Strip Effect - Level
  VZW31SN_3_effect_duration: LED3 Strip Effect - Duration
  VZW31SN_3_effect_effect: LED3 Strip Effect - Effect
  VZW31SN_4_effect_bulk: 79
  VZW31SN_4_effect_color: LED4 Strip Effect - Color
  VZW31SN_4_effect_brightness: LED4 Strip Effect - Level
  VZW31SN_4_effect_duration: LED4 Strip Effect - Duration
  VZW31SN_4_effect_effect: LED4 Strip Effect - Effect
  VZW31SN_5_effect_bulk: 84
  VZW31SN_5_effect_color: LED5 Strip Effect - Color
  VZW31SN_5_effect_brightness: LED5 Strip Effect - Level
  VZW31SN_5_effect_duration: LED5 Strip Effect - Duration
  VZW31SN_5_effect_effect: LED5 Strip Effect - Effect
  VZW31SN_6_effect_bulk: 89
  VZW31SN_6_effect_color: LED6 Strip Effect - Color
  VZW31SN_6_effect_brightness: LED6 Strip Effect - Level
  VZW31SN_6_effect_duration: LED6 Strip Effect - Duration
  VZW31SN_6_effect_effect: LED6 Strip Effect - Effect
  VZW31SN_7_effect_bulk: 94
  VZW31SN_7_effect_color: LED7 Strip Effect - Color
  VZW31SN_7_effect_brightness: LED7 Strip Effect - Level
  VZW31SN_7_effect_duration: LED7 Strip Effect - Duration
  VZW31SN_7_effect_effect: LED7 Strip Effect - Effect
floor: []
area: []
group: []
device: []
entities_from_floor: []
entities_from_area: []
entities_from_group: []
entities_from_device: []
entities_from_entity:
  - light.bathroom_ceiling
all_selected_entities:
  - light.bathroom_ceiling
context:
  id: 01JHBPV3DVE3NY84KGP21RA4MV
  parent_id: null
  user_id: 1487dae8af2c42519eff6a9e6a0dc041
LEDnumber: all
LEDcolor: no change
LEDbrightness: 11
duration: 0
effect: clear effect
brightness: 11
color: no change

I’ve joined discord but I don’t know how to find you. I used my real name so you can find me. That’s okay on the internet; right? Anyway…

entity: light.bathroom_ceiling
LEDcolor_off: no change
LEDbrightness_off: 11

That didn’t get the LEDcolor_off or LEDbrightness_off values. Are you calling the script from the actions tab or from an automation? The output looks like it was run with all the defaults; just the entity_id and nothing else. You seem to be using the script–not the blueprint–so I’ve run the script with:

action: script.inovelli_led
data:
  entity: light.office
  LEDcolor_off: RED
  LEDbrightness_off: 2

I get these changed variables (excluding the stuff that isn’t changed) and you can see it picks up my entity_id and the variable values. It’s already converted RED to lowercase as well.

this:
  entity_id: script.inovelli_led
  state: 'off'
  attributes:
    last_triggered: '2025-01-11T23:13:08.602682+00:00'
    mode: parallel
    current: 0
    max: 100
    friendly_name: Inovelli LED Settings and Effects
  last_changed: '2025-01-11T23:13:08.619781+00:00'
  last_reported: '2025-01-11T23:13:08.619781+00:00'
  last_updated: '2025-01-11T23:13:08.619781+00:00'
  context:
    id: 01JHBT92FRQA9YZ3SWN0QP1BVV
    parent_id: null
    user_id: 0fde3f07079c4ffb9a19109e66b667d7
entity: light.office
LEDcolor_off: red
LEDbrightness_off: 2

I see two service calls: one for the color and one for the brightness.

Executed: January 11, 2025 at 3:13:14 PM
Result:
params:
  domain: mqtt
  service: publish
  service_data:
    topic: zigbee2mqtt/Office/set
    payload:
      ledColorWhenOff: 0
  target: {}
running_script: false

and

Executed: January 11, 2025 at 3:13:14 PM
Result:
params:
  domain: mqtt
  service: publish
  service_data:
    topic: zigbee2mqtt/Office/set
    payload:
      ledIntensityWhenOff: 20
  target: {}
running_script: false

My device in MQTT looks like yours as well:


image

Did you import the blueprint and then call it like a script from the Developer Tools → Actions tab? I don’t think that will work. If you imported the blueprint, you’ll have to navigate to Settings → Automations & Scenes → Blueprints (at the top), click on my blueprint (whatever you named it) to open the configuration UI. Configure it however you’d like and save it as a script. It’s then a static script which won’t accept inputs from the Actions tab. In other words, you can’t set it for red one time and blue another time. You’d need to open the blueprint, configure it for red, save it as Inovelli_red_leds and then do it again to generate inovelli_blue_leds. Calling those will do the needful but you need to save it as a statically-configured script for each configuration you want.

Personally, I find it limiting and so I don’t use blueprints very much. If you want to call it with different values that can be templated in automations, you’ll need to save the script as a script. To do that, go to the github link and open the inovelli_leds.yaml file. Copy the contents. In Home Assistant, navigate to Settings → Automations & Scenes → Scripts (at the top), then click on the “+ Create Script” button in the lower-right corner. On the dialog box that pops up, click “create a script” to open a new script editor. In the upper-right click the vertical ellipsis menu and “edit in YAML”. Delete everything you see there and paste in the contents from github. After you save it, you can call the script with dynamic values from templates. To update the script you’ll have to edit it again and copy / paste the contents but it’s so much more powerful than using a statically configured blueprint. That’s my opinion, anyway.

Thanks, Kevin. Just getting into the Inovelli switches and have been trying to get the script up and running. I’ve gone ahead and manually imported the contents of inovelli_led.yaml into a script. Is the best practice for dynamic attributes to call the script inside an animation? When I do it this way, I can’t get any changes pushed to the light switches (VZW31-SN 800 Series). The only time I can call the script successfully is through developer actions tab. I assume I’m doing something wrong. Appreciate any insight.

Thanks for checking out my script! The only way to use dynamic attributes today is to call it as a script. I don’t know how to do it with blueprints (but I’m happy to learn if someone points me at the right documentation or an example).

In the screenshot you’ve sent, the script has no way of knowing which switches you want cleared. You’ll have to pass a value to any—or any combination—of:

  • floor
  • area
  • group
  • device
  • entity

Try some of the examples in the readme. This one should work, assuming you have things assigned to areas:

service: script.inovelli_led
data:
  area: 'all'
  duration: 'Forever'
  effect: 'Fast Blink'
  brightness: 8.7
  color: 'light pink'

and to clear it:

service: script.inovelli_led
data:
  area: 'all'
  LEDnumber: 'all'
  LEDcolor: 'all clear'
  LEDcolor_off: 'all clear'

If you want to template the values, I think you need to call it with data_template: (although this is off the top of my head and I could be wrong). Here’s an example of what that might look like, to get you pointed in the right direction:

- service: script.inovelli_led
  data_template:
    entity: "{{ trigger.entity_id }}"
    LEDcolor: "{{ iif(is_state('sensor.day_or_night','day'), 'green', 'red') }}"
    LEDcolor_off: "{{ iif(is_state('sensor.day_or_night','day'), 'green', 'red') }}"
    LEDbrightness: "{{ iif(is_state('sensor.day_or_night','day'), 7, 4) }}"
    LEDbrightness_off:  "{{ iif(is_state('sensor.day_or_night','day'), 7, 4) }}"

Thank you! So I went ahead and did the script import through the configuration.yaml change and putting your script on Github in that folder and am now able to build automations around this, awesome! :slight_smile: This might be out of scope of this thread, but how do you clear a notification signal after you’re done with it. I built an automation that just has blank entries, but wondering if there is a way to use the config button on the switch to trigger it?

I’ve only included the Z-Wave config button single-press, but from developer toolsevents → you can listen to zwave_js_value_notification and figure out the rest of what you need.

Trigger:

alias: ZWave Config1
trigger: event
event_type: zwave_js_value_notification
event_data:
  value: KeyPressed
  property_key: "003"

An action to clear an effect on any Inovelli in the room would look something like:

service: script.inovelli_led
data:
 area: "{{ area_name(trigger.event.data.device_id) }}"

Or you can clear that single device with:

service: script.inovelli_led
data:
 entity: "{{ trigger.event.data.device_id }}"

You only need to pass the entity or area because the script’s default behavior is to clear the effects if it has no other information.

The trigger.event.data.device_id comes from the automation trace → “changed variables”:

this:
  entity_id: automation.konami_code_inovelli
  state: 'on'
  attributes:
    id: '1738459388808'
    last_triggered: '2025-02-15T23:13:48.167214+00:00'
    mode: single
    current: 0
    friendly_name: Konami Code - Inovelli
  last_changed: '2025-02-15T22:59:39.150680+00:00'
  last_reported: '2025-02-15T23:13:48.235482+00:00'
  last_updated: '2025-02-15T23:13:48.235482+00:00'
  context:
    id: 01JM5Y7E453VCFG7C9SZ34N1R2
    parent_id: 01JM5Y7E454WDK2EEYHQ61GGYY
    user_id: null
trigger:
  id: '21'
  idx: '21'
  alias: ZWave Config1
  platform: event
  event:
    event_type: zwave_js_value_notification
    data:
      domain: zwave_js
      node_id: 21
      home_id: 4273143618
      endpoint: 0
      device_id: ea4b30c2e86d6dc39747ca7b72654f45
      command_class: 91
      command_class_name: Central Scene
      label: Scene 003
      property: scene
      property_name: scene
      property_key: '003'
      property_key_name: '003'
      value: KeyPressed
      value_raw: 0

This is from my “Konami code” automation which handles multi-click events from Inovelli devices. You should see something similar in your automation.

Maybe I misunderstood your question. In the Z-Wave JS to MQTT UI you should have a configuration parameter to do that with a double click. I think that’s what it does, anyhow. I don’t use it; double clicks do something else in my house.

wonderful - Do you have a pateron or allow Github sponsors? Would love to support your work.

I appreciate that. :slight_smile: There’s no need though; I just do this for fun.

1 Like

Okay new question! How are you triggering your code snippets like below?

service: script.inovelli_led
data:
  area: 'all'
  duration: 'Forever'
  effect: 'Fast Blink'
  brightness: 8.7
  color: 'light pink'

When I’m creating an automation, I select the Inovelli script as my action and then edit the YAML. But when saving, it changes some key things.

Before Save

After Save it’s shown like this:

data:
  area: []
  duration: Forever
  effect: Fast Blink
  brightness: 8.7
  color: light pink
action: script.inovelli_led

If it’s removing the single quotes, it’s probably fine. Under the circle with a question mark in it, click the vertical ellipsis and you should see an option called “run action” which you can use to test it. Be sure you’re using the correct name of the script. In your first post, it looks like you called it something else. You should be able to copy and paste the code from “developer tools” → “actions” if you run into trouble.

The update this morning now supports labels. It will pick up labels on entities, devices, or areas. Whatever method you’ve been using should work; you don’t need to re-label your light.* entities. Using groups, entities, or labels on devices and entities should give you the fastest results because there’s less for the script to search through to find the appropriate Inovelli entities. Areas and floors might have a lot to search through, so they might be slower (especially floor: all, since it’ll look at every entity on every device in the house).

1 Like

I just ran across this script and looks amazing. Thanks for all the hard work!

I tried to Create A Script from the blueprint, but I was unable to configure it as expected. I noticed is that everything seems to be required fields:

If I want to specify specific devices or entities, is there really a reason to specify labels, floors or groups? Additionally, is there any way to specify default switch values (for things like brightness, colors, etc)?

Or is there a different way that I should be using/configuring it?

Thanks!

Eric

Thanks for trying it out!

Try refreshing the browser page, or maybe selecting something and then clicking the X to clear it. Nothing should be required. If you can’t figure it out, let me know and I can take a look tomorrow. Maybe I have a typo but I can see it’s not set to required:

    label:
      name: Label
      description: Labels on Inovelli devices and entities, or areas containing Inovelli devices.
      #required: false
      #example: 'christmas lights, bedrooms, fans'
      #default: 'invalid'
      selector:
        label:
          multiple: true

There’s not a way to set default brightness or color. If they aren’t specified in the configuration, they’re simply left alone. You can send values for every parameter or just color, for example. If you want to set an effect, however, you’ll have to configure all of the effect options.

If you want a script you can configure dynamically, you’ll have to save this as a script. There are instructions for that on the github page in post 1. I use the script version with templates:

    - service: script.inovelli_led_controller
      data_template:
        area: office
        color: "{{ iif(is_state('sensor.day_or_night','day'), 'green', 'red') }}"
        brightness: "{{ iif(is_state('sensor.day_or_night','day'), 7, 4) }}"
        brightness_off: "{{ iif(is_state('sensor.day_or_night','day'), 3, 1) }}"