Pull to refresh

Давно страдаю от того, что в HomeAssistant нет встроенных сенсоров по типу "Средняя температура в гостиной", "Средняя влажность в спальне" и достаточно долго для этого использовал инструмент "Объединение состояний сенсоров" (Настройки - Устройства - Вспомогательные - Создать вспомогательный объект - Объединение состояний сенсоров), тип "Медиана/Среднее арифметическое" и туда вручную добавлял датчики.

Недостатком было, что созданная сущность являлась просто числом и не относилась к домену "Температура", соответственно не было единицы измерения, не рисовались графики и нельзя было выбирать его в некоторых BluePrints, которые требовали температуру.

Сегодня открыл для себя Вспомогательные устройства на основе шаблонов, теперь все происходит автоматом.

Шаблон для нового устройства

{{ (states.sensor | selectattr('attributes.device_class', 'eq', 'temperature') 
  | selectattr('entity_id', 'in', area_entities('Гостиная')) 
  | map(attribute='state') | map('float', default=none) 
  | reject('==', none) | list | average(default=0)) }}

Бонус - шаблон для сенсора, который определяет (объединяет несколько сенсоров) человека в комнате

{{ states.binary_sensor | selectattr('attributes.device_class', 'in',['motion','occupancy','presence']) 
 | selectattr('state','eq','on') 
 | selectattr('entity_id', 'in', area_entities('Гостиная')+area_entities('Кухня')) 
 | list | count > 0 }}

Tags:
Total votes 4: ↑4 and ↓0+8
Comments0

Articles