Мониторинг сервера Home Assistant внутри Home Assistant

Home Assistant. Мониторинг системы

Дата Автор 16 комментариев 20 897 просмотров

Мониторить показатели сервера умного дома внутри самой системы умного дома? Почему бы и нет.

В этой статье я расскажу о том, как настроить мониторинг сервера 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, чтобы он «увидел» новые сенсоры:
Настройки → Сервер → Перезапустить

Это важно
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

Заключение

Вот таким образом можно мониторить состояние сервера Home Assistant внутри самой системы умного дома.

На данный момент мой сервер Home Assistant работает на базе Raspberry Pi 4 с 4 Гб оперативной памяти. В следующих статьях цикла я опишу другие используемые мной интеграции.

Микрокомпьютер Raspberry Pi 4
Микрокомпьютер Raspberry Pi 4

Broadcom BCM2711 | 2Gb/4Gb/8Gb RAM | 10/100/1000Mbit Ethernet

Купить на AliExpress

Автор статьи:
Дмитрий
Руководитель отдела в IT-компании. Веду этот блог с 2013 года, пишу о гаджетах и домашней автоматизации, обозреваю одноплатные компьютеры, неспешно собираю «умный дом».

16 комментария на «Home Assistant. Мониторинг системы»

  1. Малинка не самый лучший вариант для установки 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 виртуалке? Можно детали?
      Это разговор на уровне что-то там, где-то пишут…может правда…может нет…

  2. Ребят подскажите как заставить видеть температуру проца, если стоит НАС на виртуальной машине? А то все видит кроме температур

    • Установить Glances прямо на сервер (не на виртуальную машину), а из HA настроить интеграцию с ним (она есть в числе стандартных). При помощи Glances можно мониторить состояние любого компьютера на Linux, Windows, macOS.

  3. Как можно вывести свободное место на диске подключенного по USB через disk_use_percent?
    Пытался подобрать arg не получилось

    • Посмотрите как примонтированы диски через df -H.
      В качестве arg надо использовать не путь к точке монтирования (столбец Mounted on), а путь к диску (столбец Filesystem), тогда должно сработать.

      • Так тоже не работает!
        Если точка монтирования (как в оригинальном примере), то пишет — недоступно
        » — type: disk_use
        arg: /srv/Data
        »
        Если Файловая система, то пишет — 0Gb
        » — type: disk_use
        arg: /dev/sdb6
        «

  4. После добавлений в 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 объектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

[Хамство, оскорбления и попытки крауд-маркетинга будут удалены]