Здравия всем! Разберемся с самым главным, как добавлять конечный устройства в Home Assistant, на примере подключения устройств из MQTT брокера.
Введение
Как я уже писал в статье Знакомство с интерфейсом Home Assistant, для подключения любых устройств нужно пройти в Настройки -> Устройства и службы.
Мы попадаем в раздел Интеграции
Разработчики Home Assistant, пытаются перевести добавление устройств в раздел Интеграции. Поэтому функционал этого раздела считается основным, для работы с устройствами.
Добавление MQTT брокера
Для примера возьмем MQTT брокер и добавим его в наш Home Assistant. Для этого нажмем кнопку + Добавить интеграцию
В строке поиска начнем набирать первые буквы MQTT
Откроется окно настройки подключения к брокеру MQTT. Вводим наши настройки, это ip адрес брокера, порт, логин и пароль. Мой брокер стоит локально и настроен очень давно, без авторизации. По этому у меня настройки такие:
После добавления брокера, Home Assistant сразу же подключится к нему и попытается найти устройства:
Такие прошивки, как IOTLink, Tasmota, ESPHome и другие делают топики, в которых Home Assistant самостоятельно находит оборудование, создает для них устройства и объекты
Ручное добавление MQTT устройств
А что делать, если наше устройство не определилось автоматом? Для этого воспользуемся конфигурацией устройств, через конфигурацию YAML.
Подготовка
Для работы с MQTT брокером есть шикарный инструмент MQTT Explorer. Воспользуемся им и проанализируем наше устройство. Есть у меня старый контроллер, который работает на самописной Arduino прошивке.
Топик /myhome/Henhouse2/Relay1 отвечает за статус реле. Значение топика 0 = OFF, значение 1 = ON. А команды контроллер ждет по другому топику /myhome/Henhouse2/Relays1.
Топик /myhome/Henhouse2/Key1 отвечает за датчик сухого контакта.
Топик /myhome/Henhouse2/DS1 отвечает за температурный датчик ds18b20
Для подключения MQTT устройств в конфигурационном файле нужно добавить секцию mqtt
mqtt:
Подключение переключателя switch
Давайте подключим наше реле. Для этого внесем в код следующие изменения:
mqtt:
switch:
- name: henhouse2_switch
state_topic: "/myhome/Henhouse2/Relay1"
command_topic: "/myhome/Henhouse2/Relays1"
payload_on: "1"
payload_off: "0"
По правилам YAML, если секция находится в другой секции, нужно сделать отступ. Как понятно из названий в state_topic прописываем топик состояния реле, а в command_topic прописываем топик для изменения состояния.
Тк для Home Assistant стандартным значениями являются ON/OFF, а контроллер работает с 0 и 1, то в настройках мы внесли секции payload_on и payload_off, которые меняют эти значения на заданные.
После перезагрузки конфигурации, в интерфейсе Home Assistant появится наше реле
Теперь им можно управлять из меню и в автоматизациях.
Подключение бинарного датчика
По аналогии с переключателем, подключим бинарный сенсор
mqtt:
binary_sensor:
- name: henhouse2_door
state_topic: "/myhome/Henhouse2/Key1"
device_class: door
payload_on: "1"
payload_off: "0"
Параметр device_class отвечает за класс объекта.
После перезагрузки конфигурации, в интерфейсе Home Assistant появится наш датчик открытия двери
Подключения датчик температуры
Давайте подключим датчик температуры
mqtt:
binary_sensor:
- name: henhouse2_temperature
state_topic: "/myhome/Henhouse2/DS1"
unit_of_measurement: "°C"
Настройка unit_of_measurement отвечает за единицу измерения сенсора.
После перезагрузки конфигурации, в интерфейсе Home Assistant появится наш сенсор температуры
Заключение
Чем хорош Home Assistant, так это тем, что для него есть большой набор интеграций, написанных разработчиками или сообществом, и практически любое умное устройство, тем или иным способом можно подключить к Home Assistant. MQTT брокер, по факту, стал стандартом для общения iot устройств между собой. Поэтому в статье я описал способ подключения устройств, через MQTT брокер.
Добавление других устройств происходит также по аналогии, через раздел Интеграции. Для некоторых устройств нет стандартных интеграций. Но нам поможет сообщество и дополнение HACS. Как его ставить я описывал в статье Установка HACS в Home Assistant. В HACS мы добавляем репозиторий из GitHub и вот Home Assistant может работать с дополнительными интеграциями.
Добрый вечер. Контактов не нашел. Вы оказываете услуги настройке
HOME ASSISTANT ?
Добрый вечер. У меня есть канал в телеге: https://t.me/hserv_su
Какие настройки вы имеете введу?
Здравствуйте! Что физически представляет собой брокер MQTT?
Здравствуйте!
Брокер MQTT это протокол обмена данных, физически это программа, к примеру mosquitto брокер
Подскажите, есть Устройство на ESp8266 которое шлёт температуру в HA по MQTT.
Если устройство выключено, то данные с него в HA всё равно остаются и просто не меняются. Как сделать так чтоб данные обнулялись, или проходила проверка в сети устройство или нет..
Здравствуйте, Артём! Очень похоже, что esp8266 шлет данные в MQTT с включенным retain: true, выключите этот параметр на esp8266 и все будет из коробки. Либо есть более сложный путь, нужно сделать шаблонный сенсор. И в нем, если проходит проверку доступности устройства, то копировать текущий датчик, если нет устанавливать статус Unavailable.
Спасибо, пока поменяю retain.. Вижу что у меня true стоит, прошью, «буду посмотреть», надеюсь что это поможет. Более сложны путь для меня пока «сложный» и не понятно как реализовать. Вам Спасибо!!!
PS — капчу у меня не грузит, чтоб отправить сообщение приходится включать VPN
Здравствуйте.
А если в «После перезагрузки конфигурации, в интерфейсе Home Assistant» не появилось реле в ? Через MQTT Explorer им можно пощёлкать.
Здравствуйте, какое устройство вы подключаете?
Приветствую!
Для меня оказалось не приятным сюрпризом, что ХА может подключиться ТОЛЬКО к одному брокеру (((
Или я что-то не правильно делаю?
Здравствуйте, нет вы делаете все правильно. ХА действительно может подключаться только к одному брокеру. Есть выход использовать MQTT Bridge
В смысле запустить еще один на самом ХА?
Или бридж и брокер — разные вещи и речь о каком-то мосте между брокером и клиентом?
нашел ))
изучаю, спасибо!
Смысл и реализация бриджа понятны, но не очень нравится на ровном месте в 2 раза увеличивать mqtt трафик ((
И совершенно не понятно ограничение в виде одного клиента в такой раздутой и навороченной системе как ХА. В НР — хоть десяток прицепи.