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 of the forum or the #zwave channel on Discord.

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.

Alarm Type Entity

  • alarm_type: Reports the type of the sensor
    • 0: General purpose
    • 1: Smoke sensor
    • 2: Carbon Monoxide (CO) sensor
    • 3: Carbon Dioxide (CO2) sensor
    • 4: Heat sensor
    • 5: Water leak sensor
    • 6: Access control

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 to create one:

binary_sensor:
  - platform: template
    sensors: 
      YOUR_SENSOR:
        friendly_name: "Friendly name here"
        value_template: >- 
          {%- if is_state('sensor.YOUR_SENSOR_access_control', '22') -%}
          on
          {%- else -%}
          off
          {%- endif -%}

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 an burglar entity, but not a binary_sensor equivalent, you can use a template binary sensor to create one:

binary_sensor:
  - platform: template
    sensors: 
      YOUR_SENSOR:
        friendly_name: "Friendly name here"
        value_template: >-
          {%- if is_state('sensor.YOUR_SENSOR_burglar', '8') -%}
          on
          {%- else -%}
          off
          {%- endif -%}

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