Сегодня мы поговорим, о том, как в систему "Умного дома"
на базе Domoticz
добавить протокол опроса устройств MQTT
на основе издатель <=> подписчик. Это очень удобно, я покажу на многих примерах как производится настройка в последующих заметках.
Сейчас же, как произвести установку MQTT
на системе где установлен Domoticz
.
Шаг №1:
Установка Domoticz
выполнена опираясь на заметку:
Шаг №2:
Русификация Domoticz
выполнена опираясь на заметку:
Шаг №3:
Активации авторизации в Domoticz
выполнена опираясь на заметку:
Шаг №4:
Что если потеряли логин или пароль или все вместе на доступ к Domoticz
:
Шаг №5:
Устанавливаю брокер Mosquitto
на систему где установлен Domoticz
:
ekzorchik@srv-dbionic:~$ sudo apt-get install -y mosquitto mosquitto-clients
Шаг №6:
Активирую доступ к подпискам с помощью связки логина и пароля:
ekzorchik@srv-bionic:~$ sudo mosquitto_passwd -c /etc/mosquitto/passwd domoticz Password: Aa1234567 Reenter password: Aa1234567 ekzorchik@srv-bionic:~$
содержимое сформированного файла с логином и зашифрованным паролем:
ekzorchik@srv-bionic:~$ cat /etc/mosquitto/passwd domoticz:$6$nyXfjpGgOGFTucXQ$rU9Fwzmvy3RcpDFBsiTpaUwt9K94aFmd29wTRkj9QNRtl5Qgqd4QM9/dJuGeYSJerxw5QRp+LC5niY8A8HJtnQ== ekzorchik@srv-bionic:~$
Шаг №7:
Запретим анонимные подключения и укажем, что использовать файл с логином и паролем:
ekzorchik@srv-dbionic:~$ sudo nano /etc/mosquitto/mosquitto.conf pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d password_file /etc/mosquitto/passwd listener 1883 0.0.0.0 persistence_file mosquitto.db log_dest syslog log_dest stdout log_dest topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true allow_anonymous false
Шаг №8:
Для применения изменения в mosquitto.conf
перезагружаю сервис Mosquitto
:
ekzorchik@srv-bionic:~$ sudo systemctl restart mosquitto.service && sudo systemctl status mosquitto.service | head -n5 ● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker Loaded: loaded (/etc/init.d/mosquitto; generated) Active: active (exited) since Sun 2021-01-03 16:08:57 MSK; 13ms ago Docs: man:systemd-sysv-generator(8) Process: 1191 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS) ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo netstat -tulpn | grep :1883 tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN 1432/mosquitto ekzorchik@srv-bionic:~$
Шаг №9:
Чтобы проверить, что все настроено правильно. Откроем параллельно два окна терминала:
Терминал 1: Ожидает прием сообщений в топик test:
ekzorchik@srv-bionic:~$ mosquitto_sub -t test -u domoticz -P Aa1234567 -h 127.0.0.1 -p 1883
Терминал 2: Отправляет сообщение в топик test
ekzorchik@srv-bionic:~$ mosquitto_pub -d -t test -m “Test Message” -h 127.0.0.1 -p 1883 -u domoticz -P Aa1234567
Client mosqpub|1444-srv-bionic sending CONNECT
Client mosqpub|1444-srv-bionic received CONNACK
Client mosqpub|1444-srv-bionic sending PUBLISH (d0, q0, r0, m1, ‘test’, … (12 bytes))
Client mosqpub|1444-srv-bionic sending DISCONNECT
ekzorchik@srv-bionic:~$
После чего в “Терминал 1” в топик test приходит отправленное сообщение с текстом “Test Message”
ekzorchik@srv-bionic:~$ mosquitto_sub -t test -u domoticz -P Aa1234567 -h 127.0.0.1 -p 1883
Test Message
и дальше ждет поступления новых и последующих.
После чего делаю вывод что работа MQTT
настроена на системе где настроен Domoticz
. В последующих заметках я применю проделанные действия выше. А пока на этом всё, с уважением автор блога Олло Александр aka ekzorchik.