diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index c448ff35401..5615187a21f 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -12,210 +12,6 @@ ha_category: Hub featured: true --- -[Z-Wave](http://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](https://github.com/OpenZWave/open-zwave/wiki/Controller-Compatibility-List) to be plugged into the host. +Please see the [getting started section] for in-depth documentation on how to use the Z-Wave component. -There is currently support for switches, lights and sensors. All will be picked up automatically after configuring this platform. - -### {% linkable_title Installation %} - -To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile the OpenZWave library and install the related [python-OpenZWave package](https://github.com/OpenZWave/python-openzwave). This can be done as follows. _(Note: The Home Assistant docker image has support for Z-Wave built-in)_ - -Make sure you have the correct dependencies installed before running the script: - -```bash -$ sudo apt-get install cython3 libudev-dev python3-sphinx python3-setuptools -``` - -Make sure you have at least version 0.23 of cython. - -```bash -$ sudo pip3 install --upgrade cython -``` - -Then get the OpenZWave files and switch to the `python3` branch: -

Do not use root to build python-openzwave as it will surely fail.

-```bash -$ git clone https://github.com/OpenZWave/python-openzwave.git -$ cd python-openzwave -$ git checkout python3 -$ PYTHON_EXEC=$(which python3) make build -$ sudo PYTHON_EXEC=$(which python3) make install -``` -

-Instead of `make install`, you can alternatively build your own python-openzwave package which can be easily uninstalled: - -```$ sudo PYTHON_EXEC=$(which python3) checkinstall --pkgname python-openzwave --pkgversion 1.0 --provides python-openzwave``` - -

- -With this installation, your `config_path` needed below will resemble: - -```bash -/usr/local/lib/python3.4/dist-packages/libopenzwave-0.3.0b8-py3.4-linux-x86_64.egg/config -``` - - -### {% linkable_title Configuration %} - -```yaml -# Example configuration.yaml entry -zwave: - usb_path: /dev/ttyUSB0 - config_path: /usr/local/share/python-openzwave/config - polling_interval: 60000 - customize: - sensor.greenwave_powernode_6_port_energy_10: - polling_intensity: 1 -``` - -Configuration variables: - -- **usb_path** (*Required*): The port where your device is connected to your Home Assistant host. -- **config_path** (*Optional*): The path to the Python Open Z-Wave configuration files. -- **autoheal** (*Optional*): Allows disabling auto ZWave heal at midnight. Defaults to True. -- **polling_interval** (*Optional*): 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 zwave network and cause problems. -- **customize** (*Optional*): This attribute contains node-specific override values: - - **polling_intensity** (*Optional*): 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. - -To find the path of your Z-Wave stick, run: - -```bash -$ ls /dev/ttyUSB* -``` - -Or, on some other systems (such as Raspberry Pi), use: - -```bash -$ ls /dev/ttyACM* -``` - -

-Depending on what's plugged into your USB ports, the name found above may change. You can lock in a name, such as `/dev/zwave`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/). -

- -#### {% linkable_title Events %} - -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: zwaveme_zme_wallcs_secure_wall_controller_8 - scene_id: 11 -``` - -The *entity_id* and *scene_id* of all triggered events can be seen in the console output. - -#### {% linkable_title Services %} - -The Z-Wave component exposes four services to help maintain the network. - -| Service | Description | -| ------- | ----------- | -| add_node | Put the zwave controller in inclusion mode. Allows one to add a new device to the zwave network.| -| remove_node | Put the zwave controller in exclusion mode. Allows one to remove a device from the zwave network.| -| heal_network | Tells the controller to "heal" the network. Bascially asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. | -| 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.| -| 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".| - -The soft_reset and heal_network commands can be used as part of an automation script -to help keep a zwave network running relliably. For example: - -```yaml -# Example configuration.yaml automation entry -automation: - - alias: soft reset at 2:30am - trigger: - platform: time - after: '2:30:00' - action: - service: zwave.soft_reset - - - alias: heal at 2:31am - trigger: - platform: time - after: '2:31:00' - action: - service: zwave.heal_network -``` - -#### {% linkable_title Device Specific Notes & Configuration %} - -##### {% linkable_title Aeon Minimote %} - -Here's a handy configuration for the Aeon Labs Minimote that defines all possible button presses. Put it into `automation.yaml`. - -```yaml -- alias: Minimote Button 1 Pressed - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 1 - -- alias: Minimote Button 1 Held - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 2 - -- alias: Minimote Button 2 Pressed - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 3 - -- alias: Minimote Button 2 Held - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 4 - -- alias: Minimote Button 3 Pressed - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 5 - -- alias: Minimote Button 3 Held - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 6 - -- alias: Minimote Button 4 Pressed - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 7 - -- alias: Minimote Button 4 Held - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - entity_id: aeon_labs_minimote_1 - scene_id: 8 -``` - -##### {% linkable_title Aeotec MultiSensor 6 %} - -In order for Home Assistant to recognize well the motion sensor, you will need to change its configuration from `Basic Set (default)` to `Binary Sensor report`. Currently there's no way to do this in Home Assistant but you can use ozwcp (OpenZWave control panel), Domoticz or similar to do it +[getting started section]: /getting-started/z-wave/ diff --git a/source/_includes/asides/getting_started_navigation.html b/source/_includes/asides/getting_started_navigation.html index edaff4fa797..46383b0136a 100644 --- a/source/_includes/asides/getting_started_navigation.html +++ b/source/_includes/asides/getting_started_navigation.html @@ -45,6 +45,14 @@
  • {% active_link /getting-started/scripts-conditions/ Conditions %}
  • +
  • + {% active_link /getting-started/z-wave/ Z-Wave %} + +
  • {% active_link /getting-started/autostart/ Autostart %}