Fon Simó

Monitorizar SAI APC con Raspberry Pi

Si necesitas controlar un SAI APC con Raspberry Pi, has llegado al sitio correcto! 🙂

La verdad es que es muy fácil, con un par de comandos podrás controlar un SAI APC, ejecutar comandos cuando se vaya la luz, cuando vuelva, si se pierde la conexión. En fin, controlar lo que pasa en tu UPS en Raspberry Pi.

En mi caso, tengo una APC Back-UPS BX-700U-GR, y Raspbian 9, pero según vi en los artículos originales, esto lleva funcionando muchos años y es compatible con todos los SAI de APC (al menos por USB). Vamos a usar el módulo «apcupsd – APC UPS Power Management (daemon)»

Al conectar la UPS por USB, quería verificar si era reconocida. Si haciendo un lsubs ves que aparece el SAI, podemos seguir adelante. 😉

pi@pi: lsusb
Bus 001 Device 005: ID 051d:0002 American Power Conversion Uninterruptible Power Supply

Instalar software para monitorizar SAI APC con Raspberry Pi

Así que lo primero, instalar el paquete

sudo apt install apcupsd

Luego, necesitamos modificar el fichero apcupsd.conf, que está en /etc/apcupsd

sudo nano /etc/apcupsd/apcupsd.conf

Y modificar estas líneas para que la Raspberry reconozca el SAI (la mayoría de los SAIs modernos son USB)

# Opcional, yo le puse el nombre del modelo aunque el software lo reconoce igualmente 

UPSNAME BX700

# Estos parámetros son obligatorios que estén así para que funcione por USB
UPSCABLE usb
UPSTYPE usb
DEVICE

Y reiniciamos servicio para que tome en cuenta la nueva configuración

sudo service apcupsd restart

Probando que funciona apcupsd en Raspbian

Hay un comando para probar si todo está listo (apctest) pero yo directamente hice:

pi@pi: sudo apcaccess 
HOSTNAME : Pi
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : BX700
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STATUS : ONLINE
LINEV : 218.0 Volts
LOADPCT : 21.0 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 25.8 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
SENSE : Medium
LOTRANS : 140.0 Volts
HITRANS : 300.0 Volts
ALARMDEL : 30 Seconds
BATTV : 13.7 Volts
LASTXFER : Low line voltage
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x05000008
BATTDATE : 2018-04-09
NOMINV : 230 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 390 Watts
FIRMWARE : 924.Z3 .I USB FW:Z3

La línea STATUS : ONLINE significa que la Raspberry ya ha reconocido el SAI APC. Con lo cual, ya podemos continuar

Iniciando software para monitorizar SAI APC en Raspberry Pi

Primero tenemos que confirmar al daemon que el SAI está configurado.

pi@pi: sudo nano /etc/default/apcupsd 

Y cambiamos esta línea:
ISCONFIGURED=yes

Y hacemos que arranque por defecto


pi@pi: update-rc.d apcupsd defaults

Scripts para controlar el SAI APC

Ahora viene la parte interesante. El paquete apcupsd viene con unos scripts por defecto para controlar el comportamiento de la Raspberry. Dichos scripts están en /etc/apcupsd.

Hay varios scripts:

changeme: Cuando la batería necesita ser remplazada
commfailure: Cuando falla la comunicación con el SAI
commok: Cuando se restablece la comunicación con el SAI
killpower: Script ejecutado antes que apcupsd apague el SAI
offbatery: Cuando se restablece alimentación (vuelve la luz)
onbattery: Cuando se va la luz y el SAI pasa a estado batería

A partir de aquí, ya puedes modificarlos a gusto. En mi caso, voy a hacer que Zabbix se alimente de un «flag» que voy a poner con el estado del SAI, y en caso de que la batería se agote, apague mi disco NAS. Y todo para que mi sistema de videovigilancia siga siempre activo. 😛



Salir de la versión móvil