Как сохранить графики и историю датчиков HA при передаче в Алису
Интеграция датчиков из системы автоматизации в экосистему Яндекса позволяет не только контролировать текущие параметры микроклимата голосом, но и отслеживать их изменения во времени. В приложении «Дом с Алисой» для датчиков температуры, влажности, освещенности и давления предусмотрены наглядные исторические графики. Однако пользователи часто сталкиваются с проблемой, когда датчики передаются, их текущие значения отображаются корректно, но графики истории остаются пустыми или строятся с большими пропусками.
Это происходит из-за некорректной настройки метаданных сенсоров в системе или неправильной фильтрации событий базы данных. В данном руководстве мы подробно разберем, как подготовить ваши сенсоры в HA для безупречного построения исторических графиков в Яндексе.
Почему в Алисе пропадают графики?
Чтобы Яндекс начал накапливать исторические данные и строить графики для сенсора, должны выполняться три ключевых условия:
- Наличие класса устройства: У сущности в системе должен быть правильно задан атрибут
device_class(например,temperature,humidity,pressureилиilluminance). - Правильные единицы измерения: Атрибут
unit_of_measurementдолжен соответствовать международным или российским стандартам (например,°Cдля температуры,%для влажности,мм рт. ст.илиПадля давления). - Регулярное обновление состояний: Яндекс строит графики на основе изменений состояний. Если датчик обновляется раз в несколько часов или интеграция блокирует частую отправку данных, график будет прерывистым.
Шаг 1. Настройка атрибутов сенсора на сервере HA
Каждая сущность сенсора в HA должна иметь строго определенный набор системных атрибутов. Если вы используете готовые датчики (например, Xiaomi или Aqara через Zigbee2MQTT), эти атрибуты обычно прописываются автоматически. Если же вы создали виртуальный или шаблонный сенсор (Template Sensor), их необходимо задать вручную.
Откройте файл configuration.yaml и проверьте конфигурацию ваших сенсоров:
sensor:
- platform: template
sensors:
living_room_temperature_yandex:
friendly_name: "Температура в гостиной"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_template: "{{ states('sensor.living_room_temp_raw') | float | round(1) }}"
Обратите внимание на атрибут state_class: measurement. Он указывает системе, что значение сенсора является непрерывным измерением физической величины. Это критически важно для корректной передачи истории.
IMPORTANT
Для датчиков давления Яндекс ожидает значения в миллиметрах ртутного столба (мм рт. ст.) или гектопаскалях (hPa). Если ваш датчик отдает значение в паскалях (Pa), обязательно создайте шаблонный сенсор в системе для конвертации величины, иначе график в приложении Яндекса не построится из-за несовместимости единиц измерения.
Шаг 2. Конвертация единиц давления (пример шаблона)
Для перевода давления из гектопаскалей в миллиметры ртутного столба используйте следующую формулу пересчета в шаблоне Home Assistant:
template:
- sensor:
- name: "Давление в спальне"
unit_of_measurement: "мм рт. ст."
device_class: pressure
state_class: measurement
state: "{{ (states('sensor.barometer_hpa') | float * 0.750062) | round(1) }}"
Этот сенсор будет идеально распознан Алисой, и для него автоматически включится график давления на главном экране устройства в приложении.
Шаг 3. Конфигурация интеграции Yandex Smart Home
В настройках интеграции yandex_smart_home убедитесь, что вы не отфильтровали нужные датчики. Если вы используете ручную настройку через YAML, добавьте датчики в список экспонируемых сущностей:
yandex_smart_home:
filter:
include_entities:
- sensor.living_room_temperature_yandex
- sensor.bedroom_humidity
- sensor.outdoor_pressure
После редактирования конфигурации зайдите в Инструменты разработчика на стороне HA, проверьте конфигурацию на ошибки и выполните быструю перезагрузку конфигурации YAML или перезапустите сервер.
WARNING
Если в вашем файле configuration.yaml настроена интеграция базы данных recorder с жестким ограничением на запись (например, если вы исключили сенсоры из записи для сбережения ресурса SD-карты), Home Assistant не сможет отслеживать историю изменений. Это приведет к тому, что интеграция не будет отправлять новые точки данных в Яндекс, и графики отображаться не будут. Убедитесь, что пробрасываемые датчики не находятся в списке exclude вашего рекордера.
Шаг 4. Обновление устройств в приложении Яндекса
Для того чтобы изменения атрибутов вступили в силу:
- Зайдите в приложение «Дом с Алисой».
- Если датчик отображался некорректно, удалите его вручную из списка устройств.
- Обновите список устройств через интеграцию Home Assistant.
- Назначьте датчик в соответствующую комнату.
Если после этого вы по-прежнему сталкиваетесь с проблемами отображения интерфейсных элементов или виджетов датчиков на рабочем столе смартфона, изучите наше руководство по устранению неполадок с виджетами в приложении Яндекс, где описаны проблемы кэширования мобильного приложения.
TIP
Чтобы избежать нежелательных разрывов на графиках при плановом или аварийном перезапуске сервера Home Assistant, настройте сохранение последних состояний сенсоров с помощью встроенного программного механизма restore_state or используйте протокол MQTT с флагом retain: true для гарантированной отправки последних данных от физических устройств. Это гарантирует, что датчик мгновенно вернет свое актуальное числовое состояние после старта операционной системы. Также полезно настроить автоматический опрос устройств раз в 10–15 минут, чтобы поддерживать постоянную активность передачи данных в облако.
Соблюдение этих простых правил гарантирует, что история климата и графики изменений параметров в вашем умном доме всегда будут под рукой, а графики в приложении Алисы будут строиться плавно, красиво, последовательно и абсолютно без неприятных разрывов. Это позволит вам точно анализировать работу систем отопления и кондиционирования.
Для более глубокого анализа показаний сенсоров настройте визуализацию графиков умного дома Яндекса в Grafana.
Инструкция по настройке
Проверка атрибутов сенсора в HA
Убедитесь, что ваши датчики на стороне HA имеют правильные атрибуты unit_of_measurement, device_class и state_class для передачи истории.
Конфигурация Yandex Smart Home
Пропишите пробрасываемые сенсоры в конфигурационный файл integration. Настройте принудительное сопоставление типов данных при необходимости.
Сброс кэша и синхронизация
Удалите старые некорректные устройства из Дома с Алисой и проведите повторную синхронизацию для обновления метаданных датчиков.
Проверка построения графиков
Откройте карточку датчика в приложении Яндекса и убедитесь, что графики за час, день и неделю строятся без пропусков и разрывов данных.