Скрипт, отвечающий за коммутацию каналов 2 встроенных реле WBE2-DO-R3A-1, благодаря которому включаются и отключаются свет по времени, работает через раз.
Сам скрипт:
// Правило для включения наружного света в 18:00:00
defineRule("turn_on_outLight_at", {
when: cron("0 0 18 * * *"), // Запускать каждый день в 18:00:00
then: function () {
log.info("Наружное освещение включено в 18:00:00"); // Запись в лог
dev["wb-gpio/MOD1_OUT1"] = 1; // Включаем реле
}
});
// Правило для выключения наружного света в 10:00:00
defineRule("turn_off_outLight_at", {
when: cron("0 0 10 * * *"), // Запускать каждый день в 10:00:00
then: function () {
log.info("Наружное освещение выключено в 10:00:00"); // Запись в лог
dev["wb-gpio/MOD1_OUT1"] = 0; // Выключаем реле
}
});
// Правило для включения света рекламы в 18:00:00
defineRule("turn_on_adLight_at", {
when: cron("0 0 18 * * *"), // Запускать каждый день в 18:00:00
then: function () {
log.info("Свет рекламы включен в 18:00:00"); // Запись в лог
dev["wb-gpio/MOD2_OUT1"] = 1; // Включаем реле
}
});
// Правило для выключения света рекламы в 10:00:00
defineRule("turn_off_adLight_at", {
when: cron("0 0 10 * * *"), // Запускать каждый день в 10:00:00
then: function () {
log.info("Свет рекламы выключен в 10:00:00"); // Запись в лог
dev["wb-gpio/MOD2_OUT1"] = 0; // Выключаем реле
}
});
В лог идёт такая ошибка:
20-08-2024 12:45:00.005 [wb-rules] ERROR: control wb-gpio/MOD1_OUT1 SetValue() error: can't convert control value '1' (type float64) to datatype '1'
20-08-2024 12:45:00.001 [wb-rules] INFO: [rule info] Наружное освещение включено в 18:00:00
Редактирую скрипт, меняя тип данных:
// Правило для включения наружного света в 18:00:00
defineRule("turn_on_outLight_at", {
when: cron("0 0 18 * * *"), // Запускать каждый день в 18:00:00
then: function () {
log.info("Наружное освещение включено в 18:00:00"); // Запись в лог
dev["wb-gpio/MOD1_OUT1"] = '1'; // Включаем реле
}
});
В лог идёт такая ошибка:
20-08-2024 12:45:00.005 [wb-rules] ERROR: control wb-gpio/MOD1_OUT1 SetValue() error: can't convert control value '1' (type string) to datatype '1'
Редактирую скрипт:
// Правило для включения наружного света в 18:00:00
defineRule("turn_on_outLight_at", {
when: cron("0 0 18 * * *"), // Запускать каждый день в 18:00:00
then: function () {
log.info("Наружное освещение включено в 18:00:00"); // Запись в лог
dev["wb-gpio/MOD1_OUT1"] = true; // Включаем реле
}
});
Ошибка в логе:
19-08-2024 13:46:13.006 [wb-rules] ERROR: control wb-gpio/MOD1_OUT1 SetValue() error: can't convert control value 'true' (type bool) to datatype '0'
Самое главное, что все три варианта данных подходят и скрипт выполняется и включает/выключает свет, но через раз, а в 50% ничего не происходит и в лог вылезают ошибки подобного вида.
В чём может быть проблема?