Плагин MQTT



  • Участник @gewer написал в Плагин MQTT:

    Был бы признателен за небольшой мануал по выводу значения температуры на главный экран.

    Создаете аналоговый датчик температуры и подключаете его к топику , в который передаете данные с ТН10, канал AI, ваш датчик температуры , и топик н.р /Sonoff TH10/datt/temperature . Топик создаете в прошивке ТН10. Обработка не нужна, этот датчик передает в градусах, округление можно настроить лучше в прошивке ТН10



  • @Anatol а где это в тасмоте делается?



  • Я в ESP Easy Mega, но и в тасмоте можно. Топик для реле вы ведь создали, точно также и для датчика.



  • Участник @Anatol написал в Плагин MQTT:

    Я в ESP Easy Mega, но и в тасмоте можно. Топик для реле вы ведь создали, точно также и для датчика.

    Примерно понял логику. Данные в логах вроде верные.
    Но вместо температуры получаю какую-то чушь:

    Аннотация 2019-11-15 004853.png



  • @Anatol в логах:

    Аннотация 2019-11-15 005114.png



  • @gewer данные приходят в JSON, поэтому на вкладке "Обработка" - Формула входного значения нужно прописать:

    JSON.parse(value).DS18B20.Temperature



  • @intrapro супер, всё получилось. Спасибо!



  • Очередной затык...
    Сделал кнопку с действием при нажатии toggle.
    Но она только включает выключенное реле, выключить уже не может и состояние кнопки не меняется.
    Подозреваю, что неправильно настроил канал...

    Помогите разобраться.

    1.png 2.png 3.png



  • @gewer отвечаю сам себе через минуту, посмотрев на скриншоты... Топик чувствителен к регистру))



  • Никак не получается запустить плагин MQTT v1.0.4 на Win10,Nodev12.13.0 NPM -v6.12. Cервер установлен на тойже машине где IH, другие клиенты (MQTT.fx, MQTT exlorer) подписываются и подключаются без проблем. В чем может загвоздка?
    20.11 07:42:07.158 IH: Run C:\ProgramData\intrahouse-c/plugins/mqttclient/mqttclient.js mqttclient1
    20.11 07:42:07.428 mqttclient1: ERR: uncaughtException { Error: Cannot find module 'mqtt'
    at Function.Module._resolveFilename (module.js:527:15)
    at Function.Module._load (module.js:476:23)
    at Module.require (module.js:568:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\ProgramData\intrahouse-c\plugins\mqttclient\lib\agent.js:6:14)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3) code: 'MODULE_NOT_FOUND' }
    20.11 07:42:07.935 IH: Plugin exit with code 0
    20.11 07:42:07.935 IH: restart timer 5



  • @ra2fgomm Не установился модуль mqtt, который устанавливается через npm.
    А какие-то другие модули у вас стоят?
    Проверьте, в папке C:\ProgramData\intrahouse-c\plugins\mqttclient должна быть папка node_modules/mqtt. Можно попробовать установить с консоли вручную



  • Стоит модуль voiceconrol.
    Папки node_modules/mqtt в указанной директории нет :(.
    Если можно краткую инструкцию -как установить с консоли и где можно найти её содержимое.



  • @ra2fgomm В командной строке попробуйте запустить

    cd C:\ProgramData\intrahouse-c\plugins\mqttclient
    npm install mqtt 
    


  • Запускал npm install mqtt дважды:
    c916fc2e-ba7d-4f0d-a955-2d0b5657716f-image.png
    1be7f688-a26b-4ac9-a903-8ad7efc3bdb4-image.png
    Папка появилась но plugin теперь совсем молчит, никаких ошибок не выдает.
    Побывал перезапускать plugin, IH, mqtt broker, результата нет.
    MQTT брокер работает, другие клиенты подключаются без проблем.



  • Ух разобрался запустил из командной строки еще и npm install mqtt-client
    И вот она удача !!!! Спасибо за помощь. Наилучшими пожеланиями!!!



  • @ra2fgomm Отлично что получилось!

    В принципе достаточно запускать просто npm init. npm берет файл package.json в текущей папке и устанавливает все зависимости
    Сервер IH пытается сделать то же самое прозрачно для пользователя. По какой-то причине у него не получилось это сделать, возможно, дело в правах доступа.
    В папке системы ("%LOCALAPPDATA%/intrahouse-c" для Windows) есть логи в папке log. Можно посмотреть, какие были сообщения при установке плагина, чтобы при установке других плагинов, имеющих зависимости, все прошло более гладко. Но можно ставить и вручную через npm init 🙂



  • Да видимо проблема из-за компанейского прокси (играюсь на работе в свободное время) хотя npm прописан для работы через proxy, но видимо не всегда это срабатывает. Пока разбираюсь с логами. Спасибо за помощь !!!!



  • Как можно избавится от повторного отправления в топик, при подстановке значения "value"?
    Невозможно нормально диммировать лампочку из икеи.
    10.01.2020 19:05:57
    {"state": "ON", "brightness": 254}
    10.01.2020 19:05:57(-0.01 seconds)
    {"state": "ON", "brightness": ${value}}
    10.01.2020 19:05:56(-1.2 seconds)
    {"state": "ON", "brightness": 198}
    10.01.2020 19:05:56(-0.01 seconds)
    {"state": "ON", "brightness": ${value}}



  • @trash
    Не совсем понятна ситуация. Покажите пожалуйста настройку канала (включая команды) и лог отладчика плагина в процессе диммирования



  • @intrapro
    LOG:
    10.01 22:28:39.378 IH: command [ { dn: 'DIMM1', prop: 'set', val: '99' } ]
    10.01 22:28:39.380 IH: send { type: 'act',
    data:
    [ { id: 1,
    chan: 1,
    desc: 'AO',
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: 252.45,
    startscene: '',
    nofb: true,
    act: 'set',
    message: '{"state": "ON", "brightness": ${value}}',
    calc_outfn: [Function: anonymous],
    command: 'set' } ] }
    10.01 22:28:39.390 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": ${value}}' } ]
    set { DIMM1: { aval: '{"state": "ON", "brightness": ${value}}', err: 0 } }
    10.01 22:28:39.394 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 252.45}' } ]
    set { DIMM1: { aval: 99, err: 0 } }
    10.01 22:28:39.399 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": ${value}}' } ]
    set { DIMM1: { aval: '{"state": "ON", "brightness": ${value}}', err: 0 } }
    10.01 22:28:39.455 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 252.45}' } ]
    set { DIMM1: { aval: 99, err: 0 } }
    10.01 22:28:46.789 IH: command [ { dn: 'DIMM1', prop: 'set', val: '100' } ]
    10.01 22:28:46.790 IH: send { type: 'act',
    data:
    [ { id: 1,
    chan: 1,
    desc: 'AO',
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: 254.99999999999997,
    startscene: '',
    nofb: true,
    act: 'set',
    message: '{"state": "ON", "brightness": ${value}}',
    calc_outfn: [Function: anonymous],
    command: 'set' } ] }
    10.01 22:28:46.799 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": ${value}}' } ]
    set { DIMM1: { aval: '{"state": "ON", "brightness": ${value}}', err: 0 } }
    10.01 22:28:46.803 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 254.99999999999997}' } ]
    set { DIMM1: { aval: 100, err: 0 } }
    10.01 22:28:46.818 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": ${value}}' } ]
    set { DIMM1: { aval: '{"state": "ON", "brightness": ${value}}', err: 0 } }
    10.01 22:28:46.823 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 254.99999999999997}' } ]
    set { DIMM1: { aval: 100, err: 0 } }
    10.01 22:28:49.299 IH: command [ { dn: 'DIMM1', prop: 'on', val: '100' } ]
    10.01 22:28:49.300 IH: send { type: 'act',
    data:
    [ { id: 1,
    chan: 1,
    desc: 'AO',
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '100',
    startscene: '',
    nofb: true,
    act: 'on',
    message: '{"state": "ON", "brightness": 255}',
    command: 'on' } ] }
    10.01 22:28:49.307 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 255}' } ]
    set { DIMM1: { aval: 100, err: 0 } }
    10.01 22:28:49.314 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 255}' } ]
    set { DIMM1: { aval: 100, err: 0 } }
    10.01 22:28:49.316 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 255}' } ]
    set { DIMM1: { aval: 100, err: 0 } }
    10.01 22:28:49.320 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "ON", "brightness": 255}' } ]
    set { DIMM1: { aval: 100, err: 0 } }
    10.01 22:28:50.230 IH: command [ { dn: 'DIMM1', prop: 'off' } ]
    10.01 22:28:50.231 IH: send { type: 'act',
    data:
    [ { id: 1,
    chan: 1,
    desc: 'AO',
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: 0,
    startscene: '',
    nofb: true,
    act: 'off',
    message: '{"state": "OFF"}',
    command: 'off' } ] }
    10.01 22:28:50.240 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "OFF"}' } ]
    set { DIMM1: { aval: NaN, err: 0 } }
    10.01 22:28:50.244 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "OFF"}' } ]
    set { DIMM1: { aval: NaN, err: 0 } }
    10.01 22:28:50.248 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "OFF"}' } ]
    set { DIMM1: { aval: NaN, err: 0 } }
    10.01 22:28:50.252 IH: get [ { id: 1,
    topic: 'zigbee2mqtt/lampROBOT/set',
    value: '{"state": "OFF"}' } ]
    set { DIMM1: { aval: NaN, err: 0 } }
    Снимок экрана 2020-01-10 в 22.27.16.png Снимок экрана 2020-01-10 в 22.26.56.png Снимок экрана 2020-01-10 в 22.26.31.png


Авторизуйтесь, чтобы ответить