Let's start talking about the new Z-wave JS integration

Yes, they are all accounted for!

Node 5: Monoprice ZP3111 Multisensor 4in1 - Battery
Node 7: Monoprice ZP3111 Multisensor 4in1 - Battery
Node 11: Monoprice ZP3111 Multisensor 4in1 - Battery
Node 15: Eversprinbg ST815 Illumination Sensor - Battery
Node 21: HAB iBlinds V2 - Disconnected/powered off
Node 22: Monoprice RGBW Color LED Dimmer - disconnected/powered off: powered on and updated

I’m going to need to move my controller to a different host and therefore will need to change the IP of the integration. Anyone know where in the backend HA stores that IP so I can change it since the integration doesn’t let you change the IP in the UI yet?

EDIT: Answered my question lol /config/.storage/core.config_entries

Same for me with : Qubino - Flush Shutter DC - ZMNHOD.
Maby for all covers?

OK, so now it’s my turn to ask a question… :wink:

I already have zwavejs2mqtt running in a docker and it is setup to send both MQTT and websockets.

On my production HA Container System I have one test node device discovered via MQTT discovery and working like it has been for a few weeks now.

I just updated my test HA Container instance to V2021-2-1 and I installed the zwave JS integration.

The issue I’m having is that I’m not seeing any discovered websocket devices pop up in my test instance.

Should I be able to have multiple HA instances receive data from a single zwavejs2mqtt server over both MQTT and Websockets simultaneously?

I could do it in OZW Beta but it used MQTT exclusively. I didn’t think that should be a problem with zwavejas2mqtt either since the server is separated from HA.

this is somewhat confusing to me, and might need some further refinement…

As it stands , I use the core JS add-on, which asks for/installs the core JS integration. I use this on a separate/dedicated HA instance. On that same instance, I have the MQTT integration taking care of publishing (using mqtt state_stream) states to a Broker. Which as it happens is the core MQTT Add-on, on another (also dedicated) instance.

On my production system, I also have the Mqtt integration installed to be able to subscribe to these events, and send commands to my switches on the Zwave instance…

So, when you talk of Mqtt, one might need to be aware that too has an integration and add-on :wink:

What still puzzles me is the catch phrase we can now use this new JS package, to be able to have the Zwave network be independent of the HA instance. Since my Aeotec stick is on a dedicated Zwave instance, it is independent of my production system (has always been my architecture). Yet, every once in a while we need to reboot the host, and then the stick powers down. After startup, we can clearly see the devices and entities come back to life in the HA system, so still not being independent?

Or what am I missing here?

There are a few ways to have this all set up:

zwavejs2mqtt zwave controller interface<->zwavejs2mqtt mqtt client<->MQTT broker<->HA mqtt client<->HA system
zwavejs2mqtt zwave controller interface<->zwavejs2mqtt websocket server<->HA websocket client<->HA system
zwavejs add-on zwave controller interface<->zwavejs websocket server<->HA websocket client<->HA system

you seem to have added another layer onto your (overly complex?) system:

zwavejs add-on zwave controller interface<->zwavejs websocket server<->separate zwave js HA websocket client<->separate zwave js HA system<->separate zwave js HA mqtt client<->MQTT broker<->production HA mqtt client<->production HA system

Of course if you have tro reboot the host that is controlling all of these different HA instances and the zwave stick and the zwave js server then, of course the system can’t truly be called “independent”.

What is referred to as independent is that in the old way of zwave 1.4 the zwave controller interface was built-in to HA and therefore couldn’t be separated from HA at all. So every time the HA server was restarted (whether that was a server restart or a full host reboot makes no difference) the zwave network was also restarted and had to completely re-initialize.

Now, It doesn’t matter which HA instance of the myriad you have, unless you restart the zwave js server itself (the zwave js add-on) then the zwave system stays fully functional and your HA (whichever one that is) will connect to a fully function zwave instance as soon as it restarts.

That’s what is now “independent”.

Can someone also tell me about how to think about ZWave JS and ZWaveJS2MQTT?
My understanding is that the latter helps bring ZWAveJS to an MQTT server, so further separate my ZWave setup from HA.

Can I setup ZWave JS first (migrate all my devices), then later setup ZWaveJS2MQTT?

ha, it gets even worse :wink: I have an additional z-wave hub with a plethora of switches and sensors, in a stand alone setup (compare a Hue hub, with app et all)
Because I want to integrate those sensors/switches in HA I connect that zwave hub over mqtt to my centralized and dedicated broker and publish all state changes.
I can handpick the states for the production system, and take out as much processor load as possible like that.

Since unfortunately not all Zwave devices are supported on that hub, I have the dedicated Zwave HA instance setup to do exactly the same, publish those to the broker (and accept commands for the switches), and hand pick on the production system.

reason I split up early on, was because of things going wrong every once in a while. If my HA Zwave instance goes down, I can still control the household with the production system, same goes for the mqtt instance. If that goes down, I fail a lot of sensors, but the main logic and security system of the production system is still in order.

Or vice versa, if the production system crashes, or toasts its Sd card, at least all my mqtt and zwave configs are still alive and I can control them independently.

I do want to simplify the zwave setup if possible, by installing the zwavejs2mqtt add-on, and replace the JS integration and JS add-on I now have running. But I tend to prefer core software for these fundamental parts to the home automation… dilemma

All battery sensors are now alive and configured except for this item:


How do I fix this?

But I’m not really sure that it does.

you still need exactly two components at a minimum to run your zwave system from HA - a zwave controller and an interface to HA.

both the zwavejs2mqtt add-on or the zwavejs interface handles the controller and interface to HA.

adding in an extra layer of MQTT doesn’t really do anything for separation of the two. it just adds another layer.

But if you really want to add extra layers between your zwave and HA with little benefit I’m sure that @Mariusthvdb could give you plenty of pointers. :wink:

:laughing:

Ok thanks. I won’t bother with it then since I don’t use MQTT for anything else.

How many extra layers has he been known to pile on?? :wink:

1 Like

Interesting discussion on that here: https://github.com/home-assistant-libs/zwave-js-server-python/issues/56#issuecomment-773145114

my Schlage lock reports lock and unlocked status.

I spent the afternoon moving over to Z-wave JS. After a few “re-interview” for some stubborn battery devices, most everything works better than OZW and a lot faster too.

Most everything. My Kwikset locks are a mess. Nothing works. The Control Panel says everything is there and the interview stage is complete. I can’t toggle them. The status is correct in the Z-Wave JS Control panel, but it never makes it over to HA.

Edit: if I watch zwave_js_event I can see events for locking/unlocking getting to HA, but they are not triggering the entities that (I assume) are supposed to match with them. I also get this in the Control Panel when I try to do something with the locks from HA “Driver: Door Lock: “currentMode” is not a supported property” - and it knocks the HA into a tailspin with Z-wave JS no longer working with any Z-wave device until I restart HA itself.

I’m running the Docker version of Z-wave JS released yesterday, 1.6.2, and I’m beginning to suspect something changed with how the handle locks… or something is just broken with them somewhere.

After upgrading to 2021.2.0, no zwave devices are available, and HA is is a permanent state of starting up.
After getting an advice, I removed the zwave part from configuration.yaml.
Now I get this is my supervisor log:

21-02-04 23:55:01 INFO (SyncWorker_6) [supervisor.docker.addon] Starting Docker add-on ghcr.io/hassio-addons/portainer/amd64 with version 1.4.0
21-02-04 23:55:01 ERROR (MainThread) [supervisor.addons.addon] Add-on core_zwave_js has invalid options: Missing required option 'device'. Got {'device': None, 'network_key': ''}
21-02-04 23:55:01 WARNING (MainThread) [supervisor.addons] Can't start Add-on core_zwave_js

Some of it makes sense, but I don’t understand the messages about zwave_js. I haven’t installed it, as far as I know. Could that be what’s causing me my problems?
Now, of course, the legacy zwave doesn’t work, but my other zwave, the OpenZWave, which I installed for testing purposes with a separate Aeotec stick, doesn’t work either. It communicates with mqtt, but HA doesn’t know anything about it.

To add some info to my previous post:

This is the only warnings/errors I’m getting in the logs for zwavejs:

2021-02-04 19:25:00 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Z-Wave JS' for zwave_js integration not ready yet. Retrying in 5 seconds
2021-02-04 19:25:01 ERROR (MainThread) [homeassistant.components.switch] Platform mqtt does not generate unique IDs. ID zwavejs2mqtt_0xf1d49989_2-37-0-currentValue already exists - ignoring switch.outdoor_outlet_plug_switch
2021-02-04 19:25:06 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Z-Wave JS' for zwave_js integration not ready yet. Retrying in 10 seconds
2021-02-04 19:25:06 WARNING (MainThread) [custom_components.hacs] You have cgarwood/homeassistant-zwave_mqtt installed with HACS this repository has been removed, please consider removing it. Removal reason (deprecated)
2021-02-04 19:25:16 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Z-Wave JS' for zwave_js integration not ready yet. Retrying in 20 seconds
2021-02-04 19:25:36 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Z-Wave JS' for zwave_js integration not ready yet. Retrying in 40 seconds
2021-02-04 19:26:16 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Z-Wave JS' for zwave_js integration not ready yet. Retrying in 80 seconds
2021-02-04 19:27:36 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Z-Wave JS' for zwave_js integration not ready yet. Retrying in 80 seconds

and then it repeats endlessly.

If I go to the zwavejs integration config page and try to do a log dump I get an error that says there is no file.

I don’t see anything of importance in the zwavejs2mqtt container logs either.

And the MQTT switch discovered by the zwavejs2mqtt container is working fine.

Does anyone have any other way to troubleshoot this?

See this about addressing the lack of coordination between the lock status notifications and the lock state in HA. I have 3 Kwikset locks that exhibit the behavior in that thread, but I don’t see the utter failure that you describe. I posted one of my automations that “fixes” the lock state based on the notification event here.

Oh, thanks. I’m seeing much of this. Nice to know I’m not crazy!

Well this new integration finally gave me the motivation to move my stick to a pi located a little more central in the house. Ended up implementing usbip for this. Thank you zwavejs peoples.