Показаны сообщения с ярлыком apcupsd. Показать все сообщения
Показаны сообщения с ярлыком apcupsd. Показать все сообщения

воскресенье, 10 ноября 2019 г.

Domoticz. Уведомляем РОССЕТИ о плохом напряжении

Мне сказочно повезло, я нахожусь последним на линии от ТП. А до меня живет удивительный сосед (не могу вычислить конкретно кто), который не заморачивался с распределением нагрузки по трем фазам и нахерачил все свои обогреватели на одну фазу. И теперь, с наступлением холодов, рандомно, в периоды с 6-8 утра, с 19-22 и при свете луны, у меня стабильно отщелкивают реле на низком напряжении в 198 В.
По нормативам, отклонения возможны в пределах +-10%. Итого от 198 до 242. У меня опускается до 184.
Звонил, писал, приезжали, замеряли - и ничего. Ничего не поменялось. Я понимаю, что надо искать негодяя, который 100% на 16А автомат повесил все обогреватели. А пока ищете, поставьте мне трехфазный стабилизатор напряжения на 15КВт)
Это всё нервы. Бесит когда гаснет свет, или вырубается микроволновка.

четверг, 15 ноября 2018 г.

Domoticz. Правильные иконки для APC Smart-UPS 750

После настройки мониторинга бесперебойника, мне не хватало нормальной визуализации этого устройства в Domoticz. Запилил по этому случаю набор иконок для APC Smart-UPS 750.

Добавляем иконки через Настройка>Дополнительно>Пользовательские иконки
 Указываем путь к скачанному архиву и жмём Загрузить.
Затем на вкладке Переключатели, жмём Редактировать на устройстве APC и выбираем правильную иконку.
В итоге получаем оригинальный вид устройства!

четверг, 8 ноября 2018 г.

Domoticz. Мониторинг ИБП

Добавим в Domoticz мониторинг состояния ИБП через bash-скрипт. Для работы скрипта необходима утилита apcupsd. Необходимые данные (состояние батареи, текущая нагрузка, напряжение, температура внутри корпуса) скрипт парсит с вывода apcaccess status.
john@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&param=udevice&'
SWITCH_CMD='json.htm?type=command&param=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
От нас требуется заполнить строку SERVER и idx для stat, volts, itemp, load, bcharge. Сохраняем в любой директории apc.sh

Сделаем скрипт исполняемым и добавим в 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

суббота, 8 сентября 2018 г.

APC Smart-UPS 750. Замена батарей

Обычных батарей за ~1К вроде Ginzzu GB-1290  хватает на год. И за этот год я напрочь забываю что где прописывать в демоне apcupsd после установки новых батарей. Симптомы просты - зеленые индикаторы уровня заряда батарей начинают моргать.

Смотрим текущее состояние ИБП командой
$sudo service apcupsd status
APC      : 001,043,1050
DATE     : 2018-09-08 11:47:30 +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-09-07 19:36:25 +0300
MODEL    : Smart-UPS 750
STATUS   : ONLINE
LINEV    : 221.7 Volts
LOADPCT  :  14.3 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :   7.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 221.7 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 : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI   : 14 days
STATFLAG : 0x07000008 Status Flag
MANDATE  : 2006-11-05
SERIALNO : AS0645666666
BATTDATE : 2018-09-07
NOMOUTV  : 220 Volts
NOMBATTV :  24.0 Volts
FIRMWARE : 651.13.I USB FW:7.3
END APC  : 2018-09-08 11:47:52 +0300
Останавливаем демон 
$sudo service apcupsd stop
И запускаем программу настройки
$sudo apctest
2018-09-08 11:58:28 apctest 3.14.10 (13 September 2011) debian
Checking configuration ...
Attached to driver: usb
sharenet.type = Network & ShareUPS Disabled
cable.type = USB Cable
mode.type = USB UPS Driver
Setting up the port ...
Doing prep_device() ...
You are using a USB cable type, so Im entering USB test mode
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing USB UPSes.

Getting UPS capabilities...SUCCESS

Please select the function you want to perform.

1)  Test kill UPS power 2)  Perform self-test 3)  Read last self-test result 4)  View/Change battery date 5)  View manufacturing date 6)  View/Change alarm behavior 7)  View/Change sensitivity 8)  View/Change low transfer voltage 9)  View/Change high transfer voltage 10) Perform battery calibration 11) Test alarm 12) View/Change self-test interval
 Q) Quit
Select function number:

Вводим 4, меняем дату ввода в эксплуатацию новых батарей в формате ММ\ДД\ГГ

После этого надо провести калибровку батарей - 10. Смотрим сколько ИБП тянет без питания.