Добавим в Domoticz мониторинг состояния ИБП через bash-скрипт. Для работы скрипта необходима утилита apcupsd. Необходимые данные (состояние батареи, текущая нагрузка, напряжение, температура внутри корпуса) скрипт парсит с вывода apcaccess status.
Сам скрипт
От нас требуется заполнить строку SERVER и idx для stat, volts, itemp, load, bcharge. Сохраняем в любой директории apc.shjohn@vaio:~$ apcaccess status
APC : 001,045,1159
DATE : 2018-11-05 22:06:53 +0300
HOSTNAME : vaio
VERSION : 3.14.10 (13 September 2011) debian
UPSNAME : APC750
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2018-10-29 19:14:36 +0300
MODEL : Smart-UPS 750
STATUS : ONLINE
LINEV : 218.8 Volts
LOADPCT : 31.8 Percent Load Capacity
BCHARGE : 100.0 Percent
TIMELEFT : 37.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 218.8 Volts
SENSE : Medium
DWAKE : -01 Seconds
DSHUTD : 270 Seconds
LOTRANS : 196.0 Volts
HITRANS : 253.0 Volts
RETPCT : 000.0 Percent
ITEMP : 42.3 C Internal
ALARMDEL : No alarm
BATTV : 27.0 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 1
XONBATT : 2018-11-03 07:54:27 +0300
TONBATT : 0 seconds
CUMONBATT: 11 seconds
XOFFBATT : 2018-11-03 07:54:38 +0300
LASTSTEST: 2018-11-03 07:54:27 +0300
SELFTEST : NO
STESTI : 14 days
STATFLAG : 0x07000008 Status Flag
MANDATE : 2006-11-05
SERIALNO : AS0645222525
BATTDATE : 2018-09-07
NOMOUTV : 220 Volts
NOMBATTV : 24.0 Volts
FIRMWARE : 651.13.I USB FW:7.3
END APC : 2018-11-05 22:06:54 +0300
Будем считать, что apcupsd установлен, и связь с ИБП настроена. Осталось только создать необходимые датчики и добавить скрипт в crontab.Сам скрипт
#!/bin/bash
#Script to grab APC status and update domoticz vars
SERVER='localhost:505/'
SERVER_CMD='json.htm?type=command¶m=udevice&'
SWITCH_CMD='json.htm?type=command¶m=switchlight&'
cap_data=`apcaccess status`
#apc_total = "apcaccess status"
#echo "$cap_data"
apc_stat=`awk '/STATUS / {print $3}' <<< "$cap_data"`
apc_volts=`awk '/LINEV / {print $3}' <<< "$cap_data"`
apc_itemp=`awk '/ITEMP / {print $3}' <<< "$cap_data"`
apc_load=`awk '/LOADPCT / {print $3}' <<< "$cap_data"`
apc_bcharge=`awk '/BCHARGE / {print $3}' <<< "$cap_data"`
echo $apc_stat
echo $apc_volts
echo $apc_itemp
echo $apc_load
echo $apc_bcharge
hostcmd="http://${SERVER}${SERVER_CMD}idx=36&nvalue=0&svalue=${apc_itemp}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=35&nvalue=0&svalue=${apc_volts}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=37&nvalue=0&svalue=${apc_load}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=38&nvalue=0&svalue=${apc_bcharge}"
curlres=`curl -sS $hostcmd`
if [ "$apc_stat" = "ONLINE" ]; then
#echo "APC SYSTEM IS ONLINE"
hostcmd="http://${SERVER}${SWITCH_CMD}idx=39&switchcmd=On&level=0"
curlres=`curl -sS $hostcmd`
else #echo "APC SYSTEM IS OFFLINE"
hostcmd="http://${SERVER}${SWITCH_CMD}idx=39&switchcmd=Off&level=0"
curlres=`curl -sS $hostcmd`
fi
Сделаем скрипт исполняемым и добавим в crontab, с запуском раз в минуту.
chmod +x apc.sh
crontab -e
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
* * * * * /home/john/apc.sh
Стоит обратить внимание, что для корректной работы apcaccess от пользователя, в crontab, можно в самом верху, следует добавить пару строчек с переменными окружения
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
Иначе скрипт будет отрабатывать по crontab без результата!Теперь, когда со скриптами разобрались, переходим в Domoticz. Будем создавать датчики.
Традиционно - Настройка > Оборудование
Нажимаем Создать виртуальные датчики
Переходим в Настройка > Устройства переписываем idx каждого apc устройства, и заполняем их в скрипт напротив соответствующих переменных.
Так выглядят готовые настроенные датчики
А так, график пропадания электричества за год
Когда подойдёт время менять батареи, читайте как это сделать далее.
Как запилить красивые иконки для APC Smart-UPS 750
Комментариев нет :
Отправить комментарий