Столкнулся с проблемами при создании правила для WB6
Раннее ничего не программировал и не сталкивался, так что не судите строго новичка)
Хотел создать правило для модулей WB-MA04. К модулям подключены фильтры приточной вентиляции, необходимо их включать по расписанию
Почитал примеры правил (ничего не понял) и взял из примера, подставил свои топики
//Правило на таймер"
// /etc/wb-rules/rules.js - директория для сохранения"
var motion_timer_1_timeout_ms = 5 * 1000;
var motion_timer_1_id = null;
defineRule(“motion_detector_1”, {
whenChanged: “/devices/wb-mao4_22/controls/Channel 1”,
then: function (newValue, devName, cellName) {
var date = new Date();
// time point marking the beginning of the interval
// i.e. "today, at HH:MM". All dates are in UTC!
var date_start = new Date(date);
date_start.setHours(12);
date_start.setMinutes(30);
// time point marking the end of the interval
var date_end = new Date(date);
date_end.setHours(13);
date_end.setMinutes(30);
// if time is between 12:30 and 13:30 UTC
if ((date > date_start) && (date < date_end)) {
if (newValue) {
dev["/devices/wb-mao4_22/controls/Channel 1"] = 10000;
if (motion_timer_1_id) {
clearTimeout(motion_timer_1_id);
}
motion_timer_1_id = setTimeout(function () {
dev["/devices/wb-mao4_22/controls/Channel 1"] = 0;
motion_timer_1_id = null;
}, motion_timer_1_timeout_ms);
}
}
}
});
Почему то пишет ошибку при сохранении
“Error saving the file: MQTT RPC request timed out”
А когда удается сохранить то правило не работает…
Собственно и вопрос - как проверить работоспособность правил на контроллере?
Как написать рабочее правило включения модулей WB-MA04 по расписанию?
Где что почитать чтоб понимать как программировать правила в ПЛК WB (задачи стоят амбициозные надо учится)
Сходу заметила только, что вместо dev["/devices/wb-mao4_22/controls/Channel 1"] надо dev["wb-mao4_22/Channel 1"].
Я обычно делаю итерациями - минимальный код, который работает, потом дополняю потихоньку и смотрю, какие отдельные части кода не работают. Может не самый лучший подход и коллеги что-то ещё подскажут.
Ну только по примерам могу предложить, как вы и делаете. Вижу, что пример подходящий использовали. Прям написать за вас не можем.
Спасибо за развернутый ответ.
По написанию правил вопросов нет, но у меня, похоже, проблемы другого толка.
Ни одно правило на контроллере не срабатывает.
при попытке зайти на вкладку Rules. периодически выскакивает ошибка Error listing the scripts: MQTT RPC request timed out.
После перезагрузки контроллера вкладка открывается и и можно сохранить правило, однако при сохранении опять же периодически выскакивает ошибка Error saving the file: MQTT RPC request timed out
проверил systemctl status wb-rules
пишет active (exited), версия wb-rules is already the newest version (1.7.1).
Есть такая вероятность. Если вы далеко от контроллера, обновлять не рекомендуется.
Но и найти в чём дело на старой прошивке сложнее, тем более без архива.