Z-Wave Entity Naming


This is a work in progress, based upon reports in the forum, the author's own devices and reading of various documentation. It will be incomplete, so if you have a device that isn't reported here or have a device that reports a different value, please provide a report in the [Z-Wave section](https://community.openpeerpower.io/c/configuration/zwave) of the forum or the `#zwave` channel on [Discord](https://discord.gg/RkajcgS).

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 for more info. You can see which version your sensor supports via the zwcfg_0x*.xml file. An example with version 2 support:

```xml %}

``` ### 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): ```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') }}" ``` ### 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): ```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') }}" ``` ### 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)