Вимоги
- Openhab на ubuntu
- Back-UPS XS 1100CI (можна використовувати будь-який інший, але в мене саме такий)
Підготовка
Встановлення Apcupsd
Інструкцію можна знайти наприклад за цим посиланням.
Як результат ми повинні мати змогу запустити команду apcaccess, результат виводу котрої ми й будемо використовувати
pi@openhab:/etc/openhab2 $ apcaccess APC : 001,036,0868 DATE : 2017-07-15 12:12:51 +0300 HOSTNAME : openhab VERSION : 3.14.12 (29 March 2014) debian UPSNAME : openhab CABLE : USB Cable DRIVER : USB UPS Driver UPSMODE : Stand Alone STARTTIME: 2017-07-15 11:02:42 +0300 MODEL : Back-UPS XS 1100CI STATUS : ONLINE LINEV : 236.0 Volts LOADPCT : 1.0 Percent BCHARGE : 100.0 Percent TIMELEFT : 269.3 Minutes MBATTCHG : 5 Percent MINTIMEL : 3 Minutes MAXTIME : 0 Seconds SENSE : Medium LOTRANS : 155.0 Volts HITRANS : 280.0 Volts ALARMDEL : No alarm BATTV : 27.2 Volts LASTXFER : No transfers since turnon NUMXFERS : 0 TONBATT : 0 Seconds CUMONBATT: 0 Seconds XOFFBATT : N/A SELFTEST : NO STATFLAG : 0x05000008 SERIALNO : XBXXXXX0XXXX BATTDATE : 2015-03-17 NOMINV : 230 Volts NOMBATTV : 24.0 Volts NOMPOWER : 660 Watts FIRMWARE : 920.T4 .I USB FW:T4 END APC : 2017-07-15 12:12:51 +0300
Підготовка OpenHAB
Відкриємо панель конфігурування OpenHAB та встановимо
Конфігурування OpenHAB
things
Створимо файл /etc/openhab2/things/system.things
Thing exec:command:apc [command="/sbin/apcaccess -p LINEV", transform="REGEX((\\d+.\\d+).*)", interval=5, timeout=1, autorun=true]
items
Створимо файл /etc/openhab2/items/system.items
String SYSTEM_APC_VOLTAGE "[%s]" (SYSTEM) {channel="exec:command:apc:output"} Number SYSTEM_APC_VOLTAGE_DOUBLE "Напруга [%.1fВ]" <energy> (SYSTEM)
Item SYSTEM_APC_VOLTAGE_DOUBLE треба через те, що exec повертає строку, а нам треба число. Створимо правило для перетворення строки до числа
rules
Створимо файл /etc/openhab2/rules/system.rules
rule "Convert System APC voltage" when Item SYSTEM_APC_VOLTAGE changed then SYSTEM_APC_VOLTAGE_DOUBLE.postUpdate(SYSTEM_APC_VOLTAGE.state.toString) end
persist
Створимо конфігурацію для зберігання напруги до бази даних. Додамо строку
SYSTEM_APC_VOLTAGE_DOUBLE : strategy = everyMinute
у файл /etc/openhab2/persistence/jdbc.persist
sitemap
Створимо графік для відображення історічних даних
Додамо строку
Chart label="Voltage" item=SYSTEM_APC_VOLTAGE_DOUBLE period=12h refresh=300
у файл /etc/openhab2/sitemaps/house.sitemap
Як результат маємо такий графік: