Мониторить показатели сервера умного дома внутри самой системы умного дома? Почему бы и нет.
В этой статье я расскажу о том, как настроить мониторинг сервера Home Assistant внутри самого Home Assistant при помощи нескольких стандартных интеграций.
Содержание
Добавляем интеграции
Для реализации используемого мной мониторинга можно воспользоваться следующими интеграциями:
- Updater — проверяет наличие доступных обновлений для Home Assistant
- Version — выводит номер текущей версии Home Assistant
- Raspberry Pi Power Supply Checker — проверяет достаточность питания для Raspberry Pi
- System Monitor — выводит различные показатели системы
Если ваш Home Assistant установлен не на Raspberry Pi, то интеграцию Raspberry Pi Power Supply Checker можно не включать. Все остальные интеграции универсальны и не зависят от железа.
Updater
Бинарный сенсор Updater активен в Home Assistant по умолчанию с момента установки. Его добавлять не нужно.
Raspberry Pi Power Supply Checker
Интеграцию с этим сенсором, проверяющим «малинку» на наличие предупреждений о недостаточности питания (значок молнии на экране) активируем в веб-интерфесе Home Assistant:
Настройки → Интеграции → Добавить интеграцию → Raspberry Pi Power Supply Checker
System Monitor и Version
Эти интеграции дописываем в файл configuration.yaml:
sudo nano /home/homeassistant/.homeassistant/configuration.yaml
(Если Home Assistant устанавливался по моей инструкции, то путь к файлу будет таким)
Код для configuration.yaml:
sensor: - platform: systemmonitor resources: - type: disk_use_percent arg: / - type: memory_use_percent - type: processor_temperature - type: ipv4_address arg: wlan0 - type: processor_use - type: last_boot - platform: version
В данном случае у нас будут доступны следующие сенсоры от System Monitor: disk_use_percent (объем занятого дискового пространства в процентах), memory_use_percent (объем занятой оперативной памяти в процентах), processor_temperature (температура CPU), ipv4_adress (IP-адрес устройства в локальной сети, wlan0 для беспроводного подключения или eth0 для Ethernet), processor_use (нагрузка на процессор в процентах), last_boot (время с последней перезагрузки устройства).
После чего перезагружаем Home Assistant, чтобы он «увидел» новые сенсоры:
Настройки → Сервер → Перезапустить
Настраиваем карточку с информацией
Теперь добавляем новую карточку и выводим в нее появившиеся сенсоры:
Изменить панель → Добавить карточку → Объекты.
Я использую карточку типа «Объекты» (Entities), но можно взять зайдействовать другой вид оформления. Например, разнести сенсоры по отдельным карточкам с разным представлением информации.
Код для карточки:
type: entities entities: - entity: sensor.processor_temperature name: Температура CPU icon: 'mdi:temperature-celsius' - entity: sensor.processor_use_percent name: Загрузка CPU - entity: sensor.memory_use_percent name: Загрузка RAM - entity: sensor.disk_use_percent name: Заполненность HDD - entity: binary_sensor.rpi_power_status name: Статус питания - entity: sensor.ipv4_address_wlan0 name: IP-адрес (Wi-Fi) - entity: sensor.last_boot name: Последняя перезагрузка - entity: sensor.current_version name: Версия Home Assistant icon: 'mdi:home-assistant' - entity: binary_sensor.updater name: Обновление HA доступно title: Статус системы
В данном случае мы добавляем кастомные иконки к сенсорам с температурой процессора и текущей установленной версией Home Assistant. Также каждому сенсору присваивается удобное для восприятия название.
Получившаяся карточка в веб-интерфейсе:
Заключение
Вот таким образом можно мониторить состояние сервера Home Assistant внутри самой системы умного дома.
На данный момент мой сервер Home Assistant работает на базе Raspberry Pi 4 с 4 Гб оперативной памяти. В следующих статьях цикла я опишу другие используемые мной интеграции.

Broadcom BCM2711 | 2Gb/4Gb/8Gb RAM | 10/100/1000Mbit Ethernet
Малинка не самый лучший вариант для установки Home Assistant. В ФБ есть сообщество и почти все посты там о том что на малинке что-то отвалилось или не работает. Лучше установить на виртуальную машину. Сам пользуюсь TrueNAS Core (новое название FreeNAS) и там создал виртуальную машину по этой инструкции, она универсальна для любых платформ.
https://community.home-assistant.io/t/alternative-way-of-running-hassos-full-os-on-freenas-without-iocage-or-docker/133738
Причём заметил что у Вас Home Assistant без Superviser, это так задумано? Это же жутко неудобно, потому что Superviser это склад приложений и расширений, где есть например SMB Share к системному разделу, файловый редактор прямо в браузере, EspHome интегрированное прямо в Home Assistant, Google Drive automatic backup (https://github.com/sabeechen/hassio-google-drive-backup) и многое многое другое
Можно сказать, что да, так задумано. Мне установка в виртуальное окружение показалась наиболее удобной, т.к. при этом остается полный доступ к системе и можно параллельно хостить на том же устройстве и другие сервисы. А Supervisor доступен только при установке Hass.io, при этом либо теряется полный доступ к системе, либо нужно будет на ходу осваивать Docker или другие технологии виртуализации.
В перспективе — может быть, но точно не сейчас :).
Поищу то сообщество в фейсбуке, пока про проблемы с HA на RPi читать не доводилось.
Что может отвалиться на малинке, что не может отвалиться на x86 виртуалке? Можно детали?
Это разговор на уровне что-то там, где-то пишут…может правда…может нет…
Дмитрий, HA очень быстро убивает SD карты постоянной перезаписью логов, в курсе?
Да, поэтому тот микрокомпьютер где сейчас крутится HA у меня грузится с внешнего SSD
Ребят подскажите как заставить видеть температуру проца, если стоит НАС на виртуальной машине? А то все видит кроме температур
Установить Glances прямо на сервер (не на виртуальную машину), а из HA настроить интеграцию с ним (она есть в числе стандартных). При помощи Glances можно мониторить состояние любого компьютера на Linux, Windows, macOS.
Как то напряжно ставить там через питон. Сделал через openhardwaremonitor все норм работает.
Как можно вывести свободное место на диске подключенного по USB через disk_use_percent?
Пытался подобрать arg не получилось
Посмотрите как примонтированы диски через df -H.
В качестве arg надо использовать не путь к точке монтирования (столбец Mounted on), а путь к диску (столбец Filesystem), тогда должно сработать.
Да, пытался написать «/mnt/usbhdd»
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1.1T 906G 95G 91% /mnt/usbhdd
Так тоже не работает!
Если точка монтирования (как в оригинальном примере), то пишет — недоступно
» — type: disk_use
arg: /srv/Data
»
Если Файловая система, то пишет — 0Gb
» — type: disk_use
arg: /dev/sdb6
«
Получилось? Столкнулся с такой же проблемой?
Спасибо,помогло.Стало красивее)
После добавлений в configuration.yaml и произведя Настройку карточки Объекты
получил следующее сообщение:
«Объект sensor.processor_temperature недоступен.
Объект sensor.processor_use_percent недоступен.
Объект sensor.memory_use_percent недоступен.
Объект sensor.disk_use_percent недоступен.
Объект sensor.last_boot недоступен.
Объект sensor.current_version недоступен.»
Что я упустил?
А после правки configuration.yaml перезапуск сервера был? На лету изменения не подхватываются.
Если был, то на странице «Конфигурация → Устройства и службы → Объекты» проверьте список активных интеграций и ID объектов.