Плагин MQTT



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



  • Это сообщение удалено!


  • Добрый день. почему плагин mqtt на intra Hause сам не стартует и только в ручную и постоянно отваливается, остальные нормально (snmp итд). Программа установлена на wirenboard. Два дня бъюсь но не какого опроса топиков нет и по моему быть не может.



    1. Есть статья по работе с WB6
    2. Что происходит, можно посмотреть в отладчике плагина

    Пользователь @dangers-77 написал в Плагин MQTT:

    Два дня бъюсь но не какого опроса топиков нет и по моему быть не может.

    Почему? На чем основан такой вывод? Поясните.



  • 20.03 09:08:53.369 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> (/var/lib/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.03 09:08:53.927 IH: Plugin exit with code 0
    20.03 09:08:53.931 IH: restart timer 1
    20.03 09:08:55.305 IH: Run /var/lib/intrahouse-c/plugins/mqttclient/mqttclient.js mqttclient1
    20.03 09:08:56.444 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> (/var/lib/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' }



  • Проблема в том что не установился npn пакет mgtt
    Причина может быть в ограничении доступа.
    Проверьте в терминале что там есть sudo.
    Если нет установите sudo командой:

    apt-get install sudo
    

    Еще можно попробовать установить из командной строки:

    cd /var/lib/intrahouse-c/plugins/mqttclient
    
    sudo /opt/intrahouse-c/node/bin/node /opt/intrahouse-c/node/bin/npm --scripts-prepend-node-path=auto install mqtt
    


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

    apt-get install sudo

    Спасибо большое все заработало.



  • Подскажите, что делаю не так, нету обратной связи когда нажимаю кнопку на сонофф то в IH не меняет значение. alt text alt textalt textalt text



  • Лучше разные топики, по умолчанию топик ответа stat/sonoff/POWER1, топики видны в консоли тасмоты



  • @Anatol ну да, sonoff отправляет такой топик
    alt text
    а куда вписать stat/sonoff/POWER1?



  • Канал (первый скрин) stat/sonoff/POWER, и в командах cmnd/sonoff/POWER, и для удобства измените on на 1, off на 0, StateText1 0 -текст публикуемый при выключении
    StateText2 1 -текст публикуемый при включении, в консоли выполните команды StateText1 0, затем StateText2 1



  • @Anatol огромное спасибо, все заработало, никак не мог догадаться что в консоле sonoff можно прописывать команды. так изменил состояния все заработало.



  • @Anatol Увидел такой момент брокер принимает по 2 сообщения с 0 и 1
    alt text
    так должно быть или надо что то подправить?



  • Всем привет !!! что-то застрял с zigbee2mqtt. Пока плагина нет, а датчики
    очень бы хотелось привязать. Кто бы помог с краткой инструкцией :).
    Имеем :
    4cd434bb-7398-43c2-85be-712bc5a84b5e-image.png

    Куда копать дальше?
    3af66ff2-1dc4-4caf-bfe1-4ca3bc50a6b1-image.png
    Да и здесь не понято...
    39120990-66a5-4981-b845-98aed53aabb5-image.png .
    Как привязать датчик. Я понимаю что есть плагин Xiaomi, но очень
    не хочется использовать оригинальный хаб.



  • @ra2fgomm Добрый вечер!
    Если движение - это "contact", то:

    • Обработка -> Формула расчета входного значения
    JSON.parse(value).contact ? 1 : 0 
    
    • Канал -> Cоставной канал - убрать галку

    Значение с канала должно получиться 1/0



  • Да получилось... в таком виде . JSON.parse(value).contact ? 0 : 1 ,
    Огромное спасибо......


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