Wb-rules: как задать планировщик cron() на все дни, кроме выходных?

defineRule("toggle_K12_6-21_ISZ_on", { //включение выхода К12
  when: cron("0 */5 3-17 * 1-5"), // временное условие UTC(+3)
  then: function() {
    var topic12 = dev["wb-gpio/EXT1_K12"];
    var topicA4 = dev["wb-gpio/A4_OUT"]; //выход А4 контроллера запрещает выполнение условия
    if (topic12 == false && topicA4 == false) {
      dev["wb-gpio/EXT1_K12"] = true; // включение выхода К12
    }
  }
});
defineRule("toggle_K12_21-6_ISZ_off", { //выключение выхода К12
  when: cron("0 */5 18-23,0-2 * 1-5"), // временное условие UTC(+3)
  then: function() {
    var topic12 = dev["wb-gpio/EXT1_K12"];
    var topicA4 = dev["wb-gpio/A4_OUT"]; //выход А4 контроллера запрещает выполнение условия
    if (topic12 == true && topicA4 == false) { //проверка состояния 
                                                          //выхода и запрещающего условия
      dev["wb-gpio/EXT1_K12"] = false; // выключение выхода К12
    }
  }
});

Отчего-то правила продолжают исполняться и в субботу с воскресеньем.
Подскажите, что я делаю не так?

Добрый день.
Если я правильно понял задачу, то вам нужен такой параметр у cron: 0 */5 3-17 * * 1-5
Вы можете любой онлайн генератор параметров cron взять в интернете и сгенерировать себе нужную строку, например этот: https://crontab.cronhub.io/

Понял спасибо!
Онлайн генераторами не пользовался, т.к. уже попадал впросак: многие генераторы начинают форматы отсчёта с минут, а в версии cron(), живущей в WB7 cron() расписывается с секунд…

Если не трудно, ещё вопрос: синтаксис/правила конкатенации строк в wb-rules обычные для JS?

let a1 = 5;
let a2 = " 3-4 ";
let t1 = a1+a2+"* * 1-5";
defineRule...
  when cron(t1),
  then: ... 
  • нормально слипнется?

Ну почти. Let не поддерживается.

Пользуйтесь функцией log() для проверки

var a1 = 5
var a2 = " 3-4 "
var t1 = a1 + a2 + "* * 1-5"

log(t1)

Наверное, надо всё же a1 преобразовать:
var a1 = 5
var a2 = " 3-4 "
var t1 = String(a1) + a2 + “* * 1-5”

log(t1)