В логах начала появляться вот такая ошибка, при этом, срабатывает правило включения-выключения света (несколько раз за ночь), по задумке правило срабатывает при пропадании/появлении напряжения на входе EXT1_IN8, и это нормально работало около года, а сейчас правило срабатывает и в момент появления этой ошибки (on-off), при этом по истории состояние EXT1_IN8 не менялось.
В поиске объяснения не нашел, подскажите, что означает и где искать проблему.
Контроллер - тот же, да. Думаете связано?
В веб интерфейсе - Vin отображается верно, в истории график напряжения тоже правильный, от 11,65 до 11,69 варьируется, провалов нет. Батарейка, кстати, у меня в WB стоит.
лог смогу вечером прислать, а код правила вот:
master_switch.js
var timer_1_timeout_ms = 50;
var timer_1_id = null;
var powerfault = false;
var no_power = null
defineVirtualDevice("master-switch", { // для отображения статуса мастер-выключателя в виджете
title: "Master-switch",
cells: {
enabled: {
type: "switch",
value: false
},
}
});
defineRule("Master-onoff", { // описание работы при вкл\выкл мастер-выключателя
whenChanged: "wb-gpio/EXT1_IN8", //при изменении состояния Мастер-выключателя
then: function (newValue, devName, cellName) {
if ( newValue == true ) {//если Мастер-выключатель включен (питание подается контактором, но для включения двух светильников нужно сымитировать нажатие кнопочных выключателей)
dev["master-switch"]["enabled"] = true; // статус мастер-выключателя - ВКЛ
if ( powerfault == false ) { //и перед этим не общее пропадало питание
dev["wb-gpio"]["A3_OUT"] = true; // нажать выключатель 1
dev["wb-gpio"]["A4_OUT"] = true; // нажать выключатель 2
timer_1_id = setTimeout(function () { // задержка 50 мс
dev["wb-gpio"]["A3_OUT"] = false; // отпустить выключатель 1 - имитация кнопочного выключателя, свет включается/выключается
dev["wb-gpio"]["A4_OUT"] = false; // отпустить выключатель 2 - имитация кнопочного выключателя, свет включается/выключается
timer_1_id = null;
}, timer_1_timeout_ms); // значение таймаута
} else // если пропадало питание
powerfault = false; // ничего не делать, только снять флаг пропажи питания (для того, чтобы при отключении электирчества ночью не зажигался свет)
} else { //если Мастер-выключатель выключен
dev["master-switch"]["enabled"] = false; // статус мастер-выключателя - ВЫКЛ, свет отключается контактором со всеми другими потребителями, независимо от WB.
}
}
});
defineRule("PWRloss", { // описание работы при пропадании питания
whenChanged: [
"wb-gpio/EXT1_IN1", //при изменении наличия питания на любой из фаз
"wb-gpio/EXT1_IN2",
"wb-gpio/EXT1_IN3",
],
then: function (newValue, devName, cellName) { //выполняй следующие действия (аргументы - текущее значение параметра, имя устройства и имя параметра, изменение которого привело к срабатыванию правила)
if ( newValue == false ) {//если питание фазы пропало
powerfault = true; // флаг, чтобы при включении не загорелся свет в коридоре
}
}
});
Все может быть. Больше ничего не менялось же. Пока по тексту правила полной картины составить не могу, хотел бы системный лог посмотреть. Какая версия движка правил у вас?
messages.txt (484.0 КБ)
/var/log/messages за сегодня прилагается, переименовал в *.txt для загрузки на форум.
Разница с системным временем в веб-интерфейсе 3 часа.
вот отладочный лог из веб интерфейса за сегодня:
2019-07-16 23:38:48defineRule: Master-onoff
2019-07-16 23:38:48defineRule: PWRloss
2019-07-17 03:42:01skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 03:42:01skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 04:35:12skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 04:35:12skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 04:56:22skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 04:56:22skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 04:56:22skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 04:56:22skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 05:35:28skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 05:35:28skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 06:15:16skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 06:15:16skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 07:05:19skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 07:05:19skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 07:15:15skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 07:15:15skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 08:50:16skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 08:50:16skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 09:00:11skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 09:00:11skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 09:45:03defineRule: Master-onoff
2019-07-17 09:45:03defineRule: PWRloss
2019-07-17 09:55:15skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 09:55:15skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 09:56:40defineRule: Master-onoff
2019-07-17 09:56:40defineRule: PWRloss
2019-07-17 11:35:11skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 11:35:11skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 11:35:11skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 11:35:11skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 11:35:11skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 11:35:11skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 15:50:09skipping rule due to incomplete cell _system_dc_on: IncompleteCellCaught: incomplete cell encountered: Vin
2019-07-17 15:50:09skipping rule due to incomplete cell _system_dc_off: IncompleteCellCaught: incomplete cell encountered: Vin
defineRule: Master-onoff - это я сохранял существующие правила, думал в этом дело
Это одного поля ягоды:
_system_dc_on
_system_dc_off
эти события всегда шли парой, в одну и ту же секунду.
Вобщем, после исправления проблем с файловой системой, уже больше 12 часов - полет нормальный, в отладке ошибка не возникает, var/log/messages прилагается. messages.txt (241.6 КБ).
Ошибки queue Tokens is almost filled я там не нашел.