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.

Revisions

  1. kpine created this gist Mar 23, 2023.
    3 changes: 3 additions & 0 deletions configuration.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    # /config/configuration.yaml
    homeassistant:
    packages: !include_dir_named packages
    57 changes: 57 additions & 0 deletions zwave_controller.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,57 @@
    # /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
    63 changes: 63 additions & 0 deletions zwave_nodes.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,63 @@
    # /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"