В связи с выходом крупного обновления 5.9.х, приглашаем вас принять участие в вебинаре 09.06.2022 в 15:00. Участвовать

Плагин MQTT



  • @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}}



  • Сделайте формулу расчета входного значения:

    (JSON.parse(value).POWER1 == 'ON') ? 1 :0



  • Хз.Реле ожило,но переключается не всегда с первого раза и с такими тормозами,что просто ужас.Консоль тасмоты-

    18:17:11 MQT: stat/sonoff/RESULT = {"POWER1":"OFF"}

    18:17:11 MQT: stat/sonoff/POWER1 = OFF

    18:17:19 MQT: tele/sonoff/STATE = {"Time":"2019-01-13T18:17:19","Uptime":"0T00:03:12","Vcc":2.822,"POWER1":"OFF","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}

    18:17:19 MQT: tele/sonoff/SENSOR = {"Time":"2019-01-13T18:17:19","AM2301":{"Temperature":26.8,"Humidity":26.6},"TempUnit":"C"}

    18:17:25 MQT: stat/sonoff/RESULT = {"POWER1":"ON"}

    18:17:25 MQT: stat/sonoff/POWER1 = ON

    18:17:29 MQT: tele/sonoff/STATE = {"Time":"2019-01-13T18:17:29","Uptime":"0T00:03:22","Vcc":2.826,"POWER1":"ON","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}

    18:17:29 MQT: tele/sonoff/SENSOR = {"Time":"2019-01-13T18:17:29","AM2301":{"Temperature":26.8,"Humidity":26.7},"TempUnit":"C"}

    18:17:40 MQT: tele/sonoff/STATE = {"Time":"2019-01-13T18:17:40","Uptime":"0T00:03:33","Vcc":2.822,"POWER1":"ON","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}

    18:17:40 MQT: tele/sonoff/SENSOR = {"Time":"2019-01-13T18:17:40","AM2301":{"Temperature":26.8,"Humidity":26.7},"TempUnit":"C"}

    18:17:46 MQT: stat/sonoff/RESULT = {"POWER1":"OFF"}

    18:17:46 MQT: stat/sonoff/POWER1 = OFF

    18:17:50 MQT: tele/sonoff/STATE = {"Time":"2019-01-13T18:17:50","Uptime":"0T00:03:43","Vcc":2.822,"POWER1":"OFF","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}

    18:17:50 MQT: tele/sonoff/SENSOR = {"Time":"2019-01-13T18:17:50","AM2301":{"Temperature":26.7,"Humidity":26.7},"TempUnit":"C"}

    18:18:04 MQT: stat/sonoff/RESULT = {"POWER1":"ON"}

    18:18:04 MQT: stat/sonoff/POWER1 = ON

    18:18:05 MQT: tele/sonoff/STATE = {"Time":"2019-01-13T18:18:05","Uptime":"0T00:03:58","Vcc":2.824,"POWER1":"ON","POWER2":"ON","Wifi":{"AP":1,"SSId":"DIR","BSSId":"90:94:E4:F3:C1:F4","Channel":1,"RSSI":100}}

    18:18:05 MQT: tele/sonoff/SENSOR = {"Time":"2019-01-13T18:18:05","AM2301":{"Temperature":26.7,"Humidity":26.9},"TempUnit":"C"}



  • Вообщем помучался я с этой тасмотой и забросил.Находил инфу,что тасмота не всегда корректно работает с mqtt.Но кучка esp не дает покоя.Может сделаете плагин под эту прошивку-https://ab-log.ru/forum/viewtopic.php?f=1&t=1130 :roll:



  • @art:

    Вообщем помучался я с этой тасмотой и забросил.Находил инфу,что тасмота не всегда корректно работает с mqtt.Но кучка esp не дает покоя.Может сделаете плагин под эту прошивку-https://ab-log.ru/forum/viewtopic.php?f=1&t=1130

    Судя по сообщениям на форуме этот проект уже не поддерживается. Делать плагин не имеет смысла.

    Да и девайса такого у нас нет.



  • Делайте как на мегад, у меня все работает.



  • Т.е. использовать плагин от Меги?



  • Да



  • Доброго времени суток.Не получается настроить mqtt на esp,с прошивкой espeasy r120. В отладчике mqtt клиента в IH пишет-

    packet send.cmd subscribe

    packet receive.cmd suback

    packet send.cmd pinqresp

    packet receive.cmd pinqresp

    Что это?

    И еще вопрос откуда берутся формулы расчета входного значения?
    S90507-203309.jpg
    S90507-203325(1).jpg
    S90507-203334.jpg
    S90507-203342.jpg
    S90507-203346.jpg



  • Еще
    S90507-203358.jpg
    S90507-203405.jpg



  • Вот так топики в интре
    Screenshot.png



  • @art:

    Доброго времени суток.Не получается настроить mqtt на esp,с прошивкой espeasy r120. В отладчике mqtt клиента в IH пишет-

    packet send.cmd subscribe

    packet receive.cmd suback

    packet send.cmd pinqresp

    packet receive.cmd pinqresp

    Что это?

    И еще вопрос откуда берутся формулы расчета входного значения?

    Добрый день.

    Сообщения в отладчике говорят, что брокер из IH доступен (пингуется), подписка выполнена

    Но по подписке видимо ничего не приходит. Нужно убедиться, что топик верный

    Для этого можно посмотреть, что присылает девайс на брокер.

    Если у Вас mosquitto, то можно сделать так:

    Остановить службу

    sudo service mosquitto stop
    
    

    И запустить mosquitto в консоли:

    mosquitto -v
    
    

    Вот что получаем например от реле shelly

    pi@ihserver:/opt $ mosquitto -v
    1557329387: mosquitto version 1.6.2 starting
    1557329387: Using default config.
    1557329387: Opening ipv4 listen socket on port 1883.
    1557329387: Opening ipv6 listen socket on port 1883.
    1557329387: New connection from 127.0.0.1 on port 1883.
    1557329387: New client connected from 127.0.0.1 as mqttjs_c5143dac (p2, c1, k60, u'login').   // это подключился плагин
    1557329387: Sending CONNACK to mqttjs_c5143dac (0, 0)
    1557329387: Received SUBSCRIBE from mqttjs_c5143dac . // Плагин подписался 
    1557329387: 	shellies/shelly1-12BAAE/relay/0 (QoS 0) . // Это топик
    1557329387: mqttjs_c5143dac 0 shellies/shelly1-12BAAE/relay/0
    1557329387: Sending SUBACK to mqttjs_c5143dac
    1557329394: New connection from 192.168.0.131 on port 1883\. //Это подключился девайс - shelly
    1557329394: New client connected from 192.168.0.131 as shelly1-12BAAE (p2, c1, k60).
    1557329394: Sending CONNACK to shelly1-12BAAE (0, 0)
    1557329394: Received PUBLISH from shelly1-12BAAE (d0, q0, r0, m0, 'shellies/shelly1-12BAAE/relay/0', ... (2 bytes)) 
            // Девайс публикует топик, на который мы подписались. значения здесь не видно, но размер 2 байта - то есть это просто значение  
    1557329424: Sending PUBLISH to mqttjs_c5143dac (d0, q0, r0, m0, 'shellies/shelly1-12BAAE/relay/0', ... (2 bytes)) .  
            // Брокер перенаправляет сообщение на плагин в IH 
    
    
    

    Кстати, почему вы ожидаете значение в JSON? Для начала уберите формулу JSON.parse в настройке канала


Log in to reply