Обновить
{% set special_device_timeouts  = {
  'sensor.0x1c34f1fffed6742a_last_seen':15, 
  'sensor.0x000d6f00132ac72f_last_seen':11,
} %}

{% set low_battery_devices = states.sensor 
 | selectattr('attributes.state_class', 'equalto', 'measurement') 
 | selectattr('attributes.battery_last_reported_level', 'defined') 
 | selectattr('attributes.battery_last_reported_level', 'is_number') 
 | selectattr('attributes.battery_last_reported_level', 'le', 10) 
 | list %}

{% set default_timeout = 4 %} 
{% set offline_devices = namespace(devices=[]) %}

{% for sensor in states.sensor 
  | selectattr('entity_id', 'search', '_last_seen$') 
  | selectattr('attributes.device_class', 'equalto', 'timestamp') 
  | selectattr('state', 'defined') 
  | rejectattr('state', 'in', ['unavailable', 'unknown', '']) %}
  {% set timeout = special_device_timeouts.get(sensor.entity_id, default_timeout) %}
  
  {% set last_seen_time = as_timestamp(sensor.state) %}
  {% set current_time = as_timestamp(now()) %}
  {% set hours_diff = ((current_time - last_seen_time) / 3600) | float %}
  {% set is_offline = hours_diff > timeout %}

  {% if is_offline %}    
    {% set offline_devices.devices = offline_devices.devices + [sensor] %}
  {% endif %}  
{% endfor %}

{% set all_devices = (offline_devices.devices + low_battery_devices)
  | map(attribute='attributes.friendly_name') 
  | map('replace', 'Last seen', '') 
  | map('replace', 'Батарея+', '') 
  | map('trim') 
  | join(', ')%}

{{ all_devices if all_devices else none}}

Написал шаблон вспомогательного устройства, аккумулирующий названия устройств на батарейках, которые не отвечают более 11 часов (нужно устройствам включить свойство last_seen) или заряд меньше 10. Можно использовать для вывода в виджет или предупреждать Алисой.

ЗЫspecial_device_timeouts - это список устройств с таймаутами, которые могут долго спать

Теги:
Рейтинг0
Комментарии0

«Яндекс Go» предложит пассажирам ждать такси 30–40 минут ради скидки

Пассажиры «Яндекс Go» смогут сэкономить на поездке в часы, когда такси заказывают особенно много людей. В такие моменты сервис предложит опцию «Позже»: машина приедет не сразу, зато поездка будет стоить меньше. Скидку даст «Яндекс Go» за свой счёт, она не уменьшит доход водителей.

«Яндекс Go» предложит пассажирам ждать такси 30–40 минут ради скидки

Публикации