Сегодня мы поговорим, о том, как в систему "Умного дома" на базе 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.