Главная > Умный дом > Domoticz и UPS APC

Domoticz и UPS APC


14 октября 2018. Разместил: dimon
Появилось желание понаблюдать за состоянием электрической сети с помощью сервера домашней автоматизации на Domoticz. Так как вся система запитана через APC Back-UPS ES Power-Saving 700VA попробуем просто его добавить в Домотикз.


Подключаем источник бесперебойного питания интерфейсным кабелем APC к usb порту Raspberry Pi с уже установленными и настроенным Domoticz на борту:

Domoticz и UPS APC




I. Настраиваем службу Network UPS tools на Raspberry Pi

Подключаемся через SSH к малине и устанавливаем два пакета NUT сервер и клиент:

pi@raspberrypi:~ $ sudo apt-get install nut-client nut-server


Проверяем виден ли наш УПС, подключенный через USB:

pi@raspberrypi:~ $ lsusb
Bus 001 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 005: ID 046d:c534 Logitech, Inc.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $


Если команда вызывает ошибку то устанавливаем usbutils:


Теперь отредактируем конфигурационный файл /etc/nut/ups.conf нашего NUT сервера, добавив в него наш UPS (строки добавляем в конец файла):


[apc]
driver = usbhid-ups
port = auto
desc = "APC UPS"


Список драйверов можно посмотреть на страничке Network UPS Tools в разделе drivers list.

Теперь протестируем установленные драйверы:

pi@raspberrypi:~ $ sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.7.2
Network UPS Tools - Generic HID driver 0.38 (2.7.2)
USB communication driver 0.32
Driver exited abnormally
Network UPS Tools - Generic HID driver 0.38 (2.7.2)
USB communication driver 0.32
kill: No such process
Driver exited abnormally
Network UPS Tools - Generic HID driver 0.38 (2.7.2)
USB communication driver 0.32
kill: No such process
Driver exited abnormally
pi@raspberrypi:~ $


Странно. В первом источнике [1] такой ошибке не было, а вот во втором [2] тоже так было, поэтому закроем пока на нее глаза.

В файле /etc/nut/upsd.conf раскомментируем строку LISTEN 127.0.0.1 3493.

В файл /etc/nut/nut.conf изменим MODE на MODE=netserver.

Перезагружаем малину.


Проверяем запустились ли службы, выполнив команду sudo systemctl status nut-server.service:

Domoticz и UPS APC


Проверка того, что службы запускаются автоматически:

pi@raspberrypi:~ $ ps -ef | grep ups
nut        669     1  0 14:21 ?        00:00:01 /lib/nut/usbhid-ups -a apc
nut        672     1  0 14:21 ?        00:00:00 /lib/nut/upsd
pi        1802  1004  0 14:29 pts/0    00:00:00 grep --color=auto ups
pi@raspberrypi:~ $


Посмотрим какие значения может считать NUT server с нашего APC Back-UPS ES Power-Saving 700VA с помощью команды upsc apc:

pi@raspberrypi:~ $ upsc apc
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: not set
battery.mfr.date: 2011/02/03
battery.runtime: 2625
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 13.5
battery.voltage.nominal: 12.0
device.mfr: APC
device.model: Back-UPS ES 700G
device.serial: 
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.7.2
driver.version.data: APC HID 0.95
driver.version.internal: 0.38
input.sensitivity: medium
input.transfer.high: 266
input.transfer.low: 180
input.voltage: 218.0
input.voltage.nominal: 230
ups.beeper.status: disabled
ups.delay.shutdown: 20
ups.firmware: 871.O2 .I
ups.firmware.aux: O2
ups.load: 0
ups.mfr: APC
ups.mfr.date: 2011/02/03
ups.model: Back-UPS ES 700G
ups.productid: 0002
ups.serial: 
ups.status: OL
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
pi@raspberrypi:~ $




II. Настраиваем Domoticz

Устанавливаем плагин UPS Monitor по инструкции из источника [3], выполняя последовательно команды:


pi@raspberrypi:~ $ cd domoticz/plugins/
pi@raspberrypi:~/domoticz/plugins $ mkdir NUT_UPS
pi@raspberrypi:~/domoticz/plugins $ git clone https://github.com/999LV/NUT_UPS.git NUT_UPS
Cloning into 'NUT_UPS'...
remote: Enumerating objects: 26, done.
remote: Total 26 (delta 0), reused 0 (delta 0), pack-reused 26
Unpacking objects: 100% (26/26), done.
Checking connectivity... done.
pi@raspberrypi:~/domoticz/plugins $ cd NUT_UPS
pi@raspberrypi:~/domoticz/plugins/NUT_UPS $ sudo chmod +x plugin.py
pi@raspberrypi:~/domoticz/plugins/NUT_UPS $ sudo /etc/init.d/domoticz.sh restart
  [ ok ] Restarting domoticz.sh (via systemctl): domoticz.service.
pi@raspberrypi:~/domoticz/plugins/NUT_UPS $


Далее идем в домотикз в раздел Настройка - Оборудование и добавляем UPS Monitor:

Domoticz и UPS APC


Если UPS NUT name не будет соответствовать имени раздела который вы задавали в ups.conf, то получите ошибку в домотикз:

2018-10-14 15:00:02.978 Error: (UPS Monitor) Error reading UPS variables: BEGIN LIST VAR APC


В результате всех этих настроек получаем устройства в domoticz значения с которых можно использовать в своих сценариях:

Domoticz и UPS APC






Источники информации:
[1] Using a raspberry-pi as a UPS server with nut
[2] Мониторинг состояния ИБП в Domoticz
[3] domoticz/wiki - UPS Monitoring python plugin for Domoticz
[4] domoticz/forum - Remote UPS for Raspberry

Вернуться назад