И вот я плавно перешел к задумке, где не посредством скриптов будут управлять своим реле 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

и нажимаю “Добавить”

Оборудование на связь с MQTT

где Remote Address равняется localhost, т.к. серверная часть MQTT установлена на системе где установлен Domoticz

после того как создали запоминаем IDX:

запоминаем IDX, хотя он не важен по заметке, лишний шаг

На заметку: запоминаем IDX, хотя он не важен по заметке, лишний шаг

Шаг №9: Создаю устройство Dummy и тип Температура и тип Переключатель:

http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Настройка - Оборудование -

  • Включено: Активировано
  • Имя: TH10Dummy
  • Тип: Dummy (Does nothing, use for virtual switches only)
  • Задержка данных: Отключен

и нажимаю “Добавить”

Создаю шаблон Dummy под виртуальные датчики

затем на основе добавленного шаблона 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 через MQTT к Domoticz

Устройство 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

Прописываю idx для "Переключателя" и для "Температура" в настройках реле Sonoff TH10

После чего нажимаю Save, устройство Sonoff TH10 также будет перезагружено. Это нормальная операция после каждого изменения и сохранения.

Затем из меню “Переключатели” и “Температура” выношу датчики на меню “Панель” путем отметки левой кнопкой мыши на иконке “Звездочки”

Шаг №13: Проверяю в меню “Панель” результат связи системы Domoticz и реле Sonoff TH10, что могу управлять нагрузкой, т.к. включать и выключать лампочку и видеть текущую температуру снимаемую с датчика DS18020:

http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Панель

Результат снимаемых показаний с Sonoff TH10 через MQTT и управлением им

Попробовав изменить положение “Выключен” на “Включен” и лампочка загорелась и также в обратную сторону лампочка выключилась.

Шаг №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.