Skip to content

Instantly share code, notes, and snippets.

@kpine
Created March 23, 2023 05:29
Show Gist options
  • Save kpine/e8af7f381a25b3d6a33fde9fe97a70e3 to your computer and use it in GitHub Desktop.
Save kpine/e8af7f381a25b3d6a33fde9fe97a70e3 to your computer and use it in GitHub Desktop.
Z-Wave Statistics Sensors
# /config/configuration.yaml
homeassistant:
packages: !include_dir_named packages
# /config/packages/zwave_controller.yaml
homeassistant:
customize:
package.node_anchors:
rssi-sensor: &rssi-sensor
unit_of_measurement: dBm
state_class: measurement
device_class: signal_strength
rssi-diff-sensor: &rssi-diff-sensor
unit_of_measurement: dB
state_class: measurement
device_class: signal_strength
template:
- unique_id: 5950ad3d-89de-4d58-98cc-a58262c8aca8
trigger:
- platform: zwave_js.event
event_source: controller
event: "statistics updated"
config_entry_id: ef37a31dab38dcfee3fd3d1ecd1f3692
sensor:
- name: "Controller Background RSSI Channel 0: Current"
unique_id: channel0.rssi.current
state: '{{ trigger.event_data.statistics.backgroundRSSI.channel0.current | default("unknown") }}'
<<: *rssi-sensor
- name: "Controller Background RSSI Channel 1: Current"
unique_id: channel1.rssi.current
state: '{{ trigger.event_data.statistics.backgroundRSSI.channel1.current | default("unknown") }}'
<<: *rssi-sensor
- name: "Controller Background RSSI Channel 2: Current"
unique_id: channel2.rssi.current
state: '{{ trigger.event_data.statistics.backgroundRSSI.channel2.current | default("unknown") }}'
<<: *rssi-sensor
- name: "Controller Background RSSI Channel 0: Average"
unique_id: channel0.rssi.average
state: '{{ trigger.event_data.statistics.backgroundRSSI.channel0.average | default("unknown") }}'
<<: *rssi-sensor
- name: "Controller Background RSSI Channel 1: Average"
unique_id: channel1.rssi.average
state: '{{ trigger.event_data.statistics.backgroundRSSI.channel1.average | default("unknown") }}'
<<: *rssi-sensor
- name: "Controller Background RSSI Channel 2: Average"
unique_id: channel2.rssi.average
state: '{{ trigger.event_data.statistics.backgroundRSSI.channel2.average | default("unknown") }}'
<<: *rssi-sensor
- name: "Controller Background RSSI Channel 0: Difference"
unique_id: channel0.rssi.difference2
state: '{{ (trigger.event_data.statistics.backgroundRSSI.channel0.current - trigger.event_data.statistics.backgroundRSSI.channel0.average) | default("unknown") }}'
<<: *rssi-diff-sensor
- name: "Controller Background RSSI Channel 1: Difference"
unique_id: channel1.rssi.difference2
state: '{{ (trigger.event_data.statistics.backgroundRSSI.channel1.current - trigger.event_data.statistics.backgroundRSSI.channel1.average) | default("unknown") }}'
<<: *rssi-diff-sensor
- name: "Controller Background RSSI Channel 2: Difference"
unique_id: channel2.rssi.difference2
state: '{{ (trigger.event_data.statistics.backgroundRSSI.channel2.current - trigger.event_data.statistics.backgroundRSSI.channel2.average) | default("unknown") }}'
<<: *rssi-diff-sensor
# /config/packages/zwave_nodes.yaml
homeassistant:
customize:
package.node_anchors:
node-trigger: &node-trigger
platform: zwave_js.event
event_source: node
event: "statistics updated"
node-rssi: &node-rssi
unique_id: rssi
state: '{{ trigger.event_data.statistics.rssi | default("unknown") }}'
unit_of_measurement: dBm
state_class: measurement
device_class: signal_strength
node-rtt: &node-rtt
unique_id: rtt
state: '{{ trigger.event_data.statistics.rtt | default("unknown") }}'
unit_of_measurement: ms
state_class: measurement
icon: mdi:speedometer
dining_room_light_switch: &dining_room_light_switch sensor.dining_room_light_switch_node_status
family_room_light_switch: &family_room_light_switch sensor.family_room_light_switch_node_status
living_room_light_switch: &living_room_light_switch sensor.living_room_light_switch_node_status
left_garage_door_opener: &left_garage_door_opener sensor.left_garage_door_opener_node_status
template:
- unique_id: *dining_room_light_switch
trigger:
- <<: *node-trigger
entity_id: *dining_room_light_switch
sensor:
- <<: *node-rssi
name: "Dining Room Light Switch RSSI"
- <<: *node-rtt
name: "Dining Room Light Switch RTT"
- unique_id: *family_room_light_switch
trigger:
- <<: *node-trigger
entity_id: *family_room_light_switch
sensor:
- <<: *node-rssi
name: "Family Room Light Switch RSSI"
- <<: *node-rtt
name: "Family Room Light Switch RTT"
- unique_id: *living_room_light_switch
trigger:
- <<: *node-trigger
entity_id: *living_room_light_switch
sensor:
- <<: *node-rssi
name: "Living Room Light Switch RSSI"
- <<: *node-rtt
name: "Living Room Light Switch RTT"
- unique_id: *left_garage_door_opener
trigger:
- <<: *node-trigger
entity_id: *left_garage_door_opener
sensor:
- <<: *node-rssi
name: "Left Garage Door Opener RSSI"
- <<: *node-rtt
name: "Left Garage Door Opener RTT"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment