Настройка связи SmartTherm с HomeAssistant через Mosquitto

Материал из УМКИwiki
Перейти к навигации Перейти к поиску

Шаги по связи Smart Therm с Home Assistant через MQTT брокер Mosquitto

(Тезисная инструкция для домохозяев) Предварительно надо выполнить некоторые шаги для подготовки связи контроллера SmartTherm с приложением Home Assistant:

  • Установить Home Assistant на ПК или сервер, зайти на этот сервер по ssh, запомнив тем самым IP адрес его подсети на WIFI роутере.
  • В Home Assistant (HA) создать пользователя с паролем для доступа в дальнейшем к MQTT, например это будет umki/1234
  • Подать питание на контроллер SmartTherm (ST). Из телефона зайти на него по wifi - как на точку доступа Access Point (AP). Выбрать туже подсеть в которой находится HA, прописать пароль для wifi сети
  • Убедится что HA и ST находятся в одной подсети роутера и ping проходит на них обоих. И на оба этих устройства получается зайти WEB брацзером.

Установить MQTT брокер Mosquitto

Для ОС AltLinux

  • В операционой системе, на хосте там где работает НА, установить пакет с MQTT сервером и клентом, для этого выполнить команду:
# apt-get install mosquitto
  • Поскольку по умолчанию пакет работает только с локальным хостом, то для взаимодействия с разными другими хостами необходимо подправить строку 236 в файле конфиграции. Для этого запускаем редактор vi
# vi +236 /etc/mosquitto/mosquitto.conf
  • Добавить туда следующие строки:
# listener port-number [ip address/host name/unix socket path]
listener 1883 0.0.0.0
allow_anonymous true
  • Запустить сервис командой:
# systemctl start mosquitto

Для ОС Raspberypi

Установить москиту командами:

sudo apt-get update
sudo apt-get upgrade
sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo apt-get install mosquitto
sudo apt-get install mosquitto mosquitto-clients
sudo /etc/init.d/mosquitto stop
sudo vi /etc/mosquitto/mosquitto.conf

Подправить строку конфигурационноо файла, вставив в файл текст:

allow_anonymous true
password_file /etc/mosquitto/passwd
listener 1883
persistence true
persistence_file mosquitto.db
persistence_location /var/lib/mosquitto/
protocol mqtt
pid_file /var/run/mosquitto/mosquitto.pid
user mosquitto

Сохранить файл конфигурации и перестартавать сервис командой:

$ sudo /etc/init.d/mosquitto start

Создание пользователя и пароля для входа в Mosquito

Задать пароль пользователя например umki / 12345 можно командой ( пароль будет задан в диалоге):

$ mosquitto_passwd -c /etc/mosquitto/passwd umki

После создания пользователя надо перестартануть сервис:

# /etc/init.d/mosquitto restart

Проверка работы сервиса mosquitto с локальным брокером

Например вы настраиваете работу MQTT брокера в вашей локальной сети, и запускаете этот сервис на IP 192.168.9.133 Тогда вам нужно убедится, что сервис стртанул и нормально работает командой:

# systemctl status mosquitto.service

После этого можно убедится в ОС, что топики с ST доходят до сервера с HA. Для этого нужно открыть два окна терминала, в них зайти на хост с IP 192.168.9.133, куда установили mosquitto и отправить примерно вот такую команду в первом окне, это мы подписываемся на топик

$ mosquitto_sub -h 192.168.9.133 -t "test/topic" -u umki -P "12345"

Во втором окне вы можете запустить вот такую команду, в которой мы публикуем сообщение в нужный нам топик:

$ mosquitto_pub -h 192.168.9.133 -t "test/topic" -m "Ququ message23" -u "umki" -P "12345"

Если MQTT брокер Mosquitto работает нормально, то после ввода второй команды вы увидите сообщение "Ququ message23" в первом окне.

Проверка работы сервиса mosquitto с глобальным брокером в инете

Если вы хотите получать данные о состоянии своего оборудования вне вашей локальной сети, и у вас нет своего хостинга, то вам придется воспользоваться платным сервисом например https://www.wqtt.ru/ стоимость подписки на нем порядка 300 руб в год. Например вы подписались на него и получили пользователя u_37X390 и пароль "Qxqovt3x", Тогда после того как вы загрузите прошивку в ваш чип ESP8266, не забыв указать в ней свою точку доступа WIFI и пароль к ней вы можете посмотреть топик статуса своего устройства и нажать RESET на нем:

$ mosquitto_sub -h m6.wqtt.ru -p 17960 -t "demo/status" -u u_37X390 -P "Qxqovt3x"
online
offline
online

Есть хорошая статья описывающая эти все шаги по сборке и запуску приложения и настройке MQTT https://kotyara12.ru/iot/esp8266mqtt/comment-page-1/

Настройка контроллера SmartTherm

Теперь остается сделать последний шаг, настроить связь контроллера SmartTherm с MQTT брокером на сервере HomeAssistant.

  • Для этого нужно найти IP адрес нашего котроллера SmartTherm в локальной сти, который ему присвлоил роутер.
  • На телефоне в настройках WIFI сети находим точку доступа (AP) ST_ESP32
  • Заходим в нее браузером с ПК или прямо в телефоне, и в ней переходим в пункт меню сonfigure new AP и там выбираем наш роутер, например: laser203, вводим пароль, который нам должен быть известен заранее, в нашем примере: laser203, после этого определяем новый IP, например: 192.168.9.108
  • На ST переходжим в меню SETUP и там включаем режим MQTT - ставим чекбокс(галочку), после чего открываются дополнительные поля , в которых указываем в поле Сервер IP адрес нашего Home Assitant , например 192.168.9.134, имя пользователя mosquito / пароль , например как мы задали выше: umki/1234

На роутере нужно посмотреть какой IP адрес появился от нашего нового устройсва SmartTherm в общем списке доступных устройств.

  • После этого, в HA переходим в настройки и в Настройках Home Assistant нужно Добавить интеграцию MQTT , при этом, обратите внимание !!!! в поле Брокер - нужно указать IP адрес того сервера на котором мы установили MQTT, и пользователя с паролем. В нашем случае это будет IP нашего Home Assitant 192.168.9.134, порт оставить без изменений 1883, юзер и пароль - те которые мы завели umki и 12345

потом нажать кнопку RESET Если сделали все правильно, то у вас появится новое устройство, в нем куча новых объектов, и все это вы можете добавить себе на панель, с тем чтобы управлять ими всеми с телефона или из браузера.

Скриншоты:

Точка доступа SETUP MQTT Интеграция с MQTT Ожидаемый результат работы
Точка доступа
SETUP MQTT
Интеграция с MQTT
Результат работы