The Future of Z-Wave in HA - QT-OpenZWave

Reporting back that for me it’s also working stable.

Does the new OZW support node_event?

HA 0.90.2 (OpenZwave Version 1.5.0) automation working:

- alias: "Living Room Light Switch Double Tap On"
   trigger:
     - platform: event
       event_type: zwave.node_event
       event_data:
         entity_id: zwave.living_room_light
         basic_level: 255

HA 0.117.6 using OZW doesn’t work:

- id: '1605643144564'
   alias: Living Room Light Switch Double Tap On
   description: ''
   trigger:
   - platform: event
     event_type: zwave.node_event
     event_data:
       entity_id: switch.living_room_light
       basic_level: 255

I have tried event type ozw.scene_activated and ozw.node_event, which didn’t work either. I have set

logger:
  default: info
  logs:
    homeassistant.components.ozw: debug

and it look like OZW doesn’t receive the Basic set command. Was node_event support not added?

Is that a double tap event on a ge switch?

There is no Node Event in ozwdaemon (openzwave beta), and there may never be. There are only workarounds for now at least. https://github.com/OpenZWave/qt-openzwave/issues/60

Thank you @freshcoast, that works! Stop qt-openzwave, edit ozwcache_<id>.xml for node to set command class 32 look like this:

  <!-- COMMAND_CLASS_BASIC -->
  <CommandClass id="32">
    <Compatibility>
      <IgnoreMapping>true</IgnoreMapping>
      <SetAsReport>true</SetAsReport>
    </Compatibility>
  </CommandClass>

start qt-openzwave, wait for things to settle, refresh the node in HA and I get 3 disabled sensors added. Enable and rename the the sensor and can now use that for automations:

- id: '1605643144564'
  alias: Living Room Light Switch Double Tap On
  description: ''
  trigger:
  - platform: state
    entity_id: sensor.living_room_switch_basic
    to: '255'
1 Like

I’m going to assume your light switches are GE, but I think this will apply to some other doubletap events.
I guess I’m also assuming that was your trigger before. :slight_smile: I recognice the 255 (and probably 0)

I’ve been doing this for a little longer than a month and it works fine. Of course the automation will change, but it willl still be a trigger on the event

EDIT: looks like we were both posting at the same time. haha. Glad you got it working

I would edit the actual device XML file, not the cache file. I’m surprised after refreshing the node that the setting persisted.

The basic sensor has some issues, notably when HA restarts. Your automation as written is going to trigger when you restart.

Agree about starting when HA restarts. I use the HA uptime sensor, but there are other ways to keep that from happening. Here is a simple automation I’ve been using. I use the doubletap on one switch to turn on a light without a switch nearby

- alias: Turn off TV Backlights in Bedroom from vanity switch
  trigger:
  - platform: state
    entity_id: sensor.bedroom_vanity_light_basic
  condition:
  - condition: numeric_state
    entity_id: sensor.ha_runtime_in_minutes
    above: 2
  action:
  - service_template: >
      {% if (states.sensor.bedroom_vanity_light_basic.state)  == '255' %}
        light.turn_on
      {% elif (states.sensor.bedroom_vanity_light_basic.state) == '0' %}
        light.turn_off
      {% endif %}
    entity_id: light.bedroom_tv_lights

Back in the spring I was pretty engaged in working through some of the refresh issues with the developer folks. This was all for a seasonal home and so for the summer I was off Zwave stuff but now I’m headed back to it. One thing that was bothersome at the time was that the ozw.scene_activated required a node id and those weren’t really available other than by manually looking at them. This seemed error prone and at the time there was some discussion about reintroducing a device notion and using that for things like scene_activated that needed the id. Doesn’t look like this occurred so is there any best practice developed yet that avoids hard coding node ids in automation triggers? At the time, templating, which seemed like it might work (use the entity_id and pull the node id attribute from there wouldn’t work in that context. So before I start from scratch here what is the best approach? Thanks.

Hi All,

I am not sure if the this is the post to use. I have setup the Openzwave and it is working fine. But my AEON Labs Zstick Gen 5 is showing me that it is not capable of using Zwave Plus. Why is this? How can i to solve this issue?

image

Versions:
OpenZWave Version 1.6.1392
qt-openzwave Version: 1.2.0
QT Version: 5.12.8

I believe this is an issue of the OZW-admin software not reporting the attribute for the controller. It seems to report it correctly for other ZWave devices in the network, just not for the ZWave controller itself.

I have two different ZWave controllers (an Aeotec Z-Stick Gen5 Plus, and a Z-Wave.Me USB stick). Both are ZWave Plus devices, but the OZW-Admin falsely reports that they are first generation ZWave.

Hi Geoff,

Thank for your answer, i hope that it will be solved in a next release.

Hi experts,

I really hope for some help… This takes away the glory of my automation…

1 Like

I’ve created a python script to manage these settings easily, as well as being able to set polling frequency. Really wish these were configurable in the Home Assistant OpenZWave add-on since there is a large number of devices that do not support instant status updates.

3 Likes

That is very helpful! Can you maybe explain how to use the script? What are the arguments? I can read the code a bit but am no developer so need some help :wink:

Thanks! Hopefully it will help others while the addon is still in beta. The usage is as follows:

usage: qt-openzwave.py [-h] -s MQTT_SERVER -u MQTT_USERNAME -p MQTT_PASSWORD {list,enablepoll,disablepoll,setpollinterval,getpollinterval} ...

Commands to manage qt-OpenZWave over MQTT.

optional arguments:
  -h, --help            show this help message and exit
  -s MQTT_SERVER        MQTT server
  -u MQTT_USERNAME      MQTT username
  -p MQTT_PASSWORD      MQTT password

commands:
  {list,enablepoll,disablepoll,setpollinterval,getpollinterval}
    list                Lists nodes
    enablepoll          Enables node polling
    disablepoll         Disables node polling
    setpollinterval     Sets the polling interval
    getpollinterval     Gets the polling interval

So first get a list of nodes, then get a list of values by list -n. This will print a list of value keys. These can be used as an argument for the enablepoll command.

1 Like

Briljant. I’ll try it out after work. Thanks a lot. Been trying to figure out how to easily do this and got a bit drowned in topics and documentation. Thanks!

There is ongoing work to make that happen in the integration. The last couple of releases, the integration has gotten quite a bit of improvement, just nothing super tangible for general use yet.

Currently I’m using my SmartThings hub to control all my ZWave/Zigbee devices. I’d like to move this all into HA. Since this is the ‘future’, does it make sense to start with this? Or should I use the standard ZWave integration until this is ready?

I’ve been very happy with ZWave2MQTT. It is solid and has a nice dashboard to configure it and the devices.

1 Like