Group scenes for Blue switch LED effects?

There are some notifications that I’d like to display on the LEDs of multiple Blue switches in different parts of the house. I’m hoping that there’s some way to do this with group scenes, but when I look at this in Z2M’s Groups page, it looks like if I was to create a scene there, it would also include the on/off state and brightness of each switch’s load, and not just the LED effect.

So is there some way to create a scene that only affects specific values and doesn’t touch others?

I don’t believe Z2M supports any of the led effects in scenes:

I’d be extremely interested to learn that I’m wrong, though! Unsure is this is a Z2M thing vs ZigBee spec.

You CAN create scenes that only update certain [supported] attributes of a device, though (documented in that link) e.g. I “pre-stage” my hue bulbs by setting a network-wide group scene that only tells them to change their color temp, but not to turn on or off. This way, bulbs that are currently on stay on and those that are off stay off (but will immediately be the correct color temp when they are turned on via a bound switch).

So if that’s the case, is it at least possible to somehow send the same LED effect commands to a group, thereby making automations slightly less of a nightmare?

And just saw your edit… I’ll try to decipher the info at that link. Thanks. I was hoping for a GUI method of doing this.

I haven’t tried it, but I see no reason it wouldn’t work: Z2M supports updating groups with anything you could update a single device with. I’m hitting the limits of my knowledge here quickly, though so don’t want to steer you in the wrong direction.

Yeah, I’m trying to figure out how to actually do it from an automation. Might require a service call?

Yes, looks like you can call the mqtt.publish service to send messages. I use NodeRed for all of my automations so I’m not too familiar with HA’s capabilities there.

1 Like

@euggersh were you able to figure out a solution? I have single switches set up to display effects while certain automations are running, but it’d be awesome if I could easily apply the effect to a group instead.

I use zha instead of z2m so I don’t know how much of this will work for you but this is my approach for sending notifications to all of my switches. I have two different scripts to make this work:

alias: Send Inovelli Notification
sequence:
  - service: zha.issue_zigbee_cluster_command
    data_template:
      cluster_type: in
      ieee: "{{ieee_id}}"
      endpoint_id: 1
      cluster_id: 64561
      command: 1
      command_type: server
      params: "{{command_args}}"
mode: parallel
icon: mdi:bell
max: 100

This script takes the ieee_id of the switch and the args for the event. Those are supplied by the script below.

alias: Trigger Switch Notification
sequence:
  - alias: Iterate through switch notifications
    repeat:
      count: "{{ ieee_ids | count }}"
      sequence:
        - variables:
            ieee_id: "{{ ieee_ids[repeat.index - 1] }}"
        - service: script.turn_on
          data_template:
            variables:
              command_args: 
                led_effect: 1
                led_color: 1
                led_level: 99
                led_duration: 255 
              ieee_id: "{{ieee_id}}"
          target:
            entity_id: script.send_inovelli_notification
variables:
  ieee_ids: |-
    {% set result = namespace(ids=[]) %}
    {% for state in states.light %}
      {% if device_attr(state.entity_id, 'model') == 'VZM31-SN' %}
        {% set result.ids = result.ids + [(device_attr(state.entity_id, 'identifiers')|list).0.1] %}
      {% endif %}
    {% endfor %}{{ result.ids }}
mode: single
icon: mdi:bell

The script works by finding the ieee_ids of all lights that match the blues model number. It then iterates through all of the ieee_ids and sends cluster commands to each individual switch.

You can calculate the values for command args as follows:

You can also technically combine this into one script, but zha sometime fails to send a command to a single switch. If it’s one script that causes the whole thing to fail. By breaking it out into another script only that single switch notification fails instead.

2 Likes

I haven’t managed to do this yet. I was hoping for a simple UI solution but this appears to be more hacky than I have time to figure out.

I wrote a Home Assistant Blueprint that will call multiple lights at a time in a loop.
[Z2M] Inovelli VZM31-SN Blue Series 2-1 Switch LED Notification Script - Blueprints Exchange - Home Assistant Community (home-assistant.io)

I haven’t had time to group switches together in Z2M so I haven’t tested this on Z2M groups. But it works great when calling single or multiple switches at a time.

1 Like

I use Z2M, and am trying to set the LEDs for a group of switches. Eventually it’ll probably have a dozen or more switches, which is why I really want to use a group rather than iterating all the switches one-by-one. My Zigbee network already has 150 devices, and it continues to grow, so it’s very important to me to avoid unnecessary network chatter wherever possible.

I’ve been testing by directly sending MQTT messages to rule out any weirdness or limitations of the main automation software (as well as genericize it since we don’t all use the same thing). I created a group with just two 2-in-1 switches to test things out. I’m able to send the message json {"individual_led_effect":{"effect":"solid","color":170,"level":100,"duration":255,"led":"2"}} to zigbee2mqtt/Mud Room Cans Switch/set and it works for a single switch just fine. But trying to send it to zigbee2mqtt/Inovelli Status/set I get an error message Publish 'set' 'individual_led_effect' to 'Inovelli Status' failed: 'Error: Cluster with name 'manuSpecificInovelli' does not exist'. So it seems like Z2M isn’t exposing clusters that are common to all member devices. Boo.

My next thought is to try the lower-level interface where you can directly write to Zigbee clusters, hoping that will bypass any cluster-existence checks. I worked out the message I need to send is

{
  "command": {
    "cluster": 64561,
    "command": 3,
    "payload": { "effect": 1, "led": 2, "color": 170, "level": 100, "duration": 255}
  }
}

But again, it works for the switch alone, but not the group. The error message is slightly different: 2025-02-10 18:29:45z2m: Publish 'set' 'command' to 'Inovelli Status' failed: 'Error: Cluster '64561' has no command '3''

I asked on the Z2M discord, and the response I got was basically “it would be too complicated to create groups that allow things based on specific devices. and the devices probably wouldn’t support it anyway.” Which seems like a cop-out. Besides simplifying my automations that set status LEDs, I really want this to work for efficiency reasons on my large-and-growing network.

So… can anyone (@Eric_Inovelli or Brianna_Inovelli maybe?) confirm that the Blue Series switches (of any model, but in particular the 2-in-1s) will accept the led effect commands when addressed to a group? And do you know how to send such a command (preferably with Z2M, but with any Zigbee controller software would be acceptable)? @areese159: perhaps ZHA would allow such a thing, and you can attempt to send your command to a group instead of an individual switch?

And… I’ve answered my own questions. feat: Allow using custom clusters with groups by ccutrer · Pull Request #1318 · Koenkk/zigbee-herdsman · GitHub is a PR that will allow Zigbee2MQTT to send manufacturer specific writes and commands to groups (assuming every member of the group supports the cluster - I didn’t want to get too aggressive and allow commands to the group if any member of the group supports it). With that, I’m now able to set defaultLevelLocal to an entire group at once. BUT… the LED commands do not work addressed to the group. @Brianna_Inovelli any chance we could get the firmware fixed to allow that? I currently have ~20 Inovelli switches (with ~20 more on pre-order!), and it’d very much help my network if I didn’t have to update status on switches individually.

1 Like

I’d like to second this. On my new house there will end up being ~60 Inovelli switches (just 15 more to go!). I plan to use the notifications to show things like grid status, door lock status, doors/windows open, and garage door status in each room and at each door, so about 20 of the switches will be getting the notifications when it happens.

Not sure why you’re tagging Brianna. She left Inovelli 3-4 years ago. You want @EricM_Inovelli for firmware related requests.

I will put my vote for the feature as well.

Thanks. I was unsure. This is my first time posting on the forum (I’ve read a few historic threads, but not tons). Several of the employee AMAs I found from 2021-ish (including Eric’s, from what I can tell) have been re-parented to Briana, so I figured it had gone the other way around.

This may be somewhat related on the ZHA side of things: Feature Request: group support in zcl_cmd · Issue #281 · mdeweerd/zha-toolkit · GitHub

Ideally, if there were a way to send notifications via groups, it would be supported natively in ZHA instead of needing ZHA toolkit, so hopefully if this lands in Z2M, we can get the same functionality working in one way or another in ZHA.