Добавили в 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)
эту утилита еще не работает?
Если это возможно, пришлите, пожалуйста конфиг.
Это сильно нам облегчит поиск проблемы.
Возможно ли средствами 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 - контрольные статусы ( опционально )
Готов помочь с тестированием =)