Advertisement
anykeyev5

HA Sensor offline entities

May 7th, 2024
647
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 1.37 KB | None | 0 0
  1. # sensor
  2.   - trigger:
  3.       - platform: time_pattern
  4.         hours: "/1"
  5.         minutes: 0
  6.     sensor:
  7.       - unique_id: z2m_last_seen_entities
  8.         name: "Z2M Last Seen Entities"
  9.         state: >
  10.          {% set lapsed_hours = 36 %}
  11.           {% set ns = namespace(count=0) %}
  12.           {% for state in states.sensor | selectattr('entity_id', 'search', '.*_last_seen$')  %}
  13.             {% if states(state.entity_id) == 'unavailable' or ((as_timestamp(now()) - as_timestamp(states(state.entity_id),0)) > ((lapsed_hours | int) * 60 * 60)) %}
  14.               {% set ns.count = ns.count + 1 %}
  15.             {% endif %}
  16.           {% endfor %}
  17.           {{ ns.count }}    
  18.         attributes:
  19.           devices: >
  20.            {% set lapsed_hours = 36 %}
  21.             {% set result = namespace(sensors=[]) %}
  22.             {% for state in states.sensor | selectattr('entity_id', 'search', '.*_last_seen$') %}
  23.               {% if states(state.entity_id) == 'unavailable' or ((as_timestamp(now()) - as_timestamp(states(state.entity_id),0)) > ((lapsed_hours | int) * 60 * 60)) %}
  24.                 {% set result.sensors = result.sensors + [state.name | regex_replace(find='_last_seen', replace='') ~ ' (' ~ relative_time(strptime(states(state.entity_id), '%Y-%m-%dT%H:%M:%S%z', 'unavailable')) ~ ')'] %}
  25.               {% endif %}
  26.             {% endfor %}
  27.             {{ result.sensors }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement