Доброго дня.
Подскажите, пожалуйста, что неправильно делаю ?
Создал правило, не работает :
defineRule(“Sezon”, {
whenChanged: “wb-modbus-0-0/Режим (0-зима,1-лето)”,
then: function (newValue, devName, cellName) {
dev[“wb-modbus-1-0”][“Переключение зима-0, лето-1”] = newValue;
}
});
нужно, что бы по изменению в устройстве 0-0, менялся регистр в устройстве 1-0
топик в устройстве“wb-modbus-0-0" это discrete input , значения 0 или 1, либо как правильнее (?) false / true.
При изменении этого топика надо аналогичное значение записАть в Coil регистр в другом устройстве “wb-modbus-1-0”
Правило вполне нормально описано, покажите сами топики, вывод mosquitto_sub. То есть тот который читается и в котрый пишется. Ну и добавьте в правило log.info(newValue);- надо понять срабатывает ли оно при изменении
Добрый день. Лог добавил, ничего не менял. Заработало, НО (!) теперь работает в обе стороны почему-то… Мне надо что бы только от устройства …modbus-0-0 изменение влияло на …1-0 , а получилось что в первом переключаю режим и он во втором меняется, что наоборот - меняю во втором - изменяется в первом.
Потом открыл редактирование в JSON, скопировал оттуда все, создал второй виджет, вставил скрипт, поменял в нем адрес устройства с modbus-0-0 на modbus-1-0
Теперь получается, что каким-то образом подписки и там и там “прикрепились” к одной установке , отсюда у меня и путаница. Как можно “резетнуть” виджеты или я что-то не так делаю ?
Само отображение в интерфейсе - можно просто нажать “корзинку” сверху, виртуальное устройство почистится и снова пересоздастся при перезапуске сервиса.
А если файлы были скопированы - то возможно сейчас есть два правила, в одном из которых изменение происходит наоборот.
Вообще неплохой способ - не указывать адреса и имена наприямую в правилах, лучше их задавать переменной в начале скрипта, например: Быстрый старт работы с KNX на контроллере Wiren Board — Wiren Board
Одну проблему победил - во всех топиках вначале добавил номер установки (П1В1 или П2В2), виджеты поправил - теперь как надо отображаются, не дублируются.
Внес соответствующее изменение имени в правило, сохранил его, не работает, значение в П2В2 не меняется.
Ошибок в скрипте не вижу, отрабатывает как и должно.
А кавички нужны чтобы движок форума не подменял символы в коде, для того чтобы точно быть уверенным что будет вместе с форматированием и верными симводами.
Делается так:
```
КОД
Так из за чего у меня не отрабатывает я по логу понял , “П1В1.Режим (0-зима,1-лето)” - значения 0/1,
а colil регистр “П2В2.Переключение зима-0, лето-1” значения false/true.
Пробовал добавлять в правило if x1 == 1 then y1 = true
if x1 == 0 then y1 = false
Не получается с синтаксисом разобраться, ошибка, как правильно записать ?