@invilso

Как можно запретить apcupsd управлять ПК, и оставить это кастомному скрипту?

Здравствуйте, купил себе стеренький бесперебойник APC Back-UPS CS650, и заменил в нем акумулятор на большой свинцово-кислотный, по напряжениям он совпадает со стоковым акумулятором. Подключил бесперебойник по USB к ПК, и когда я выдергиваю кабель питания из розетки, ПК почти моментально отключатеся, а после него отключается бесперебойник. Если остановить демон apcupsd то этого не происходит, и бесперебойник работает пока не сядет акумулятор. Чтобы посмотреть причину отключения я закоментировал команды в файле apccontrol. Вот что выводится в journalct -u apcupsd
Power failure on UPS invilso-systemproductname. Running on batteries. 
Remaining battery runtime below limit on UPS invilso-systemproductname. Doing shutdown. 
UPS invilso-systemproductname initiated Shutdown Sequence
Continuing with shutdown.

Вот конфиг apcupsd:
UPSCABLE usb

UPSTYPE usb
DEVICE /dev/usb/hid/hiddev[0-9]
LOCKFILE /run/apcupsd
SCRIPTDIR /etc/apcupsd


PWRFAILDIR /etc/apcupsd

NOLOGINDIR /etc



ONBATTERYDELAY 0


BATTERYLEVEL 0

MINUTES 9999

TIMEOUT 60

ANNOY 300


ANNOYDELAY 60


NOLOGON disable


KILLDELAY 0


NETSERVER on


NISIP 0.0.0.0


NISPORT 3551


EVENTSFILE /var/log/apcupsd.events


EVENTSFILEMAX 10


UPSCLASS standalone


UPSMODE disable


STATTIME 0

STATFILE /var/log/apcupsd.status


LOGSTATS off


DATATIME 0


#FACILITY DAEMON


#UPSNAME UPS_IDEN

# BATTDATE 09/29/23


#SENSITIVITY H


#WAKEUP 60


#SLEEP 180


#LOTRANSFER  208


#HITRANSFER 253


#RETURNCHARGE 15


#BEEPSTATE T


#LOWBATT 2


#OUTPUTVOLTS 230


#SELFTEST 336


Было бы хорошо если бы можно было полностью отключить автоматику apcupsd, и оставить только apcsuccess status для возможности управления своим скриптом опираясь на напряжение, вот сообственно вывод apcsucces status:
APC      : 001,045,1081
DATE     : 2023-10-04 14:52:53 +0300  
HOSTNAME : invilso-systemproductname
VERSION  : 3.14.14 (31 May 2016) unknown
UPSNAME  : invilso-systemproductname
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2023-10-04 14:52:44 +0300  
MODEL    : Back-UPS CS 650 
STATUS   : ONLINE 
LINEV    : 230.0 Volts
LOADPCT  : 34.0 Percent
BCHARGE  : 15.0 Percent
TIMELEFT : 2.9 Minutes
MBATTCHG : 0 Percent
MINTIMEL : 9999 Minutes
MAXTIME  : 99999 Seconds
OUTPUTV  : 230.0 Volts
SENSE    : Medium
DWAKE    : 0 Seconds
DSHUTD   : 0 Seconds
LOTRANS  : 160.0 Volts
HITRANS  : 278.0 Volts
RETPCT   : 0.0 Percent
ITEMP    : 29.2 C
ALARMDEL : 30 Seconds
BATTV    : 13.4 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Low line voltage
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI   : None
STATFLAG : 0x05000008
MANDATE  : 2004-06-09
SERIALNO : QB0424134379  
BATTDATE : 2023-09-29
NOMOUTV  : 230 Volts
NOMINV   : 230 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 400 Watts
FIRMWARE : 817.v2.I USB FW:v2
END APC  : 2023-10-04 14:52:55 +0300


Буду очень благодарен вам, если поможете.
P.S. Кабели к акумулятору удлинил, но удлинил кабелем 16мм2 и длиной 50см, сильного падения напряжения быть не должно даже при полной нагрузке.
  • Вопрос задан
  • 410 просмотров
Решения вопроса 1
@invilso Автор вопроса
Чтобы исправить быстрое выключение ПК и ИБП, мне пришлось установить для всех конфигураций значения по умолчанию, после чего ПК проработал около 15 минут.
Поискав в сети несколько часов, я нашел эту статью , в которой объяснялось, как сделать apcupsd неспособным управлять питанием ПК. Необходимо было закомментировать в файле apccontrol пути к выключению ПК и команде wall. Но проблема заключалась в том, что статус оставался: SHUTTING DOWN Чтобы удалить его при восстановлении питания от сети, мне удалось использовать этот код на Python:
result = await aioapcaccess.request_status(host='localhost', port=3551)
if float(aioapcaccess.split_unit(result["LINEV"])[0]) > 170 and result['STATUS'] == 'SHUTTING DOWN':
    subprocess.run('sudo systemctl restart apcupsd.service', shell=True, check=True)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы