Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # sensor
- - trigger:
- - platform: time_pattern
- hours: "/1"
- minutes: 0
- sensor:
- - unique_id: z2m_last_seen_entities
- name: "Z2M Last Seen Entities"
- state: >
- {% set lapsed_hours = 36 %}
- {% set ns = namespace(count=0) %}
- {% for state in states.sensor | selectattr('entity_id', 'search', '.*_last_seen$') %}
- {% if states(state.entity_id) == 'unavailable' or ((as_timestamp(now()) - as_timestamp(states(state.entity_id),0)) > ((lapsed_hours | int) * 60 * 60)) %}
- {% set ns.count = ns.count + 1 %}
- {% endif %}
- {% endfor %}
- {{ ns.count }}
- attributes:
- devices: >
- {% set lapsed_hours = 36 %}
- {% set result = namespace(sensors=[]) %}
- {% for state in states.sensor | selectattr('entity_id', 'search', '.*_last_seen$') %}
- {% if states(state.entity_id) == 'unavailable' or ((as_timestamp(now()) - as_timestamp(states(state.entity_id),0)) > ((lapsed_hours | int) * 60 * 60)) %}
- {% 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')) ~ ')'] %}
- {% endif %}
- {% endfor %}
- {{ result.sensors }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement