Home Assistant: различия между версиями
Sikmir (обсуждение | вклад) (Add -v /run/dbus:/run/dbus:ro) |
|||
(не показаны 52 промежуточные версии 8 участников) | |||
Строка 1: | Строка 1: | ||
{{ | {{DISPLAYTITLE: Установка Home Assistant на контроллер Wiren Board }} | ||
[[Image: HA Devices.png |300px|thumb|right| Устройства в Home Assiatant ]] | |||
== Описание == | == Описание == | ||
Home Assistant — это open-source платформа для автоматизации, которую разрабатывает и поддерживает сообщество [https://www.home-assistant.io/ home-assistant.io]. Существует одноимённый мобильный клиент, который может управлять контроллером по локальной сети или через облако производителя. | |||
Платформу можно установить на контроллер Wiren Board и использовать вместо [[Wiren_Board_Web_Interface | стандартного веб-интерфейса]] для управления подключёнными устройствами. | |||
== Установка == | == Установка == | ||
{{Wbincludes:Installing Software In Console Catalog And Update}} | |||
{{Wbincludes:Installing Software In Console}} | |||
Мы будем использовать рекомендуемый разработчиком платформы метод '''Home Assistant Container'''. В нём нет супервизора, поэтому установка аддонов (дополнений) из веб-интерфейса Home Assistant недоступна. | |||
В большинстве случаев в дополнение завёрнут сторонний софт: zigbee2mqtt, ESPHome, Node-RED и т.п., который вы можете поставить отдельно теми же контейнерами. Возможно, эта статья по переезду с супервизора в docker вам поможет: [https://ivan.bessarabov.ru/blog/docker-compose-instead-of-home-assistant-supervisor Использование docker-compose.yaml вместо супервизора Home Assistant]. | |||
Установка: | |||
<syntaxhighlight lang="bash"> | # Установите docker по [[docker | инструкции]]. | ||
mkdir /mnt/data/ | # Создайте каталог под служебные файлы: | ||
#:<syntaxhighlight lang="bash"> | |||
mkdir /mnt/data/.HA | |||
</syntaxhighlight> | |||
# Запустите образ homeassistant — docker автоматически загрузит его из интернет и запустит: | |||
#:<syntaxhighlight lang="bash"> | |||
docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /run/dbus:/run/dbus:ro -v /mnt/data/.HA:/config --network=host ghcr.io/home-assistant/home-assistant:stable | |||
</syntaxhighlight> | </syntaxhighlight> | ||
После установки и запуска, откройте браузер и введите [[How_to_find_IP_address | адрес своего контроллера]] в сети и порт 8123. Например: http://192.168.42.1:8123 Консоль можно закрыть. | |||
<gallery mode="packed" heights="150px" caption="Ресурсы, потребляемые Home Assistant"> | |||
Image: HA Free Space.png | После установки Home Assistant для пользовательских данных остаётся ещё 60 % пространства в разделе <code>/mnt/data</code> | |||
Image: HA top.png | Вывод утилиты <code>top</code> при запущенном Home Assistant | |||
</gallery> | |||
== Работа с устройствами Wiren Board == | |||
=== Установка MQTT-интеграции === | |||
Home Assistant может управлять Modbus-устройствами с помощью [[MQTT]], для этого нужно установить MQTT-интеграцию и настроить получение и отправку данных. | |||
Установите MQTT-интеграцию: | |||
# Перейдите в веб-интерфейс Home Assistant. | |||
# В панели слева кликните на пункт '''Configuration'''. | |||
# На открывшейся странице найдите пункт '''Devices & Services''' и зайдите в него. | |||
# Нажмите внизу на кнопку ''Add Integration'''. | |||
# Введите в поле поиска '''MQTT''' и выберите найденную интеграцию. | |||
# Через несколько секунд откроется окно настройки, в котором заполните поля '''Broker''' — localhost и '''Port''' — 1883. В стандартной конфигурации контроллера логин и пароль не используется, эти поля оставьте пустыми. Нажмите кнопку '''Submit'''. | |||
<gallery mode="packed" heights="150px" caption="Установка MQTT-интеграции"> | |||
Image: 1.HA MQTT Integration.png | Configuration | |||
Image: 2.HA MQTT Integration.png | Devices & Services | |||
Image: 3.HA MQTT Integration.png | Add Integration | |||
Image: 4.HA MQTT Integration.png | Поиск интеграции | |||
Image: 5.HA MQTT Integration.png | Настройка интеграции | |||
Image: 6.HA MQTT Integration.png | Установленная интеграция | |||
</gallery> | |||
=== Настройка связи с устройствами === | |||
Настройка интеграции завершена, теперь надо для каждого устройства создать описание в файле '''configuration.yaml''', для этого откройте файл с помощью редактора: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
nano /mnt/data/.HA/configuration.yaml | |||
</syntaxhighlight> | </syntaxhighlight> | ||
В процессе настройки вы будете добавлять в файл секции и описывать в них параметры, например, для описания реле нужно использовать секцию '''switch'''. | |||
После редактирования сохраните файл и перезапустите Home Assistant, для этого перейдите в его веб-интерфейсе '''Configuration''' → '''Settings''' и нажмите кнопку '''Restart'''. После нажатия на кнопку файл конфигурации будет проверен и, если он содержит ошибки, вы получите сообщение с подробностями. Чаще всего ошибки связаны с неверными отступами строк, которые имеют значение. | |||
<syntaxhighlight lang=" | Так как место на контроллере не очень много, то рекомендуем ограничить количество сохраняемых в архиве. Добавьте для этого в файл настроек строки, где 14 — глубина архива в днях: | ||
<syntaxhighlight lang="yaml"> | |||
recorder: | recorder: | ||
purge_keep_days: 14 | purge_keep_days: 14 | ||
</syntaxhighlight> | |||
Несколько моментов: | |||
* Полный синтаксис и поддерживаемые типы устройств смотрите в описании [https://www.home-assistant.io/docs/mqtt/discovery/ MQTT Discovery]. | |||
* Адреса MQTT-топиков смотрите в [[Wiren Board Web Interface | стандартном веб-интерфейсе контроллера]], раздел '''Settings''' → '''MQTT Channels'''. | |||
* В ''state_topic'' пишете адрес MQTT-топика, а в ''command_topic'' — тот же адрес, только в конец добавляете <code>/on</code>. | |||
Сенсоры создаются в группе <code>mqtt:</code>, объявленной в примере с датчиком температуры. Подробнее о формате читайте в [https://www.home-assistant.io/integrations/sensor.mqtt/#new_format документации Home Assistant]. | |||
Выведем данные с датчика температуры процессора: | |||
<syntaxhighlight lang="yaml"> | |||
mqtt: | mqtt: | ||
sensor: | |||
- unique_id: wb_cpu_temperature | |||
name: "CPU Temperature" | |||
state_topic: "/devices/hwmon/controls/CPU Temperature" | |||
unit_of_measurement: "°C" | |||
</syntaxhighlight> | |||
- | Настроим управление выходами '''A1''' и '''A2''', этот пример можно использовать для управления модулями реле: | ||
name: " | <syntaxhighlight lang="yaml"> | ||
#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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Настроим управление зуммером контроллера, этот пример можно использовать при подключении диммера светодиодных ламп: | |||
<syntaxhighlight lang="yaml"> | |||
#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 | |||
</syntaxhighlight> | |||
<gallery mode="packed" heights="150px" caption="Настройка Modbus-устройства Wiren Board"> | |||
Image: 0.HA MQTT Channels.png | MQTT-топики в веб-интерфейсе контроллера | |||
Image: 1.HA Config Editor.png | Редактирование файла конфигурации | |||
Image: 2.HA Restart .png | Кнопка перезагрузки Home Assistant | |||
Image: 3.HA Config Error.png | Пример сообщения об ошибке | |||
Image: 4.HA Devices.png | Устройства в веб-интерфейсе Home Assistant | |||
Image: 5.HA Devices Dimmer.png | Управление зуммером | |||
</gallery> | |||
== Полезные ссылки == | |||
* [https://www.home-assistant.io/installation/linux#install-home-assistant-container Оригинальная инструкция по установке Home Assistant] | |||
* [https://support.wirenboard.com/t/hass-configurator-file-editor-dlya-home-assistant-wb7 Установка HASS Configurator (File Editor) для Home Assistant на Wiren Board 7] | |||
* [https://support.wirenboard.com/t/wb-engine/13251 Добавление устройств в Home Assistant мышкой из веб-интерфейса через WB-Engine] | |||
* [https://github.com/4mr/wb-mqtt-homeassistant Автоматическое добавление serial-устройств в Home Assistant, решение от пользователя] | |||
* [https://ivan.bessarabov.ru/blog/docker-compose-instead-of-home-assistant-supervisor Использование docker-compose.yaml вместо супервизора Home Assistant] | |||
* [https://www.home-assistant.io/integrations/mqtt#mqtt-discovery Описание Home Assistant MQTT Discovery] | |||
* [https://github.com/wirenboard/conventions/blob/main/README.md Wiren Board MQTT Conventions] | |||
* [https://support.wirenboard.com/t/wb-mrgbw-d-i-homeassistant-cherez-mqtt/11566 Преобразование RGB формата для диммера WB-MRGBW-D или WB-LED] | |||
* [https://support.wirenboard.com/t/dimmer-i-home-assistant/10475/18 Диммер WB-MDM3 и Home Assistant] | |||
* [https://github.com/dext0r/yandex_smart_home Yandex Smart Home (Яндекс Алиса) для Home Assistant] | |||
* [https://support.wirenboard.com/t/instrukcziya-po-ustanovke-home-assistant-stable-c-podderzhkoj-bluetooth-portainer-file-editor-na-kontroller-wirenboard-7-v-docker-compose/19166 Инструкция по установке пользователей портала] |
Текущая версия на 15:11, 16 августа 2024
Описание
Home Assistant — это open-source платформа для автоматизации, которую разрабатывает и поддерживает сообщество home-assistant.io. Существует одноимённый мобильный клиент, который может управлять контроллером по локальной сети или через облако производителя.
Платформу можно установить на контроллер Wiren Board и использовать вместо стандартного веб-интерфейса для управления подключёнными устройствами.
Установка
Чтобы не потерять установленный софт и его данные, обновляйте ПО контроллера только через менеджер пакетов apt. Подробнее читайте в статье Программное обеспечение Wiren Board.
Встроенный флеш-накопитель контроллера разбит на разделы и для пользователя отведён самый большой из них, который монтируется в папку /mnt/data
. Нужно учесть эту особенность при установке программ, а также при обновлении прошивки контроллера.
Копируйте команды из инструкции, вставляйте их в консоль контроллера с помощью клавиш Shift+Insert и запускайте клавишей Enter. В случае ошибок, внимательно читайте вывод, там будут инструкции и подсказки.
Мы будем использовать рекомендуемый разработчиком платформы метод Home Assistant Container. В нём нет супервизора, поэтому установка аддонов (дополнений) из веб-интерфейса Home Assistant недоступна.
В большинстве случаев в дополнение завёрнут сторонний софт: zigbee2mqtt, ESPHome, Node-RED и т.п., который вы можете поставить отдельно теми же контейнерами. Возможно, эта статья по переезду с супервизора в docker вам поможет: Использование docker-compose.yaml вместо супервизора Home Assistant.
Установка:
- Установите docker по инструкции.
- Создайте каталог под служебные файлы:
mkdir /mnt/data/.HA
- Запустите образ homeassistant — docker автоматически загрузит его из интернет и запустит:
docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /run/dbus:/run/dbus:ro -v /mnt/data/.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-интеграцию:
- Перейдите в веб-интерфейс Home Assistant.
- В панели слева кликните на пункт Configuration.
- На открывшейся странице найдите пункт Devices & Services и зайдите в него.
- Нажмите внизу на кнопку Add Integration'.
- Введите в поле поиска MQTT и выберите найденную интеграцию.
- Через несколько секунд откроется окно настройки, в котором заполните поля Broker — localhost и Port — 1883. В стандартной конфигурации контроллера логин и пароль не используется, эти поля оставьте пустыми. Нажмите кнопку Submit.
Настройка связи с устройствами
Настройка интеграции завершена, теперь надо для каждого устройства создать описание в файле configuration.yaml, для этого откройте файл с помощью редактора:
nano /mnt/data/.HA/configuration.yaml
В процессе настройки вы будете добавлять в файл секции и описывать в них параметры, например, для описания реле нужно использовать секцию switch.
После редактирования сохраните файл и перезапустите Home Assistant, для этого перейдите в его веб-интерфейсе Configuration → Settings и нажмите кнопку Restart. После нажатия на кнопку файл конфигурации будет проверен и, если он содержит ошибки, вы получите сообщение с подробностями. Чаще всего ошибки связаны с неверными отступами строк, которые имеют значение.
Так как место на контроллере не очень много, то рекомендуем ограничить количество сохраняемых в архиве. Добавьте для этого в файл настроек строки, где 14 — глубина архива в днях:
recorder:
purge_keep_days: 14
Несколько моментов:
- Полный синтаксис и поддерживаемые типы устройств смотрите в описании MQTT Discovery.
- Адреса MQTT-топиков смотрите в стандартном веб-интерфейсе контроллера, раздел Settings → MQTT 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
Полезные ссылки
- Оригинальная инструкция по установке Home Assistant
- Установка HASS Configurator (File Editor) для Home Assistant на Wiren Board 7
- Добавление устройств в Home Assistant мышкой из веб-интерфейса через WB-Engine
- Автоматическое добавление serial-устройств в Home Assistant, решение от пользователя
- Использование docker-compose.yaml вместо супервизора Home Assistant
- Описание Home Assistant MQTT Discovery
- Wiren Board MQTT Conventions
- Преобразование RGB формата для диммера WB-MRGBW-D или WB-LED
- Диммер WB-MDM3 и Home Assistant
- Yandex Smart Home (Яндекс Алиса) для Home Assistant
- Инструкция по установке пользователей портала