Плагин MQTT



  • Подскажите как передать полученное значение с канала в сценарий который запускается при получении топика



  • @div115, добрый день
    При запуске сценария при получении топика функция start автоматически получает объект {topic, message} как входящий аргумент:

    script({
        start({topic, message}) {
            this.log('Topic '+topic+' message='+message);
        }
    


  • @intrapro
    Спасибо, - то что нужно, а я уже собирался делать виртуальные дубли устройств и их явно привязывать к каналу.



  • Добрый день!
    Настроил плагин на работу с Wiren Board 6. Все работает!
    IH стоит непосредственно на WirenBoard.
    После перезагрузки устройства IH работает корректно какое-то время, а затем перестает работать.
    Как локализовать проблему?



  • @laronov Пожалуйста, немного подробнее. Какую версию системы используете? Что значит перестает работать?



  • @IntraVM
    Использую IH4
    При нажатии на лампочку должен отключаться свет (после перезагрузки так и работает), но через некоторое время при нажатии на лампочку в интерфейсе она гаснет, а свет не отключается



  • Добрый день!, Скажите пожалуйста , какую формулу для извлечения записать .
    16.01 14:49:31 => {"Time":"2022-01-16T14:49:30","RfReceived":{"Data":"0x49C","Bits":12,"Protocol":8,"Pulse":426}}
    Нужно значение Data , а оно в 16ричном формате.
    JSON.parse(value).RfReceived. Data (вот это не понимает)



  • @thunder_d, добрый день. Вы все верно сделали, осталось перевести из 16-ричного в десятичный формат с помощью parseInt( строка, 16-система исчисления). Формула в итоге:

    parseInt(JSON.parse(value).RfReceived.Data, 16)



  • Получилось, спасибо за быстрый ответ.



  • Подключил к датчику, показывает значения нормально, теперь нужно как то включать и выключать исполнительное устройство. Ну это наверно не сюда.... в сценарии...?, спасибо еще раз.



  • Здравствуйте! Прошу помощи: какая формула входного значения должна быть?
    01:01:15 MQT: tele/sonoff_term/SENSOR = {"Time":"1970-01-01T01:01:15","DHT11-02":{"Temperature":21.3,"Humidity":64.0},"DHT11-04":{"Temperature":21.9,"Humidity":62.0},"TempUnit":"C"}

    Вот что получается с формулой: JSON.parse(value).DHT11-04.Temperature
    value: '{"Time":"1970-01-01T01:08:15","DHT11-02":{"Temperature":21.4,"Humidity":64.0},"DHT11-04":{"Temperature":21.9,"Humidity":62.0},"TempUnit":"C"}' } ]
    set { STEMP_2_2: { aval: NaN, err: 0 },



  • @konia74, добрый день.
    Ваша формула не работает из-за знака "-" в названии свойства
    Такой вариант должен работать:

    JSON.parse(value)["DHT11-04"].Temperature
    


  • @intrapro Спасибо! Заработало!



  • Подскажите формулу расчета входного значения, на окне стоит геркон топик приходит как on/off а надо как я понимаю 1/0.



  • @aleks-zonov value == "ON" ? 1 : 0



  • Пользователь @goodspeed1986 написал в Плагин MQTT:

    @aleks-zonov value == "ON" ? 1 : 0

    Спасибо!



  • Добрый день,
    подскажите пожалуйста, как считывать значение температурного датчика по его номеру?
    Устройство BBQ EMS-ESP E32 выдает только номер датчика и температуру.
    Что прописать в формуле для расчета входного значения?

    16.03 11:34:11.965 IH: get [ { id: '10',
    topic: 'ems-esp/dallassensor_data',
    value: '{"28-FFFA-9B64-1603":39.9}' } ]
    set { STEMP_0_6_1: { aval: { '28-FFFA-9B64-1603': 39.9 }, err: 0 } }



  • Пользователь @slasatavic написал в Плагин MQTT:

    Добрый день,
    подскажите пожалуйста, как считывать значение температурного датчика по его номеру?
    Устройство BBQ EMS-ESP E32 выдает только номер датчика и температуру.
    Что прописать в формуле для расчета входного значения?

    16.03 11:34:11.965 IH: get [ { id: '10',
    topic: 'ems-esp/dallassensor_data',
    value: '{"28-FFFA-9B64-1603":39.9}' } ]
    set { STEMP_0_6_1: { aval: { '28-FFFA-9B64-1603': 39.9 }, err: 0 } }

    Вопрос решился переименованием ID сенсора на интерфейсе устройства EMS-ESP в имя, например"temperature".
    16.03 22:36:31.441 mqttclient1: GET: ems-esp/dallassensor_data {"temperature":39.1}
    16.03 22:36:31.444 IH: get [ { id: '10',
    topic: 'ems-esp/dallassensor_data',
    value: '{"temperature":39.1}' } ]
    set { STEMP_0_6_1: { aval: 39.1, err: 0 } }



  • Здравствуйте! Прошу помощи: Записал формулу входного значения для канала с megad топик читается кнопка меняет состояние2023-10-15_21-17-04.jpg
    А вот сообщение для публикации не знаю как написать.
    2023-10-15_21-17-26.jpg


Log in to reply