Выключатель света не переключает значение



  • Добрый день!
    Только осваиваю intraHouse и, видимо что-то упускаю из вида.

    IH установлен на wiren Board
    Установил плагин MQTT и настроил канал (сообщения команд: true и false)
    Связал с устройством из стандартного проекта (действие при нажатии - toggle)
    При нажатии на светильник 1 раз передается значение, но затем оно не изменяется:
    В отладчике всегда одно и тоже пишется:

    04.03 07:58:56.719 IH: command [ { dn: 'LAMP_1_3', prop: 'on' } ]
    04.03 07:58:56.723 IH: send { type: 'act',
      data: 
       [ { id: 1,
           chan: 1,
           desc: 'DO',
           topic: '/devices/wb-gpio/controls/EXT3_ON4',
           value: 1,
           startscene: '',
           nofb: false,
           act: 'on',
           message: 'true',
           command: 'on' } ] }
    04.03 07:58:56.743 mqttclient1: PUBLISH: /devices/wb-gpio/controls/EXT3_ON4 true
    04.03 07:58:56.747 mqttclient1: GET: /devices/wb-gpio/controls/EXT3_ON4 true
    04.03 07:58:56.754 IH: get [ { id: 1,
        topic: '/devices/wb-gpio/controls/EXT3_ON4',
        value: 'true' } ]
    set { LAMP_1_3: { dval: 'true', err: 0 } }
    

    Подскажите где копать?



  • @laronov, добрый день!
    В dval устройства должно приходить 1/0
    Для канала на вкладке Обработка -> Формула расчета входного значения пропишите:

    value == 'true' ? 1 : 0
    


  • спасибо!



  • @intrapro, продвинулся на шаг вперед, но не до конца:(
    Входное значение поправил как вы посоветовали.
    Исходящие сообщения оставил true/false

    В режиме отладки вижу при двух нажатиях подряд:

    04.03 19:42:43.197 IH: command [ { dn: 'LAMP_1_3', prop: 'on' } ]
    04.03 19:42:43.201 IH: send { type: 'act',
      data: 
       [ { id: 1,
           chan: 1,
           desc: 'DO',
           topic: '/devices/wb-gpio/controls/EXT3_ON4',
           value: 1,
           startscene: '',
           nofb: false,
           act: 'on',
           message: 'true',
           command: 'on' } ] }
    04.03 19:42:43.216 mqttclient1: PUBLISH: /devices/wb-gpio/controls/EXT3_ON4 true
    04.03 19:42:43.223 mqttclient1: GET: /devices/wb-gpio/controls/EXT3_ON4 true
    04.03 19:42:43.232 IH: get [ { id: 1,
        topic: '/devices/wb-gpio/controls/EXT3_ON4',
        value: 'true' } ]
    set { LAMP_1_3: { dval: 1, err: 0 } }
    04.03 19:42:44.693 IH: command [ { dn: 'LAMP_1_3', prop: 'off' } ]
    04.03 19:42:44.704 IH: send { type: 'act',
      data: 
       [ { id: 1,
           chan: 1,
           desc: 'DO',
           topic: '/devices/wb-gpio/controls/EXT3_ON4',
           value: 0,
           startscene: '',
           nofb: false,
           act: 'off',
           message: 'false',
           command: 'off' } ] }
    04.03 19:42:44.717 mqttclient1: PUBLISH: /devices/wb-gpio/controls/EXT3_ON4 false
    04.03 19:42:44.726 mqttclient1: GET: /devices/wb-gpio/controls/EXT3_ON4 false
    04.03 19:42:44.738 IH: get [ { id: 1,
        topic: '/devices/wb-gpio/controls/EXT3_ON4',
        value: 'false' } ]
    set { LAMP_1_3: { dval: 0, err: 0 } }
    

    как я вижу, в set не передается значение, соответственно, свет не выключается/включается

    Если для исходящих сообщений поставить 1/0, то в отладке выходит одно и тоже сообщение (вне зависимости от того сколько раз нажимать)

    04.03 19:49:47.812 IH: command [ { dn: 'LAMP_1_3', prop: 'on' } ]
    04.03 19:49:47.823 IH: send { type: 'act',
      data: 
       [ { id: 1,
           chan: 1,
           desc: 'DO',
           topic: '/devices/wb-gpio/controls/EXT3_ON4',
           value: 1,
           startscene: '',
           nofb: false,
           act: 'on',
           message: '1',
           command: 'on' } ] }
    04.03 19:49:47.846 mqttclient1: PUBLISH: /devices/wb-gpio/controls/EXT3_ON4 1
    04.03 19:49:47.852 mqttclient1: GET: /devices/wb-gpio/controls/EXT3_ON4 1
    04.03 19:49:47.861 IH: get [ { id: 1,
        topic: '/devices/wb-gpio/controls/EXT3_ON4',
        value: '1' } ]
    set { LAMP_1_3: { dval: 0, err: 0 } }
    

    если в формулу расчета выходного значения добавить

    value == 1 ? 'true' : 'false'
    

    ничего не меняется



  • @laronov Посмотрите вот эту статью intraHouse + Wirenboard
    Там есть пример работы с топиками



  • @intrahouse спасибо!
    Но дополнительной ясности статья не внесла 😞
    В статье нет даже про обработку расчета входного значения, про то что вы писали выше.
    У меня же, на сколько я понимаю сейчас проблемы с выходным значением.
    Если установить значения сообщений 1/0, то при нажатии на светильник в интерфейсе не происходит переключение (в режиме отладки выводится одно и тоже сообщение)



  • @laronov Покажите скриншоты настройки канала управления светильником



  • @intrahouse
    873d8f3a-0465-4752-a214-51fd713e3c62-image.png

    90fda703-ac96-4287-b210-c9cef097e021-image.png

    ea95f4c2-e5ff-4f47-9be7-9a5eb255272f-image.png



  • @laronov
    Канал:
    Топик для подписки на состояние вроде правильно, если именно так он прописан у WirenBoard

    Обработка:
    Я у себя не прописывал ничего. Ни для входных, ни для выходных значений.
    Никакой обработки не требуется. Во всяком случае на тех модулях Wirenboard, которые мы тестировали.

    Команды:
    Топики для команд прописаны не верно. Нужно /devices/wb-gpio/controls/EXT3_ON4/on
    Все остальное правильно.



  • @intrahouse спасибо за помощь.
    Получилось при таких настройках
    dad7e973-4959-4017-9153-3fcbf8deb63d-image.png

    219d4b9f-7b4e-40b1-85c9-b21f0ba4d255-image.png

    53530640-bb5a-426c-be8a-bf8727b6fd10-image.png

    Окончание адреса .../on указывать не потребовалось.
    Возможно, это связано с версией Wiren Board



  • Пользователь @laronov написал в Выключатель света не переключает значение:

    Окончание адреса .../on указывать не потребовалось.
    Возможно, это связано с версией Wiren Board

    Очень странно. Из документации Wirenboard:
    0bd049f0-76dd-43b2-8e78-82b58e3f2468-image.jpeg



  • @intrahouse а IH работает из командной строки локально? или все-таки через протокол MQTT как клиент?



  • @laronov
    intraHouse работает по протоколу MQTT
    Но в контексте вопроса это не принципиально. Синтаксис команд/топиков одинаковый.



  • @intrahouse мне вот кажется, что при вызове через командную строку, локально на Wiren Board, видимо, нужно указывать /on, а при вызове по протоколу MQTT нет



  • Пользователь @laronov написал в Выключатель света не переключает значение:

    /on

    Разобрался, решил для истории тут отписать:
    окончания топика /on писать нужно!


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