Добавили в Wiren Board поддержку работы с отдельными групповыми адресами KNX.
Теперь для группового адреса KNX создаётся индивидуально настраиваемый MQTT контрол. Это означает, что можно работать с групповым адресом как с MQTT контролом: отправлять в него и принимать из него значения, например: битов, целых знаковых и беззнаковых чисел, чисел с плавающей точкой.
Тип контрола связан типом данных для группового адреса. Тип данных для конкретного группового адреса можно настроить в веб редакторе конфигурационных файлов.
Несколько групповых адресов группируются в одно или несколько произвольных логических MQTT устройств.
На данный момент поддерживаются пять типов данных групповых адресов и один с возможностью обработки сырых данных:
- Raw_Value - обработка сырых данных: массив данных в виде строки (APDU payload);
- 1.xxx_B1 - 1-битовое значение;
- 2.xxx_B2 - 2-битовое значение;
- 5.xxx_8-Bit_Unsigned_Value - 8-битовое целое без знака;
- 6.xxx_V8 - 8-битовое целое со знаком;
- 9.xxx_2-Octet_Float_Value - 2-байтовое значение с плавающей точкой.
Количество поддерживаемых типов данных со временем будет увеличено.
Проект в ETS:
Редактор файла конфигурации для wb-mqtt-knx.conf:
Пример создаваемых логических устройств и контролов:
Планируется добавление консольной утилиты экспорта конфигурации KNX устройств из инструментов ETS6 и ETS5 в конфигурационный файл Wiren Board для работы с групповыми адресами.
О проблемах с новым wb-mqtt-knx и с обновлением на него можно писать в ответах к этой теме.
Интересно. так а как и что нужно обновить, где искать?
Я правильно понимаю, что данный контрол может работать без WBE2-I-KNX ? Если да, то подскажите, как его нужно настраивать? Есть демо чемодан, обновил его на тестинг релиз, увидел данные в топике /devices/knx/controls/data
Попытался создать устройства, данные перестали приходить, устройство не создалось.
Очень странно… Выключил “Enable the KNX Gateway Device: knx/data” и управление устройством заработало! Буду дальше тестировать.
Пожалуйста, ознакомьтесь с документацией на обновлённый сервис:
https://wirenboard.com/wiki/MQTT_KNX_V2
Ознакомился. Но все равно не получил ответа, почему при включенном чекбоксе “Enable the KNX Gateway Device: knx/data” управление не работает, а при выключенном - работает.
KNX-OFF-log.txt (2.4 КБ)
KNX-ON-log.txt (8.9 КБ)
Попробуйте удалить в веб интерфейсе на вкладке “Устройства”, устройство с названием “knx” и перезапустите wb-mqtt-knx сервис.
Если при включенном чекбоксе “Enable the KNX Gateway Device: knx/data” управление не заработало, то отправьте лог, пожалуйста.
ага, понял. нельзя было называть устройство “knx”. Оно конфликтовало с топиком devices/knx/controls/data. Переименовал созданное устройство - появилась дата…
Другой вопрос. запускаю wb-knx-ets-tool butler-office.xml wb-mqtt-knx.conf получаю ответ:
vector::_M_range_check: __n (which is 2) >= this->size() (which is 2)
эту утилита еще не работает?
Если это возможно, пришлите, пожалуйста конфиг.
Это сильно нам облегчит поиск проблемы.
1 лайк
Возможно ли средствами WB без использования скриптов сделать связь Группового адреса с релейным выходом( аналоговым 0-10В, диммером )? Если нет, планируется ли такой функционал?
Теоретически - возможно, конечсно, но работать будет тот же скрипт, просто располагаться в системном каталоге.
Это в основном бессмыссленно, так как вараантов комбинаций взаимодействий может быть бесконечное количество, жесткую и в тоже время универсальную логику не придумаьть.
А простой скрипт в пять строчек “(параметр X стал истиной?) - (Установить параметр Y в 20) - (иначе параметр Y обнулить)” гибок и прост.
Центральная идея - разделить устройства и управление ими. Есть универсальная “шина” - Mqtt
которая отражается в интерфейс и с работает “мостом” между устройствами. А вы предлагаете “обойти” ее и управлять одним устройством с помощью другого.
А что не получается сделать?
Все получается. Я в контексте простых ситуаций, когда групповой адрес меняет конкретный параметр. Таким образом из веба можно все настроить на уровне кликов и прохождение телеграмм будет прозрачным из разных типов шин. А вот если что-то более сложное, тогда через скрипты.
Сейчас можно задать тип данных получаемый по групповому адресу, почему бы его по аналогии с KNX не связать сразу с устройством( устройствами ).
Опять же, это будет большой плюшкой в удобстве настройки WB и относится к категории было бы удобно.
Помогите с написанием подобного скрипта. Т.е. сейчас “дерево” объектов выглядит примерно так:
/devices/knx_main1_middle0/controls/control1_0_1
/devices/knx_main1_middle0/controls/control1_0_2
/devices/knx_main1_middle1/controls/control1_1_1
/devices/knx_main1_middle1/controls/control1_1_2
и так далее. Сложность в том, что нужно создать виртуальные устройства, которые будут УПРАВЛЯТЬ через один адрес (/devices/knx_main1_middle0/controls/control1_0_1), а считывать СТАТУС с другого (/devices/knx_main2_middle0/controls/control2_0_1). Можете показать пример, в котором реализовано такое “устройство”, и как быть, если таких устройств больше 100, и они разного типа (свичи, диммеры, термостаты, шторы)?
Как все это привести в более понятный для WB, а в дальнейшем и для SprutHub вид? Пробовал сделать через шаблон в SH, но там проблема в том, что topicSearch может быть только один, а у меня одно “устройство” находится в разных топиках.
В следующей итерации “статус” , точнее групповой адрес статуса можно будет указать в как опцию группового адреса.
Сейчас - да, делать отдельное (виртуальное) устройство.
А когда ожидается “следующая” итерация?
Можете подсказать примеры скриптов по созданию виртуального устройства?
Планируете ли добавить поддержку данных?
10.001 - время и 11.001 - дата
17.001 - номер сцены и 18.001 - контроль сцены
Спасибо. Покрутил еще все внимательно, не хватает следующих типов данных:
- 232 - цвет RGB
- 250, 251, 252,253,254 - LED RGB+W
- 21 - контрольные статусы ( опционально )
Готов помочь с тестированием =)