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

What was the naming convention for your other devices that were in the config?

zwavejs2mqtt is all you need in this instance I believe. It has the zwave-js server built in. you can tell zwavejs2mqtt to disbale the mqtt part, so it “just” becomes a zwave-js server and the nice config panel. Thats how I have it setup (zwavejs2mqtt in one docker container, ha on another).

1 Like

Me too. I like the Control Panel in zwavejs2mqtt, which is not yet available in the zwavejs addon (will eventually be integrated, as it’s in their roadmap).

@Doublet @matt_ha
I experienced a strange behavior. Can you validate if it’s the same for your devices?
When I call cover.set_position and set the position to 99 the blinds go up as expected. But if I set it to 100 it goes down to 10. 0 is also working as expected.
Just 100 doesn’t work correctly

So I have very few items so I migrated over with no issues to speak of. Only thing I ran into was when adding the integration on two different HA setups, the initial round failed for the integration portion. I have to go into supervisor, restart the container, then go back and add the integration again. After that it all just worked so far.

My only question is how/where to ask for device updates to be made. I have a Honeywell thermostat that is being recognized under climate, but one of the attributes is not available under the new JS setup. Under the OpenZWave Beata, I had a Fan State attribute but that no longer exists.

Help please?

Nevermind. I just found the link below and will just wait. My Honeywell is on that list.

Looks Like Fan State is still being worked on as well.

To answer my own questions: I upgraded to the latest HA this morning and my Z-Wave JS has been stable for about 5 hours - longest so far. I’m cautiously optimistic.

My KwikSet door locks are just a disaster, but I’m not the only one at least. I’ll patiently wait for things to get better with the integration and/or the Z-Wave JS front. Worse case I may see what I can do on the MQTT side to get some basic functionality back. I’d think in 2021 I should be able to set my door to lock at night at the very least. :smile:

BUT, this is all new and I should point out that I’m super-thankful for the devs for whipping this up so quickly!

Im looking forward to try zwave JS in the near future but I came here just to so say thank you @petro, you do a hell of job explaining, providing a guide to shift from 1.4 and giving out support etc. Thanks!

1 Like

I updated Home Assistant OS to Version core-2021.2.1 this morning and now Z-Wave JS for my blinds seems to be broken.

Logger: homeassistant.core
Source: components/zwave_js/cover.py:76
First occurred: 8:40:36 AM (2 occurrences)
Last logged: 8:41:46 AM

Error executing service: <ServiceCall cover.set_cover_position (c:139dafeb401c61abb248229316162ed5): entity_id=['cover.kitchen_2'], position=40>
Error executing service: <ServiceCall cover.set_cover_position (c:7c7fdb5f85ca035ac20d414329bc9241): entity_id=['cover.kitchen_2'], position=40>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/core.py", line 1471, in catch_exceptions
    await coro_or_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1490, in _execute_service
    await handler.job.target(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
    await self.hass.helpers.service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 595, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 664, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 632, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/zwave_js/cover.py", line 76, in async_set_cover_position
    await self.info.node.async_set_value(
  File "/usr/local/lib/python3.8/site-packages/zwave_js_server/model/node.py", line 250, in async_set_value
    result = await self.client.async_send_command(
  File "/usr/local/lib/python3.8/site-packages/zwave_js_server/client.py", line 64, in async_send_command
    return await future
zwave_js_server.exceptions.FailedCommand: Command failed: unknown_error

service cover.xxx works for my garage door opener and also for the one blind I still have in HomeSeer (integrated via marthoc’s integration) but the service call fails for the blinds in JS…

I did the migration last night also and had the same experience. Everything worked but I didn’t move the config I just renamed all my devices and updated scripts and automations. I really needed to clean up my naming conventions anyway.

I just hope in the future the parameter passing will work AND someone creates a blueprint for it.

As always with open source software there are many options. Which is a good thing :smiley:

  1. ZwaveJS - https://github.com/zwave-js/node-zwave-js

This is the driver to interface with ZWave created in Javascript. You can run it in NodeJS and it will give you an API to talk to your ZWave devices. This is still very low level and would not be used by an end user.

  1. ZWaveJS Server - https://github.com/zwave-js/zwave-js-server

A NodeJS wrapper which adds a websocket to the above driver. This can be run within any NodeJS compatible environment and consumed by the Home Assistant Integration.

  1. ZWaveJS2MQTT - https://github.com/zwave-js/zwavejs2mqtt

This is the docker container I’ve explained how to use. It enables you to control Z-Wave via MQTT or a WebSocket which can also be consumed by the Home Assistant Integration. When using MQTT anything that can pub/sub to MQTT can then control the network. This container also has the option to disable the MQTT Gateway or enable the web socket as per the ZWaveJS Server. It also has a control panel to see your network and manage your devices. Home Assistant can integrate with this either over MQTT or using the new Z-Wave integration to the websocket.

  1. Home-Assistant Z-WaveJS Addon - https://github.com/home-assistant/addons/tree/master/zwave_js

This is a minimal container for the Z-WaveJS Server (2). It’s deployed either as part of the Integration installation or from the Supervisor / Addons menu. The Home Assistant integration will connect to it over WebSocket as per the ZWaveJS2MQTT container (3).

  1. Home-Assistant Z-WaveJS Integration - https://github.com/home-assistant/core/tree/dev/homeassistant/components/zwave_js

Lastly there’s the Integration that was added in Home Assistant 2021.2. This can OFFICIALLY connect to either the Z-WaveJSServer (2), ZWaveJS2MQTT container (3), or the Home-Assistant Addon (4).

3 Likes

I made a community guide, you’re welcome to add this information to it

2 Likes

They were named “Product” “Current Value”

1 Like

Installed zwavejs2mqtt 0.3 today for the web interface. It runs fine.

However, after the update to 0.3, I noticed that all my zwave devices were not available in my ui anymore. I had to restart HA to see them them again.

Anyone else experiencing this too?

1 Like

Yes it seems that whenever zwavejs restarts that HA restarts. I use docker for all of mine so I told HA that it depends on zwavejs so this way when zwavejs gets an update and restarts it will force HA to restart. If I have to bounce zwavejs manually I’ll just have to remember to bounce HA at the same time.

position & up & down arrows work. But mine needs to be inverted. In the old zwave 1.4 integration you could add something like this to the yaml file :
cover.rolluik:
invert_openclose_buttons: true
invert_percent: true
Is this already possible with the new ZwaveJS integration ?

3 Likes

Hi all,

I think I’ve found an implementation bug in Z-Wave JS, where is the right place to notify the developers team about it?

Cheers,
-jprates

@JumpMaster, thanks for this. This level of detail and delineation between the two efforts has helped me tremendously to understand what the options really are, and what each piece of the puzzle plays.

Just so I’m clear, in your final comment above, the first of the three options is NOT available to those of us running HASSOS, right? That is, we can either choose #5 to interface to #3 (either using MQTT or sockets) OR #5 to interface to #4, since if I understand it correctly, #4 is needed to interface #5 to #2 in the HASSOS environment. Do I have that right?

GitHub

1 Like

Thanks, it seems someone beat me 2 days ago, glad it is a closed ticket already.

I’ll repost here my question that I already asked on GitHub:
The latest available version I can see of the Z-Wave JS to MQTT add-on is v0.2.3 and it still is not working.
@DelusionalAI mentioned the docker image v1.0.5, any correlation to the standard supervisor add-on?
Trying to get an ETA here…