Настройка связи SmartTherm с HomeAssistant через Mosquitto: различия между версиями
Woronin (обсуждение | вклад) Нет описания правки  | 
				Woronin (обсуждение | вклад)   | 
				||
| (не показано 13 промежуточных версий этого же участника) | |||
| Строка 7: | Строка 7: | ||
* Убедится что HA и ST находятся в одной подсети  роутера и ping проходит на них обоих. И на оба этих устройства получается зайти WEB брацзером.  | * Убедится что HA и ST находятся в одной подсети  роутера и ping проходит на них обоих. И на оба этих устройства получается зайти WEB брацзером.  | ||
== Установить MQTT   | == Установить MQTT брокер Mosquitto ==  | ||
=== Для ОС AltLinux ===  | === Для ОС AltLinux ===  | ||
* В операционой системе, на хосте там где работает НА, установить пакет с MQTT сервером и клентом, для этого  выполнить команду:  | * В операционой системе, на хосте там где работает НА, установить пакет с MQTT сервером и клентом, для этого  выполнить команду:  | ||
  # apt-get install mosquitto  |   # apt-get install mosquitto  | ||
* Поскольку по умолчанию пакет работает только с локальным хостом, то для взаимодействия с разными другими хостами необходимо подправить  строку 236 в файле конфиграции  | * Поскольку по умолчанию пакет работает только с локальным хостом, то для взаимодействия с разными другими хостами необходимо подправить  строку 236 в файле конфиграции. Для этого запускаем редактор vi  | ||
  # vi +236 /etc/mosquitto/mosquitto.conf  |   # vi +236 /etc/mosquitto/mosquitto.conf  | ||
* Добавить туда следующие строки:  | |||
  # listener port-number [ip address/host name/unix socket path]  |   # listener port-number [ip address/host name/unix socket path]  | ||
  listener 1883 0.0.0.0  |   listener 1883 0.0.0.0  | ||
  allow_anonymous true  |   allow_anonymous true  | ||
 pid_file /var/run/mosquitto.pid  | |||
 user mosquitto  | |||
* Запустить сервис командой:  | |||
 # systemctl start mosquitto  | |||
* Создать пользователя mosquitto командой, и в ней в диалоге задать пароль , например 12345:  | |||
 $ mosquitto_passwd -c /etc/mosquitto/passwd umki  | |||
=== Для ОС Raspberypi ===  | === Для ОС Raspberypi ===  | ||
| Строка 45: | Строка 53: | ||
Сохранить файл конфигурации и перестартавать сервис командой:  | Сохранить файл конфигурации и перестартавать сервис командой:  | ||
  sudo /etc/init.d/mosquitto start  |   $ sudo /etc/init.d/mosquitto start  | ||
==   | === Создание пользователя и пароля для входа в Mosquito ===  | ||
Задать пароль пользователя например umki / 12345  можно командой ( пароль будет задан в диалоге):  | |||
  $ mosquitto_passwd -c /etc/mosquitto/passwd umki  | |||
После создания пользователя надо  перестартануть сервис:  | |||
 # /etc/init.d/mosquitto restart  | |||
== Проверка работы  сервиса mosquitto с локальным брокером ==  | |||
  systemctl status mosquitto.service  | |||
Например вы настраиваете работу 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_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"  |   $ mosquitto_pub -h 192.168.9.133 -t "test/topic" -m "Ququ message23" -u "umki" -P "12345"  | ||
Если  MQTT брокер Mosquitto работает нормально, то после ввода второй команды   вы увидите сообщение "Ququ message23" в первом окне.  | Если  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 ==  | ||
Теперь остается сделать последний шаг, настроить связь  контроллера SmartTherm с MQTT брокером на сервере HomeAssistant.    | Теперь остается сделать последний шаг, настроить связь  контроллера SmartTherm с MQTT брокером на сервере HomeAssistant.    | ||
* Для этого нужно найти IP адрес нашего   | * Для этого нужно найти IP адрес нашего контроллера SmartTherm в локальной сети, который ему присвоил роутер.  | ||
* На телефоне в настройках WIFI сети находим  точку доступа (AP) ST_ESP32  | * На телефоне в настройках WIFI сети находим  точку доступа (AP) ST_ESP32  | ||
* Заходим в нее браузером с ПК или прямо в телефоне, и в  ней переходим в пункт меню '''сonfigure new AP''' и там выбираем наш роутер, например: laser203, вводим пароль, который нам должен быть известен заранее, в нашем примере: laser203, после этого определяем новый IP, например:  192.168.9.108  | * Заходим в нее браузером с ПК или прямо в телефоне, и в  ней переходим в пункт меню '''сonfigure new AP''' и там выбираем наш роутер, например: laser203, вводим пароль, который нам должен быть известен заранее, в нашем примере: laser203, после этого определяем новый IP, например:  192.168.9.108  | ||
* На ST переходжим в меню SETUP и там включаем режим MQTT - ставим чекбокс(галочку), после чего  открываются дополнительные поля , в которых   | * На ST переходжим в меню SETUP и там включаем режим MQTT - ставим чекбокс(галочку), после чего  открываются дополнительные поля , в которых указываем в поле '''Сервер''' IP адрес нашего Home Assitant , например ''192.168.9.134'', имя пользователя mosquito / пароль , например как мы задали выше: ''umki/1234''  | ||
На роутере  нужно посмотреть какой IP адрес появился от нашего нового   | На роутере  нужно посмотреть какой IP адрес появился от нашего нового устройства SmartTherm в общем списке доступных устройств.  | ||
* После этого, в HA переходим в настройки и в Настройках Home Assistant нужно  '''Добавить интеграцию MQTT''' , при этом, обратите внимание !!!!  в поле Брокер - нужно указать IP адрес того сервера на котором мы установили MQTT, и пользователя с паролем. В нашем случае это будет IP нашего Home Assitant ''192.168.9.134'', порт оставить без изменений ''1883'', юзер и пароль - те которые мы завели ''umki и 12345''  | * После этого, в HA переходим в настройки и в Настройках Home Assistant нужно  '''Добавить интеграцию MQTT''' , при этом, обратите внимание !!!!  в поле Брокер - нужно указать IP адрес того сервера на котором мы установили MQTT, и пользователя с паролем. В нашем случае это будет IP нашего Home Assitant ''192.168.9.134'', порт оставить без изменений ''1883'', юзер и пароль - те которые мы завели ''umki и 12345''  | ||
потом нажать кнопку RESET  | потом нажать кнопку RESET  | ||
| Строка 92: | Строка 114: | ||
[[Категория: Home Assistant]]  | [[Категория: Home Assistant]]  | ||
[[Категория:Linux]]  | |||
Текущая версия от 12:07, 27 января 2025
Шаги по связи 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 pid_file /var/run/mosquitto.pid user mosquitto
- Запустить сервис командой:
 
# systemctl start mosquitto
- Создать пользователя mosquitto командой, и в ней в диалоге задать пароль , например 12345:
 
$ mosquitto_passwd -c /etc/mosquitto/passwd umki
Для ОС 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 | Ожидаемый результат работы | 
|---|---|---|---|