Home Assistant - 2nd Gen Switch RGB working!

I was looking over this again, and I can’t believe I didn’t notice this before. There may be a problem with the calculator I linked to above. The duration of the notification in parameter 16 is actually calculated with the below as the 3rd byte.

1-60 is in seconds

61-120 is in minutes
calculated by(value-60)
Example a value of 65
would be 65-60 = 5
minutes

120-254
Is in hours calculated
by(value-120)
Example a value of 132
would be 132-120 would
be 12 hours.

255 Indefinitely

Until the other calculator is fixed, can you try this one?

I just recently got my switches and started playing with notifications yesterday with the same problems mentioned. I just found this thread and tried the updated Google Sheet. I tested 10 seconds and 4 minutes which both worked for the expected durations. Thanks for the update!

1 Like

I’ll update this tonight and see if it fixes the issue!

For those you following this thread for the issues with notification duration length, I have updated the logic in my notification calculator to match the logic provided by @EricM_Inovelli. Once again that application is found here : https://nathanfiscus.github.io/inovelli-notification-calc/

5 Likes

I ended up using this. Timing works as expected now! Thanks for updating it.

Anybody using node-red might find this useful for decoding scenes. I got inspired by the notification node @pdong made. This one is the flip side, for handling scene activations.
It just takes the input msg from home assistant (or anything that has the same scene_id and scene_data) values) and adds two new properties (button and click_count). This way it’s easier to build logic on button and click_count instead of scene codes.

2 Likes

@platup I created an account here just so I could thank you! I was getting frustrated that my zwcfg was overwritten constantly.

I’ll have to try that out. Alternately, there is a solid sub-flow published here that I’ve been using. Only downside is the “node” is massive.

1 Like

I took a stab at creating a Home Assistant script to update the status led. I am really happy with the results, so I wanted to share The script can be called with some pretty straight forward parameters.

- service: script.inovelli_led
  data:
    entity_id: zwave.dimmer_family_room
    color: purple
    duration: 10 seconds
    effect: chase
    level: 10

As an experiment I am using Cyan to represent and unlocked Front Door and Purple to indicate an open Garage Door. Anyway, it was a fun exercise. If anyone would like to see the full code, I posted them here.

1 Like

I was having the same problem, thanks for pointing me in the right direction by looking at the issecured flag.

I just started using Node-Red this week with Home Assistant and the Inovelli Dimmer is the main reason why. I have a long way to go but I came up with this flow building off of the Status Manager. I have three Schlage Z-Wave Touchscreen Deadbolts and wanted to get a notification on one of my switches and be able to add others later on. I only wanted the unlock notification to go off every 5 minutes if one of them is still unlocked then give a notification to confirm they are locked.

I was able to use the Scene Manager flow/sub-flow to activate the config button to lock all my locks.

I hope this can help someone that was stuck in a spot like I was with limited Node-Red experience.

JSON:
[{“id”:“61b76373.302b7c”,“type”:“tab”,“label”:“Lock Status”,“disabled”:false,“info”:""},{“id”:“81003715.213b38”,“type”:“inovelli-status-manager”,“z”:“61b76373.302b7c”,“name”:“Doors Unlocked”,“nodeid”:“3”,“color”:“1”,“level”:10,“duration”:“10”,“display”:“5”,“switchtype”:“16”,“x”:380,“y”:320,“wires”:[[“cb42f4af.184648”,“68b4af8.de1605”,“fc7913cb.4df7d”,“9ab834c0.f968c8”]]},{“id”:“fc7913cb.4df7d”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“d”:true,“name”:“node 1”,“server”:“627c2fbf.e0dc3”,“version”:“1”,“debugenabled”:false,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{ “node_id”: 1 }",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:770,“y”:180,“wires”:[[]]},{“id”:“68b4af8.de1605”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“d”:true,“name”:“node 2”,“server”:“627c2fbf.e0dc3”,“version”:“1”,“debugenabled”:false,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{ “node_id”: 2 }",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:770,“y”:220,“wires”:[[]]},{“id”:“9ab834c0.f968c8”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“name”:“Living Room Dome (Node 3)”,“server”:“627c2fbf.e0dc3”,“version”:1,“debugenabled”:true,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{“node_id”:3}",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:680,“y”:320,“wires”:[[]]},{“id”:“cb42f4af.184648”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“d”:true,“name”:“node 4”,“server”:“627c2fbf.e0dc3”,“version”:“1”,“debugenabled”:false,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{ “node_id”: 1 }",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:770,“y”:260,“wires”:[[]]},{“id”:“60824a63.90c334”,“type”:“comment”,“z”:“61b76373.302b7c”,“name”:“Deabolts Locked or Unlocked (Node 3)”,“info”:“Note: node id is not set on the status manager, it is set on the svc calls and the svc call only inherits the value and other params”,“x”:590,“y”:80,“wires”:[]},{“id”:“790719fd.e86968”,“type”:“inovelli-status-manager”,“z”:“61b76373.302b7c”,“name”:“Doors Locked”,“nodeid”:“3”,“color”:“94”,“level”:10,“duration”:“10”,“display”:“2”,“switchtype”:“16”,“x”:380,“y”:400,“wires”:[[“6575a7e7.e38658”,“6271d103.f18b9”,“b5ca6484.872538”,“56123af2.92bf74”]]},{“id”:“6575a7e7.e38658”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“name”:“Living Room Dome (Node 3)”,“server”:“627c2fbf.e0dc3”,“version”:1,“debugenabled”:true,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{“node_id”:3,“parameter”:16,“value”:17435223}",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:680,“y”:400,“wires”:[[]]},{“id”:“8979c432.70a668”,“type”:“server-state-changed”,“z”:“61b76373.302b7c”,“name”:“Front Door Status”,“server”:“627c2fbf.e0dc3”,“version”:1,“exposeToHomeAssistant”:false,“haConfig”:[{“property”:“name”,“value”:""},{“property”:“icon”,“value”:""}],“entityidfilter”:“lock.front_door”,“entityidfiltertype”:“exact”,“outputinitially”:false,“state_type”:“str”,“haltifstate”:“unlocked”,“halt_if_type”:“str”,“halt_if_compare”:“is”,“outputs”:2,“output_only_on_state_change”:true,“x”:110,“y”:300,“wires”:[[“81003715.213b38”],[“790719fd.e86968”]]},{“id”:“b07dcbd4.b727e8”,“type”:“server-state-changed”,“z”:“61b76373.302b7c”,“name”:“Garge Door Status”,“server”:“627c2fbf.e0dc3”,“version”:1,“exposeToHomeAssistant”:false,“haConfig”:[{“property”:“name”,“value”:""},{“property”:“icon”,“value”:""}],“entityidfilter”:“lock.garage_door”,“entityidfiltertype”:“exact”,“outputinitially”:false,“state_type”:“str”,“haltifstate”:“unlocked”,“halt_if_type”:“str”,“halt_if_compare”:“is”,“outputs”:2,“output_only_on_state_change”:true,“x”:110,“y”:420,“wires”:[[“81003715.213b38”],[“790719fd.e86968”]]},{“id”:“1a979b27.26c7c5”,“type”:“server-state-changed”,“z”:“61b76373.302b7c”,“name”:“Back Door Status”,“server”:“627c2fbf.e0dc3”,“version”:1,“exposeToHomeAssistant”:false,“haConfig”:[{“property”:“name”,“value”:""},{“property”:“icon”,“value”:""}],“entityidfilter”:“lock.back_door”,“entityidfiltertype”:“exact”,“outputinitially”:false,“state_type”:“str”,“haltifstate”:“unlocked”,“halt_if_type”:“str”,“halt_if_compare”:“is”,“outputs”:2,“output_only_on_state_change”:true,“x”:120,“y”:360,“wires”:[[“81003715.213b38”],[“790719fd.e86968”]]},{“id”:“56123af2.92bf74”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“d”:true,“name”:“node 4”,“server”:“627c2fbf.e0dc3”,“version”:“1”,“debugenabled”:false,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{ “node_id”: 1 }",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:770,“y”:540,“wires”:[[]]},{“id”:“b5ca6484.872538”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“d”:true,“name”:“node 2”,“server”:“627c2fbf.e0dc3”,“version”:“1”,“debugenabled”:false,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{ “node_id”: 2 }",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:770,“y”:500,“wires”:[[]]},{“id”:“6271d103.f18b9”,“type”:“api-call-service”,“z”:“61b76373.302b7c”,“d”:true,“name”:“node 1”,“server”:“627c2fbf.e0dc3”,“version”:“1”,“debugenabled”:false,“service_domain”:“zwave”,“service”:“set_config_parameter”,“entityId”:"",“data”:"{ “node_id”: 1 }",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:770,“y”:460,“wires”:[[]]},{“id”:“436c1c5c.7ab6f4”,“type”:“poll-state”,“z”:“61b76373.302b7c”,“name”:“Front Door”,“server”:“627c2fbf.e0dc3”,“version”:1,“exposeToHomeAssistant”:false,“haConfig”:[{“property”:“name”,“value”:""},{“property”:“icon”,“value”:""}],“updateinterval”:“5”,“updateIntervalUnits”:“minutes”,“outputinitially”:false,“outputonchanged”:false,“entity_id”:“lock.front_door”,“state_type”:“str”,“halt_if”:“unlocked”,“halt_if_type”:“str”,“halt_if_compare”:“is”,“outputs”:2,“x”:120,“y”:60,“wires”:[[“a52a72d4.2f374”],[“a52a72d4.2f374”]]},{“id”:“762775af.cf937c”,“type”:“poll-state”,“z”:“61b76373.302b7c”,“name”:“Grage Door”,“server”:“627c2fbf.e0dc3”,“version”:1,“exposeToHomeAssistant”:false,“haConfig”:[{“property”:“name”,“value”:""},{“property”:“icon”,“value”:""}],“updateinterval”:“5”,“updateIntervalUnits”:“minutes”,“outputinitially”:false,“outputonchanged”:false,“entity_id”:“lock.garage_door”,“state_type”:“str”,“halt_if”:“unlocked”,“halt_if_type”:“str”,“halt_if_compare”:“is”,“outputs”:2,“x”:110,“y”:180,“wires”:[[“a52a72d4.2f374”],[“a52a72d4.2f374”]]},{“id”:“caddea99.cba148”,“type”:“poll-state”,“z”:“61b76373.302b7c”,“name”:“Back Door”,“server”:“627c2fbf.e0dc3”,“version”:1,“exposeToHomeAssistant”:false,“haConfig”:[{“property”:“name”,“value”:""},{“property”:“icon”,“value”:""}],“updateinterval”:“5”,“updateIntervalUnits”:“minutes”,“outputinitially”:false,“outputonchanged”:false,“entity_id”:“lock.back_door”,“state_type”:“str”,“halt_if”:“unlocked”,“halt_if_type”:“str”,“halt_if_compare”:“is”,“outputs”:2,“x”:120,“y”:120,“wires”:[[“a52a72d4.2f374”],[“a52a72d4.2f374”]]},{“id”:“a52a72d4.2f374”,“type”:“switch”,“z”:“61b76373.302b7c”,“name”:“unlock or locked”,“property”:“payload”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“unlocked”,“vt”:“str”},{“t”:“eq”,“v”:“locked”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:2,“x”:370,“y”:160,“wires”:[[“81003715.213b38”],[]]},{“id”:“627c2fbf.e0dc3”,“type”:“server”,“z”:"",“name”:“Home Assistant”,“legacy”:false,“hassio”:true,“rejectUnauthorizedCerts”:true,“ha_boolean”:“y|yes|true|on|home|open”,“connectionDelay”:true,“cacheJson”:true}]

1 Like

I’m trying to use scenes with my Red Series dimmer in HassOS. All I want to do is disable local relay to control smart bulbs and start with a simple “bulbs on/off” at the switch. I’ve added the command class central scene lines above but I’m not getting zwave.scene_activated to work in my event automation:

entity_id: zwave.inovelli_unknown_type_0001_id_0001_2
scene_data: 7680
scene_id: 1

I tried to type this service in Developer’s Tools (Services) and it doesn’t appear. So it seems my added command class lines didn’t work? I feel like I’m missing something easy and really want these switches to work so my boyfriend stops turning off my lights!

What kind of smart bulbs are they? If they are zwave smart bulbs, you can skip the scenes and associate the dimmer directly to the bulbs. That would give you basic on/off as well as dimming.

If you really want to use scenes for this though, I think a good first step is to monitor your OZW_Log.txt file to make sure OpenZwave is actually detecting the scenes.

They are Lifx, but I have two Illumin bulbs that I’d happily swap for this. The logs show the scenes aren’t being detected, and I also haven’t been successful in implementing the 1.4 OZW tweak to access all config parameters. If anyone is willing to work offline with me to set all this up for some coffee/beer money, PM me, knowing I am only a basic Hass user.

If you havent already, I recommend starting with this post:

The post above has a link to a github page that contains OZW 1.4 config files for HA. It might solve both your config parameter issue as well as your scene issue. You may have to exclude/include your devices or refresh node info after making these updates in order to get HA to detect the changes.

If that doesnt work, could you post the relevant section of your zwcfg*.xml file, so we can take a look? If you made changes to it yourself, it could just have a typo. Also, I believe HA only reads this file on startup, and always re-writes it on shutdown. If you manually update your zwcfg*.xml file, you must shut down HA first or any updates will be lost.

Pointing me to the OZW log, then following advice from the post about “issecure,” and then finally realizing my automation was slightly off got me to troubleshoot my basic on/off scenes for my Lifx bulbs. They’re working now, thanks! I’m not even going to attempt to load 1.4, I’ll just manually set config parameters that I need and wait until HA goes to 1.6.

In node-red @pdong How are you sending the payload to the switch? everything i’m sending is bouncing. …in other nodered sequences to turn on and off the switch it works fine every time. scenes from the switch work but zwave.set_config_parameters, i can’t get going. am I missing something?

I also tried zwave.inovelli_lzw31_sn_dimmer_red_series with and without the “Zwave.” only thing i haven’t tried is the json … no clue what to type or try.

I’m having the same issue as @kerryandjane, can’t figure out how to set the light with node red and home assistant.

edit: I’ll post the answer for anyone who finds this with the same problem. Don’t try to specify the device in the entity_id field of the call service node, leave it blank.

@ExMachina find my node red information below:

(Click Me) Here is my flow for specifically LED control
[{"id":"7918ec23.6b13c4","type":"inovelli-status-manager","z":"880aae7a.81bc","name":"Green Success Blink","nodeid":"4","color":"87","level":10,"duration":"3","display":"3","switchtype":"16","x":1380,"y":100,"wires":[["6d1d87ae.25e1e"]]},{"id":"6d1d87ae.25e1e","type":"api-call-service","z":"880aae7a.81bc","name":"Send Blink","server":"497693ef.d5e6bc","version":1,"debugenabled":false,"service_domain":"zwave","service":"set_config_parameter","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1590,"y":100,"wires":[[]]},{"id":"31d9fbf.c162e84","type":"inovelli-status-manager","z":"880aae7a.81bc","name":"Red Fail Blink","nodeid":"4","color":"11","level":10,"duration":"3","display":"1","switchtype":"16","x":1360,"y":140,"wires":[["be7a3200.901b88"]]},{"id":"be7a3200.901b88","type":"api-call-service","z":"880aae7a.81bc","name":"Send Blink","server":"497693ef.d5e6bc","version":1,"debugenabled":false,"service_domain":"zwave","service":"set_config_parameter","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1590,"y":140,"wires":[[]]},{"id":"1121c535.19a1ab","type":"api-call-service","z":"880aae7a.81bc","name":"Turn off downstairs lights","server":"497693ef.d5e6bc","version":1,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"group.all_lights_no_upstairs","data":"{\"entity_id\":\"group.all_lights_no_upstairs\"}","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":590,"y":100,"wires":[["9cb026ef.bc075"]]},{"id":"9cb026ef.bc075","type":"delay","z":"880aae7a.81bc","name":"","pauseType":"delay","timeout":"1.2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":830,"y":100,"wires":[["23c364ae.ff71ec"]]},{"id":"23c364ae.ff71ec","type":"api-current-state","z":"880aae7a.81bc","name":"Downstairs Lights State","server":"497693ef.d5e6bc","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"group.all_lights_no_upstairs","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":1090,"y":100,"wires":[["7918ec23.6b13c4"],["31d9fbf.c162e84"]]},{"id":"497693ef.d5e6bc","type":"server","z":"","name":"Home Assistant"}]

I’ve implemented this right after the scene setting node. All it does is when I press down on my inovelli switch (not pictured), then turn off my downstairs lights. Delay for 1.2 seconds, then retrieve the status of downstairs lights. If any downstairs lights are still on, set led light bar to solid red for 3 seconds, then call the service node (actually set light bar to red). If all lights are off, set led light bar to blink green for 3 seconds, then call service (actually set light bar to green).

You will need to adjust values for the inovelli-status-manager node (and download it if you don’t have it yet) so that it points to your specific node, but other than that it should work as is.

Having the same issue as @kerryandjane and @ExMachina, either of you happen to figure out what was going on?