Помощь с написанием правила

По нежелательному поведению ПО и по оборудованию вопросов нет.
Есть вопрос по обучению.

Видимо переоценил свои возможности, купив оборудование WB.
Желание и упорство помогло разобраться с нуля в ардуино, благодаря гениальному хлопцу AlexGyver(у), думал что и здесь потихоньку разберусь. Однако у вас тут, к великому сожалению, в этом плане всё ну оооочень неважно, пока, надеюсь.

Пытаюсь с чего-то начать.
Контроллер WB 7.3A и реле WB-MR6C v.3 купил ещё 1,5 года назад, в первом подходе ничего не получилось. Во второй раз руки дошли только сейчас.

WB 7.3A и реле WB-MR6C v.3 соединил по RS-485
Выключатели работают, нажатие обрабатывают, освещение включают.

Теперь хочу просто, чтоб одна лампа, после включения от нажимного переключателя, выключалась по таймеру.
Понимаю, что нужно написать правило, но как это сделать, не найду НИ ОДНОГО похожего примера. А писать с нуля, не хватает мозгов.

Можете ткнуть носом, где искать?
Или ещё лучше написать эти три строчки кода, для примера, чтоб стимул появился.

Добрый день.
Перенес ваш вопрос в новую тему.
Вам подойдет такой пример правила: Таймеры — однократные

Адаптировал под MDM3, но у себя поменяйте адреса топиков и время задержки перед отключением.

defineRule({
  whenChanged: "wb-mdm3_50/K1",
    then: function (newValue, devName, cellName) {
    setTimeout(function () {
      dev["wb-mdm3_50/K1"] = false;
    }, 1000);
  }
});

Добрый день!
Большое спасибо за быструю реакцию!

Но, к сожалению, у тех кто в танке, всё равно пока не работает.

Я правильно понимаю “mdm3” - это моё реле WB-MR6C v.3 ?
64 - номер на корпусе реле
“K5” - номер канала реле
“1000” - задержка в миллисекундах

Обозвал правило - “Entry_light_delay.js” сохранил.
И даже перезагрузил контроллер, но свет не отключается.


defineRule({
  whenChanged: "wb-mdm3_64/K5",
    then: function (newValue, devName, cellName) {
    setTimeout(function () {
      dev["wb-mdm3_64/K5"] = false;
    }, 1000);
  }
});

По экспериментировал ещё с кучей вариаций, изучая вашу ссылку на гитхабе, пока результат отрицательный.

Нет, это я для примера показал, у вас должно быть такое название wb-mr6cv3_64/K5

Проще всего выяснять какое имя у конкретного параметра устройства из вкладки “Устройства”, нажав на его имя:
Не обращайте внимание что у меня на скриншоте всё красное.
в буфер обмена скопируется нужный путь.

Заработало!
“wb-mr6c” подставлял, не срабатывало, оказывается нужно было “wb-mr6cv3”!
Огромное спасибо!!!

2 Likes