Телеграммы-то есть. Только смотрите за групповыми адресами… они у вас тоже чудесным образом с 28/3/1 превратились в 12/3/1 - т.е. вы уже воспроизвели то, что происходит у меня.
Да, поэтому и пишу что проверю остальные адреса.
Ну и монитор самого knxd
knxd верно принимает:
knxtool vbusmonitor1 local:/var/run/knx
L_Busmon: BC 51 02 E3 01 E1 00 81 92 :L_Data low from 5.1.2 to 28/3/1 hops: 06 T_Data_Group A_GroupValue_Write (small) 01
L_Busmon: BC 51 02 E3 01 E1 00 80 93 :L_Data low from 5.1.2 to 28/3/1 hops: 06 T_Data_Group A_GroupValue_Write (small) 00
Смущает меня, когда адрес устройства выводится как групповой адрес. Это я про i:5/1/2. Можно ли будет доработать вывод до правильного i:5.1.2?
Как можно скорее исправим баг со старшим значением адреса (сегодня, завтра).
Но имейте в виду, что устройства первого поколения не поддерживают полный 16-битный диапазон групповых адресов, диапазон старшей группы ‘main’ для них: 0…15.
Впоследствии его расширили, задействовав резервный бит группового адреса до 0…31.
А где то эти устройства еще используются?
Расширили старшую группу группового адреса. Теперь групповой адрес обрабатывается корректно.
Доступно в Тестинг-релизе
Вы правы. Правильный вывод это i:5.1.2.
Но в целях совместимости с уже существующими инсталляциями, оставим как есть.
А как на счет стабильного релиза? Переводить “продакшен” железку на тестовый релиз - не самая правильная практика, имхо.
Исправьте, пожалуйста. Признать свою ошибку и не исправлять ее - это очень, гм, странная практика. Вы же делаете промышленную железку - правильно соблюдать стандарты (которые не вы написали).
Тут не согласен. Каким образом представляются данные внутри ПО - стандартами не определяется.
Поставьте один пакет из тестового. Хоть и не приветствуем такое - но для теста можно.
Мне не для теста - мне для работы.
Внутри ПО - да (во внутреннюю кухню лезть очень не хочется, хотя и приходится). Но это все “снаружи” - это все видно в интерфейсе пользователя. И путает ваших же пользователей (и меня в том числе).
Промышленный стандарт не распространяется на строку вида:
i:1/1/1 g:1/2/3 GroupValueWrite 0x0c 0xc9
Эта строка детерминирована, и однозначно определяет все подгруппы индивидуального адреса.
Для вашего случая могу предложить несколько решений.
Варианты по проблеме с диапазоном главной группы группового адреса:
- Обновляете wb-mqtt-knx пакет до тестинга, и через пару месяцев обновляете пакет до стабильного релиза, в котором будут уже все изменения.
- Не используете диапазон главной группы 16…31.
Вариант по проблеме с отображением индивидуального адреса:
- Добавляете правило, которое создаёт виртуальное устройство, которое выдаёт приемлемое для Вас значение, например в таком виде:
i:1.1.1 g:1/2/3 GroupValueWrite 0x0c 0xc9
Правило:
// Создаём новое виртуальное устройство.
defineVirtualDevice("display_knx", {
title: "Display KNX",
cells: {
data: {
type: "text",
value: ""
},
}
});
defineRule("rule_display_knx", { //название правила
whenChanged: "knx/data", //при изменении состояния knx/data
then: function(newValue, devName, cellName) { //выполнять следующие действия
var re = /\//;
// Заменить слеш на точку в индивидуальном адресе и опубликовать в устройстве
dev["display_knx"]["data"] = newValue.replace(re, ".").replace(re, ".");
}
});