---
title: Z-Wave
description: Instructions on how to integrate your existing Z-Wave within Home Assistant.
ha_category:
- Hub
- Binary Sensor
- Climate
- Cover
- Fan
- Light
- Lock
- Sensor
- Switch
featured: true
ha_iot_class: Local Push
ha_release: 0.7
ha_config_flow: true
ha_codeowners:
- '@home-assistant/z-wave'
ha_domain: zwave
---
The [Z-Wave](https://www.z-wave.com/) integration for Home Assistant allows you to observe and control connected Z-Wave devices. Please see the [Z-Wave getting started section](/docs/z-wave/) for in-depth documentation on how to use and setup the Z-Wave component.
There is currently support for the following device types within Home Assistant:
- Binary Sensor
- [Climate](#climate)
- [Cover](#cover)
- Fan
- Light
- [Lock](#lock)
- Sensor
- Switch
## Configuration
If you have setup the requirements, then add the following entry `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
zwave:
```
## Climate
To get your Z-Wave thermostat or HVAC unit working with Home Assistant, follow the instructions for the general [Z-Wave component](/getting-started/z-wave/).
Thermostats with support for fan modes or different operating modes, will be handled like a HVAC device and will also be detected as one.
If the thermostat supports different operating modes, you will get one thermostat entity for each mode.
Once enabled, any Z-Wave climate devices will be available to Home Assistant. Multiple entities may be created. The following entities are created for a Remotec ZXT-120.
- `climate.remotec_zxt120_heating_1_id`: Allows you to control the connected device. See below for examples.
- `sensor.remotec_zxt120_temperature_38`: A sensor which returns the current temperature set on the attached device.
### Automating Z-Wave Climate Devices
The following examples will instruct a Remotec ZXT-120 to turn the attached device mode to Heating, and set the temperature at 24 degrees after 8pm. Add it to `automation.yaml`.
```yaml
automation:
- alias: Turn on Heater at 8pm
trigger:
- platform: time
at: "20:00:00"
action:
- service: climate.set_hvac_mode
data:
entity_id: climate.remotec_zxt120_heating_1_id
hvac_mode: Heat
- service: climate.set_temperature
data:
entity_id: climate.remotec_zxt120_heating_1_39
temperature: 24
```
Generally, in Home Assistant, you can use the `homeassistant.turn_off` service to turn devices off. For the Remotec ZXT-120, you must instead make a service call like the following.
```yaml
automation:
- alias: Turn off Heater at 9pm
trigger:
- platform: time
at: "21:00:00"
action:
- service: climate.set_hvac_mode
data:
entity_id: climate.remotec_zxt120_heating_1_id
hvac_mode: 'Off'
```
**Note:** In the example above, the word `Off` is encased in single quotes to be valid YAML.
### Test if it works
A simple way to test if your Z-Wave climate device is working is to use **Developer Tools** -> **Services**. Choose the applicable Climate service from the list of **Available services:** and enter something like the sample below into the **Service Data** field and then press **CALL SERVICE**.
```yaml
entity_id: climate.remotec_zxt120_heating_1_id
hvac_mode: Heat
```
## Cover
Z-Wave garage doors, blinds, and roller shutters are supported as cover in Home Assistant.
To get your Z-Wave covers working with Home Assistant, follow the instructions for the general [Z-Wave component](#configuration).
If you discover that you need to [invert the operation](/docs/z-wave/installation/#invert_openclose_buttons) of open/close for a particular device, you may change this behavior in your Z-Wave section of your `configuration.yaml` file as follows, in addition you can also [invert percent position](/docs/z-wave/installation/#invert_percent):
```yaml
zwave:
device_config:
cover.my_cover:
invert_openclose_buttons: true
invert_percent: true
```
## Lock
To get your Z-Wave locks working with Home Assistant, follow the instructions for the general [Z-Wave component](#configuration).
Z-Wave locks will expose three services under the lock domain to manage usercodes if the lock supports it:
| Service | Description |
| -------------- | ------------------------------------------------------------------------------------------------------ |
| clear_usercode | Clears a usercode at code_slot X. Valid code_slots are 1-254, but max is defined by the lock. |
| get_usercode | Get a usercode from the lock at code_slot. Valid code_slots are 1-254, but max is defined by the lock. |
| set_usercode | Sets usercode to X at code_slot Y. Valid usercodes are at least 4 digits, and max defined by the lock. |