Все настройки внешнего вида, конфигураций и сценариев в Home Assistant можно выполнить как через web-интерфейс, так и вручную, прописывая все в конфигурационных файлах. Очень рекомендую пользоваться именно вторым способом.

Для написания всего и вся в Home Assistant используется язык YAML. Тут важно запомнить два момента:

    1. При внесении правок в конфигурацию, написании сценариев и других действиях нужно обязательно соблюдать правила вложенности и правильно проставлять отступы. Более подробно я расскажу об этом далее, когда будем вносить правки в конфигурационный файл.
    2. После внесения необходимых изменений, Home Assistant нужно перезапускать для их применения (за исключением изменений интерфейса). Так вот, перед каждой перезагрузкой нужно обязательно выполнять проверку конфигурации. А для того, чтобы она была доступна, нужно включить расширенный режим:
      Включение расширенного режима в Home Assistant
      После его включения в настройках появится кнопка «Проверить конфигурацию». Соответственно сначала вносим необходимые изменения, проверяем в редакторе кода (который установим далее), что все ОК:
      Ошибок нет
      Далее переходим по пути «Настройки» -> «Сервер»:
      Меню сервер
      И выполняем проверку. Если все хорошо, то нажимаем «Перезапустить» чуть ниже:
      Проверка конфигурации

Установка File Editor

Для редактирования файлов конфигурации скачиваем и устанавливаем File Editor из Add-on Store:

Устанавливаем файловый менеджер

Выбираем его, нажимаем Install, ожидаем завершения установки, после чего запускаем нажатием на кнопку Start и включаем Show in sidebar (выносит иконку запуска редактора в сайдбар слева).

Быстрый доступ к File Editor

После установки можно переходить к первоначальной настройке. Основной файл, в котором описаны все настройки – Configuration.yaml. Так что запускаем File Editor и открываем данный файл (скорее всего он откроется по умолчанию).

Configuration.yaml

Для создания файлов и папок, а также перехода между ними, нажимаем Browse Filesystem в File Editor:

Файловый менеджер

Я создал папку myconfig (имя может быть любое) и уже в ней буду создавать все файлы конфигурации. Удаляем все стандартные файлы (groups.yaml, scenes.yaml, automations.yaml, scripts.yaml) из корневой папки и создаем новую папку и уже в ней файлы groups.yaml, scenes.yaml и папки sensor и automation.

Далее открываем файл configuration.yaml и добавляем туда строчки, как показано в примере ниже (выделил красным). Первый блок открывает возможность конфигурировать интерфейс через конфигурационный файл, второй – указывает пути до новых файлов и папок (myconfig меняем на название Вашей папки).

Пример Configuration.yaml
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

#Редактирование интерфейса в файле конфигурации
lovelace:
mode: yaml

# Text to speech
tts:
  - platform: google_translate

#Путь до файлов конфигурации
group: !include myconfig/groups.yaml
scene: !include myconfig/scenes.yaml

#Папки конфигурации
sensor: !include_dir_merge_list myconfig/sensor
automation: !include_dir_merge_list myconfig/automation

Добавление сенсоров

Первое, что можно сделать – вывести различную информация о состоянии сервера на главный экран. Для этого переходим в папку sensor и создаем там файл sysmonitor.yaml (название может быть любым). В нем – прописываем нужные нам сенсоры, список которых можно взять тут. Прописываем со всеми пробелами, как в примере ниже:

  - platform: systemmonitor
    resources:
    - type: processor_use
    - type: processor_temperature
    - type: last_boot
    - type: disk_use_percent
      arg: /
    - type: memory_use_percent
    - type: disk_free
      arg: /

Настройка интерфейса

Создаем файл с именем ui-lovelace.yaml в папке, где и configuration.yaml. В него будем прописывать все настройки интерфейса. Ниже – пример моего файла, в который я добавил сенсоры из прошлого пункта и написал комментарии к большинству строчек. Найти имя нужного сенсора, его атрибуты и текущее состояние можно в панели разработчика во вкладке «Состояния»:

Имя сенсора

ui-lovelace.yaml
title: MyHome  #Текст, который выводится в самом верху на вкладке "Обзор"
views:

  - title: Сервер  #Первая вкладка. Пока других нет, ее название и значок не будут отображаться в обзоре
    icon: mdi:server  #Иконка вкладки
    
    cards:  #Карточки, которые будут в первой вкладке

    - type: vertical-stack  #Первый вертикальный блок. Сюда вписываем все карточки, которые будут отображаться в первой колонке
      cards:
    
        - type: entities  #Задаем тип карточки. Данный тип (entities) выводит в строчку название и значение сущности
          show_header_toggle: false
          entities:
              - entity: sensor.disk_free  #Выводит свободное место на диске
                name: Свободное место на диске  #Отображаемое название
                icon: mdi:harddisk  #Иконка
              - entity: sensor.last_boot  #Выводит время, когда последний раз был загружен сервер
                name: Когда был включен
                icon: mdi:clock
              
        - type: horizontal-stack  #Горизонтальная группировка следующих трех карточек
          cards:
            - type: gauge  #Тип карточки. gauge - в виде круговой диаграммы
              entity: sensor.processor_use_percent  #Выводит загрузку процессора в процентах
              name: Загрузка процессора  #Отображаемое название
              severity:  #Задаем цвет диаграммы в зависимости от значений показателя
                green: 0
                yellow: 45
                red: 85
          
            - type: gauge
              entity: sensor.memory_use_percent  #Выводит использование оперативной памяти в процентах
              name: Использование оперативной памяти
              severity:
                green: 0
                yellow: 55
                red: 85
          
            - type: gauge
              entity: sensor.disk_use_percent  #Выводит процент используемого места на диске
              name: Занято места
              severity:
                green: 0
                yellow: 50
                red: 85
          
    - type: vertical-stack  #Второй вертикальный блок. Сюда вписываем все карточки, которые будут отображаться во второй колонке
      cards:
          
        - type: sensor  #Тип карточки
          entity: sensor.processor_temperature  #Выводит температуру процессора
          graph: line  #Показывает график изменения температуры
          name: Температура процессора
          icon: mdi:thermometer-low

В итоге получился вот такой вот главный экран:

Настройка Home Assistant. Главный экран

Несколько комментариев:

  1. Возможные типы карточек можно посмотреть в официальной документации (в правой колонке щелкаете по названиям ниже Cards). Там есть скриншоты и гифки, показывающие как они выглядят, а также список возможных параметров (на английском) и примеры кода.
  2. Доступные иконки можно найти щелкнув в редакторе кода на шестеренку и выбрав Material Icons в выпадающем списке. Далее, на открывшемся сайте в поле Search вводим что нужно найти (на английском), выбираем понравившуюся иконку и копируем ее имя. Обратите внимание, что все иконки прописываются так: icon: mdi:имя_иконки. После двоеточия, перед именем иконки пробела нет. И не забываем про mdi: перед именем.
    Где найти иконки для Home Assistant
  3. Обратите внимание на вложенность и пробелы в примере выше. Например, карточки, относящиеся к type: vertical-stack идут с выносом пробелами. Ниже идет горизонтальная группировка – type: horizontal-stack. Она вынесена от вертикальной (т к относится к ней) и все карточки, которые относятся к горизонтальной вынесены относительно нее. Если не соблюсти правила вложенности, то Home Assistant выдаст ошибку.
  4. Обязательные атрибуты, которые необходимо прописать карточке или сущности в официальной документации помечены словом REQUIRED. Опциональные – optional.
  5. После редактирования конфигурации не забывайте нажимать на иконку «Сохранить», появляющуюся в правом верхнем углу:
    Сохранить изменения
    При редактировании интерфейса дополнительно выполнять проверку конфигурации и перезагружать сервер не нужно.

Ссылки на другие уроки по настройке Home Assistant.

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