How do I switch to Zwave JS?

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?

No, it depends on how you get those entities into HA. The web socket path creates different names and potentially different types than those created via MQTT. If you use the zwavejs2mqtt integration and flip the web socket on/off, mqtt on/off you can see its not up to zwavejs / zwavejs2mqtt integrations.

Hello,
I am using the legazy z-wave (depricated) and like to switch to the z-wave JS.
Is there a simple guide I can follow?
I am a bit confused on all the different versions - I did just install the z-wave from integrations a year or so ago and now want to switch… so Any easy guide??
Thanks in advance.

I would not call this an “easy” guide quite yet, but it’s a start:

Yes, if you go through the Web Server on both. If you use MQTT on ZwaveJS2MQTT, it will be named differently.

1 Like

It’s not really a big deal to “install the whole project”. It’s just one docker container that contains everything you need.

they have to wake up before they report.

see here.

While trying to wrap my head around all of this, something came to mind. I own a lot of Zooz ZWave products, and I’ve been working with folks at Zooz, and TheSmartestHouse specifically for their other product lines, to troubleshoot issues with their products when used in Home Assistant (similarly with Fortrezz and Ecolink). I’ve also pushed them to put more focus on including Home Assistant in their product testing pipeline and in the list of supported Hubs listed on their web site.

Fortunately, Home Assistant is now beginning to appear in more and more lists beside their products, and the latest product I received has Home Assistant not only listed as supported, but is one-of-three QR codes printed on the packaging for quick set up. This is huge. They are also now active in providing links to the Home Assistant Community Forum to assist customers with setup issues, which I’ve also contributed to. Their focus up to now, AFAIK, has been on the OZW library functionality (both 1.4 and 1.6), which the community now seems to be abandoning in favor of zwavejs. In terms of progress made with device vendors, I believe this will be a huge step backwards in device support for Home Assistant users.

I don’t know whether of not abandoning OZW for zwavejs is the right move, and I trust those who understand this stuff much better than me to make the right decision. However, I hope they do keep in mind how this might/will impact product manufacturers who have been making strides supporting the Home Assistant community, and how they may have to retool/retrain, or worse case, ADD a new protocol/server in order support us effectively.

My only hope is that vendors don’t punt HA altogether as too much of a moving target. Just food for thought.

1 Like

I have a Remotec 120 that never worked with the old zwave and is working perfect without edit anything. It seems OZW didn’t manage well any Remotec device.
I would suggest to take an snapshot to come back is something is not working for you and try out.

Will there also a zwcfg.xml file with Zwave JS?

This is a good question, since I often have to edit that file to add parameters to devices that don’t appear in the old 1.4 version (since it is no longer updated). That has been working for me, since I pull them from the zwave alliance repository. Perhaps we will no longer need to do anything if they are kept up to date for us with new releases, but it would be nice to know if that capability exists at all (in the HASSOS integration).