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

это нашёл, спасибо!

но как теперь добраться до устройства в правилах, чтобы написать для него обработчик на js?
для этого и думал подцепить его через trackMqtt

После того как устройство настроено и работает - его топики доступны обычным образом, через dev[].
То есть чтобы получить имя топики можно посмотреть его или в “Настройки” - “Каналы MQTT”


Или просто щелкнуть на топик в “Устройства” - имя скопируется.

Вроде бы получилось! Так?
Если всё так, дальше уже понимаю как делать

Через некоторое время такая ошибка вылетела в настройках устройства:

Нет связи с устройством. Проверьте физическое подключение шины RS-485 и настройки связи порта и устройства, которые должны быть одинаковы

Вот скриншот как добавил монитор

Рекомендую проверить с помощью modbus_client.

смотрим, но пока сложновато понять, как именно там дебажить.

есть ещё гитотеза, что проблема в том, что Dali BUS monitor завешивается на “Адрес устройсва” = 2, а не 1. Но при попытке повесить на 1 - сообщение " Адрес устройства уже используется". Поэтому ставим 2. Хотя правильнее ставить 1.

Проверяли с паралельным подключением к шлюзу из DALI configurator - соединение работает. Поэтому сделали вывод, что надо перенести Dali BUS monitor в отдельное подключение и сделать там Адрес = 1.

Создали новое подключение MODBUS TCP с тем же параметрами и туда перенести Dali BUS monitor , вот так -

но после этого вообще все dali исчезают из каналов MQTT, а в логе вываливается вот такая ошибка в страром шаблоне устройства:

Failed to parse JSON /etc/wb-mqtt-serial.conf.d/templates/config-ecodim-dali-gw2-1.json:* Line 195, Column 29

195-я строка это

"enabled": {{enabled}}

в блоке

{
                "name": "Group 0 Devices Available",
                "address": 2002,
                "reg_type": "holding",
                "type": "switch",
                "format": "u16",
                "scale": 0.5,
                "readonly": true,
                "group": "group_commands",
                "enabled": {{enabled}}
            },

может есть смысл отредактировать шаблон config-ecodim-dali-gw2-1.json, чтобы не вылетала ошибка в 195-й строке?

Вы не можете использовать одинаковые идентификаторы на одной шине. Ну и разные (но одинаковые) шины - тоже.
Соответственно не может быть двух разных шаблонов к одному устройству. Хотя, если id записать как 1:1 и 1:2 можно.

ошибки нет, но и устройства Дали отвалились все. Причём в журнале нет сообщений по сонтаксис JSON.

если MODBUS TCP 192.168.0.107:502 удалить Дали монитор с адресом 1:2, оставив только шлюз с адресом 1:1, - то шлюзы возвращаются в Устройства ВБ.

Я не понимаю что вы делаете к сожалению.

На MODBUS TCP 192.168.0.107:502 я добавляю 2 устройства: шлюз Дали и монитор Дали

шлюзу Дали прописываю Адрес устройства 1:1
монитору Дали прописываю Адрес устройства 1:2

Да, проверил. Так работать не будет (без корректно описанного stride в шаблоне). В общем если нужно - добавляйте регистры и создавайте свой кастомный единый шаблон.

Так и пытаюсь сделать. Добавляю из вашего шаблона для DALI Bus monitor, который приложили выше, блоки из channels в существующий шаблон ecodim-dali-gw2-1.json в ту же ветку channels, но в устройствах ВБ почему-то никакого эффекта.

Ожидаю, что в устройствах появится ещё два поля: comandCounter и comandData, но они почему-то не появляются.

Подскажите?

Я бы не стал менять существующий шаблон. Для кастомных - есть свой каталог.

шаблон ecodim-dali-gw2-1.json тоже в каталоге кастомных лежит (в /mnt/data/etc/wb-mqtt-serial.conf.d/templates)

В этом шаблоне изменено имя или оставлено по-умолчанию? Нет ли в нем ошибок?

Да, добавлено в конце “-1”.
config-ecodim-dali-gw2-1.json (13,1 КБ)

ну и внутри есть различия, вот сравнение двух шаблонов

Валидатор VSCode ругается на ошибки, типа таких

и таких

Такая ещё идея:

Если нельзя повесить два параллельных опроса на TCP, то шлюз можно опрашивать и по TCP (работает сейчас), и по RTU (опрашивать монитор).

Можно такое реализовать? Если, да, дайте, пожалуйста, наводку, куда смотреть

У меня такое впечатление что вместо шаблона взяты его исходники с гитхаба.
Шаблон (собранный) лежит на контроллере в /usr/share/wb-mqtt-serial/templates/config-ecodim-dali-gw2.json

Обратите внимание, что в файле не должно быть подстановок jinja в виде "enabled": {{enabled}} например. То есть в качестве исходного рекомендую взять уже собранный.

Ну да, это исходники.

Удалил исходник из /mnt/data/etc/wb-mqtt-serial.conf.d/templates и положил шаблон из /usr/share/wb-mqtt-serial/templates

добавил в каналы вот так -

в устройствах ВБ ничего не изменилось -

ожидал, что где-то сверху над Статус шины DALI появятся контролы comandCounter и comandData