Home Assistant: различия между версиями
Sikmir (обсуждение | вклад) (Add -v /run/dbus:/run/dbus:ro) |
|||
(не показано 35 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{Draft}} | |||
{{DISPLAYTITLE: Установка Home Assistant на контроллер Wiren Board }} | {{DISPLAYTITLE: Установка Home Assistant на контроллер Wiren Board }} | ||
== Описание == | == Описание == | ||
Home Assistant — это open-source платформа для автоматизации, которую разрабатывает и поддерживает сообщество [https://www.home-assistant.io/ home-assistant.io]. Существует одноимённый мобильный клиент, который может управлять контроллером по локальной сети или через облако производителя. | Home Assistant — это open-source платформа для автоматизации, которую разрабатывает и поддерживает сообщество [https://www.home-assistant.io/ home-assistant.io]. Существует одноимённый мобильный клиент, который может управлять контроллером по локальной сети или через облако производителя. | ||
Строка 11: | Строка 11: | ||
{{Wbincludes:Installing Software In Console}} | {{Wbincludes:Installing Software In Console}} | ||
Мы будем использовать рекомендуемый разработчиком платформы метод '''Home Assistant Container''' | Мы будем использовать рекомендуемый разработчиком платформы метод '''Home Assistant Container''': | ||
# Установите docker по [[docker | инструкции]]. | # Установите docker по [[docker | инструкции]]. | ||
# Создайте каталог под служебные файлы: | # Создайте каталог под служебные файлы и сделайте на него симлинк: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
mkdir /mnt/data/ | mkdir /mnt/data/root/HA && ln -s /mnt/data/root/HA /HA | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Запустите образ homeassistant — docker автоматически загрузит его из интернет и запустит: | # Запустите образ homeassistant — docker автоматически загрузит его из интернет и запустит: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v / | docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /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 Консоль можно закрыть. | После установки и запуска, откройте браузер и введите [[How_to_find_IP_address | адрес своего контроллера]] в сети и порт 8123. Например: http://192.168.42.1:8123 Консоль можно закрыть. | ||
== Настройка устройств Wiren Board == | |||
Home Assistant может управлять Modbus-устройствами с помощью [[MQTT]], для этого нужно установить MQTT-интеграцию и настроить получение и отправку данных. | Home Assistant может управлять Modbus-устройствами с помощью [[MQTT]], для этого нужно установить MQTT-интеграцию и настроить получение и отправку данных. | ||
Строка 43: | Строка 33: | ||
# Нажмите внизу на кнопку ''Add Integration'''. | # Нажмите внизу на кнопку ''Add Integration'''. | ||
# Введите в поле поиска '''MQTT''' и выберите найденную интеграцию. | # Введите в поле поиска '''MQTT''' и выберите найденную интеграцию. | ||
# Через несколько секунд откроется окно настройки, в котором заполните поля ''' | # Через несколько секунд откроется окно настройки, в котором заполните поля '''Brocker''' — localhost и '''Port''' — 1883. В стандартной конфигурации контроллера логин и пароль не используется, эти поля оставьте пустыми. Нажмите кнопку '''Submit'''. | ||
<gallery mode="packed" heights="150px" caption="Установка MQTT-интеграции"> | <gallery mode="packed" heights="150px" caption="Установка MQTT-интеграции"> | ||
Строка 53: | Строка 43: | ||
Image: 6.HA MQTT Integration.png | Установленная интеграция | Image: 6.HA MQTT Integration.png | Установленная интеграция | ||
</gallery> | </gallery> | ||
Настройка интеграции завершена, теперь надо для каждого устройства создать описание в файле '''configuration.yaml''', для этого откройте файл с помощью редактора: | Настройка интеграции завершена, теперь надо для каждого устройства создать описание в файле '''configuration.yaml''', для этого откройте файл с помощью редактора: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mcedit /mnt/data/root/HA/configuration.yaml | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 64: | Строка 52: | ||
После редактирования сохраните файл и перезапустите Home Assistant, для этого перейдите в его веб-интерфейсе '''Configuration''' → '''Settings''' и нажмите кнопку '''Restart'''. После нажатия на кнопку файл конфигурации будет проверен и, если он содержит ошибки, вы получите сообщение с подробностями. Чаще всего ошибки связаны с неверными отступами строк, которые имеют значение. | После редактирования сохраните файл и перезапустите Home Assistant, для этого перейдите в его веб-интерфейсе '''Configuration''' → '''Settings''' и нажмите кнопку '''Restart'''. После нажатия на кнопку файл конфигурации будет проверен и, если он содержит ошибки, вы получите сообщение с подробностями. Чаще всего ошибки связаны с неверными отступами строк, которые имеют значение. | ||
Так как место на контроллере | Так как место на контроллере ограничено, то рекомендуем ограничить количество сохраняемых в архиве. Добавьте для этого в файл настроек строки, где 14 — глубина архива в днях: | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
recorder: | recorder: | ||
Строка 70: | Строка 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ниже мы покажем примеры настройки некоторых устройств, полный синтаксис и все поддерживаемые типы устройств вы найдёте в описании [https://www.home-assistant.io/docs/mqtt/discovery/ MQTT Doscovery]. Адреса MQTT-топиков, которые будут нужны для настройки вы сможете найти в [[Wiren Board Web Interface | стандартном веб-интерфейсе контроллера]] в разделе '''Settings''' → '''MQTT Channels'''. | |||
Выведем данные с датчика температуры процессора: | Выведем данные с датчика температуры процессора: | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
sensor: | |||
- platform: mqtt | |||
name: "CPU Temperature" | |||
unique_id: wb_cpu_temperature | |||
state_topic: "/devices/hwmon/controls/CPU Temperature" | |||
unit_of_measurement: "°C" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Настроим управление выходами '''A1''' и '''A2''', этот пример можно использовать для управления модулями реле: | Настроим управление выходами '''A1''' и '''A2''', этот пример можно использовать для управления модулями реле: | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
switch: | |||
- platform: mqtt | |||
name: "WB A1" | |||
unique_id: wb_A1 | |||
command_topic: "/devices/wb-gpio/controls/A1_OUT/on" | |||
state_topic: "/devices/wb-gpio/controls/A1_OUT" | |||
payload_on: "1" | |||
payload_off: "0" | |||
retain: true | |||
- platform: mqtt | |||
name: "WB A2" | |||
unique_id: wb_A2 | |||
command_topic: "/devices/wb-gpio/controls/A2_OUT/on" | |||
state_topic: "/devices/wb-gpio/controls/A2_OUT" | |||
payload_on: "1" | |||
payload_off: "0" | |||
retain: true | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Настроим управление зуммером контроллера, этот пример можно использовать при подключении диммера светодиодных ламп: | Настроим управление зуммером контроллера, этот пример можно использовать при подключении диммера светодиодных ламп: | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
light: | |||
- platform: mqtt | |||
name: "Buzzer" | |||
unique_id: wb_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> | </syntaxhighlight> | ||
== Полезные ссылки == | == Полезные ссылки == | ||
* [https://www.home-assistant.io/installation/linux#install-home-assistant-container Оригинальная инструкция по установке Home Assistant] | * [https://www.home-assistant.io/installation/linux#install-home-assistant-container Оригинальная инструкция по установке Home Assistant] | ||
* [ | * [[docker | Установка Docker на контроллер Wiren Board]] | ||
* [https://github.com/wirenboard/conventions/blob/main/README.md Wiren Board MQTT Conventions] | * [https://github.com/wirenboard/conventions/blob/main/README.md Wiren Board MQTT Conventions] | ||
Версия 16:52, 15 апреля 2022
Это черновик страницы. Последняя правка сделана 15.04.2022 пользователем A.Degtyarev.
Описание
Home Assistant — это open-source платформа для автоматизации, которую разрабатывает и поддерживает сообщество home-assistant.io. Существует одноимённый мобильный клиент, который может управлять контроллером по локальной сети или через облако производителя.
Платформу можно установить на контроллер Wiren Board и использовать вместо стандартного веб-интерфейса для управления подключёнными устройствами.
Установка
Чтобы не потерять установленный софт и его данные, обновляйте ПО контроллера только через менеджер пакетов apt. Подробнее читайте в статье Программное обеспечение Wiren Board.
Встроенный флеш-накопитель контроллера разбит на разделы и для пользователя отведён самый большой из них, который монтируется в папку /mnt/data
. Нужно учесть эту особенность при установке программ, а также при обновлении прошивки контроллера.
Копируйте команды из инструкции, вставляйте их в консоль контроллера с помощью клавиш Shift+Insert и запускайте клавишей Enter. В случае ошибок, внимательно читайте вывод, там будут инструкции и подсказки.
Мы будем использовать рекомендуемый разработчиком платформы метод Home Assistant Container:
- Установите docker по инструкции.
- Создайте каталог под служебные файлы и сделайте на него симлинк:
mkdir /mnt/data/root/HA && ln -s /mnt/data/root/HA /HA
- Запустите образ homeassistant — docker автоматически загрузит его из интернет и запустит:
docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=Europe/Moscow -v /HA:/config --network=host ghcr.io/home-assistant/home-assistant:stable
После установки и запуска, откройте браузер и введите адрес своего контроллера в сети и порт 8123. Например: http://192.168.42.1:8123 Консоль можно закрыть.
Настройка устройств Wiren Board
Home Assistant может управлять Modbus-устройствами с помощью MQTT, для этого нужно установить MQTT-интеграцию и настроить получение и отправку данных.
Установите MQTT-интеграцию:
- Перейдите в веб-интерфейс Home Assistant.
- В панели слева кликните на пункт Configuration.
- На открывшейся странице найдите пункт Devices & Services и зайдите в него.
- Нажмите внизу на кнопку Add Integration'.
- Введите в поле поиска MQTT и выберите найденную интеграцию.
- Через несколько секунд откроется окно настройки, в котором заполните поля Brocker — localhost и Port — 1883. В стандартной конфигурации контроллера логин и пароль не используется, эти поля оставьте пустыми. Нажмите кнопку Submit.
- Установка MQTT-интеграции
Настройка интеграции завершена, теперь надо для каждого устройства создать описание в файле configuration.yaml, для этого откройте файл с помощью редактора:
mcedit /mnt/data/root/HA/configuration.yaml
В процессе настройки вы будете добавлять в файл секции и описывать в них параметры, например, для описания реле нужно использовать секцию switch.
После редактирования сохраните файл и перезапустите Home Assistant, для этого перейдите в его веб-интерфейсе Configuration → Settings и нажмите кнопку Restart. После нажатия на кнопку файл конфигурации будет проверен и, если он содержит ошибки, вы получите сообщение с подробностями. Чаще всего ошибки связаны с неверными отступами строк, которые имеют значение.
Так как место на контроллере ограничено, то рекомендуем ограничить количество сохраняемых в архиве. Добавьте для этого в файл настроек строки, где 14 — глубина архива в днях:
recorder:
purge_keep_days: 14
Ниже мы покажем примеры настройки некоторых устройств, полный синтаксис и все поддерживаемые типы устройств вы найдёте в описании MQTT Doscovery. Адреса MQTT-топиков, которые будут нужны для настройки вы сможете найти в стандартном веб-интерфейсе контроллера в разделе Settings → MQTT Channels.
Выведем данные с датчика температуры процессора:
sensor:
- platform: mqtt
name: "CPU Temperature"
unique_id: wb_cpu_temperature
state_topic: "/devices/hwmon/controls/CPU Temperature"
unit_of_measurement: "°C"
Настроим управление выходами A1 и A2, этот пример можно использовать для управления модулями реле:
switch:
- platform: mqtt
name: "WB A1"
unique_id: wb_A1
command_topic: "/devices/wb-gpio/controls/A1_OUT/on"
state_topic: "/devices/wb-gpio/controls/A1_OUT"
payload_on: "1"
payload_off: "0"
retain: true
- platform: mqtt
name: "WB A2"
unique_id: wb_A2
command_topic: "/devices/wb-gpio/controls/A2_OUT/on"
state_topic: "/devices/wb-gpio/controls/A2_OUT"
payload_on: "1"
payload_off: "0"
retain: true
Настроим управление зуммером контроллера, этот пример можно использовать при подключении диммера светодиодных ламп:
light:
- platform: mqtt
name: "Buzzer"
unique_id: wb_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