LZW45 Drivers - Z Wave-JS addition through Pull Request

I saw a link somewhere where a request was made to update LZW45 for usage in OpenZWave.

With the current plan to move away from that integration and over to the Zwave-JS integration, either through zwavejs2mqtt, or the HA beta version of Zwave-JS, I am unable to get the LZW45 lights recognized.

Apparently there is a method for a PR to be submitted for their inclusion.

@EricM_Inovelli , Could you take a look and add it to the Zwave-JS project?

2 Likes

I don’t know much about this new integration. Does it use the same config files as open-zwave?

I didnt know about this new integration until today either. Looks like the configuration files are in a completely different format. This is what the format looks like:

1 Like

This seems like the it will be a more actively maintained zwave integration than ozw was and direct support for it would certainly be appreciated!

The latest I saw was that ozw won’t be going away but the lone dev is stepping away for an extended time so the hass community has quickly integrated with zwavejs using websockets for an extremely fast connection compared to mqtt. It is already extremely stable and development is moving fast!

I like the sound of the improvements. Don’t like having to keep up with an additional config file format though. :frowning:

Seems like someone out there would / will make a script for converting these files though.

I might try switching from zwave2mqtt to zwavejs2mqtt this weekend. If I do, I will take a stab at updating the config files and submit my findings to Inovelli’s github (should there be a separate repository on your github page for this?)

1 Like

Already is a script in the official build, take a look here:

https://zwave-js.github.io/node-zwave-js/#/development/config-files

1 Like

I opened a PR for it:
feat(config): add support for inovelli lzw45 by nathanfiscus · Pull Request #1525 · zwave-js/node-zwave-js (github.com)

They have partial parameter support, so I am working on expanding the parameters that are calculated values per their request.

I forked it to our repository. Probably what I will do is make my changes there (and others can make theirs there as well) and then request a merge after the changes are tested. I am not sure how responsive they are on merging so this can be a location for config files to exist for users while that process is taking place.

@nathanfiscus If people want to submit PRs directly to node-zwave-js that is ok too.

@EricM_Inovelli & @nathanfiscus Thank you for your help with this.

The unfortunate truth is that openzwave development has slowed to a crawl (0 updates since november). Everyone is working extremely hard to get a beta of zwave_js out the door.

The beauty of Zwave JS is that it’s written in a modern language so pretty much any new-to-the-scene programmer can join in on development. Openzwave is C++ and not many people can participate, leaving development to pretty much 1 guy.

There is a very long backstory here that I learned about this weekend:

The very short version is the 1.4 supported integration is obsolete from an OZW perspective, meaning no further updates or patches. A (single) developer then created the bones of OZW 1.6 integration good enough to make it work for most applications, but the community pushed him away with too many requests, so he basically abandoned ship for personal reasons.

The “new” path forward is Zwave-js and HA staff are onboard with a swath of community support. They are planning to release it in production for the 2021.2 release, even though it is only (literally) weeks old. They have made fantastic progress and I think in a few more months it will be the integration to use for z-wave control on HA.

Tried to keep it as short as I can. I am on OZW 1.6 but intend to convert to JS as soon as it is made available. I would worry about OZW updates for about 2-3 more months (tracking the Zwave-JS integration) then call it deprecated.

You can try it right now in the beta program. The more the merrier. If you can switch ASAP, and you have devices that we cannot test against: Text Sensors, White Value lights (cannot support Cold White and Warm White) that would be a great help. We currently don’t have the coverage to test all the code atm.

Unfortunately none of the devices listed above, but I will be a very active as I convert my VERY production-type house installation to the new integration.

My biggest need is my Schlage Be469 that I could NOT get working for more than about 10 mins in OZW 1.6. Hoping encrypted locks are (or are quickly) supported?

I get enough flack for my smarthome shenanigans that I shouldn’t even be planning this (in secret muahahaha).

Edit: looks like locks are fully supported (yay) but a few other items might be deal breakers:

  1. Support for setting configuration parameters through service calls is currently not supported but may be added in a later release. (I use this for coloration of the LED bar and notifications a LOT).

  2. Support for Node/Scene events is currently not supported but may be added in a later release. (I use scene control immensely for double/triple taps around the house).

Looking forward to further features to get parity with my OZW install! Frenckly (see what I did there) I’m shocked at the development timeline on this. WOW fast!!!

Hi,

I’ve converted my OZW to Z-Wave JS. I had a node-red which uses scene. It was set to ozw.scene_activated. I need to change it to support Z-Wave JS but don’t know changing it to what.

Can you guys help me?

It uses zwave_js_event now.
image

By changing it to event, it doesn’t work. It gets something but my node doesn’t work as it did. After the zwave_js_event, I just put my switch?

[{“id”:“73fde49d.94267c”,“type”:“subflow”,“name”:“Inovelli Scenes”,“info”:"",“category”:"",“in”:[{“x”:120,“y”:220,“wires”:[{“id”:“3c99d4a9.b3bac4”}]}],“out”:[{“x”:620,“y”:40,“wires”:[{“id”:“60d0a2f1.4599fc”,“port”:0}]},{“x”:620,“y”:80,“wires”:[{“id”:“60d0a2f1.4599fc”,“port”:1}]},{“x”:620,“y”:120,“wires”:[{“id”:“60d0a2f1.4599fc”,“port”:2}]},{“x”:620,“y”:160,“wires”:[{“id”:“60d0a2f1.4599fc”,“port”:3}]},{“x”:620,“y”:200,“wires”:[{“id”:“60d0a2f1.4599fc”,“port”:4}]},{“x”:620,“y”:240,“wires”:[{“id”:“4ce397c.b363ce8”,“port”:0}]},{“x”:620,“y”:280,“wires”:[{“id”:“4ce397c.b363ce8”,“port”:1}]},{“x”:620,“y”:320,“wires”:[{“id”:“4ce397c.b363ce8”,“port”:2}]},{“x”:620,“y”:360,“wires”:[{“id”:“4ce397c.b363ce8”,“port”:3}]},{“x”:620,“y”:400,“wires”:[{“id”:“4ce397c.b363ce8”,“port”:4}]},{“x”:620,“y”:440,“wires”:[{“id”:“19e6265b.f924ea”,“port”:0}]}],“env”:[],“color”:"#DDAA99",“outputLabels”:[“Single tap down”,“Double tap down”,“Triple tap down”,“Quad tap down”,“5 taps down”,“Single tap up”,“Double tap up”,“Triple tap up”,“Quad Tap up”,“5 taps up”,“Config tap”]},{“id”:“3c99d4a9.b3bac4”,“type”:“switch”,“z”:“73fde49d.94267c”,“name”:“Scene ID”,“property”:“payload.event.scene_id”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“1”,“vt”:“str”},{“t”:“eq”,“v”:“2”,“vt”:“str”},{“t”:“eq”,“v”:“3”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:3,“x”:260,“y”:220,“wires”:[[“60d0a2f1.4599fc”],[“4ce397c.b363ce8”],[“19e6265b.f924ea”]]},{“id”:“60d0a2f1.4599fc”,“type”:“switch”,“z”:“73fde49d.94267c”,“name”:“Scene Value”,“property”:“payload.event.scene_value_id”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“1”,“vt”:“str”},{“t”:“eq”,“v”:“4”,“vt”:“str”},{“t”:“eq”,“v”:“5”,“vt”:“str”},{“t”:“eq”,“v”:“6”,“vt”:“str”},{“t”:“eq”,“v”:“7”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:5,“x”:430,“y”:180,“wires”:[[],[],[],[],[]],“outputLabels”:[“Single Tap Down”,“Double Tap Down”,“Triple Tap Down”,“Quad Tap Down”,“5 Tap Down”]},{“id”:“4ce397c.b363ce8”,“type”:“switch”,“z”:“73fde49d.94267c”,“name”:“Scene Value”,“property”:“payload.event.scene_value_id”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“1”,“vt”:“str”},{“t”:“eq”,“v”:“4”,“vt”:“str”},{“t”:“eq”,“v”:“5”,“vt”:“str”},{“t”:“eq”,“v”:“6”,“vt”:“str”},{“t”:“eq”,“v”:“7”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:5,“x”:430,“y”:260,“wires”:[[],[],[],[],[]],“outputLabels”:[“Single Tap Up”,“Double Tap Up”,“Triple Tap Up”,“Quad Tap Up”,“5 Tap Up”]},{“id”:“19e6265b.f924ea”,“type”:“switch”,“z”:“73fde49d.94267c”,“name”:“Scene Value”,“property”:“payload.event.scene_value_id”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“1”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:1,“x”:430,“y”:320,“wires”:[[]],“outputLabels”:[“Single Config Tap”]},{“id”:“4919717e.34da4”,“type”:“tab”,“label”:“Switch bureau Alex (Inovelli)”,“disabled”:false,“info”:""},{“id”:“9809f248.13bbe”,“type”:“server-events”,“z”:“4919717e.34da4”,“name”:“Scene”,“server”:“19028f05.bad0d1”,“event_type”:“zwave_js_event”,“exposeToHomeAssistant”:false,“haConfig”:[{“property”:“name”,“value”:""},{“property”:“icon”,“value”:""}],“waitForRunning”:true,“x”:100,“y”:260,“wires”:[[“8068dd32.ce958”]]},{“id”:“71c661d6.991af”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“Turn on light”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:true,“service_domain”:“light”,“service”:“turn_on”,“entityId”:“light.dimmer_chambre_al”,“data”:"{“brightness_pct”:100}",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:730,“y”:400,“wires”:[[“cf8e01a8.982c2”]]},{“id”:“2a569871.bdf3f8”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“Turn off light”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“light”,“service”:“turn_off”,“entityId”:“light.dimmer_chambre_al”,“data”:"",“dataType”:“json”,“mergecontext”:"",“output_location”:“payload”,“output_location_type”:“msg”,“mustacheAltTags”:false,“x”:730,“y”:460,“wires”:[[“b5ea71ab.f344b”]]},{“id”:“84ecffaa.1d07c”,“type”:“subflow:73fde49d.94267c”,“z”:“4919717e.34da4”,“name”:"",“env”:[],“x”:500,“y”:260,“wires”:[[],[“ec1dd4ef.1946a8”,“b562c495.fa81d8”],[],[“2a569871.bdf3f8”],[],[],[“47a80cf5.9c7f04”,“1d338998.54e676”],[],[“71c661d6.991af”],[],[]]},{“id”:“cf8e01a8.982c2”,“type”:“inovelli-status-manager”,“z”:“4919717e.34da4”,“name”:“Dimmer Bureau Al”,“nodeid”:“2”,“color”:“87”,“level”:10,“duration”:“2”,“display”:“2”,“switchtype”:“16”,“x”:910,“y”:400,“wires”:[[“23fecbcd.7ce7c4”]]},{“id”:“b5ea71ab.f344b”,“type”:“inovelli-status-manager”,“z”:“4919717e.34da4”,“name”:“Dimmer Bureau Al”,“nodeid”:“2”,“color”:“22”,“level”:10,“duration”:“2”,“display”:“2”,“switchtype”:“16”,“x”:910,“y”:460,“wires”:[[“b38a1f03.579e9”]]},{“id”:“23fecbcd.7ce7c4”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“Set colors”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“ozw”,“service”:“set_config_parameter”,“entityId”:"",“data”:"",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:1080,“y”:400,“wires”:[[]]},{“id”:“b38a1f03.579e9”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“Set colors”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“ozw”,“service”:“set_config_parameter”,“entityId”:"",“data”:"",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:1080,“y”:460,“wires”:[[]]},{“id”:“80fe91d4.e2f13”,“type”:“inovelli-status-manager”,“z”:“4919717e.34da4”,“name”:“Dimmer Bureau Al”,“nodeid”:“2”,“color”:“87”,“level”:10,“duration”:“2”,“display”:“2”,“switchtype”:“16”,“x”:950,“y”:40,“wires”:[[“93f8af81.7207c”]]},{“id”:“d38517e5.2c7178”,“type”:“inovelli-status-manager”,“z”:“4919717e.34da4”,“name”:“Dimmer Bureau Al”,“nodeid”:“2”,“color”:“22”,“level”:10,“duration”:“2”,“display”:“2”,“switchtype”:“16”,“x”:950,“y”:140,“wires”:[[“c552e90a.998ff8”]]},{“id”:“93f8af81.7207c”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“Set colors”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“ozw”,“service”:“set_config_parameter”,“entityId”:"",“data”:"",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:1140,“y”:40,“wires”:[[]]},{“id”:“c552e90a.998ff8”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“Set colors”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“ozw”,“service”:“set_config_parameter”,“entityId”:"",“data”:"",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:1140,“y”:140,“wires”:[[]]},{“id”:“47a80cf5.9c7f04”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“LED Bureau”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“light”,“service”:“turn_on”,“entityId”:“light.led_bureau”,“data”:"{“white_value”:255,“rgb_color”:[0,255,0],“brightness”:255,“transition”:15}",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:730,“y”:40,“wires”:[[“80fe91d4.e2f13”]]},{“id”:“1d338998.54e676”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“LED Meuble”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“light”,“service”:“turn_on”,“entityId”:“light.led_meuble”,“data”:"{“white_value”:255,“rgb_color”:[0,255,0],“brightness”:255,“transition”:15}",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:730,“y”:100,“wires”:[[“80fe91d4.e2f13”]]},{“id”:“ec1dd4ef.1946a8”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“LED Bureau”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“light”,“service”:“turn_off”,“entityId”:“light.led_bureau”,“data”:"",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:727,“y”:169,“wires”:[[“d38517e5.2c7178”]]},{“id”:“b562c495.fa81d8”,“type”:“api-call-service”,“z”:“4919717e.34da4”,“name”:“LED Meuble”,“server”:“19028f05.bad0d1”,“version”:1,“debugenabled”:false,“service_domain”:“light”,“service”:“turn_off”,“entityId”:“light.led_meuble”,“data”:"",“dataType”:“json”,“mergecontext”:"",“output_location”:"",“output_location_type”:“none”,“mustacheAltTags”:false,“x”:730,“y”:220,“wires”:[[“d38517e5.2c7178”]]},{“id”:“8068dd32.ce958”,“type”:“switch”,“z”:“4919717e.34da4”,“name”:“Switch bureau Al”,“property”:“payload.event.node_id”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“2”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:1,“x”:290,“y”:260,“wires”:[[“84ecffaa.1d07c”]]},{“id”:“19028f05.bad0d1”,“type”:“server”,“name”:“Home Assistant”,“legacy”:false,“addon”:true,“rejectUnauthorizedCerts”:true,“ha_boolean”:“y|yes|true|on|home|open”,“connectionDelay”:true,“cacheJson”:true}

I found this post to be helpful.

I might have found the issue. My light is in Z-wave JS but identified as light.red_series_dimmer_current_value. is that normal?

If I set it up in the dashboard, it says unavailable

I know this was 6 days ago so a lot can change but have you heard/looked into running the ZwaveJS2MQTT add-on instead of the Zwave JS add-on? With MQTT you can set config parameter. I just tried it out on a test VM I setup.