вторник, 17 марта 2020 г.

Domoticz. Ippon Smart Winner 3000

Добавлю этот ИБП в Domoticz. Доступ к ИБП имею только по IP-адресу. В ПО для Ippon WinPower есть простенький веб-сервер на дефолтном 8888 порту.
Забираем инфу с него всё тем же curl'ом со страницы https://ipaddress:8888/1/json
curl 'https://185.103.27.56:8888/1/json'  -s --insecure
{"key":"USB/LINE-INT","device":{"key":"USB/LINE-INT","id":1,"protocol":12,"portIndex":4,"status":"","ip":null,"upsIndex":0,"statusIcon":"online","hasWarn":false},"version":"","status":"AVR Mode","model":"LINE-INT","loadPercentMax":17,"loadSegment1State":"","loadSegment2State":"","redundantNumber":"","batV":"110.0V","ls1":-1,"ls2":-1,"outA":"","outVA":"","outW":"","batCapacity":"100%","batTimeRemain":"","bypassFreq":"","bypassVolt":"","extStatus":0,"inFreq":"","inVolt":"234.6V","loadPercent":"17%","oidType":0,"outFreq":"50.0Hz","outVolt":"207.4V","warning":"","workMode":0,"iStatus":256,"noModule":false,"abmState":"","batTemp":"","cfgBatNumber":"","cfgKVA":"","emdAlarm1":"","emdAlarm2":"","emdHumidity":"","emdTemp":"","lastEvent1":"2020/03/16 21:47:30 Output: AVR mode","lastEvent2":"2020/03/16 21:47:30 Start Agent","statusColor":0,"supportTest":true,"upsTemp":"25.1C"}
Меня в первую очередь интересуют Заряд батареи "batCapacity":"100%" Входящее напряжение "inVolt":"234.6V" Текущая нагрузка "loadPercent":"17%" Температура ИБП "upsTemp":"25.1C"
Читаем как создать новые датчики для ИБП в Domoticz.

Для удобного разбора json, будем использовать утилиту jq
sudo apt instal jq
Пользоваться ей предельно просто, передаем вывод curl в jq с ключом -r с именем необходимого параметра. Для Температуры это будет
curl 'https://192.168.0.111:8888/1/json' -s --insecure | jq -r '.upsTemp'
25.1C
Создаем новый скрипт
#!/bin/bash
#Script to grab remote info from Ippon SmartWinner 3000 and update domoticz vars

SERVER='localhost:505/'
SERVER_CMD='json.htm?type=command&param=udevice&'
SWITCH_CMD='json.htm?type=command&param=switchlight&'

ippon_volts=`curl 'https://192.168.0.111:8888/1/json' -s --insecure | jq -r '.inVolt'`
ippon_temp=`curl 'https://192.168.0.111:8888/1/json' -s --insecure | jq -r '.upsTemp'`
ippon_bchar=`curl 'https://192.168.0.111:8888/1/json' -s --insecure | jq -r '.batCapacity' | cut -d '%' -f1`
ippon_load=`curl 'https://192.168.0.111:8888/1/json' -s --insecure | jq -r '.loadPercent' | cut -d '%' -f1`
echo $ippon_volts
echo $ippon_temp
echo $ippon_bchar
echo $ippon_load
hostcmd="http://${SERVER}${SERVER_CMD}idx=123&nvalue=0&svalue=${ippon_load}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=122&nvalue=0&svalue=${ippon_temp}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=121&nvalue=0&svalue=${ippon_bchar}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=120&nvalue=0&svalue=${ippon_volts}"
curlres=`curl -sS $hostcmd`

Не забываем делать его исполняемым и добавляем в cron выполняться каждую минуту
chmod +x ippon.sh
crontab -e
*/1 * * * * /home/pi/domoticz/scripts/ippon.sh >/dev/null

Комментариев нет :

Отправить комментарий