EcoDim не проходит в WB команда dali GO TO SCENE 0

При первом нажатии выключателя вниз GO TO SCENE 0 проходит и свет выключается.
При втором нажатии вниз в Dali мониторе шлюза есть GO TO SCENE 0, а вот дальше никак не отлавливается: ни в топиках, и нигде в WB.
Шлюз ecoDIM
Прошу помочь

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

Что за выключателоь? Он физический (аппаратный) или логический (программный)?
Опишите пожалуйста подробнее…

Сухой контакт, за ним кнопка дали, которая шлёт команду в шину дали GO TO SCENE 0 при каждом нажатии клавиши сухого контакта вниз

Так… Тут довольно понятно.
А что на самом шлюзе должно меняться при этом сообщении? Значение в каком регистре?

идея такая, чтобы на ВБ отлавливаться двойное нажатие “выкл” (то есть подряд 2 команды GO TO SCENE 0 ), но на ВБ только 1-я команда проходит, а на 2-е нажатие “выкл” полный игнор. В MQTT Explorer тоже никакой реакции на 2-е нажатие нет.

Вот тут - непонятно. ЧТо значит “проходит”? что и в каком топике меняется? Подпишитесь на этот топик пожалуйста - покажите что в него публикуется.

ну например

ecodim_dali_gw2_2/Device 1 Brightness - если свет выкл, то приходит 0

то же самое с

ecodim_dali_gw2_2/Device 1 Status - если свет выкл, то приходит 0

отлавливаю в правилах ВБ вот так

trackMqtt(“/devices/ecodim_dali_gw2_2/controls/Device 1 Brightness”, function(message){
log(jsFileName + “: trackMqtt() ->” + topic + “: msg =”+ message.value);
});

trackMqtt(“/devices/ecodim_dali_gw2_2/controls/Device 1 Status”, function(message){
log(jsFileName + “: trackMqtt() ->” + topic + “: msg =”+ message.value);
});

соотв, при первом нажатии “выкл.” - в лог вываливается 0, при втором нажатии туда же ничего в логе нет

в MQTT Explorer то же самое

а в Dali Monitor стабильно проходят команды “GO TO SCENE 0” при каждом нажатии выкл.

Возьмем шаблон для этого устройства.
config-ecodim-dali-gw2.json
Регистр 3008.
По документации - отражает состояние (текущее) группы.

А что ожидается? Точнее - какое значение должно быть в регистре устройства, когда состояние не меняется?

Ожидается, что при повторном нажатии выкл опять в логе будет 0. Тогда можно реализовать счётчик нажатий на одну и ту же клавишу

Нет, до “лога” - надо понять что именно должно быть в регистрах устройства, в шлюзе.
То есть тот регистр, значение которого читается в “Device 1 Status” - отдает текущее состояние группы.


Этот регистр никак не меняется от того что в шине прошла какая-либо команда.
Он показывает статус устройства, вне зависимости от того чем он был изменен.
То есть - покажите пожалуйста где в документации описан регистр отображающий команды в шине.

я так понимаю в этой документации
там есть раздел: Индивидуальные команды DALI (A – индивидуальный адрес светильника от 0 до 63) (страница 20) - наверное там?

ааа, ну вы об этом и пишите…
ну а как понять в каком регистре смотреть? у производителя выяснять или можно как-то отловить?

Да, сам именно этой пользуюсь.

С помощью этих регистров можно работать с устройствами на шиине. Управлять ими. Но в документации я не вижу описания регистров, которые вернут команды отправленные в шину каким-то устройством.
Возможно - их нет.
Еще (возможно) они описаны тут:


Но, как пониммаю из описания - фиксируется просто факт команды. ЧЧТоха команда - не указывается.

Я не вижу в документации описания желаемого. Конечно, производитель более компетентен.

Странно, ведь физически команды проходят в шлюзе, иначе бы dali monitor не отображал бы эти команды. Dali monitor подключается к шлюзу

Монитор - это все что в шине. Тут вопрос в том что шлюз из шины выставляет в регистры. Если нет (а похоже что нет) регистров для этой цели - то и задча не решается.
То есть у шлюза функционал - управление устройствами, в том числе и опрос статусов устройств.
Оптимально - узнать именно у разработчиков. Возможно все же есть трансляция произвольных команд из шины в регистры - но не описана.

ответили, вот -

Вам нужно реализовать отдельный опрос через Modbus TCP регистра 57, как только в нем происходит увеличение счетчика - проверяете регистр 58, смотрите вызов какой сцены произошел (установлен флаг), делаете запись в регистр 57, это сбрасывает счетчик и флаги. Второе нажатие отслеживается также, поэтому нужно вести достаточно частый опрос

Если это висит в отдельном экземпляре ModbusTCP, то частый опрос не страшен, так как при работе с этими регистрами нет обращения к шине DALI.

теперь мне осталось научиться как в ВБ сделать опрос ModbusTCP, да ещё и в отдельно экземпляре

Обязательно TCP?
А каким интерфейсом сейчас подключен шлюз?

Это по сути неважно, так как для регистров можно задавать (настраивать) любой период опроса незвисимо. Главное чтобы в ширину шины помещались все опросы.

С точки зрения драйвера - RTU/TCP не имеют разницы.

Пример шаблона “отдельного экземпляра”:
config-DALI.json (725 байтов)
Документация по шаблонам: GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver

через TCP как я понимаю, в шлюзах патч-корды и свои локальные айпи

спасибо за пример шаблона и документацию! попробую сделать

я прошу прощения, впервые шаблоны подключаю.
config-DALI.json положил в /mnt/data/etc/wb-mqtt-serial.conf.d/templates

инструкции посмотрел, но непонятно, что нужно сделать, чтобы шаблон подцепился и какие признаки этого

в MQTT в “/rpc” не вижу ничего с dali_bus (ожидаю что должен появиться топик с таким вхождением)

в веб-интерфейсе ВБ в Конфигурационные файлы / Настройка драйвера serial-устройств жму Найти и добавить новые устройства - там делаю разные виды сканирования, всё равно нет эфекта в топиках

подскажите, пожалуйста, как подключить шаблон?

Признак: его можно выбрать

Не совсем понимаю. Откуда должен появится, кто его создаст?

“Сканирование” имеет смысл только для устройств производства компании Wiren Board. Все остальное - настраивается вручную.