Z-Wave Control Panel

The Z-Wave control panel is available via ConfigurationIntegrationsZ-WaveConfigure.

This Z-Wave integration is deprecated and has been replaced with a new implementation based on Z-Wave JS; You can try it now.

Z-Wave Network Management

Here is where you include and exclude Z-Wave devices from your network.

  • Add Node puts the controller into inclusion mode, so you can include (add) a device to your Z-Wave network

  • Add Node Secure puts the controller into secure inclusion mode (this requires that you’ve created a security key)

  • Remove Node puts the controller into exclusion mode, so you can exclude (remove) a device. Note that you can exclude a non-secure device that’s been added to another network

  • Cancel Command cancels any of the above

  • Heal Network tells the controller to “heal” the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can recompute optimal routing.

  • Start Network starts the Z-Wave network

  • Stop Network stops the Z-Wave network

  • Soft Reset tells the controller to do a “soft reset.” This is not supposed to lose any data, but different controllers can behave differently to a “soft reset” command, and may cause the Z-Wave network to hang.

  • Test Network tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked “presumed dead”.

  • Save Configuration Saves the current cache of the network to zwcfg_[home_id].xml.

Z-Wave Node Management

  • Refresh Node refreshes the information on the node and its entities. If used on a battery powered device, the device will first need to wake for this to work.

  • Remove Failed Node will remove a failed node from the network. The node needs to be on the controller’s Failed Node List (marked as is_failed: true), otherwise this command will fail. You can trick OpenZWave into thinking the node is failed by selecting the zwave entity in the States menu, under Developer tools, and changing "is_failed": false, to "is_failed": true, then selecting Set State.

  • Replace Failed Node will replace a failed device with another. If the node is not in the controller’s Failed Node List, or the node responds, this command will fail.

  • Print Node prints all state of Z-Wave node to the console log

  • Heal Node starts healing of the node.(Update neighbor list and update return routes)

  • Test Node sends no_op test messages to the node. This could in theory bring back a dead node.

  • Node Information this will display the Z-Wave entity card with information about the node:

  • averageRequestRTT The average Round Trip Time (RTT) of requests sent to the node, in milliseconds. A value of 250, for example, is a quarter of a second.

  • averageResponseRTT The average Round Trip Time of responses to requests

  • battery_level Battery powered devices only - the battery level, which may be rounded to the nearest 10

  • capabilities A comma separated list of the capabilities of the device

  • friendly_name The name you specified to be displayed

  • is_awake Whether the device is awake or not

  • is_failed Whether the device has been marked as failed. The controller won’t try to contact failed devices.

  • is_info_received True once the controller has received the node information from the node.

  • is_ready When you start the network (or Home Assistant) it will take a short while before all devices are ready, this shows which aren’t yet ready.

  • is_zwave_plus True for any Z-Wave Plus devices (note that controllers always report false, regardless of whether they are Plus devices or not)

  • lastRequestRTT The Round Trip Time of the last request

  • lastResponseRTT The Round Trip Time of the response to the last request

  • manufacturer_name The name of the manufacturer, as supplied by OpenZWave

  • max_baud_rate The maximum bandwidth the device supports, most modern devices will support 40,000 or higher

  • node_id The unique node ID of this node

  • node_name The base name of this node, this is used to build the entity ID of all entities of this node

  • product_name The product name of the device, as supplied by OpenZWave

  • query_stage The query stage for this device (see here for details)

  • receivedCnt The number of messages received from the device

  • receivedDups The number of duplicate messages received from the device

  • receivedTS The date and time the last message was received from the devices

  • receivedUnsolicited How many unsolicited messages were received

  • retries How many retries have been made to send messages to this node

  • sentCnt How many messages have been sent to the node

  • sentFailed How many messages that were sent weren’t acknowledged

  • sentTS The date and time the last message was sent to the node

  • wake_up_interval Battery powered devices only - the wakeup interval of the device, in seconds

Battery powered devices need to be awake before you can use the Z-Wave control panel to update their settings. How to wake your device is device specific, and some devices will stay awake for only a couple of seconds. Please refer to the manual of your device for more details.

Entities of this node

This is a dropdown where you can select all the entities of this node. Once selected you can then use:

  • Refresh Entity to refresh just that entity’s values
  • Entity Information to display the attributes of that entity (e.g., its friendly name, the ID of the node, etc)

Here you can mark a device as requiring polling so the controller is aware of changes because the device doesn’t send updates itself. Do see the information on polling here, since excessive polling can break your Z-Wave network.

The Polling intensity says how many poll intervals this device is polled on. For example, if you set 2 then it’s polled on every second interval.

You can also exclude a Z-Wave devices from Home Assistant. You can do that if you have a device that you need to have on the Z-Wave network, but you don’t want it to appear in Home Assistant, or if you’ve got a device that’s failed and you’re unable to exclude it.

Renaming Z-Wave entities is done with the same customization options as any other entity in Home Assistant.

Node Values

Contains a list of available values of the selected node, and it’s instances.

Node group associations

Where the device supports the Association command class, this will allow you to associate the device with another. OpenZWave will automatically associate the device with the controller, to provide instant updates when the device doesn’t support the Hail command class.

You can use this to enable one device to directly control another. This is primarily useful for remote controls that operate lights or switches, or where you want to have multiple devices operate as one.

There may be multiple groups, that are used for different purposes. The manual of your device will explain what each group is for.

Broadcast group

Some Z-Wave devices may associate themselves with the broadcast node (node 255). You’ll be able to tell if this has happened if opening a door (or triggering a motion sensor) causes lights to come on, and closing the door (or the motion sensor going clear) causes lights to run off. You can get rid of this by selecting any target node. If the group has node 255 in it, a Remove broadcast button will appear. You can also use the zwave.change_association service:

{"association": "remove", "node_id": 3, "group": 1, "target_node_id": 255}

That would remove the broadcast group from association group 1 of the device with node_id 3.

Node configuration options

You can set the wakeup interval (in seconds) of the device, this is shown for all devices that can be battery powered, even if they are currently mains powered. The wakeup interval only applies when those devices are battery powered.

The wakeup interval has no impact on the device's ability to report sensor changes. This is purely for how often the Z-Wave chip will check in with the controller. That activity consumes a lot of battery power compared to reporting sensor changes and if you reduce it you'll be reducing the battery life of your device.

Underneath that you can select any supported configuration parameter to see the current setting. You can then change this and select Set Configuration Parameter to updated it. Battery powered devices will be updated the next time they wake.

Node protection

If your node has the protection commandclass, you can change the protection level of the node. Check your device manual on how to use this setting, as it is different between manufacturers. Set the new selection by pressing the Set Protection button.

Node user codes

If your node has user codes, you can set and delete them. The format is raw hex ASCII code. Below the input you will see your actual code. For normal nodes this is as follows:

\x30 = 0
\x31 = 1
\x32 = 2
\x33 = 3
\x34 = 4
\x35 = 5
\x36 = 6
\x37 = 7
\x38 = 8
\x39 = 9

Some non compliant device like tag readers, have implemented to use raw hex code. Please refer to a hex ASCII table to set your code. Example: https://www.asciitable.com/

Here is a small Python program than will take numbers on the command line and print the correct sequence for compliant devices:

#! /usr/bin/python3
import sys

translations = {}

for x in range(0, 10):
    translations["%s" % x] = "\\x3%s" % x

for c in sys.argv[1]:
    print(translations[c], end="")


If you want to only retrieve some lines at the end of the log, you can specify that with the selection field. Max is the last 1000 lines and minimum is 0 which equals the whole log. If this is not specified, you will retrieve the whole log. Select Load to open a new window with the static log. Select Tail to open a new window with a tailing log with the last specified lines of the log. This is a self updating window.