Экземпляры мигалок на Timer

перегружаются только правила или целиком ребутится? Пожалуйста, если есть такое, скиньте пример, наверняка в документации есть, но я не помню такого…

service wb-rules restart

дистанционно, по внешней команде
может в скрипте можно “выполнить” из комм строки что-то?

runShellCommand()

Ясно, буду изучать. Видите, мне не очень знакомы эти технологии, только собираю знания. Если у меня не получится самому, обращусь за уточнениями. Спасибо!

Какое свойство таймера можно проверить, чтобы понять запущен он уже или нет?
Чтобы избежать повторного его перезапуска при наступлении события еще раз.

Flagman, добрый день!
К сожалению, у таймера только одно свойство, firing:

startTimer("test", 10000);
str = JSON.stringify(timers.test);
log(str);

->

2019-08-14 15:50:48 starting timer: test
2019-08-14 15:50:48 {"firing":false}

Я бы делал через таймерные функции с коллбеками, и состояние отслеживал бы флагами.

Тоже обратил на это внимание и не смог найти ответа на форуме.
Пример аналогично взял тут: https://wirenboard.com/wiki/index.php?title=Rule_Examples)

Как должна работать эта конструкция?:

if (motion_timer_1_id) {
      clearTimeout(motion_timer_1_id);
   }

точнее так: для чего она, если сюда мы никогда не попадаем (внутри конструкции ставил вывод в лог - увидел, что никогда не проходим через это место) ?

Попробовал принудительно в if в этой строке заменить “motion_timer_1_idt” на “true” и получил ошибку:

2020-05-25 20:38:43ECMAScript error: Error: error error (rc -100)
anon native strict preventsyield
clearTimeout /usr/share/wb-rules-system/scripts/lib.js:225
anon /etc/wb-rules/rules.js:178 preventsyield
call native strict preventsyield
anon /usr/share/wb-rules-system/scripts/lib.js:173 preventsyield

Потому что clearTimeout попытался очистить таймер, которого не было.

Задумка понятная: если сейчас таймер, после которого свет выключится, запущен, а датчик показывает движение, то этот таймер нужно отключить, и потом пересоздать заново.
Но в самом правиле в примере действительно была допущена ошибка: запускать таймер нужно не в момент включения датчика движения, а в момент отключения. А вот удалять - действительно в момент включения.
Ещё одной проблемой было, что устройствам типа switch начиная со второй версии движка правил нельзя присваивать 0 или 1, а можно только true или false.
Сейчас исправил код в примере на верный: Примеры правил — Wiren Board