mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-17 22:36:51 +00:00
Rework Z-Wave docs (#19962)
Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
a4ba5c934a
commit
229ff6b024
@ -1,44 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave"
|
||||
description: "Using Z-Wave with Home Assistant."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
[Z-Wave](https://www.z-wave.com/) integration for Home Assistant allows you to observe and control connected Z-Wave devices. Z-Wave support requires a [supported Z-Wave USB stick or module](/docs/z-wave/controllers/) to be plugged into the host.
|
||||
|
||||
There is currently support for climate, covers, lights, locks, sensors, switches, and thermostats. All will be picked up automatically after configuring this platform.
|
||||
|
||||
Before configuring the Z-Wave setup, please take a moment and read [this article](https://drzwave.blog/2017/01/20/seven-habits-of-highly-effective-z-wave-networks-for-consumers/) to understand the most common pitfalls of Z-Wave networks.
|
||||
|
||||
## What is Z-Wave
|
||||
|
||||
Z-Wave is a wireless communication protocol designed for home automation. It uses a low power, and low bandwidth, mesh network that allows devices that aren't within direct range of each other to communicate indirectly, via other nodes. Any device that's permanently powered (not battery powered) will help build the mesh, if you don't have enough powered devices, or you locate these poorly, your mesh will be unreliable. You can [view the state](https://community.home-assistant.io/t/graph-your-z-wave-mesh-python-auto-update/40549) of your mesh [by graphing it](https://community.home-assistant.io/t/z-wave-graph-without-the-python/64275).
|
||||
|
||||
There is a limit of 232 devices in a single Z-Wave network. If you need more devices then you could set up a second Home Assistant system with its own Z-Wave network and connect these with the [MQTT Eventstream](/integrations/mqtt_eventstream/) or [MQTT Statestream](/integrations/mqtt_statestream) integrations. There is also a limit of 4 hops for Z-Wave, so placing the controller as centrally as you can is important.
|
||||
|
||||
The Z-Wave standard was improved with Z-Wave Plus, and if you only use Z-Wave plus devices then you will gain the full benefits.
|
||||
|
||||
## What do you need to use Z-Wave
|
||||
|
||||
There are 2 basic things you'll need to use Z-Wave, a Z-Wave [controller](/docs/z-wave/controllers/) and one or more [devices](/docs/z-wave/devices/).
|
||||
|
||||
### Regional differences
|
||||
|
||||
There are 12 different regions for Z-Wave devices, which relates to the frequency the devices use. There is overlap between the regions, but you should ensure that you buy devices for your region. Wikipedia has a list of the [frequencies used](https://en.wikipedia.org/wiki/Z-Wave#Radio_frequencies).
|
||||
|
||||
## Getting started
|
||||
|
||||
You'll now need to connect your [controller](/docs/z-wave/controllers/), [configure](/docs/z-wave/installation) the Z-Wave integration, then [add some devices](/docs/z-wave/adding) using the [control panel](/docs/z-wave/control-panel). [This explains](/docs/z-wave/devices/) about devices, and how [entities are named](/docs/z-wave/entities).
|
||||
|
||||
You can get more information on the [available services](/docs/z-wave/services/) and [events](/docs/z-wave/events/), what the [query stages](/docs/z-wave/query-stage) of battery powered devices are, as well as details on configuring [specific devices](/docs/z-wave/device-specific/).
|
||||
|
||||
## Instant status updates
|
||||
|
||||
When you toggle a switch or control a light locally you may find that it takes some time for that to be reflected in Home Assistant. That's because Lutron had patents on the status updates using the *Hail* command class, the traditional way of allowing devices to tell the controller that something happened locally. The same result can be achieved through the *Association* command class, or *Central Scene* command class (though, *Central Scene* isn't [fully supported](https://github.com/OpenZWave/open-zwave/pull/1125) in OpenZWave).
|
||||
|
||||
If you search [the Z-Wave products database](https://products.z-wavealliance.org/) for your product and it lists one of those in the **Controlled** command classes (not the **Supported** command classes), then your device will be able to report state changes when they happen. If it doesn't then updates may either happen eventually, or you may need to (carefully) [enable polling](/docs/z-wave/control-panel/#entities-of-this-node).
|
@ -1,80 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave Devices - Adding and Removing"
|
||||
description: "How to add and remove Z-Wave devices."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
## Adding Devices
|
||||
|
||||
To add a [Z-Wave device](/docs/z-wave/devices/):
|
||||
|
||||
1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/).
|
||||
2. Click **Add Node** in the *Z-Wave Network Management* card, or **Add Node Secure** for secure devices like locks. This puts your [Z-Wave controller](/docs/z-wave/controllers/) in "inclusion" mode.
|
||||
3. Activate your device by following the instructions provided with it. Usually, this involves pressing a button.
|
||||
4. Make sure the device is in its final location, then click **Heal Network**. This is optional but helps optimize network speed.
|
||||
|
||||
When you add a device, it may initially appear without a specific entity ID (e.g., `zwave.__`) or other identifying information. *Heal Network* should speed the process of populating this information. You *might* need to restart Home Assistant for the entity ID to appear.
|
||||
|
||||
<div class='note warning'>
|
||||
|
||||
Some Z-Wave USB sticks have a physical "inclusion" button to add devices; **don't use it**. Likewise, don't add devices directly through other tools like [OpenZWave control panel](https://github.com/OpenZWave/open-zwave-control-panel). Many devices only send capabilities information at the time you add them, so if you add them outside of Home Assistant this information will be missing.
|
||||
|
||||
</div>
|
||||
|
||||
<div class='note warning'>
|
||||
Secure devices require additional bandwidth; too many secure devices can slow down your Z-Wave network. We recommend only using secure inclusion for devices that require it, like locks or garage door openers.
|
||||
</div>
|
||||
|
||||
## Removing Devices
|
||||
|
||||
To remove a [Z-Wave device](/docs/z-wave/devices/):
|
||||
|
||||
1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/).
|
||||
2. Click **Remove Node** in the *Z-Wave Network Management* card. This puts your [Z-Wave controller](/docs/z-wave/controllers/) in "exclusion" mode.
|
||||
3. Activate your device by following the instructions provided with it. Usually, this involves pressing a button.
|
||||
4. The device should now be removed, but that won't show until you restart Home Assistant. Look for a confirmation signal on the device if available, or confirm in the Home Assistant logs.
|
||||
5. Click **Heal Network**. This is optional but helps optimize network speed.
|
||||
|
||||
If your device isn't responding to this process, possibly because you've factory reset it or it has failed, you can remove it using **Remove Failed Node**.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Problems adding or removing devices?
|
||||
|
||||
### Already Added
|
||||
|
||||
If your device was previously added to another controller but not removed from it, **you must remove it before adding it to Home Assistant**.
|
||||
|
||||
1. **Remove the device from the old controller**, if possible. If your device was added to a different system (SmartThings, Wink, etc.) follow that system's instructions to remove the device. Then try adding the device to Home Assistant again.
|
||||
2. If you can't remove it from the old controller, **try removing the device using Home Assistant**. Follow the instructions in [Removing Devices](#removing-devices); even though it hasn't been added to Home Assistant yet, most Z-Wave devices will respond to exclusion mode from *any* controller. Then try adding the device to Home Assistant again. (Secure devices with a theft protection feature may not allow this.)
|
||||
3. If removing the device doesn't help, **try a factory reset** as a last resort. Check your device's manual for instructions.
|
||||
|
||||
### Range Issues
|
||||
|
||||
Normally you can add and remove devices as long as they are within range of any Z-Wave Plus device in your network, using a feature called [network-wide inclusion](https://z-wavealliance.org/z-wave_plus_certification/).
|
||||
|
||||
If you are using older non-Z-Wave Plus devices, your device may need to be within the range of your [controller](/docs/z-wave/controllers/) to be added or removed. If you cannot move the device (e.g., wall switches), you can try temporarily relocating your controller to be near your device. See the [Z-Wave Alliance documentation on Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) for more information on how to determine if your devices support Z-Wave Plus.
|
||||
|
||||
### Forcibly Removing Devices
|
||||
|
||||
You can use the **Remove Failed Node** button to remove a failed device (e.g., because it is broken). In rare cases, you may want to remove a device that has *not* failed. This is not recommended but can help when a device has not been recognized as failed.
|
||||
|
||||
1. Go to the *States* menu under *Developer tools* in the Home Assistant frontend
|
||||
2. Click on the name of the `zwave.` entity you want to remove
|
||||
3. Make note of the entity's "node_id" value as you will need to re-add the "node_id" attribute and value in step 4.
|
||||
4. At the top, edit the JSON attributes to replace `false` with `true` for `"is_failed": false,` so that it reads `"is_failed": true.` Also add the "node_id" value to the number listed in the entity's attribute. The YAML attributes should look something like below:
|
||||
|
||||
```yaml
|
||||
node_id: 6
|
||||
is_failed: true
|
||||
```
|
||||
|
||||
5. Click **Set State**
|
||||
6. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/)
|
||||
7. Click **Remove Failed Node** in the *Z-Wave Node Management* card
|
||||
8. The device will now be removed, but that won't show until you restart Home Assistant
|
@ -1,169 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave Control Panel"
|
||||
description: "How to use the Z-Wave control panel."
|
||||
---
|
||||
|
||||
The Z-Wave control panel is available via **Configuration** → **Integrations** → **Z-Wave** → **Configure**.
|
||||
|
||||
* **No Z-Wave integration?** Follow the [set up instructions](/docs/z-wave/installation/) to enable it.
|
||||
* **Missing the *Configuration* button?** See the [configuration documentation](/integrations/config/) for instructions on enabling it.
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and has been replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); You can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
## Z-Wave Network Management
|
||||
|
||||
Here is where you [include and exclude](/docs/z-wave/adding/) 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](/docs/z-wave/adding#sdding-security-devices))
|
||||
* **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](/docs/z-wave/query-stage/) 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
|
||||
|
||||
<div class='note'>
|
||||
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.
|
||||
</div>
|
||||
|
||||
#### 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](/docs/z-wave/devices/#polling), 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](/docs/configuration/customizing-devices/) 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:
|
||||
|
||||
```json
|
||||
{"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.
|
||||
|
||||
<div class='note'>
|
||||
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.
|
||||
</div>
|
||||
|
||||
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:
|
||||
```yaml
|
||||
\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:
|
||||
|
||||
```python
|
||||
#! /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="")
|
||||
```
|
||||
|
||||
## OZW Log
|
||||
|
||||
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.
|
||||
|
@ -3,15 +3,9 @@ title: "Z-Wave Controllers"
|
||||
description: "Extended instructions how to setup Z-Wave."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
## Supported Z-Wave USB Sticks & Hardware Modules
|
||||
|
||||
You need to have a compatible Z-Wave stick or module installed. This needs to be a *static controller*, which most Z-Wave sticks and modules will be. If yours is a *bridge* device then it won't work with [OpenZWave](http://openzwave.com/), which is what provides Home Assistant's Z-Wave capabilities. The following devices have been confirmed to work:
|
||||
You need to have a compatible Z-Wave stick or module installed. This needs to be a *static controller*, which most Z-Wave sticks and modules will be, and not a *bridge* device. The following devices have been confirmed to work:
|
||||
|
||||
- Aeotec Z-Stick Gen5 (see note below)
|
||||
- Everspring USB stick - Gen 5
|
||||
@ -22,10 +16,10 @@ You need to have a compatible Z-Wave stick or module installed. This needs to be
|
||||
- ZWave.me Razberry Board
|
||||
- ZWave.me UZB1 stick
|
||||
|
||||
We recommend that you purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) controller, to take advantage of the improvements this provides. As OpenZWave doesn't support S2 or Smart Start, there's no need to buy one just for support of these features.
|
||||
We recommend that you purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) controller, to take advantage of the improvements this provides.
|
||||
|
||||
<div class='note'>
|
||||
If you're using Hass.io or running Home Assistant in a Docker container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
|
||||
If you're using Home Assistant OS, Supervised, or Container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
|
||||
</div>
|
||||
|
||||
## Stick Alternatives
|
||||
@ -38,7 +32,7 @@ The alternative to a stick is a hub that supports Z-Wave. Home Assistant support
|
||||
|
||||
## Controller Notes
|
||||
|
||||
### Aeotec Stick
|
||||
### Aeotec Z-Stick
|
||||
|
||||
<div class='note'>
|
||||
|
||||
@ -46,8 +40,59 @@ There are [known compatibility issues](https://www.raspberrypi.org/forums/viewto
|
||||
|
||||
</div>
|
||||
|
||||
By default this will turn on "disco lights", which you can turn off by following the instructions in the [device specific page](/docs/z-wave/device-specific/#aeotec-z-stick)
|
||||
It's totally normal for your Z-Wave stick to cycle through its LEDs (Yellow, Blue and Red) while plugged into your system.
|
||||
|
||||
### Razberry Board
|
||||
|
||||
You need to disable the on-board Bluetooth since the board requires the use of the hardware UART (and there's only one on the Pi3). You do this by following the instructions in the [device specific page](/docs/z-wave/device-specific/#razberry-board)
|
||||
You need to disable the on-board Bluetooth since the board requires the use of the hardware UART (and there's only one on the Pi3). You do this by adding the following to the end of `/boot/config.txt`:
|
||||
|
||||
For both processes below you will need to insert your SD card into your PC and open the `/boot/config.txt` file with your favorite text editor.
|
||||
|
||||
#### Raspberry Pi 4 procedure
|
||||
|
||||
Add the following parameters to the bottom of the `/boot/config.txt` file.
|
||||
|
||||
```text
|
||||
dtoverlay=disable-bt
|
||||
enable_uart=1
|
||||
```
|
||||
|
||||
Reboot your Pi 4 without the Razberry Z-Wave hat first. Then shutdown, add the hat back, and boot again.
|
||||
|
||||
#### Raspberry Pi 3 procedure
|
||||
|
||||
Add the following parameters to the bottom of the `/boot/config.txt` file.
|
||||
|
||||
```text
|
||||
dtoverlay=disable-bt
|
||||
```
|
||||
|
||||
Reboot your Pi 3.
|
||||
|
||||
For Home Assistant OS this should be everything you need to do. You should now be able to use Razberry Z-Wave from `/dev/ttyAMA0`.
|
||||
|
||||
For other operating systems such as Raspberry Pi OS you will also have to run the following command:
|
||||
|
||||
```bash
|
||||
sudo systemctl disable hciuart
|
||||
```
|
||||
|
||||
You should also check the README for details on the overlays. You might find it in `/boot/overlays/README` on your SD-card. If it is not there you can find [the official version here](https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README).
|
||||
|
||||
<div class='note'>
|
||||
|
||||
It is possible to keep a limited Bluetooth functionality while using Razberry Z-Wave. Check `boot/overlays/README` on `miniuart-bt`.
|
||||
|
||||
</div>
|
||||
|
||||
<div class='note'>
|
||||
|
||||
`disable-bt` was previously known as `pi3-disable-bt`. If your OS is old, you might need to use this instead.
|
||||
|
||||
</div>
|
||||
|
||||
<div class='note'>
|
||||
|
||||
If you've installed the Z-Way software, you'll need to ensure you disable it before you install Home Assistant or you won't be able to access the board. Do this with `sudo /etc/init.d/z-way-server stop; sudo update-rc.d z-way-server disable`.
|
||||
|
||||
</div>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,77 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave Devices"
|
||||
description: "What you need to know about Z-Wave devices."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
## Devices, Nodes, Entities
|
||||
|
||||
The *device* is the hardware, and also used when referring to the node and all its entities. There are 3 main types of devices:
|
||||
|
||||
* [Controllers](/docs/z-wave/controllers) - all Z-Wave networks need to have one of these, though some may have two (a primary and a secondary)
|
||||
* Sensors - devices that tell you about the environment, these could be flood sensors, motion sensors, temperature sensors and so on
|
||||
* Actors or actuators - devices that change their environment, for example light switches, dimmers, thermostats (many of these will also have a sensor function)
|
||||
|
||||
Many sensors and actors can directly control other devices through a capability called *association*, without the use of an automation, these are known as *routing slaves*. This will be a very simple control, such as turning a light on when a motion sensor is activated, and off when it stops detecting motion.
|
||||
|
||||
The *node* is the presence of the device on the Z-Wave mesh. Once you've added a device to Home Assistant, the node is represented by an `entity_id` that starts with `zwave`.
|
||||
|
||||
The *entity* is an individual integration of the node. It may be a sensor that you read from, or a control that you operate. For any node, there will be at least one entity (for the node itself) and if it exposes any controls or sensors there will be at least one entity per control or sensor. The [entities](/docs/z-wave/entities) that are created depend on the Command Class the device supports.
|
||||
|
||||
## Z-Wave, Plus, Security 2
|
||||
|
||||
There have been 2 extensions to the Z-Wave protocol. Using these requires that your controller supports these extensions, but devices are backward compatible.
|
||||
|
||||
### Z-Wave Plus
|
||||
|
||||
The key improvements are:
|
||||
|
||||
* Improved battery life (50% increase)
|
||||
* Improved range (50% increase) if all your devices are Z-Wave Plus
|
||||
* Higher bandwidth and improved noise immunity if all your devices are Z-Wave Plus
|
||||
* Improved self-healing and fault tolerance
|
||||
|
||||
### Z-Wave Security 2
|
||||
|
||||
From 2 April 2017 all newly approved Z-Wave devices will have to support the Security 2 (S2) framework. At the time of writing this (October 2019) OpenZWave does not support the S2 framework.
|
||||
|
||||
## Device Power
|
||||
|
||||
Your Z-Wave mesh network is built with the devices that are mains powered (whether directly, or via a USB adapter), these relay traffic for other nodes, building the network. These devices are always awake and you can query them, or send configuration changes, at any time.
|
||||
|
||||
Battery powered devices spend most of their time asleep, unable to relay traffic, to be queried, or receive changes. Changes sent while a device is asleep will be queued and sent the next time the device wakes. Details of the default wake interval, and how to manually wake the device (if supported) will be detailed in the device's manual. Some battery powered devices (primarily locks and thermostats) support beaming (the *Beam* command class) that allows them to be remotely woken. This does require that all devices in the network responsible for relaying the commands between the controller and the device also support beaming.
|
||||
|
||||
<div class='note'>
|
||||
|
||||
The Z-Wave capability *routing* doesn't mean the device routes traffic, it actually means that it's able to control other devices. You'll see this capability on most remotes and switches.
|
||||
|
||||
</div>
|
||||
|
||||
## Instant Status
|
||||
|
||||
Older designs of Z-Wave devices may not support *Instant Status* (the *Hail* command class), because of a patent that was held by Lutron Electronics. Some manufacturers paid to use it, others didn't and so those devices may not report on changes. That patent expired in 2016, so new designs should support this.
|
||||
|
||||
As long as your device lists Hail or Association in its Controlled Command Classes, then you'll get instant status updates. Devices that list Central Scene in their Controlled Command Classes in theory will also work this way, once OpenZWave supports the Central Scene class. You can check your device on the [Z-Wave alliance](https://products.z-wavealliance.org/) site, looking at the **Command Classes** link, then at the **Controlled Command Classes** section.
|
||||
|
||||
## Polling
|
||||
|
||||
Where a device doesn't send updates on status changes to the controller, you can work around this by using a thing called Polling. That causes the controller to ask the device to provide an update on all its sensors and states. This will cause a lot of traffic on the network, and if you poll too many devices too quickly, you can effectively break your Z-Wave network. Polling should only be used where there is no other choice, and you should use as large a polling interval as possible. Ideally you should replace the device.
|
||||
|
||||
For example, with `polling_interval=60000` (which is the default) if you have 10 devices that are being polled at every interval, and each polling takes one second (request/response round trip), then it will take 10 seconds to complete the polling list. This only leaves 50 seconds left for normal traffic. The more devices you poll, and the shorter the interval, the less bandwidth that's available for normal traffic.
|
||||
|
||||
Polling needs to be enabled per device, you can control this through the *polling intensity* (interval) of the device. See the [Node Management](/docs/z-wave/control-panel#z-wave-node-management) documentation for details.
|
||||
|
||||
## Central Scene support
|
||||
|
||||
The Central Scene command class isn't yet supported in OpenZWave (there is [work in progress](https://github.com/OpenZWave/open-zwave/pull/1125) to provide it it), though Home Assistant has introduced some support with [change 9178](https://github.com/home-assistant/home-assistant/pull/9178) which was part of 0.53 and [documented here](/docs/z-wave/device-specific/#homeseer-switches).
|
||||
|
||||
## Supported Devices
|
||||
|
||||
You can check to see if OpenZWave supports your particular device by looking at the [OpenZWave 1.4 GitHub](https://github.com/OpenZWave/open-zwave/tree/1.4/config). Be aware that being listed here doesn't mean that it will be supported in Home Assistant, since the version of OpenZWave used by Home Assistant will often lag the GitHub by a few months.
|
||||
|
||||
Even if your device isn't listed there, it's likely that it will still work as expected as long as the device complies with the Z-Wave standards. The OpenZWave wiki describes how [you can add support](https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices) for your device if it isn't listed.
|
@ -1,206 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave Entity Naming"
|
||||
description: "A summary of common entity names."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
## Binary Sensor
|
||||
|
||||
Devices that support the Binary Sensor command class will create one (or more) entities starting with `binary_sensor`. For example, if the node is `door_sensor` then the binary sensor entity will be `binary_sensor.door_sensor`.
|
||||
|
||||
These will normally be `on` when the sensor is active, otherwise they will be `off`. Some devices use `on` for closed, and some use `on` for open, and some devices allow you to change how they report.
|
||||
|
||||
## Alarm
|
||||
|
||||
This is for a single purpose sensor, multi sensors are explained under Multi Sensor.
|
||||
|
||||
Devices (usually sensors) that support the Alarm command class will create entities starting with `sensor`, and with some generic suffixes, and a suffix that relates to the supported alarm class. For example, the smoke detector `lounge` will have an entity `sensor.lounge_smoke`, and possibly also `sensor.lounge_alarm_type` and `sensor.lounge_alarm_level`. If the device creates a `binary_sensor` entity, it is recommended to use that rather then the `sensor` entity.
|
||||
|
||||
Note that the older Z-Wave alarm command class version 1 didn't have standardized types, and so each manufacturer specified their own version and type info. With Version 2 the alarm type was standardized to the below list. See the [openzwave alarm command class documents](https://github.com/OpenZWave/open-zwave/wiki/Alarm-Command-Class) for more info. You can see which version your sensor supports via the `zwcfg_0x*.xml` file. An example with version 2 support:
|
||||
|
||||
```xml
|
||||
<CommandClass id="113" name="COMMAND_CLASS_ALARM" version="2" request_flags="2" innif="true">
|
||||
```
|
||||
|
||||
### Alarm Type Entity
|
||||
|
||||
[//]: # (from the openzwave source found here: https://github.com/OpenZWave/open-zwave/blob/master/cpp/src/command_classes/Alarm.cpp#L56)
|
||||
|
||||
- Version 2 **alarm_type**:
|
||||
- **0**: General purpose
|
||||
- **1**: Smoke sensor
|
||||
- **2**: Carbon Monoxide (CO) sensor
|
||||
- **3**: Carbon Dioxide (CO2) sensor
|
||||
- **4**: Heat sensor
|
||||
- **5**: Water leak (flood) sensor
|
||||
- **6**: Access control
|
||||
- **7**: Burglar
|
||||
- **8**: Power management
|
||||
- **9**: System
|
||||
- **10**: Emergency
|
||||
- **11**: Clock
|
||||
- **12**: Appliance
|
||||
- **13**: Home Health
|
||||
|
||||
- Version 1 (manufacturer-specific) **alarm_type**:
|
||||
- **9**: Lock jammed
|
||||
- **18**: Lock locked with user code
|
||||
- **19**: Lock unlocked with user code
|
||||
- **21**: Manual lock
|
||||
- **22**: Manual unlock
|
||||
- **24**: Locked by RF
|
||||
- **25**: Unlocked by RF
|
||||
- **27**: Auto lock
|
||||
- **33**: User deleted
|
||||
- **112**: Master code changed, or user added
|
||||
- **113**: Duplicate PIN code error
|
||||
- **130**: RF Module power cycled
|
||||
- **161**: Tamper alarm
|
||||
- **167**: Low battery
|
||||
- **168**: Critical battery level
|
||||
- **169**: Battery too low to operate
|
||||
|
||||
### Alarm Level Entity
|
||||
|
||||
The meaning of the `alarm_level` entity depends on the nature of the alarm sensor.
|
||||
|
||||
#### Smoke, CO, and CO2
|
||||
|
||||
- **1**: Detection - will include a Node Location Report
|
||||
- **2**: Detection (unknown location)
|
||||
- **254**: Unknown event
|
||||
|
||||
#### Heat
|
||||
|
||||
- **1**: Overheat detected - will include a Node Location Report
|
||||
- **2**: Overheat detected (unknown location)
|
||||
- **3**: Rapid temperature rise - will include a Node Location Report
|
||||
- **4**: Rapid temperature rise (unknown location)
|
||||
- **5**: Underheat detection - will include a Node Location Report
|
||||
- **6**: Underheat detection (unknown location)
|
||||
- **254**: Unknown event
|
||||
|
||||
#### Water leak
|
||||
|
||||
- **1**: Water leak detected - will include a Node Location Report
|
||||
- **2**: Water leak detected (unknown location)
|
||||
- **3**: Water level dropped - will include a Node Location Report
|
||||
- **4**: Water level dropped (unknown location)
|
||||
- **254**: Unknown event
|
||||
|
||||
#### Access control
|
||||
|
||||
- **1**: Manual lock
|
||||
- **2**: Manual unlock
|
||||
- **3**: RF lock
|
||||
- **4**: RF unlock
|
||||
- **5**: Keypad lock - will include the User Identifier of the User Code Report
|
||||
- **6**: Keypad unlock - will include the User Identifier of the User Code Report
|
||||
- **254**: Unknown event
|
||||
|
||||
#### Burglar
|
||||
|
||||
- **1**: Intrusion - will include a Node Location Report
|
||||
- **2**: Intrusion (unknown location)
|
||||
- **3**: Tampering (case opened)
|
||||
- **4**: Tampering (invalid code)
|
||||
- **5**: Glass break - will include a Node Location Report
|
||||
- **6**: Glass break (invalid code)
|
||||
- **254**: Unknown event
|
||||
|
||||
#### Power Management
|
||||
|
||||
- **1**: Power applied
|
||||
- **2**: AC disconnected
|
||||
- **3**: AC re-connected
|
||||
- **4**: Surge detection
|
||||
- **5**: Voltage drop or drift
|
||||
- **254**: Unknown event
|
||||
|
||||
#### System Alarm
|
||||
|
||||
- **1**: System hardware failure
|
||||
- **2**: System software failure
|
||||
- **254**: Unknown event
|
||||
|
||||
#### Emergency Alarm
|
||||
|
||||
- **1**: Contact Police
|
||||
- **2**: Contact Fire Service
|
||||
- **3**: Contact Medical Service
|
||||
- **254**: Unknown event
|
||||
|
||||
#### Alarm Clock
|
||||
|
||||
- **1**: Wake up
|
||||
- **254**: Unknown event
|
||||
|
||||
### Access Control Entity
|
||||
|
||||
- **access_control**: These *may* vary between brands
|
||||
- **22**: Open
|
||||
- **23**: Closed
|
||||
- **254**: Deep sleep
|
||||
- **255**: Case open
|
||||
|
||||
If your device has an `access_control` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/integrations/binary_sensor.template/) to create one (here we've defined it as a door, but you can use [any relevant device class](/integrations/binary_sensor/#device-class):
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
YOUR_SENSOR:
|
||||
friendly_name: "Friendly name here"
|
||||
device_class: door
|
||||
value_template: "{{ is_state('sensor.YOUR_ORIGINAL_SENSOR_access_control', '22') }}"
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Burglar Entity
|
||||
|
||||
- **burglar**: These *may* vary between brands
|
||||
- **0**: Not active
|
||||
- **2**: Smoke (?)
|
||||
- **3**: Tamper
|
||||
- **8**: Motion
|
||||
- **22**: Open
|
||||
- **23**: Closed
|
||||
- **254**: Deep sleep
|
||||
- **255**: Case open
|
||||
|
||||
If your device has a `burglar` entity, but not a `binary_sensor` equivalent, you can use a [template binary sensor](/integrations/binary_sensor.template/) to create one (here we've defined it as a motion sensor, but you can use [any relevant device class](/integrations/binary_sensor/#device-class):
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
YOUR_SENSOR:
|
||||
friendly_name: "Friendly name here"
|
||||
device_class: motion
|
||||
value_template: "{{ is_state('sensor.YOUR_SENSOR_burglar', '8') }}"
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Source Node ID Entity
|
||||
|
||||
- **sourcenodeid**: Reports the sensor that generated the alarm - this is only valid for Zensor Net based devices
|
||||
|
||||
## Multisensor
|
||||
|
||||
Multi sensor devices will create a number of entities, one for each sensor, potentially a `binary_sensor` entity, and probably also `alarm_type` and `alarm_level` entities.
|
||||
|
||||
These are all generally self explanatory, however it's worth noting:
|
||||
|
||||
- **ultraviolet** sensors will usually report zero indoors, as UVB is blocked by glass
|
||||
- **luminance** sensors should report in [Lux](https://en.wikipedia.org/wiki/Lux)
|
@ -1,117 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave Events"
|
||||
description: "Events generated by the Z-Wave component."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
## zwave.network_complete
|
||||
|
||||
Home Assistant will trigger an event when the Z-Wave network is complete, meaning all of the nodes on the network have been queried. This can take quite some time, depending on wakeup intervals on the battery-powered devices on the network.
|
||||
|
||||
```yaml
|
||||
- alias: "Z-Wave network is complete"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: zwave.network_complete
|
||||
```
|
||||
|
||||
## zwave.network_complete_some_dead
|
||||
|
||||
Home Assistant will trigger an event when the Z-Wave network is complete, but some nodes are marked dead, meaning all of the nodes on the network have been queried. This can take quite some time, depending on wakeup intervals on the battery-powered devices on the network.
|
||||
|
||||
```yaml
|
||||
- alias: "Z-Wave network is complete some dead"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: zwave.network_complete_some_dead
|
||||
```
|
||||
|
||||
## zwave.network_ready
|
||||
|
||||
Home Assistant will trigger an event when the Z-Wave network is ready for use. Between `zwave.network_start` and `zwave.network_ready` Home Assistant will feel sluggish when trying to send commands to Z-Wave nodes. This is because the controller is requesting information from all of the nodes on the network. When this is triggered, all awake nodes have been queried and sleeping nodes will be queried when they awake.
|
||||
|
||||
```yaml
|
||||
- alias: "Z-Wave network is ready"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: zwave.network_ready
|
||||
```
|
||||
|
||||
## zwave.network_start
|
||||
|
||||
Home Assistant will trigger an event when the Z-Wave network is set up to be started.
|
||||
|
||||
```yaml
|
||||
- alias: "Z-Wave network is starting"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: zwave.network_start
|
||||
```
|
||||
|
||||
## zwave.network_stop
|
||||
|
||||
Home Assistant will trigger an event when the Z-Wave network is stopping.
|
||||
|
||||
```yaml
|
||||
- alias: "Z-Wave network is stopping"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: zwave.network_stop
|
||||
```
|
||||
|
||||
## zwave.node_event
|
||||
Home Assistant will trigger an event when command_class_basic changes value on a node. This can be virtually anything, so tests have to be made to determine what value equals what. You can use this for automations.
|
||||
|
||||
Example:
|
||||
|
||||
```yaml
|
||||
- alias: "Minimote Button Pressed"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: zwave.node_event
|
||||
event_data:
|
||||
entity_id: zwave.aeon_labs_minimote
|
||||
basic_level: 255
|
||||
```
|
||||
|
||||
The *entity_id* and *basic_level* of all triggered events can be seen in the console output.
|
||||
|
||||
## zwave.scene_activated
|
||||
|
||||
Some devices can also trigger scene activation events, which can be used in automation scripts (for example, the press of a button on a wall switch):
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml automation entry
|
||||
automation:
|
||||
- alias: "Turn on Desk light"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: zwave.scene_activated
|
||||
event_data:
|
||||
entity_id: zwave.zwaveme_zme_wallcs_secure_wall_controller
|
||||
scene_id: 11
|
||||
```
|
||||
|
||||
Some devices (like the HomeSeer wall switches) allow you to do things like double, and triple click the up and down buttons and fire an event. These devices will also send `scene_data` to differentiate the events. This is an example of double clicking the on/up button:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml automation entry
|
||||
automation
|
||||
- alias: "Dining room dimmer - double tap up"
|
||||
trigger:
|
||||
- event_type: zwave.scene_activated
|
||||
platform: event
|
||||
event_data:
|
||||
entity_id: zwave.dining_room_cans
|
||||
scene_id: 1
|
||||
scene_data: 3
|
||||
```
|
||||
|
||||
The *entity_id* and *scene_id* of all triggered events can be seen in the console output.
|
||||
|
||||
For more information on HomeSeer devices and similar devices, please see the [device specific page](/docs/z-wave/device-specific/#homeseer-switches).
|
@ -1,299 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave"
|
||||
description: "Installation of the Z-Wave component."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Z-Wave can be configured using the Z-Wave *Integration* in the *Configuration* menu, or manually using an entry in `configuration.yaml`
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
zwave:
|
||||
usb_path: /dev/ttyACM0
|
||||
device_config: !include zwave_device_config.yaml
|
||||
```
|
||||
|
||||
{% configuration Z-Wave %}
|
||||
usb_path:
|
||||
description: The port where your device is connected to your Home Assistant host. Z-Wave sticks will generally be `/dev/ttyACM0` and GPIO hats will generally be `/dev/ttyAMA0`.
|
||||
required: false
|
||||
type: string
|
||||
default: /zwaveusbstick
|
||||
network_key:
|
||||
description: The 16-byte network key in the form `"0x01, 0x02..."` used in order to connect securely to compatible devices. It is recommended that a network key is configured as security enabled devices may not function correctly if they are not added securely.
|
||||
required: false
|
||||
type: string
|
||||
default: None
|
||||
config_path:
|
||||
description: The path to the Python OpenZWave configuration files.
|
||||
required: false
|
||||
type: string
|
||||
default: the 'config' that is installed by python-openzwave
|
||||
polling_interval:
|
||||
description: The time period in milliseconds between polls of a nodes value. Be careful about using polling values below 30000 (30 seconds) as polling can flood the Z-Wave network and cause problems.
|
||||
required: false
|
||||
type: integer
|
||||
default: 60000
|
||||
debug:
|
||||
description: Print verbose Z-Wave info to log.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
autoheal:
|
||||
description: Allows enabling auto Z-Wave heal at midnight. Warning, this is inefficient and [should not be used](https://github.com/home-assistant/architecture/issues/81#issuecomment-478444085).
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
device_config / device_config_domain / device_config_glob:
|
||||
description: "This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the following options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format."
|
||||
required: false
|
||||
type: [string, list]
|
||||
keys:
|
||||
ignored:
|
||||
description: Ignore this entity completely. It won't be shown in the Web Interface and no events are generated for it.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
polling_intensity:
|
||||
description: Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2=every other time, etc). If not specified then your device will not be polled.
|
||||
required: false
|
||||
type: integer
|
||||
default: 0
|
||||
refresh_value:
|
||||
description: Enable refreshing of the node value. Only the light integration uses this.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
delay:
|
||||
description: Specify the delay for refreshing of node value. Only the light integration uses this.
|
||||
required: false
|
||||
type: integer
|
||||
default: 5
|
||||
invert_openclose_buttons:
|
||||
description: Inverts function of the open and close buttons for the cover domain. This will not invert the position and state reporting.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
invert_percent:
|
||||
description: Inverts the percentage of the position for the cover domain. This will invert the position and state reporting.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
{% endconfiguration %}
|
||||
|
||||
### Network Key
|
||||
|
||||
Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices.
|
||||
|
||||
An easy script to generate a random key:
|
||||
|
||||
```bash
|
||||
cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'
|
||||
```
|
||||
|
||||
You can also use sites like [this one](https://www.random.org/cgi-bin/randbyte?nbytes=16&format=h) to generate the required data, just remember to put `0x` before each pair of characters and a `,` between them:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry for network_key
|
||||
zwave:
|
||||
network_key: "0x2e, 0xcc, 0xab, 0x1c, 0xa3, 0x7f, 0x0e, 0xb5, 0x70, 0x71, 0x2d, 0x98, 0x25, 0x43, 0xee, 0x0c"
|
||||
```
|
||||
|
||||
Ensure you keep a backup of this key. If you have to rebuild your system and don't have a backup of this key, you won't be able to reconnect to any security devices. This may mean you have to do a factory reset on those devices, and your controller, before rebuilding your Z-Wave network.
|
||||
|
||||
## First Run
|
||||
|
||||
On platforms other than Home Assistant and Docker, the compilation and installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed.
|
||||
|
||||
The first run after adding a device is when the `zwave` integration will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process.
|
||||
|
||||
## Platform specific instructions
|
||||
|
||||
### Home Assistant
|
||||
|
||||
You do not need to install any software to use Z-Wave.
|
||||
|
||||
If the path of `/dev/ttyACM0` doesn't work, look in the *System* section of the *Supervisor* menu. There you'll find a *Hardware* button which will list all the hardware found.
|
||||
|
||||
You can also check what hardware has been found using the [`ha` command](/hassio/commandline/#hardware):
|
||||
|
||||
```bash
|
||||
ha hardware info
|
||||
```
|
||||
|
||||
If you did an alternative install of Home Assistant on Linux (e.g., installing Ubuntu, then Docker, then Home Assistant Supervised) then the `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled in the host OS. Failure to do so will result in random failures of those components, e.g., dead or unreachable Z-Wave nodes, most notably right after Home Assistant restarts. Connect to your host OS via SSH, then you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager` (commands are for Debian/Ubuntu).
|
||||
|
||||
### Docker
|
||||
|
||||
You do not need to install any software to use Z-Wave.
|
||||
|
||||
To enable access to the Z-Wave stick, add `--device=/dev/ttyACM0` to the `docker` command that starts your container, for example:
|
||||
|
||||
```bash
|
||||
docker run -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host --device=/dev/ttyACM0 homeassistant/raspberrypi3-homeassistant
|
||||
```
|
||||
|
||||
If the path of `/dev/ttyACM0` doesn't work then you can find the path of the stick by disconnecting and then reconnecting it, and running the following in the Docker host:
|
||||
|
||||
```bash
|
||||
ls -1tr /dev/tty*|tail -n 1
|
||||
```
|
||||
|
||||
The `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled. Failure to do so will result in random failures of those components. For example you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager`
|
||||
|
||||
### Community install methods
|
||||
|
||||
#### Raspberry Pi specific
|
||||
|
||||
On the Raspberry Pi you will need to enable the serial interface in the `raspi-config` tool before you can add Z-Wave to Home Assistant. Make sure to reboot the Raspberry Pi for the setting to take effect.
|
||||
|
||||
#### Linux with Home Assistant Core
|
||||
|
||||
On Debian Linux platforms there are dependencies you will need to have installed ahead of time (included in `systemd-devel` on Fedora/RHEL systems):
|
||||
|
||||
```bash
|
||||
sudo apt-get install libudev-dev build-essential
|
||||
```
|
||||
|
||||
You may also have to install the Python development libraries for your version of Python. For example `libpython3.6-dev`, and possibly `python3.6-dev` if you're using Python 3.6.
|
||||
|
||||
##### Finding the controller path
|
||||
|
||||
To find the path of your Z-Wave USB stick, disconnect it and then reconnect it to your system and run:
|
||||
|
||||
```bash
|
||||
ls -ltr /dev/tty*|tail -n 1
|
||||
```
|
||||
|
||||
That will give you a line that looks something like this:
|
||||
|
||||
```bash
|
||||
crw-rw---- 1 root dialout 204, 64 Sep 21 10:25 /dev/ttyACM0
|
||||
```
|
||||
|
||||
Where the date and time displayed is approximately the time you connected the USB stick or module (it may also be something like `/dev/ttyAMA0` or `/dev/ttyUSB0`). The number will be zero for the first device connected, and higher numbers for later devices.
|
||||
|
||||
Or, if there is no result, try to find detailed USB connection info with:
|
||||
|
||||
```bash
|
||||
dmesg | grep USB
|
||||
```
|
||||
|
||||
If Home Assistant (`hass`) runs with another user (e.g., `homeassistant`) you need to give access to the stick with:
|
||||
|
||||
```bash
|
||||
sudo usermod -aG dialout homeassistant
|
||||
```
|
||||
|
||||
The output from `ls -ltr` above contains the following information:
|
||||
|
||||
- The device type is `c` (character special).
|
||||
- The permissions are `rw-rw----`, meaning only the owner and group can read and write to it.
|
||||
- There is only `1` link to the file.
|
||||
- It is owned by `root` and can be accessed by members of the group `dialout`.
|
||||
- It has a major device number of `204`, and a minor device number of `64`.
|
||||
- The device was connected at `10:25` on `21 September`.
|
||||
- The device is `/dev/ttyUSB0`.
|
||||
|
||||
#### macOS
|
||||
|
||||
When installing on macOS you may have to also run the command below ahead of time, replace "x.x" with the version of Python (`$ python3 --version`) you have installed.
|
||||
|
||||
```bash
|
||||
sudo /Applications/Python\ x.x/Install\ Certificates.command
|
||||
```
|
||||
|
||||
On macOS you can find the USB stick with:
|
||||
|
||||
```bash
|
||||
ls /dev/cu.usbmodem*
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Device path changes
|
||||
|
||||
If your device path changes when you restart, see [this guide](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/) on fixing it.
|
||||
|
||||
### Random unreachable Z-Wave nodes: ModemManager interference
|
||||
|
||||
If this applies to your situation:
|
||||
|
||||
- Some or all Z-Wave nodes are unreachable after restarting Home Assistant; not necessarily after every restart but seemingly random.
|
||||
- The Z-Wave stick stops responding, needs to be re-plugged or Home Assistant needs a restart to get Z-Wave back.
|
||||
- Your host OS is Debian-based/Ubuntu (for example: you installed Ubuntu, then Docker, then Hass.io).
|
||||
|
||||
Then chances are high that the ModemManager in the host OS is causing the issue, claiming or interfering with the USB Z-Wave stick like the much used Aeotec ones. In this case you need to disable ModemManager.
|
||||
|
||||
Connect to your host OS (e.g., Ubuntu) through SSH, then execute the following command on your host system to disable the ModemManager:
|
||||
|
||||
```bash
|
||||
systemctl disable ModemManager.service
|
||||
```
|
||||
|
||||
### Component could not be set up
|
||||
|
||||
Sometimes the device may not be accessible and you'll get an error message upon startup about not being able to set up Z-Wave. Run the following command for your device path (here we're using `/dev/ttyAMA0` for our Razberry board):
|
||||
|
||||
```bash
|
||||
ls -l /dev/ttyAMA0
|
||||
```
|
||||
|
||||
You should then see something like this:
|
||||
|
||||
```txt
|
||||
crw-rw---- 1 root dialout 204, 64 Apr 1 12:34 /dev/ttyAMA0
|
||||
```
|
||||
|
||||
The important pieces are the first piece `crw-rw----` and the group `dialout`. If those are different then, for your device path, run:
|
||||
|
||||
```bash
|
||||
sudo chgrp dialout /dev/ttyAMA0
|
||||
sudo chmod g+rw /dev/ttyAMA0
|
||||
```
|
||||
|
||||
Check too that the account you're running Home Assistant as is in the `dialout` group. For instance, if you're using `homeassistant`:
|
||||
|
||||
```bash
|
||||
groups homeassistant
|
||||
```
|
||||
|
||||
That should include `dialout`, if it doesn't then:
|
||||
|
||||
```bash
|
||||
sudo usermod -aG dialout homeassistant
|
||||
```
|
||||
|
||||
### Unable to install Python Openzwave
|
||||
|
||||
If you're getting errors like:
|
||||
|
||||
```txt
|
||||
openzwave-embed/open-zwave-master/libopenzwave.a: No such file or directory
|
||||
```
|
||||
|
||||
Then the problem is that you're missing `libudev-dev` (or the equivalent for your distribution), please [install it](/docs/z-wave/installation/#linux).
|
||||
|
||||
### Random failures
|
||||
|
||||
If you're having random failures of the mesh, devices going missing, things randomly not working, check your `OZW_Log.txt` for the following messages:
|
||||
|
||||
```txt
|
||||
WARNING: 500ms passed without reading the rest of the frame...aborting frame read
|
||||
WARNING: Out of frame flow! (0xfe). Sending NAK
|
||||
WARNING: Checksum incorrect - sending NAK
|
||||
```
|
||||
|
||||
If you see any of these messages repeated in the log then _probably_ you've got something else running that's also using the Z-Wave controller. That might mean you've also got the OpenZ-Wave control panel (ozwcp) running, a second instance of Home Assistant or something else. You need to stop that other process to resolve this.
|
||||
|
||||
### Changing device paths
|
||||
|
||||
Configurations using `udev` can experience race conditions in creating device paths such that they change on reboot. This can cause a device to appear to change between `/dev/ttyACM0` and `/dev/ttyACM1` after reboot. In this case using the symlinks created for device IDs can ensure the correct device is used, for example: `/dev/serial/by-id/usb-0658_0200-if00` for Aeotec Z-Stick.
|
@ -1,36 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave Query Stage"
|
||||
description: "What are the Query Stages."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
When the Z-Wave mesh is first started, the controller will go through all the following stages for every device on the mesh. This is a slow process, and to complete requires that the devices be awake. While devices that are mains or USB powered are always awake, battery-powered devices spend most of their time asleep. Because of this, you can expect that after startup your battery powered devices will spend time in `Initializing (CacheLoad)` - how long depends on the device.
|
||||
|
||||
Your devices will still function normally while marked as `Initializing`.
|
||||
|
||||
| Stage | Description |
|
||||
| --------------------- | ---------------------------------------------------------------------- |
|
||||
| None | Query process hasn't started for this node |
|
||||
| ProtocolInfo | Retrieve protocol information |
|
||||
| Probe | Ping device to see if alive |
|
||||
| WakeUp | Start wake up process if a sleeping node |
|
||||
| ManufacturerSpecific1 | Retrieve manufacturer name and product ids if ProtocolInfo lets us |
|
||||
| NodeInfo | Retrieve info about supported, controlled command classes |
|
||||
| NodePlusInfo | Retrieve Z-Wave+ info and update device classes |
|
||||
| SecurityReport | Retrieve a list of Command Classes that require Security |
|
||||
| ManufacturerSpecific2 | Retrieve manufacturer name and product ids |
|
||||
| Versions | Retrieve version information |
|
||||
| Instances | Retrieve information about multiple command class instances |
|
||||
| Static | Retrieve static information (doesn't change) |
|
||||
| CacheLoad | Ping a device upon restarting with cached configuration for the device |
|
||||
| Associations | Retrieve information about associations |
|
||||
| Neighbors | Retrieve node neighbor list |
|
||||
| Session | Retrieve session information (changes infrequently) |
|
||||
| Dynamic | Retrieve dynamic information (changes frequently) |
|
||||
| Configuration | Retrieve configurable parameter information (only done on request) |
|
||||
| Complete | Query process is completed for this node |
|
@ -1,54 +0,0 @@
|
||||
---
|
||||
title: "Z-Wave Services"
|
||||
description: "Services exposed by the Z-Wave component."
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
|
||||
This Z-Wave integration is deprecated and replaced with a [new implementation based on Z-Wave JS](/integrations/zwave_js); it's currently in beta, and you can [try it now](/integrations/zwave_js/).
|
||||
|
||||
</div>
|
||||
|
||||
The `zwave` integration exposes multiple services to help maintain the network. All of these are available through the Z-Wave control panel.
|
||||
|
||||
| Service | Description |
|
||||
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| add_node | Put the Z-Wave controller in inclusion mode. Allows you to add a new device to the Z-Wave network. |
|
||||
| add_node_secure | Put the Z-Wave controller in secure inclusion mode. Allows you to add a new device with secure communications to the Z-Wave network. |
|
||||
| cancel_command | Cancels a running Z-Wave command. If you have started an add_node or remove_node command, and decide you are not going to do it, then this must be used to stop the inclusion/exclusion command. |
|
||||
| change_association | Add or remove an association in the Z-Wave network |
|
||||
| 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 re-figure out optimal routing. |
|
||||
| heal_node | Tells the controller to "heal" a specific node on the network. Requires `node_id` field. You can also force return route update with `return_routes` field. |
|
||||
| print_config_parameter | Prints Z-Wave node's configuration parameter value to the (console) log. |
|
||||
| print_node | Print all states of Z-Wave node. |
|
||||
| refresh_entity | Refresh the Z-Wave entity by refreshing dependent values. |
|
||||
| refresh_node | Refresh the Z-Wave node. |
|
||||
| refresh_node_value | Refresh the specified value of a Z-Wave node. |
|
||||
| remove_node | Put the Z-Wave controller in exclusion mode. Allows you to remove a device from the Z-Wave network. |
|
||||
| rename_node | Sets a node's name. Requires a `node_id` and `name` field. |
|
||||
| rename_value | Sets a value's name. Requires a `node_id`, `value_id`, and `name` field. |
|
||||
| remove_failed_node | Remove a failed node from the network. The Node should be on the controller's Failed Node List, otherwise this command will fail. |
|
||||
| replace_failed_node | 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. |
|
||||
| reset_node_meters | Reset a node's meter values. Only works if the node supports this. |
|
||||
| set_config_parameter | Lets the user set a configuration parameter to a node. NOTE: Use the parameter option's `label` string as the `value` for list parameters (e.g., `"value": "Off"`). For all other parameters use the relevant integer `value` (e.g., `"value": 1`). |
|
||||
| set_node_value | Set the specified value of a Z-Wave node. |
|
||||
| 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. |
|
||||
| start_network | Starts the Z-Wave network. |
|
||||
| stop_network | Stops the Z-Wave network. |
|
||||
| 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." |
|
||||
| test_node | Tells the controller to send no-op command(s) to a specific node. Requires `node_id` field. You can specify amount of test_messages to send by specifying it with `messages` field. In theory, this could bring back nodes marked as "presumed dead" |
|
||||
|
||||
The `soft_reset` and `heal_network` commands can be used to help keep a Z-Wave network running reliably. This is a configuration option for the `zwave` component. The option defaults to `false` but can be enabled by setting `autoheal` to true. This, however, is bad practice since it introduces overhead that can be avoided since you only need to do a `heal_network` whenever one of the following actions are done:
|
||||
|
||||
- Adding/Removing a new node
|
||||
- Moving a node around
|
||||
- Moving the Controller
|
||||
- Removing a Dead Node
|
||||
|
||||
<div class='note'>
|
||||
|
||||
Using the `soft_reset` function with some Z-Wave controllers can cause the Z-Wave network to hang.
|
||||
|
||||
</div>
|
||||
|
||||
To trigger a `heal_network`, one can always use *Settings -> Z-Wave Network Management -> Heal Network* from the GUI whenever one of the above actions took place.
|
@ -157,41 +157,6 @@
|
||||
<li>{% active_link /docs/tools/check_config/ check_config %}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<b>{% active_link /docs/z-wave/ Z-Wave %}</b>
|
||||
<ul>
|
||||
<li>
|
||||
{% active_link /docs/z-wave/installation/ Configuring the Z-Wave
|
||||
component %}
|
||||
</li>
|
||||
<li>{% active_link /docs/z-wave/adding/ Adding devices %}</li>
|
||||
<li>
|
||||
{% active_link /docs/z-wave/control-panel/ The Z-Wave control panel
|
||||
%}
|
||||
</li>
|
||||
<li>{% active_link /docs/z-wave/controllers/ Controllers %}</li>
|
||||
<li>
|
||||
{% active_link /docs/z-wave/devices/ Devices %}
|
||||
and
|
||||
{% active_link
|
||||
/docs/z-wave/entities/ Entities %}
|
||||
</li>
|
||||
<li>
|
||||
{% active_link /docs/z-wave/query-stage/ Query Stages %}
|
||||
for devices
|
||||
</li>
|
||||
<li>
|
||||
{% active_link /docs/z-wave/device-specific/ Device Specific %}
|
||||
configuration
|
||||
</li>
|
||||
<li>
|
||||
{% active_link /docs/z-wave/events/ Events %}
|
||||
and
|
||||
{% active_link
|
||||
/docs/z-wave/services/ Services %}
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<b>{% active_link /docs/mqtt/ MQTT %}</b>
|
||||
<ul>
|
||||
|
@ -45,7 +45,7 @@ Run it in Terminal.
|
||||
sudo docker run --restart always -d --name homeassistant -v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK -e TZ=Australia/Melbourne --net=host {{ site.installation.container.base }}:stable
|
||||
```
|
||||
|
||||
Complete the remainder of the Z-Wave configuration by [following the instructions here.](/docs/z-wave/installation)
|
||||
Complete the remainder of the Z-Wave configuration by [following the instructions here.](/integrations/zwave_js)
|
||||
|
||||
Remark: to update your Home Assistant on your Docker within Synology NAS, you just have to do the following:
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -16,7 +16,7 @@ og_image: /images/blog/2017-10-0.56/components.png
|
||||
|
||||
We reached another milestone aka number: 10000. GitHub is assigning numbers to pull requests and issues and the "10000" is a [PR](https://github.com/home-assistant/home-assistant/pull/10000). Our ratio is around 1/3 issues and 2/3 pull requests. To be more precise: 64% pull requests and 36% issues.
|
||||
|
||||
If you haven't noticed, there is now a [glossary](/docs/glossary/) that collects some Home Assistant relevant terms. Talking about the documentation: [@DubhAd](https://github.com/DubhAd) rewrote large parts of the [Z-Wave section](/docs/z-wave/). More structure to get started and to find details during the setup and the configuration.
|
||||
If you haven't noticed, there is now a [glossary](/docs/glossary/) that collects some Home Assistant relevant terms. Talking about the documentation: [@DubhAd](https://github.com/DubhAd) rewrote large parts of the Z-Wave section. More structure to get started and to find details during the setup and the configuration.
|
||||
|
||||
## Google Assistant / Google Home integration
|
||||
This release includes a new component to integrate Home Assistant with Google Assistant by [Phil Kates][@philk]. We integrate via the Smart Home API, this means that you will be able to control your devices in Home Assistant via any device that has Google Assistant. Learn more in [the documentation][google_assistant docs].
|
||||
|
@ -2036,6 +2036,27 @@
|
||||
/docs/ecosystem/notebooks/stats https://data.home-assistant.io
|
||||
/docs/frontend/mobile https://companion.home-assistant.io
|
||||
/docs/script/editor /docs/scripts/editor
|
||||
/docs/z-wave /integrations/zwave_js
|
||||
/docs/z-wave/adding /integrations/zwave/#adding-and-removing-devices
|
||||
/docs/z-wave/control-panel /integrations/zwave/#control-panel
|
||||
/docs/z-wave/controllers/#aeotec-stick /docs/z-wave/controllers/#aeotec-z-stick
|
||||
/docs/z-wave/devices /integrations/zwave/#device-support
|
||||
/docs/z-wave/devices/#instant-status /integrations/zwave/#instant-status
|
||||
/docs/z-wave/devices/#polling /integrations/zwave/#polling
|
||||
/docs/z-wave/device-specific /integrations/zwave/#device-specific-information
|
||||
/docs/z-wave/device-specific/#device-categories /integrations/zwave/#device-support
|
||||
/docs/z-wave/device-specific/#motion-or-alarm-sensors /integrations/zwave/#binary-sensor
|
||||
/docs/z-wave/device-specific/#locks-and-other-secure-devices /integrations/zwave/#lock
|
||||
/docs/z-wave/device-specific/#specific-devices /integrations/zwave/#device-specific-information
|
||||
/docs/z-wave/device-specific/#aeotec-z-stick /docs/z-wave/controllers/#aeotec-z-stick
|
||||
/docs/z-wave/device-specific/#razberry-board /docs/z-wave/controllers/#razberry-board
|
||||
/docs/z-wave/device-specific/#raspberry-pi-3-procedure /docs/z-wave/controllers/#raspberry-pi-3-procedure
|
||||
/docs/z-wave/device-specific/#raspberry-pi-4-procedure /docs/z-wave/controllers/#raspberry-pi-4-procedure
|
||||
/docs/z-wave/entities /integrations/zwave/#device-support
|
||||
/docs/z-wave/events /integrations/zwave/#events
|
||||
/docs/z-wave/installation /integrations/zwave/#detailed-installation-instructions
|
||||
/docs/z-wave/query-stage /integrations/zwave/#query-stage
|
||||
/docs/z-wave/services /integrations/zwave/#services
|
||||
/ecosystem/ios/notifications https://companion.home-assistant.io/docs/notifications/notifications-basic
|
||||
/ecosystem/notebooks https://data.home-assistant.io
|
||||
/ecosystem/notebooks/api https://data.home-assistant.io
|
||||
@ -2087,12 +2108,12 @@
|
||||
/getting-started/troubleshooting-configuration /docs/troubleshooting
|
||||
/getting-started/updating /common-tasks/os
|
||||
/getting-started/yaml /docs/configuration/yaml
|
||||
/getting-started/z-wave /docs/z-wave
|
||||
/getting-started/z-wave-devices /docs/z-wave/devices
|
||||
/getting-started/z-wave-installation /docs/z-wave/installation
|
||||
/getting-started/z-wave-panel /docs/z-wave/control-panel
|
||||
/getting-started/z-wave-device-specific /docs/z-wave/device-specific
|
||||
/hassio/zwave /docs/z-wave
|
||||
/getting-started/z-wave /integrations/zwave_js
|
||||
/getting-started/z-wave-devices /integrations/zwave_js
|
||||
/getting-started/z-wave-installation /integrations/zwave_js
|
||||
/getting-started/z-wave-panel /integrations/zwave_js
|
||||
/getting-started/z-wave-device-specific /integrations/zwave_js
|
||||
/hassio/zwave /integrations/zwave_js
|
||||
/topics/events /docs/configuration/events
|
||||
/topics/packages /docs/configuration/packages
|
||||
/topics/platform_options /docs/configuration/platform_options
|
||||
|
@ -19,12 +19,6 @@ The documentation covers beginner to advanced topics around the installation, se
|
||||
</div>
|
||||
<div class='title'>Configuration</div>
|
||||
</a>
|
||||
<a class='option-card' href='/docs/z-wave/'>
|
||||
<div class='img-container'>
|
||||
<img src='https://brands.home-assistant.io/zwave/icon.png' />
|
||||
</div>
|
||||
<div class='title'>Z-Wave</div>
|
||||
</a>
|
||||
<a class='option-card' href='/docs/mqtt/'>
|
||||
<div class='img-container'>
|
||||
<img src='https://brands.home-assistant.io/mqtt/icon.png' />
|
||||
|
Loading…
x
Reference in New Issue
Block a user