Плагин MQTT
-
Всем доброго времени суток! Пока речь идет об управлении дискретными устройствами через MQTT командами on/off/toggle все отлично. Но я пытаюсь получить уровень сигнала сети из строки, которую публикует датчик:
{"Time":"2018-12-13T21:02:02","Uptime":"1T03:05:25","Vcc":3.016,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"POWER1":"0","POWER2":"1","Wifi":{"AP":1,"SSId":"bel","BSSId":"18:D6:C7:4B:E6:90","Channel":6,"RSSI":96}}
Как из этой строки получить значение RSSI, присвоить аналоговому устройству и отобразить на экране? Желательно в графическом а не цифровом виде?
В модуле "HTTP plugin" есть возможность парсинга JSON ответов, но тут датчик работает через MQTT через внешний брокер. Подскажите!
Добрый день!
Нужно создать канал Analog Input и привязать к аналоговому датчику.
На вкладке Обработка - Формула расчета входного значения: JSON.parse(value).Wifi.RSSI
Чтобы отобразить в графическом виде, можно для аналогового датчика создать набор состояний
https://ih-systems.com/ru/devices/ Раздел "Состояния устройств"
Там задаются интервалы значений, для каждого состояния можно привязать иконку и задать цвет
-
Помогите настроить!Есть плата node mcu v3,к ней подключен датчик температуры и влажности АМ2301 и пару реле.Прошивка Tasmota.На веб странице вижу показания датчика.Как настроить топики чтоб вывести показания в интру?Ниже скриншоты настройки.
-
Вот так настроена интра
-
Брокер установлен на малине.Ссылка на тасмоту-https://github.com/arendst/Sonoff-Tasmota/wiki/MQTT-Overview
-
Каналы для датчиков нужно настроить так:
Канал: T1 (любой)
Topic: tele/sonoff/SENSOR
Тип канала: AI
Устройство: STEMP1
Вкладка Обработка:
Формула расчета входного значения: JSON.parse(value).AM2301.Temperature
Канал: H1 (любой)
Topic: tele/sonoff/SENSOR
Тип канала: AI
Устройство: HUMIDITY1
Вкладка Обработка:
Формула расчета входного значения: JSON.parse(value).AM2301.Humidity
Для реле нужны команды управления.
После настройки каналов перезапустите плагин
Попробуйте, должно работать. Посмотрите в отладчике плагина.
-
Спасибо!Заработало.Показывает температуру и влажность.Чуть попозже попробую добавить реле.
-
Опять за помощью.Исходные данные те же.Пробую включить реле
-
Что нужно заполнить на следующем скриншоте?
-
@art:
Опять за помощью.Исходные данные те же.Пробую включить реле
Добрый день
Topic: tele/sonoff/STATE
Тип канала: DO
Устройство: SOCKET1
Вкладка Обработка:
Формула расчета входного значения: JSON.parse(value).POWER1
-
Не работает.Плагин перезапускал.Заметил,когда розетку отвязываю от плагина,то она при вкл/откл меняет цвет(как и должно) а при привязке к плагину не меняет.
Офтоп.Грамматическая ошибка в интре.Сценарии–-+---новый сценарийT.
-
Отладчик-
13.01 10:59:40.580 IH: command [ { dn: 'SOCKET1', prop: 'on' } ]
13.01 10:59:40.581 IH: send { type: 'act',
data:
[ { chan: '2',
act: 'on',
topic: 'cmnd/sonoff/POWER1 ',
message: '',
id: '2',
command: 'on',
value: 1 } ] }
-
@art:
Не работает.Плагин перезапускал.Заметил,когда розетку отвязываю от плагина,то она при вкл/откл меняет цвет(как и должно) а при привязке к плагину не меняет.
Отладчик-
13.01 10:59:40.580 IH: command [ { dn: 'SOCKET1', prop: 'on' } ]
13.01 10:59:40.581 IH: send { type: 'act',
data:
[ { chan: '2',
act: 'on',
topic: 'cmnd/sonoff/POWER1 ',
message: '',
id: '2',
command: 'on',
value: 1 } ] }
Здесь две операции - получение состояния и управление
Для управления нужно дописать после топика сообщение:
Топик: cmnd/sonoff/POWER1
Сообщение: on
Тогда будет отправлена команда cmnd/sonoff/POWER1 on
Сейчас сообщение пустое.
Для проверки получения состояния попробуйте переключить розетку не через интерфейс и наблюдать в интерфейсе
@art:
Офтоп.Грамматическая ошибка в интре.Сценарии–-+---новый сценарийT.
Да, спасибо, поправим в следующей версии
-
На странице тасмота в консоле команды cmnd/sonoff/POWER1 on и cmnd/sonoff/POWER1 off отрабатываются,реле вкл и откл.Изменил розетку на актуатор универсальный бинарный,не изменяется состояние вкл/откл.
Отладчик
13.01 13:02:29.575 IH: command [ { dn: 'ACTOR1', prop: 'off' } ]
13.01 13:02:29.576 IH: send { type: 'act',
data:
[ { chan: '2',
act: 'off',
topic: 'cmnd/sonoff/POWER1 off',
message: '',
id: '2',
command: 'off',
value: 0 } ] }
Получается что опять сообщение пустое?
-
@art:
На странице тасмота в консоле команды cmnd/sonoff/POWER1 on и cmnd/sonoff/POWER1 off отрабатываются,реле вкл и откл.Изменил розетку на актуатор универсальный бинарный,не изменяется состояние вкл/откл.
Отладчик
13.01 13:02:29.575 IH: command [ { dn: 'ACTOR1', prop: 'off' } ]
13.01 13:02:29.576 IH: send { type: 'act',
data:
[ { chan: '2',
act: 'off',
topic: 'cmnd/sonoff/POWER1 off',
message: '',
id: '2',
command: 'off',
value: 0 } ] }
Получается что опять сообщение пустое?
Вы off не в топик допишите, а в Сообщение, ниже топика.
По состоянию - если в тасмота переключать, на интерфейсе изменяется?
-
Насчет off/on в сообщениях топика виноват,не доглядел,че то думал что в командах уже указано.Если в веб странице тасмота переключать то в интерфейсе не меняется.
-
@art:
Насчет off/on в сообщениях топика виноват,не доглядел,че то думал что в командах уже указано.Если в веб странице тасмота переключать то в интерфейсе не меняется.
Покажите отладчик, когда приходят сообщения о переключении
-
13.01 14:42:37.126 IH: set {"STEMP1":{"aval":30.4,"err":0},"SHUMIDITY1":{"aval":22.5,"err":0}}
13.01 14:42:38.136 IH: command [ { dn: 'SOCKET1', prop: 'on' } ]
13.01 14:42:38.137 IH: send { type: 'act',
data:
[ { chan: '2',
act: 'on',
topic: 'cmnd/sonoff/POWER1',
message: 'on',
id: '2',
command: 'on',
value: 1 } ] }
-
При включении розетки с интры в веб морду тасмоты прилетает топик-stat/sonoff/POWER1.А должен-cmnd/sonoff/POWER1 on или off.Че то вообще запарился..
-
@art:
13.01 14:42:37.126 IH: set {"STEMP1":{"aval":30.4,"err":0},"SHUMIDITY1":{"aval":22.5,"err":0}}
13.01 14:42:38.136 IH: command [ { dn: 'SOCKET1', prop: 'on' } ]
13.01 14:42:38.137 IH: send { type: 'act',
data:
[ { chan: '2',
act: 'on',
topic: 'cmnd/sonoff/POWER1',
message: 'on',
id: '2',
command: 'on',
value: 1 } ] }
Установите пожалуйста уровень отладочных сообщений для плагина - высокий.
Перезапустите плагин
Переключите реле в тасмота, в отладчике должно появиться принятое сообщение от имени mqttclinet: c топиком tele/sonoff/STATE
И дальше прием этого сообщения сервером
-
13.01 18:18:45.166 mqttclient1: Packet receive. cmd: publish
13.01 18:18:45.167 mqttclient1: GET: tele/sonoff/STATE {"Time":"2019-01-13T17:18:44","Uptime":"0T03:38:26","Vcc":2.823,"POWER1":"ON","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}
13.01 18:18:45.167 IH: get [{"id":"2","topic":"tele/sonoff/STATE","value":"{"Time":"2019-01-13T17:18:44","Uptime":"0T03:38:26","Vcc":2.823,"POWER1":"ON","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}"}]
13.01 18:18:45.168 IH: set {"SOCKET1":{"dval":"ON","err":0}}
13.01 18:18:45.220 mqttclient1: Packet receive. cmd: publish
13.01 18:18:45.221 mqttclient1: GET: tele/sonoff/SENSOR {"Time":"2019-01-13T17:18:44","AM2301":{"Temperature":36.9,"Humidity":17.7},"TempUnit":"C"}
13.01 18:18:45.221 IH: get [{"id":"1","topic":"tele/sonoff/SENSOR","value":"{"Time":"2019-01-13T17:18:44","AM2301":{"Temperature":36.9,"Humidity":17.7},"TempUnit":"C"}"},{"id":"H1","topic":"tele/sonoff/SENSOR","value":"{"Time":"2019-01-13T17:18:44","AM2301":{"Temperature":36.9,"Humidity":17.7},"TempUnit":"C"}"}]
13.01 18:18:45.222 IH: set {"STEMP1":{"aval":36.9,"err":0},"SHUMIDITY1":{"aval":17.7,"err":0}}
13.01 18:18:55.166 mqttclient1: Packet receive. cmd: publish
13.01 18:18:55.167 mqttclient1: GET: tele/sonoff/STATE {"Time":"2019-01-13T17:18:54","Uptime":"0T03:38:36","Vcc":2.822,"POWER1":"ON","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}
13.01 18:18:55.168 IH: get [{"id":"2","topic":"tele/sonoff/STATE","value":"{"Time":"2019-01-13T17:18:54","Uptime":"0T03:38:36","Vcc":2.822,"POWER1":"ON","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}"}]
13.01 18:18:55.168 IH: set {"SOCKET1":{"dval":"ON","err":0}}
13.01 18:18:55.218 mqttclient1: Packet receive. cmd: publish
13.01 18:18:55.219 mqttclient1: GET: tele/sonoff/SENSOR {"Time":"2019-01-13T17:18:54","AM2301":{"Temperature":37.0,"Humidity":17.8},"TempUnit":"C"}
13.01 18:18:55.219 IH: get [{"id":"1","topic":"tele/sonoff/SENSOR","value":"{"Time":"2019-01-13T17:18:54","AM2301":{"Temperature":37.0,"Humidity":17.8},"TempUnit":"C"}"},{"id":"H1","topic":"tele/sonoff/SENSOR","value":"{"Time":"2019-01-13T17:18:54","AM2301":{"Temperature":37.0,"Humidity":17.8},"TempUnit":"C"}"}]
13.01 18:18:55.220 IH: set {"STEMP1":{"aval":37,"err":0},"SHUMIDITY1":{"aval":17.8,"err":0}}
13.01 18:19:04.986 mqttclient1: Packet send. cmd:pingreq
13.01 18:19:04.987 mqttclient1: Packet receive. cmd: pingresp
13.01 18:19:05.167 mqttclient1: Packet receive. cmd: publish
13.01 18:19:05.167 mqttclient1: GET: tele/sonoff/STATE {"Time":"2019-01-13T17:19:04","Uptime":"0T03:38:46","Vcc":2.827,"POWER1":"OFF","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}
13.01 18:19:05.168 IH: get [{"id":"2","topic":"tele/sonoff/STATE","value":"{"Time":"2019-01-13T17:19:04","Uptime":"0T03:38:46","Vcc":2.827,"POWER1":"OFF","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}"}]
13.01 18:19:05.168 IH: set {"SOCKET1":{"dval":"OFF","err":0}}
13.01 18:19:05.172 mqttclient1: Packet receive. cmd: publish
13.01 18:19:05.173 mqttclient1: GET: tele/sonoff/SENSOR {"Time":"2019-01-13T17:19:04","AM2301":{"Temperature":36.9,"Humidity":18.1},"TempUnit":"C"}
13.01 18:19:05.174 IH: get [{"id":"1","topic":"tele/sonoff/SENSOR","value":"{"Time":"2019-01-13T17:19:04","AM2301":{"Temperature":36.9,"Humidity":18.1},"TempUnit":"C"}"},{"id":"H1","topic":"tele/sonoff/SENSOR","value":"{"Time":"2019-01-13T17:19:04","AM2301":{"Temperature":36.9,"Humidity":18.1},"TempUnit":"C"}"}]
13.01 18:19:05.174 IH: set {"STEMP1":{"aval":36.9,"err":0},"SHUMIDITY1":{"aval":18.1,"err":0}}