это нашёл, спасибо!
но как теперь добраться до устройства в правилах, чтобы написать для него обработчик на js?
для этого и думал подцепить его через trackMqtt
это нашёл, спасибо!
но как теперь добраться до устройства в правилах, чтобы написать для него обработчик на 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}}
например. То есть в качестве исходного рекомендую взять уже собранный.
Ну да, это исходники.