Подскажите, пожалуйста, возможен ли автоматический запуск контроллера при возвращении питания в следующем случае:
контроллер подключен через WB-UPS v.2
и, при получении сигнала о пропаже внешнего питания, делаю выключение wirenboard командой “halt”
Если контроллер Wiren Board подключен через WB-UPS v.2 и вы выполняете команду halt при получении сигнала о пропаже внешнего питания, то автоматический запуск контроллера при восстановлении питания возможен, но при некоторых условиях:
Команда halt: Эта команда завершает работу операционной системы и переводит контроллер в состояние, близкое к выключению, но оставляет его включенным на аппаратном уровне. Это значит, что контроллер будет требовать ручного вмешательства для включения после восстановления питания.
WB-UPS v.2: Когда питание восстанавливается, WB-UPS v.2 автоматически подаст питание на контроллер, но если он был переведен в состояние “halt”, то контроллер не включится автоматически.
Решение: Чтобы контроллер автоматически запускался при восстановлении питания, вам нужно использовать команду shutdown -h now вместо halt. Эта команда полностью завершает работу операционной системы и выключает контроллер. Если питание будет восстановлено, контроллер автоматически включится.
Таким образом, для автоматического запуска контроллера при восстановлении питания лучше всего использовать команду shutdown -h now, которая позволяет корректно завершить работу ОС и выключить контроллер, готовый к автоматическому включению при появлении питания.
Добрый день,
Попробовал на WB-Rules портировать пока не вышло.
У меня вот подобное применение применение использую в таком ключе
free -m | grep Mem | awk ‘{print $3}’ | while read usedMemory; do
if [ $usedMemory -gt 1500 ]; then
echo “Memory usage exceeded 1500 MB, shutting down the controller.”
shutdown now
else
echo “Memory usage is within limits: $usedMemory MB.”
fi
done
Если система потребляет больше 1500 то уходит в шатдаун.
Так же хочу уточнить кейс, а для чего отправлять в отключение систему, если она и так отключится, когда батарейка разрядится?
у меня например стоит ИБП WB-UPS v.2. В описании не указано при каком уровне разряда ИБП отключается и отключается ли вообще. Т.е. возможно работает пока совсем не сядет батарейка. Как поведет себя контроллер при пониженном напряжении?
читал,
“Выход Vb — напряжение на аккумуляторных модулях, можно использовать для оценки степени заряда. 6.0 В — разряжен, 8.4 В — полностью заряжен”
Поведение при “разряжен” не ясно. Поэтому есть желание при напряжении близком к 6 В принудительно отключить корректно контроллер
При разряде сперва, насколько я наблюдал, отключаются шины, а потом контроллер через пару секунд. Для более точного результата лучше эмпирически проверить на каком напряжении успеет корректно выключиться контроллер.
Я правильно понял: - контроллер при разряде батареи ИБП самостоятельно корректно отключится?
если так, тогда достаточно будет просто отправить сообщение при напряжении (например 6,5В), что “сетевого питания нет, а работа от ИБП завершается”
Подскажите, а если произойдёт так, что контроллер отключится после пропадания питания, но основное питание вернётся до момента разряда WB-UPSv2, то как поведёт себя система?
Правильно понимаю, что контроллер в этом случае не включится после восстановления питания (т.к. не сможет отследить этот факт из-за того, что питание на нём и не пропадёт)?
Хочется мягко выключать контроллер перед тем как сядет бесперебойник, чтобы избежать непредсказуемого поведения или потери данных. Я так понимаю полный бекап контроллера для восстановления все еще нельзя сделать.
Приходит сигнал с бесперебойника о пропаже внешнего питания
Отправляю команду отключания на перифейрийный контроллер (raspberry, ей критичны жесткие выключения)
Затем выключаю wirenboard
Но он выключался почему-то только командой halt из правил, а shutdown не срабатывало, но может я что не так делал.
И я правильно понимаю, что если даже удастся выключить контролллер, то включиться он не сможет если бесперебойник сесть не успел - то есть не будет единственно возможного триггера для включения?
Я правильно понял: - контроллер при разряде батареи ИБП самостоятельно корректно отключится?
Контроллер - корректно. Шины - рубильником (но не во время обмена).
При снижении напряжения ниже некоего порога контроллер завершает опрос по всем интерфейсам (честно, не пробовал как ведет себя на RS485-устройствах с большим таймаутом, но “телеграфный” запрос - 240 бит на 110 бод с задержкой 250 мс - отрабатывает полностью даже если отрубить внешнее питание в момент передачи первого байта запроса), после чего завершает работу как при нажатии кнопки питания.
Все бы хорошо, если бы не одно но: обработать данные из последнего запроса уже не получится - контроллер “выключается” (а ну как результат обработки требует записи на флешку или, того хуже, отправки СМС?). То есть обрабатывать разрядку батареи ИБП всё равно надо заранее в своем коде…
Подскажите, а если произойдёт так, что контроллер отключится после пропадания питания, но основное питание вернётся до момента разряда WB-UPSv2, то как поведёт себя система?
Правильно понимаю, что контроллер в этом случае не включится после восстановления питания (т.к. не сможет отследить этот факт из-за того, что питание на нём и не пропадёт)?
При выполнении команды shutdown -h now, если до полного разряда аккумулятора вернется напряжение, контроллер должен запуститься штатно. Это поведение гарантируется встроенными механизмами управления питанием. После восстановления питания контроллер выполнит перезагрузку и начнет свою работу в обычном режиме, как при любом стандартном включении.