Need host reboot for new z-wave devices to be recognized? (or old to be deleted)

And yes, it’s available for Home Assistant OS as well. One of the best things is that the Z-Wave network doesn’t get restarted every time you restart HA.

thanks!
bit confused though, as this:

The ozwdaemon installed and running in your network. For Home Assistant Supervisor there’s an official add-on named OpenZWave available from the add-on store.

seems to point back (after clicking links in circles…) to the core z-wave integration I am already using? or is the ozwdaemon yet another add-on/integration I would need to install separately.

the functionality I would be most interested in is this: Removed integration - Home Assistant, setting specific parameters, which I can not do right now.

With HA OS you need to install the OpenZWave add-on. It has nothing to do with the old z-wave integration at all.

o wait, so the add-on integrates this ozwdaemon already? I was confused by the listing/wording of the sentence there. thought it needed it as step 2, additional piece of software.

wonder if it (is it an integration or an add-on…) will install alongside the existing integration. will experiment some :wink:

first choice, more confusion:

There’s two parts to the equation, one is the add-on which runs the ozwdaemon software (I run this on a separate Pi as a standalone software) and the other is the integratiom for Home Assistant, which you need to setup through the UI, once you have the add-on installed.

hmm, do I need to uninstall the core z-wave integration first? I cant seem to find the correct data for the config flow, ending up in:

I’ve tried all 3 /dev/… options for the USB device path:


and didnt fill out the key (wouldn’t know what to enter there in the first place …

You need to stop the current Z-Wave network first, before installing OZW.
Check out these two guides, I can’t help here as I don’t run HA OS in production.

1 Like

The other thing you need to know is that you MUST be running the built-in mqtt broker for this to work with the add-on. Any external broker won’t work.

And if you do use an external broker you can install the stand alone docker ozw container. But also that mqtt broker must allow anonymous clients since ozw doesn’t support credentials for logging into mqtt. At least it didn’t the last time I checked.

it does support credentials.

I have the built-in broker running on another Home assistant Pi. would that do? Seems the above picture allows to enter the IP address of that Pi without issue?

Thats good to know. Thanks.

Like I said when I last looked into it the integration didn’t support it so i ended up creating another broker that allowed anonymous ckuents do i could test it out. So it’s good that there has been progress there.

I’ll look at the docs to see how it needs done in the non-add-on docker version.

I have no idea.

The usb occasionally swaps to /dev/ttyAMA1 when it is unplugged and plugged back in.

It is pretty straight forward.
I am running the container version. I also recently put my broker in a container vice ‘bare metal’. I prefer this setup now since it gives me more control of naming the sensors. It takes more time to set up since you have to set up the sensors from the MQTT paths but all the paths are clearly stated in the ‘USER’ section of each device. I only bring in what I use and it is much less cluttered now.

this sounds tempting, especially since I now have rather a complex config, because I need to be able to switch the zwave switches from my production system, while they are managed by the zwave integration on the zwave instance.

This requires a full set of automations and intermediary input_booleans on the production system, which states are published over mqtt to the wave instance , which then switches the actual switches.

could you please show me an example of how to switch the switches in your config? given the fact you have a dedicated wave instance also, I figure you’d need something like I do too?

It will be a few hours (12+) before I can get to my yaml files.
I think you are asking for examples of what I use to create sensors.
I can post some of my sensor and binary_sensor configs and also post a screenshot of where you find the MQTT topic (the easy way).
I only have a few unique types of Zwave devices, so I could post one of each:
Aeotec Door/Window sensor
Aeotec MultiSensor
Aeotec Smart Plug
Aeotec Recessed Door sensor
Aeotec NanoMote
EcoLink Firefighter
EcoControls Bulldog Valve Robot

You could always bring in more data, if you wanted. I will get a screenshot of my MQTT explorer view of some device also, just so you see how much is available. Typically ALL the configuration information for a Zwave device is also published via MQTT, which can be extensive; you are not obligated to use all or any of this info. For example, my window sensors have dozens of MQTT topics, but I only pull the binary open/closed data.

I will say that you do need to look at the states given in the Zwave dashboard before you ‘assume’ you know what they are. That bit be a few times.

So, short story long, I will post my info when I get home but that will be awhile.

1 Like

Binary Sensors:

### ZWave2MQTT ###
#Office MultiSensor
- platform: mqtt
  name: "Office Motion"
  device_class: motion
  state_topic: "zwave/Office/MultiSensor/48/1/0"
  json_attributes_topic: "zwave/Office/MultiSensor/48/1/0"
  value_template: "{{ value_json.value }}"
  payload_on: true
  payload_off: false

#EcoLink Figherfighter
- platform: mqtt
  name: "Smoke Alarm"
  device_class: smoke
  state_topic: "zwave/Bedroom_Master/Smoke_CO/113/1/1"
  json_attributes_topic: "zwave/Bedroom_Master/Smoke_CO/113/1/1"
  value_template: "{{ value_json.value }}"
  payload_on: Smoke Detected at Unknown Location
  payload_off: Clear

#Front Door Sensor
- platform: mqtt
  name: "Front Door"
  device_class: door
  state_topic: "zwave/Living_Room/Front_Door/48/1/0"
  json_attributes_topic: "zwave/Living_Room/Front_Door/48/1/0"
  value_template: "{{ value_json.value }}"
  payload_on: true
  payload_off: false

#Kitchen Window Sensor
- platform: mqtt
  name: "Kitchen Window"
  device_class: window
  state_topic: "zwave/Kitchen/Kitchen_Window/113/1/6"
  json_attributes_topic: "zwave/Kitchen/Kitchen_Window/113/1/6"
  value_template: "{{ value_json.value }}"
  payload_on: Door/Window Open
  payload_off: Door/Window Closed

#EcoNet Bulldog Valve Robot
- platform: mqtt
  name: "Backup Water Vavle"
  device_class: moisture
  state_topic: "zwave/Outside/Water_Backup_Valve/37/1/0"
  json_attributes_topic: "zwave/Outside/Water_Backup_Valve/37/1/0"
  value_template: "{{ value_json.value }}"
  payload_on: true
  payload_off: false

#NanoMote 1 (Possibility of 8 combinations, I just did 4)
- platform: mqtt
  name: "NanoMote_1_Button_1"
  #device_class:
  state_topic: "zwave/Portable/Nano_1/91/1/1"
  json_attributes_topic: "zwave/Portable/Nano_1/91/1/1"
  value_template: "{{ value_json.value }}"
  payload_on: Pressed 1 Time
  payload_off: Inactive
- platform: mqtt
  name: "NanoMote_1_Button_2"
  #device class:
  state_topic: "zwave/Portable/Nano_1/91/1/2"
  json_attributes_topic: "zwave/Portable/Nano_1/91/1/2"
  value_template: "{{ value_json.value }}"
  payload_on: Pressed 1 Time
  payload_off: Inactive
- platform: mqtt
  name: "NanoMote_1_Button_3"
  #device_class:
  state_topic: "zwave/Portable/Nano_1/91/1/3"
  json_attributes_topic: "zwave/Portable/Nano_1/91/1/3"
  value_template: "{{ value_json.value }}"
  payload_on: Pressed 1 Time
  payload_off: Inactive
- platform: mqtt
  name: "NanoMote_1_Button_4"
  #device_class:
  state_topic: "zwave/Portable/Nano_1/91/1/4"
  json_attributes_topic: "zwave/Portable/Nano_1/91/1/4"
  value_template: "{{ value_json.value }}"
  payload_on: Pressed 1 Time
  payload_off: Inactive

Sensor:

#Office MutltiSensor
- platform: mqtt
  name: "Office Temperature"
  state_topic: "zwave/Office/MultiSensor/49/1/1"
  json_attributes_topic: "zwave/Office/MultiSensor/49/1/1"
  value_template: "{{ value_json.value }}"
  device_class: temperature
  unit_of_measurement: 'F'
  icon: mdi:thermometer
- platform: mqtt
  name: "Office Humidity"
  state_topic: "zwave/Office/MultiSensor/49/1/5"
  json_attributes_topic: "zwave/Office/MultiSensor/49/1/5"
  value_template: "{{ value_json.value }}"
  device_class: humidity
  unit_of_measurement: '%'
  icon: mdi:water-percent
- platform: mqtt
  name: "Office MultiSensor Battery"
  state_topic: "zwave/Office/MultiSensor/128/1/0"
  json_attributes_topic: "zwave/Office/MultiSensor/128/1/0"
  value_template: "{{ value_json.value }}"
  device_class: battery
  unit_of_measurement: '%'
  icon: mdi:battery-70
- platform: mqtt
  name: "Office Illuminance"
  state_topic: "zwave/Office/MultiSensor/49/1/3"
  json_attributes_topic: "zwave/Office/MultiSensor/49/1/3"
  value_template: "{{ value_json.value }}"
  device_class: illuminance
  unit_of_measurement: 'lux'
  icon: mdi:brightness-percent
- platform: mqtt
  name: "Office UV"
  state_topic: "zwave/Office/MultiSensor/49/1/27"
  json_attributes_topic: "zwave/Office/MultiSensor/49/1/27"
  value_template: "{{ value_json.value }}"
  device_class: illuminance
  unit_of_measurement: 'UV Index'
  icon: mdi:brightness-7

#Bedroom Master AeoTec Smart Plug (TV)
- platform: mqtt
  name: "Bedroom Master TV Power"
  state_topic: "zwave/Bedroom_Master/Plug_TV/50/1/2"
  json_attributes_topic: "zwave/Bathroom_Kid/Plug_TV/50/1/2"
  value_template: "{{ value_json.value }}"
  device_class: power
  unit_of_measurement: 'W'
  icon: mdi:flash

#EcoLink FireFighter (Master Bedroom)
- platform: mqtt
  name: "FireFighter Battery"
  state_topic: "zwave/Bedroom_Master/Smoke_CO/128/1/0"
  json_attributes_topic: "zwave/Bedroom_Master/Smoke_CO/128/1/0"
  value_template: "{{ value_json.value }}"
  device_class: battery
  unit_of_measurement: '%'
  icon: mdi:battery-70

#Recesed Door Sensor (Front Door)
- platform: mqtt
  name: "Front Door Sensor Battery"
  state_topic: "zwave/Living_Room/Front_Door/128/1/0"
  json_attributes_topic: "zwave/Living_Room/Front_Door/128/1/0"
  value_template: "{{ value_json.value }}"
  device_class: battery
  unit_of_measurement: '%'
  icon: mdi:battery-70

#Window Sensor (Kitchen Window)
- platform: mqtt
  name: "Kitchen Window Battery"
  state_topic: "zwave/Kitchen/Kitchen_Window/128/1/0"
  json_attributes_topic: "zwave/Kitchen/Kitchen_Window/128/1/0"
  value_template: "{{ value_json.value }}"
  device_class: battery
  unit_of_measurement: '%'
  icon: mdi:battery-70

#NanoMote #1
- platform: mqtt
  name: "NanoMote 1 Battery"
  state_topic: "zwave/Portable/Nano_1/128/1/0"
  json_attributes_topic: "zwave/Portable/Nano_1/128/1/0"
  value_template: "{{ value_json.value }}"
  device_class: battery
  unit_of_measurement: '%'
  icon: mdi:battery-70

MQTT Explorer view of just part of a single sensor:


The dashboard from Zwave2MQTT:

great thanks!
so the new (beat) integration registered all zwave devices, and publishes the states of all over the MQTT Broker. Any client that subscribes to that broker can then create mqtt sensors for those states.

That is in fact much like my wave setup at the moment, using a dedicated Z-wave Hub (not the HA wave instance I was talking about earlier).

Now I only need to know how I could switch switches that are registered on the HA instance with the beta integration from any other device. Do we use mqtt switches for that?
In my current hardware config, the Zwave Hub doesnt accept external commands, it only publishes topics. I can send shell_commands with an api call. Would be great if this new integration would allow us to create an mqtt switch, would you know about that too? Especially finding the command_topic confuses me…

edit

wait, found it I think, it might be as simple as creating a topic for that

sensor:
  - platform: mqtt
    name: Everspring Lamp library set
    state_topic: everspring_lamp_library_set

and using that as command_topic in the switch

switch:

  - platform: mqtt
    unique_id: lamp_library
    name: Everspring Lamp library
    state_topic: ha_zwave/switch/everspring_lamp_library/state
    command_topic: everspring_lamp_library_set
    payload_on: 'on'
    payload_off: 'off'
    state_on: 'on'
    state_off: 'off'
    retain: true

and an automation on the zwave instance (‘ha_zwave’ in the state_topic above) triggering on that topic:

  - alias: Set Everspring Lamp library
    trigger:
      platform: state
      entity_id: sensor.everspring_lamp_library_set
    condition:
      >
        {{trigger.to_state.state != trigger.from_state.state and
          trigger.to_state.state in ['on','off']}}
    action:
      service: >
        switch.turn_{{trigger.to_state.state}}
      entity_id: switch.everspring_lamp_library

:wink:

Usually in order to issue a command back to Zwave via MQTT you have to publish a sub topic of ‘SET’ to the variable to be changed, with a payload of (‘value’, ‘on’) for example.

yes, that is exactly what the above config does:

the mqtt switch on the ‘slave’ uses the _set topic, and that is subscribed to on the ‘master’ and triggering the automation.

the other way round, switching the switch on the ‘master’, sends the _set topic, which then is subscribed to in the mqtt switch.

  - alias: Everspring Lamp library
    trigger:
      platform: state
      entity_id: switch.everspring_lamp_library
    condition:
      >
        {{trigger.to_state.state != trigger.from_state.state and
          trigger.to_state.state in ['on','off']}}
    action:
      service: mqtt.publish
      data:
        topic: everspring_lamp_library_set
        retain: true
        payload: >
          {{trigger.to_state.state}}

all in all rather ingenious in its simplicity :slight_smile:

this is all using the old, current wave integration. Ill move to the new beta integration and guess I can keep the rest of the config identical.

thanks for your support

new question…
how do I manually delete (as in edit config files) a no longer available z-wave device?
I briefly tested a Sensative strip again, couldn’t really have it join the network correctly, so decided to de-install it and send it back.

It however keeps being listed in the zwave integration, and no matter how many times I have deleted the entries in the hidden .storage files, the keep returning.

Of course, I have already rebooted the HA instance. Doesnt help.

What could I try next?