Добрый день,
Пытаюсь разобраться со связкой “KNX-устройство - виртуальное устройство WB - контрол, который создался автоматически при настройке групповых адресов KNX”.
Теперь более детально. Физическое устройство настроил. В WB групповой адрес прописал. В устройствах это выглядит так.
Если я исправляю значение в контроле temp_by_wall - оно отправляется на физическое устройство. Если нажимаю кнопку на физическом устройстве - меняется значение в контроле temp_by_wall.
Телеграмы KNX ходят все ок. Выглядит все это вот так:
> |12-10-2024 15:33:12.816|DEBUG: Received from knxd: from:1.1.1 to:1/1/50 tpdu(4):00 80 0d 46|
> |12-10-2024 15:33:11.647|DEBUG: Sent to knxd: to:1/1/50 tpdu(4):00 80 0d 2d|
Далее, добавляю виртуальное устройство my-virtual-device с контролом ControlName2.
Пишу правило, чтобы при нажатии кнопки (ищменение температуры) на физическом устройстве - соответственно менялось значение my-virtual-device/ControlName2:
defineRule({
whenChanged: "temp_by_wall/temp_setpoint",
then: function (newValue, devName, cellName) {
dev["my-virtual-device/ControlName2"] = dev["temp_by_wall/temp_setpoint"];
}
});
правило работает, когда я меняю температуру на физ.устройстве (понятно, потому что приходит сообщение и меняется значение temp_by_wall/temp_setpoint), при этом, если я изменяю температуру в UI, изображение выше - на физическом устройстве меняется, на виртуальном - нет. Предполагаю из-за того, что выполняется только “Send to knxd” или потому что я неправильно считываю изменившееся значение из temp_by_wall/temp_setpoint.
Также не работает и это правило:
defineRule({
whenChanged: "my-virtual-device/ControlName2",
then: function (newValue, devName, cellName) {
dev["temp_by_wall/temp_setpoint"] = dev["my-virtual-device/ControlName2"];
}
});
при изменении my-virtual-device/ControlName2 не отправляется изменение на физическое устройство.
Подскажите, пожалуйста, где я не прав… Спасибо!