How do I switch to Zwave JS?

Solved - Wrong network key!

From what I recall that did not work for me. But you have to remember, I switched from Zwave 1.4 to Openzwave a year ago. Iā€™m going off memory on how to properly remove zwave 1.4.

My Z-Wave is pretty critical as well, but Iā€™m not frustrated at all. I knew what I was getting into when I loaded up open source as my home automation and, for all the other cool stuff that I get from HA that I didnā€™t from my last solution, this isnā€™t too big of a deal for me.

Depreciating it doesnā€™t bother me, plenty of folks are up and running in JS and itā€™s working fine. I gave serious consideration to moving to it as well, since the things that are missing from JS arenā€™t mission critical for me and itā€™s apparently lightning fast (my single biggest gripe about the baked in Z-Wave). It came down to just not wanting to rename my devices if the migration does it for me and, if it doesnā€™t, then Iā€™ll bite the bullet.

Thanks. Took me a bit of reading in another thread, but I found it. Should be the following docker image:
https://hub.docker.com/r/zwavejs/zwavejs2mqtt

Will try out over the weekendā€¦

Yes, you can run the ZWave JS server on a separate machine. You will need to assign that machine a static/reserved IP address so that you can reference that address when you are configuring the ZWave JS integration in you HA instance.

Just to circle back for others.
Restarting the docker seems to have released the Zwave portion of my Zwave/Zigbee stick.

I have it running on the ZwaveJS docker now. That docker seems to have other issues on unraid (it wonā€™t let me set the path for logs and files but that isnā€™t HA related) and it picked up my hardwired devices without issue which are the big ones. Iā€™ll go poke at my other devices later it sees them but listing them as unknown right now but since they are sensors and mostly temp I can let them sit for now.

Whatever information you find, please consider adding it as a comment to the guides linked in the solution

Iā€™ve got the zwavejs/zwavejs2mqtt docker image deployed to my k3s cluster, and its talking to my zwave stick just fine. Iā€™ve not yet been round and woken everything yet, but its picked up my stick and my doorlock fine so I know its working. However, It is crashing and rebooting every 90s or so by the look of it. When Iā€™m debugging it Iā€™m seeing a handful of /health checks coming back as a 500, but Iā€™m not able to get any more information on the matter. Does anyone have any hints as to what to look at for this? For reference, its running on an RPI3 with this yaml: https://github.com/zwave-js/zwavejs2mqtt/tree/master/docker#run-as-a-kubernetes-deployment

Well I decided to jump in the deep end and upgrade from the Zwave 1.4 integration to ZwaveJS and, after a bunch of renaming entities I now am up and running and all seems well so thanks to the team. My only comments so far are:

  1. I run a number of Qubino dimmer & relay devices and not all of their previous entities or similar are restored (like power management, energy, exporting & interval). Its no big deal for me as I never used those particular entities that under 1.4 were present. Just wondering if more may appear in time or after some future updates.

  2. Following any restart of HA or a complete reboot of HA, I see the following entry in the logs:

Logger: zwave_js_server
Source: /usr/local/lib/python3.8/site-packages/zwave_js_server/client.py:95
First occurred: 14:04:30 (1 occurrences)
Last logged: 14:04:30

Connected to a Zwave JS Server with an untested version, you may run into compatibility issues!

My setup:

HA 2021.2.0
Supervisor 2021.01.7
Running HA in a ProxmoxVM on an Intel NUC

I donā€™t suppose you know the syntax for the web socket url that the integration asks for?

I have installed the zwavejs2mqtt add-on on an instance of HA on a spare raspberry pi and want to run the integration on my main HA instance (Debian on a Synology NAS) but cannot work out what to replace ā€˜ws://localhost:3000ā€™ with on installation of the ZWaveJS integration on the main box. I figured it would be ws://192.168.x.y:3000 but no joy.

Is there a reason why you need to run a separate instance of HA on the PI?
I think it would be to just run the zwavejs2mqtt as a docker container on that machine.

Here is my docker-compose entry, you would need to change the network mode to host and expose ports 8091 (web interface) and 3000 (websocket)

  zwavejs2mqtt:
    container_name: zwavejs2mqtt
    image: zwavejs/zwavejs2mqtt:latest
    restart: ${RESTART_MODE}
    tty: true
    stop_signal: SIGINT
    devices:
      - '/dev/zwave:/dev/ttyACM0'
    volumes:
      - ${DOCKERDIR}/zwavejs2mqtt:/usr/src/app/store
    networks:
      macvlan:
        ipv4_address: 192.168.0.61

Once you have the zwavejs2mqtt server up and running you will need to go to the web interface http://192.168.x.y:8091 and in the settings page you can enable the webserver.

Nice! Moved (and renamed) all my 10 devices to the Zwave-JS addon + Zwave-JS integration. So far so good.
If I later decide to replace the Zwave-JS addon with ZwaveJS2MQTT (for the GUI), do I need to reconfigure all devices again, or will everything be fine without it?

You will, butā€¦ thereā€™s a way to transfer the cache file so you donā€™t have to. Iā€™ll be investigating that later. Youā€™ll need to have access to the container files though. So if you arenā€™t running docker or supervised, itā€™ll be a chore.

1 Like

Docker and supervised.

docker exec -it addon_core_zwave_js bash
bash-5.1# ls -l /data/*

-rw-------    1 root     root           107 Feb  4 13:01 /data/options.json

/data/cache:
total 236
-rw-r--r--    1 root     root         44895 Feb  4 17:00 <homeid>.json
-rw-r--r--    1 root     root         66534 Feb  4 20:26 <homeid>.metadata.jsonl
-rw-r--r--    1 root     root        118852 Feb  4 20:41 <homeid>.values.jsonl

Is it this?

I havenā€™t done it myself, i was planning on doing it this weekend. I believe itā€™s the homeid.json one.

I have the same LZW36 switch and it isnā€™t working after updating to the new zwave js. All i get is a few entities for power monitoring.

Are you talking about the zwavejs2mqtt version, instead of the brand new zwavejs? I saw a discussion on Github about why create the new version if the zwavejs2mqtt is already there and working. I wasnā€™t too hip on the mqtt part, but apparently you donā€™t need it, and it can be disabled.

Also, it seems like the new integration isnā€™t aiming to have a very robust UI control panel (compared to zwavejs2mqtt), and one recommendation was to use the control panel UI in zwavejs2mqtt to manage things in the zwavejs integration! So the question is becoming for me, which path to take?

Iā€™m weary of choosing anything but the ā€œofficialā€ version, if there is a possibility that the community version ends support and will just have to rebuild everything from scratch AGAIN. Iā€™d much prefer to do this once, so the decision of which road to take is crucial to minimize work and disturbance. From what Iā€™ve been able to glean, why wouldnā€™t they just work to integrate zwavejs2mqtt into the core, and make the mqtt more optional and separate (like theyā€™re doing with the new integration)?

2 Likes

Will there also a zwcfg.xml file with Zwave JS?
If not how to make the Remotec ZRC-90 usable in Zwave JS?

like:

It also need a posibillity to check on: zwave.scene_activated
Will that be possible also in Zwave JS?

1 Like

yeah thats the path i took and its working great, other than one door sensor that is not awakingā€¦

Am I correct in believing that since both the zwavejs and zwavejs2mqtt integrations use the zwavejs library (server), that the ā€œprofilesā€ and/or naming conventions used by both are the same?