И вот я плавно перешел к задумке, где не посредством скриптов будут управлять своим реле Sonoff TH10
, а через протокол MQTT (Message Queue Telemetry Transport). Этот протокол используется поверх TCP/IP и имеет порт 1883 (а для шифрования передаваемых данных 8883/SSL). Еще раз напомню, что принцип обмена сообщения между устройствами — это издатель-подписчик. Т.е. мини чат для железа.
На заметку: система Domoticz работает только с двумя топиками domoticz/in & domoticz/out. Хотя я этого еще не проверял на практическом примере, но пока думаю, что это так.
Шаг №1:
Установка Domoticz выполнена опираясь на заметку:
Шаг №2:
Русификация Domoticz выполнена опираясь на заметку:
Шаг №3:
Активации авторизации в Domoticz выполнена опираясь на заметку:
Шаг №4:
Что если потеряли логин или пароль или все вместе на доступ к Domoticz:
Шаг №5:
Поднимаю сервис MQTT на системе где у меня стоит Domoticz:
Шаг №6:
Перепрошиваю реле Sonoff TH10 на прошивку Tasmota:
Шаг №7:
Подключаю к реле Sonoff TH10 нагрузку в виде патрона с лампочкой:
Шаг №8:
Завожу в Domoticz
оборудование на связь с MQTT
который установлен на этой же системе где сейчас Domoticz
:
http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Настройка - Оборудование
Включено: Активировано
Имя: TH10
Тип: MQTT Client Gateway with LAN interface
Задержка данных: Отключен
Удаленный адрес: localhost
Порт: 1883
Имя: domoticz
Пароль: Aa1234567
Prevent Loop: True
Publish Topic: out
CA Filename: ничего не указываю
TLV Version: оставляю по дефолту tlsv1
и нажимаю «Добавить»
где Remote Address равняется localhost, т.к. серверная часть MQTT установлена на системе где установлен Domoticz
после того как создали запоминаем IDX:
На заметку: запоминаем IDX, хотя он не важен по заметке, лишний шаг
Шаг №9:
Создаю устройство Dummy
и тип Температура
и тип Переключатель
:
http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Настройка - Оборудование -
Включено: Активировано
Имя: TH10Dummy
Тип: Dummy (Does nothing, use for virtual switches only)
Задержка данных: Отключен
и нажимаю «Добавить»
затем на основе добавленного шаблона TH10Dummry создаю виртуальные датчики для снятия температуры и управления нагрузкой в виде лампочки:
Для датчика температуры:
Имя: TH10 Температура
Тип датчика: Температура
и нажимаю «ОК»
Для управления нагрузкой в виде лампочки:
Имя: TH10 Lamp
Тип датчика: Переключатель
и нажимаю «ОК»
Шаг №10:
Нужно запомнить idx у созданного объекта переключатель и температура
http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Переключатели - нахожу TH10 Lamp и нажимаю "Редактировать" у него
Idx: 7
http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Температура - нахожу TH10 Температура и нажимаю "Редактировать" у него
Idx: 6
Шаг №11:
Открываю Web-интерфейс Tasmota Sonoff TH10
и настраиваю связь MQTT с сервисом MQTT на системе Domoticz
http://IP&DNS (http://172.33.33.103) - Configuration - Configure MQTT -
Host: 172.33.33.122
Port: 1883
Client: DVES_%06X (оставляю дефолтным)
User: domoticz
Password: Aa1234567
Topic = in
Full Topic = domoticz/in
и нажимаю Save
Устройство Sonoff TH10 после сохранения внесения изменений будет перезагружено самостоятельно.
Шаг №12:
Настраиваю сопряжение TH10 + Domoticz
http://IP&DNS (http://172.33.33.103) — Configuration — Configure Domoticz —
Idx 1: указываю ID датчика TH10 Lamp, т.е. 7
Sensor idx 1 Temp: указываю ID датчика TH10 Температура, т.е. 6
После чего нажимаю Save, устройство Sonoff TH10 также будет перезагружено. Это нормальная операция после каждого изменения и сохранения.
Затем из меню «Переключатели» и «Температура» выношу датчики на меню «Панель» путем отметки левой кнопкой мыши на иконке «Звездочки»
Шаг №13:
Проверяю в меню «Панель» результат связи системы Domoticz и реле Sonoff TH10, что могу управлять нагрузкой, т.к. включать и выключать лампочку и видеть текущую температуру снимаемую с датчика DS18020:
http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Панель
Попробовав изменить положение «Выключен» на «Включен» и лампочка загорелась и также в обратную сторону лампочка выключилась.
Шаг №14:
Проверка, какая информация поступает в топик out от устройства Sonoff TH10 через MQTT, для этого открываю консоль командной строки, подключаюсь к топику и если в Web-интерфейсе Domoticz нажать включить и выключить лампочку приходит следующие сообщения. Но раз Domoticz работает с двумя топиками, то со временем здесь будет целая каша присылаемых сообщений.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
ekzorchik@srv-bionic:~$ mosquitto_sub -h 172.33.33.122 -u domoticz -P Aa1234567 -t "domoticz/out" { "Battery" : 255, "RSSI" : 12, "description" : "", "dtype" : "Light/Switch", "hwid" : "7", "id" : "00014057", "idx" : 7, "name" : "TH10 Lamp", "nvalue" : 1, "stype" : "Switch", "svalue1" : "0", "switchType" : "On/Off", "unit" : 1 } { "Battery" : 255, "RSSI" : 12, "description" : "", "dtype" : "Light/Switch", "hwid" : "7", "id" : "00014057", "idx" : 7, "name" : "TH10 Lamp", "nvalue" : 0, "stype" : "Switch", "svalue1" : "0", "switchType" : "On/Off", "unit" : 1 } |
Чтобы подписаться на все топики:
1 |
ekzorchik@srv-bionic:~$ mosquitto_sub -h 172.33.33.122 -u domoticz -P Aa1234567 -t "#" |
Включить/выключить лампочку через консоль, но лампочка не загорается, меняется только статус в Domoticz, а из Web-интерфейса работает.
1 2 3 |
ekzorchik@srv-bionic:~$ mosquitto_pub -h 172.33.33.122 -u domoticz -P Aa1234567 -t "domoticz/in" -m '{"idx" : 7, "nvalue" : 1}' ekzorchik@srv-bionic:~$ mosquitto_pub -h 172.33.33.122 -u domoticz -P Aa1234567 -t "domoticz/in" -m '{"idx" : 7, "nvalue" : 0}' |
Работает.
Задача выполнена.
На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.