Control LEDs and LED Effects on Inovelli Black, Red, and Blue 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.