Установка Home Assistant на контроллер Wiren Board

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Устройства в Home Assiatant

Описание

Home Assistant — это open-source платформа для автоматизации, которую разрабатывает и поддерживает сообщество home-assistant.io. Существует одноимённый мобильный клиент, который может управлять контроллером по локальной сети или через облако производителя.

Платформу можно установить на контроллер Wiren Board и использовать вместо стандартного веб-интерфейса для управления подключёнными устройствами.

Установка

Встроенный флеш-накопитель контроллера разбит на разделы и для пользователя отведён самый большой из них, который монтируется в папку /mnt/data. Нужно учесть эту особенность при установке программ, а также при обновлении прошивки контроллера, которое нужно делать только через менеджер пакетов apt.

Копируйте команды из инструкции, вставляйте их в консоль контроллера с помощью клавиш Shift+Insert и запускайте клавишей Enter. В случае ошибок, внимательно читайте вывод, там будут инструкции и подсказки.

Мы будем использовать рекомендуемый разработчиком платформы метод Home Assistant Container. В нём нет супервизора, поэтому установка аддонов (дополнений) из веб-интерфейса Home Assistant недоступна.

В большинстве случаев в дополнение завёрнут сторонний софт: zigbee2mqtt, ESPHome, Node-RED и т.п., который вы можете поставить отдельно теми же контейнерами. Возможно, эта статья по переезду с супервизора в docker вам поможет: Использование docker-compose.yaml вместо супервизора Home Assistant.

Установка:

  1. Установите docker по инструкции.
  2. Создайте каталог под служебные файлы:
    mkdir /mnt/data/root/.HA
    
  3. Запустите образ homeassistant — docker автоматически загрузит его из интернет и запустит:
    docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /mnt/data/root/.HA:/config --network=host ghcr.io/home-assistant/home-assistant:stable
    

После установки и запуска, откройте браузер и введите адрес своего контроллера в сети и порт 8123. Например: http://192.168.42.1:8123 Консоль можно закрыть.

Работа с устройствами Wiren Board

Установка MQTT-интеграции

Home Assistant может управлять Modbus-устройствами с помощью MQTT, для этого нужно установить MQTT-интеграцию и настроить получение и отправку данных.

Установите MQTT-интеграцию:

  1. Перейдите в веб-интерфейс Home Assistant.
  2. В панели слева кликните на пункт Configuration.
  3. На открывшейся странице найдите пункт Devices & Services и зайдите в него.
  4. Нажмите внизу на кнопку Add Integration'.
  5. Введите в поле поиска MQTT и выберите найденную интеграцию.
  6. Через несколько секунд откроется окно настройки, в котором заполните поля Brocker — localhost и Port — 1883. В стандартной конфигурации контроллера логин и пароль не используется, эти поля оставьте пустыми. Нажмите кнопку Submit.

Настройка связи с устройствами

Настройка интеграции завершена, теперь надо для каждого устройства создать описание в файле configuration.yaml, для этого откройте файл с помощью редактора:

nano /mnt/data/root/.HA/configuration.yaml

В процессе настройки вы будете добавлять в файл секции и описывать в них параметры, например, для описания реле нужно использовать секцию switch.

После редактирования сохраните файл и перезапустите Home Assistant, для этого перейдите в его веб-интерфейсе ConfigurationSettings и нажмите кнопку Restart. После нажатия на кнопку файл конфигурации будет проверен и, если он содержит ошибки, вы получите сообщение с подробностями. Чаще всего ошибки связаны с неверными отступами строк, которые имеют значение.

Так как место на контроллере не очень много, то рекомендуем ограничить количество сохраняемых в архиве. Добавьте для этого в файл настроек строки, где 14 — глубина архива в днях:

recorder:
  purge_keep_days: 14

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

  • Полный синтаксис и поддерживаемые типы устройств смотрите в описании MQTT Discovery.
  • Адреса MQTT-топиков смотрите в стандартном веб-интерфейсе контроллера, раздел SettingsMQTT Channels.
  • В state_topic пишете адрес MQTT-топика, а в command_topic — тот же адрес, только в конец добавляете /on.

Сенсоры создаются в группе mqtt:, объявленной в примере с датчиком температуры. Подробнее о формате читайте в документации Home Assistant.

Выведем данные с датчика температуры процессора:

mqtt:
  sensor:
    - unique_id: wb_cpu_temperature
      name: "CPU Temperature"
      state_topic: "/devices/hwmon/controls/CPU Temperature"
      unit_of_measurement: "°C"


Настроим управление выходами A1 и A2, этот пример можно использовать для управления модулями реле:

#mqtt:
  switch:
    - unique_id: wb_a1_switch
      name: "WB A1 Switch"
      state_topic: "/devices/wb-gpio/controls/A1_OUT"
      command_topic: "/devices/wb-gpio/controls/A1_OUT/on"
      payload_on: "1"
      payload_off: "0"
      retain: true
    - unique_id: wb_a2_switch
      name: "WB A2 Switch"
      state_topic: "/devices/wb-gpio/controls/A2_OUT"
      command_topic: "/devices/wb-gpio/controls/A2_OUT/on"
      payload_on: "1"
      payload_off: "0"
      retain: true

Настроим управление зуммером контроллера, этот пример можно использовать при подключении диммера светодиодных ламп:

#mqtt:
  light:
    - unique_id: wb_buzzer
      name: "Buzzer"    
      state_topic: "/devices/buzzer/controls/enabled"
      command_topic: "/devices/buzzer/controls/enabled/on"
      brightness_state_topic: '/devices/buzzer/controls/volume'
      brightness_command_topic: '/devices/buzzer/controls/volume/on'
      brightness_scale: 100
      payload_on: "1"
      payload_off: "0"
      retain: true

Полезные ссылки