Settings → Devices & Services → Z-wave. Then, under “Z-Wave JS” click the option for devices. Mine says 56 devices. Open your VZW31-SN and send me a screenshot like the one below. The filter should be showing areas with “LZW36, LZW30-SN, LZW31-SN, VZW31-SN” devices in the Z-Wave JS integration and I wonder if the VZW31-SN shows up as something else.
I’m using the Z-Wave JS UI container (which used to be Z-Wave JS to MQTT) but I’m bringing it into Home Assistant through the Z-Wave integration and not the MQTT integration. If you’re bringing it in through MQTT that could be the issue but the area and device selectors are using - integration: zwave_js as a filter so I’d expect similar results from both. I can probably make this work through MQTT with a fair amount of work. Since smenzer added code to add the VZW31-SN through MQTT maybe it wouldn’t be too bad.
If you’re using the Z-Wave integration, maybe the issue is in the area selector. Perhaps it can’t take a list of device models. Can you change this bit of code near the top from this:
If that still gives you goofy results, go to developer tools → template, delete what you have on the left side and paste this. It’ll give you a list of light.* switch.* and fan.* entities for each area in your house and tell you what the model is. If you find the Inovelli entities with anything other than LZW36, LZW30-SN, LZW31-SN, or VZW31-SN (e.g. “Inovelli 2-in-1 switch + dimmer (VZM31-SN)”) let me know. It’s going to give you a lot of blank spaces, so you might want to copy the results into a text editor that’s easier to work with.
{{ integration_entities(zwave_js) }}
{% set allowed_domains = 'fan, light, switch' %}
{% set area_array = namespace(area_list=[]) %}
{% set area_array.area_list = areas() %}
{% for area in area_array.area_list %}
{{ area_name(area) }}
{% for ent in area_entities(area) %}
{% if ent.split('.')[0] in allowed_domains %}
{{ device_attr(ent,'model') }}: {{ ent }}
{% endif %}
{% endfor %}
{% endfor %}
I thought about this after posting: I am also using Z-Wave JS (formally Zwave2MQTT) so that can’t be it.
Nevertheless, I did follow your directions and am still running into the same issue. With the template specifically, I only see the four switches, and they all appear to match the correct models. When I look at the ‘Bedroom’ area it shows only my Lutron switches and no Inovelli, but as you’ve seen in the ‘area’ part of the script it is pulling as if there is a valid light there. I’m not overly concerned since the rest of the script seems to be working.
Do the entities show up in a different area? It dawned on me last night that the model names must be right because, like the integration, it’s the same filter that’s working for the “Devices” selector. There must be something about the area specifically for these entities that’s causing confusion. I was thinking maybe the entity was assigned to a different area than the device but it sounds like there’s no Inovelli entity showing up in the Bedroom but it’s being selected anyway. I genuinely don’t understand how the selector thinks there’s an entity in that area if the code in the template editor shows that it’s assigned somewhere else.
At this point I think it’s something in your setup and not my script but I’d be interested in pursuing this in another thread to understand it better. We’d probably get help from the rest of the community as well. I think I’m out of ideas. I feel like the “areas” feature is one of the best in this script. I template a lot of automations that basically say “whatever room that just happened in, configure those Inovelli’s with this alert effect.” That’s not going to work for you right now, it seems.
That’s what I’m finding weird, is that the ‘areas’ look to be correct. I downloaded Spook from HACS to try and clean up my system a bit and remove old entities. Looks as though it actually changed what is appearing under the area but they are still not right.
The screenshot above does show confirmation that the ‘Basement’ area houses the ‘Hot Tub Lights’ so all appears fine there. ‘Devices’ selector continues to work 100% correctly for both models of switches i own.
I can confirm there is no Inovelli switch in the bedroom, just Lutrons. The template you provided does show correctly for all 4 switches. I like the ‘area’ idea although admittedly i dont put much focus on it when configuring until recently when i used auto entities for light switches in various rooms. That prompted me to start the clean up since it makes dashboarding so much easier.
I’m genuinely interested in seeing how this can be fixed and would love to help if you are looking to start another thread.
[Update 2024-01-24] Some of the Blue Series effects didn’t map right to the Inovelli toolbox, so I suspect the wrong effects were showing up for users with Blue Series devices.
Support was added for the original Black 500 Series devices. @thechickening was asking for this awhile back.
I’ve also mapped all of the new Red 800 Series and Blue Series effects back to the old Red 500 Series devices. If you have a mix of devices that support the new effects and those that don’t (Red 500 series or Black 500 Series), you shouldn’t get any errors. The effects have been remapped to something the device does support (or entirely disabled, in the case of Black 500 Series devices).
Effects have been renamed so they’re easier to find in the dropdowns. Inovelli’s effects (e.g.):
Blink
Fast Blink
Slow Blink
Are now:
Blink Slow
Blink Medium
Blink Fast
As always, I’ve tried to maintain backwards compatibility so if you have automations or templates using “fast blink” that has been mapped onto Blink Fast and it’ll continue to work. You don’t need to update anything.
I’ve renamed the github project as well, since it’s not much more than just the Red Series. The old link should still work.
If anyone has a Red 800 Series “2-in-1” device, I could use some help testing some new code to enable brightness in steps of 1 instead of 10. Previously the script and blueprint could only set brightness to 10%, 20%, … 100%. The new code will set it from 1% to 100% in steps of one for Red 800 Series and Blue Series devices. I don’t have any Red 800 Series devices to test.
Red 500 Series and Black 500 Series are limited by the device to only support steps of 10% so this feature doesn’t apply to these devices.
Click on “Settings” in the left-hand navigation pane.
“Automations & Scenes”
“Scripts” near the top in a horizontal menu / tab.
Blue, “+ Add Script” button in the lower-right.
“Create new script”
In the upper-right click the vertical ellipsis (three dot) menu and then “edit in Yaml”.
Delete the pre-populated lines.
Open a new tab
In Github (“Beta code to test” link above)
Since this hasn’t been merged into master yet, in the left-hand nav pane, under files, there’s a drop-down that says “master”. Change that to “Zigbee2MQTT-Inovelli-Device-Name-Change”.
On the right side, click the “copy raw file” in between the “raw” and “download” buttons.
In Home Assistant:
Paste the contents into the Yaml editor.
In the vertical ellipsis select “Edit in Visual Editor”
Blue, “Save Script” button in the lower right.
To test the script, you can use “developer tools” → “Services” and type “Inovelli LED Settings and Effects” to use the UI, and “Go to Yaml Mode” to see the code for automations. That code can be modified with templates.
I have a mix of LZW31 and VZM31-SN and was hoping to simplify my light notification automation and this looks to fit the bill, but I’ve run into a couple road blocks though and wanted to get some clarification.
Inititally, I couldn’t get this to work for any of my light switches, but after digging through the yaml, I realized it wasn’t working for the Zigbee switches because the topic is hardcoded as zigbee2mqtt. No worries, I can adjust for my setup.
The LZW31 doesn’t have ‘Effect’, ‘Effect Color’, ‘Effect Brightness’ zwave parameters and therefore don’t have an effect when using your script. For those switches, I need to adjust ‘LED Color When On (non-effect)’, ‘LED Brightness When On (non-effect)’, and ‘LED Brightness When Off (non-effect)’ to get any change. It isn’t clear in your script whether that’s the intended use so I justed wanted to clarify.
I could make the topic a variable and just default it to zigbee2mqtt. That wouldn’t be hard to do. I bet it only takes me an hour, so maybe I can do it later this week if that would be helpful.
The LZW31 Black Series does not have any effects as far as I can tell in its documentation, so the script ignores those settings for the LZW31. You can still pass it those parameters and a mix of LZW31 and VZM31-SN switches. It should silently ignore the effect settings for the LZW31s and not generate any errors.
I don’t think a topic variable is necessary. I doubt many people would need it and it was an easy fix on my end.
Right. I was just saying this isn’t very clear when setting up the script. It might save somebody else a bit of troubleshooting time if that was stated somewhere, e.g., use settings a & b for switches type w & x, but use settings c & d for switches y & z.
Added “selector_mode” logic to match entities from ANY selectors (logical OR) or ALL selectors (logical AND).
Compare selecting entities that are upstairs or bathrooms, with selecting entities that are upstairs bathrooms. The former will select all entities in upstairs bedrooms and hallways, as well as bathrooms which are upstairs or downstairs, while the latter will only select entities in the upstairs bathrooms (but not the downstairs bathrooms, or any bedrooms).
Domain filters to select all fans, lights, or switches. Combine this with selector_mode: 'all' to set all fans downstairs, or all lights in the office.
Defaults have been updated so they don’t pre-populate fields with 'invalid’ and blueprints don’t require every field to be set.
Blueprints are different from scripts in strange ways that are frustrating for me.
Script service calls, and blueprints that were generated before this release will continue to function in the same way. Despite the new fields, they do not need to be updated. There should be no breaking changes in this release.