И вот я плавно перешел к задумке, где не посредством скриптов будут управлять своим реле 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 работает с двумя топиками, то со временем здесь будет целая каша присылаемых сообщений.
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 }
Чтобы подписаться на все топики:
ekzorchik@srv-bionic:~$ mosquitto_sub -h 172.33.33.122 -u domoticz -P Aa1234567 -t "#"
Включить/выключить лампочку через консоль, но лампочка не загорается, меняется только статус в Domoticz, а из Web-интерфейса работает.
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.