Настройка связи 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 +236 /etc/mosquitto/mosquitto.conf
  • Запустить сервис командой:
systemctl start mosquitto

Добавив туде следующие строки:

# listener port-number [ip address/host name/unix socket path]
listener 1883 0.0.0.0
allow_anonymous true

Для ОС 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

Если после старта сервис не запустится, то надо задать пароль пользователю пользователю, например umki / 12345

sudo mosquitto_passwd -c /etc/mosquitto/passwd umki

И перестартануть сервис:

sudo /etc/init.d/mosquitto restart

Проверка работы сервиса mosquitto

Убедится, что сервис стртанул и нормально работает можно командой:

systemctl status mosquitto.service

Кроме этого можно убедится в ОС, что топики с ST доходят до сервера с HA. Для этого нужно открыть два окна терминала, в них зайти на хост, куда установили 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" в первом окне.

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

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

  • Для этого нужно найти IP адрес нашего котроллера SmartTherm в локальной сти, который ему присвлоил роутер.
  • На телефоне в настройках WIFI сети находим точку доступа (AP) ST_ESP32
  • Заходим в нее браузером с ПК или прямо в телефоне, и в ней переходим в пункт меню сonfigure new AP и там выбираем наш роутер, например: laser203, вводим пароль, который нам должен быть известен заранее, в нашем примере: laser203, после этого определяем новый IP, например: 192.168.9.108
  • На ST переходжим в меню SETUP и там включаем режим MQTT - ставим чекбокс(галочку), после чего открываются дополнительные поля , в которых указваем IP адрес нашего HA, имя пользователя 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
Результат работы