При первом нажатии выключателя вниз 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-устройств жму Найти и добавить новые устройства - там делаю разные виды сканирования, всё равно нет эфекта в топиках
подскажите, пожалуйста, как подключить шаблон?


