From ce9e4ea7e03967e9cb3947ef39ee539ff38c484b Mon Sep 17 00:00:00 2001 From: Carsten Schmiemann Date: Sat, 12 Feb 2022 22:28:58 +0100 Subject: [PATCH] Corrected spelling of items, added Battery On Status and Runtime counter --- openhab2/items/apc_ups.items | 8 ++++++-- openhab2/rules/apc_ups.rules | 12 ++++++++++++ openhab2/sitemaps/default.sitemap | 26 ++++++++++++++++---------- openhab2/things/modbus_apc.ups.things | 6 +++++- 4 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 openhab2/rules/apc_ups.rules diff --git a/openhab2/items/apc_ups.items b/openhab2/items/apc_ups.items index 85fa8df..665d466 100644 --- a/openhab2/items/apc_ups.items +++ b/openhab2/items/apc_ups.items @@ -1,10 +1,14 @@ Number apc_ups_time_remaining "Zeit verbleibend [%.1f min]" {channel="modbus:data:apc_ups:apc_ups_measurements:time_remaining:number", expire="1m,0"} Number apc_ups_soc "Ladezustand [%.0f %%]" {channel="modbus:data:apc_ups:apc_ups_measurements:soc:number", expire="1m,0"} -Number apc_ups_battery_pos "Batteriespannung + [%.2f V]" {channel="modbus:data:apc_ups:apc_ups_measurements:battery_pos:number", expire="1m,0"} +Number apc_ups_battery_pos "Batteriespannung [%.2f V]" {channel="modbus:data:apc_ups:apc_ups_measurements:battery_pos:number", expire="1m,0"} Number apc_ups_battery_temp "Batterietemperatur [%.2f °C]" {channel="modbus:data:apc_ups:apc_ups_measurements:battery_temp:number", expire="1m,0"} Number apc_ups_load_w "Last [%.2f %%W]" {channel="modbus:data:apc_ups:apc_ups_measurements:load_W:number", expire="1m,0"} Number apc_ups_load_va "Last [%.2f %%VA]" {channel="modbus:data:apc_ups:apc_ups_measurements:load_VA:number", expire="1m,0"} Number apc_ups_ac_current "Ausgangstrom [%.2f A]" {channel="modbus:data:apc_ups:apc_ups_measurements:ac_current:number", expire="1m,0"} Number apc_ups_ac_voltage "Ausgangsspannung [%.2f V]" {channel="modbus:data:apc_ups:apc_ups_measurements:ac_voltage:number", expire="1m,0"} Number apc_ups_ac_freq "Ausgangsfreq [%.2f Hz]" {channel="modbus:data:apc_ups:apc_ups_measurements:ac_freq:number", expire="1m,0"} -Number apc_ups_work "Wirkarbeit [%.2f kWh]" {channel="modbus:data:apc_ups:apc_ups_measurements:work:number", expire="1m,0"} \ No newline at end of file +Number apc_ups_work "Wirkarbeit [%.2f kWh]" {channel="modbus:data:apc_ups:apc_ups_measurements:work:number", expire="1m,0"} + +Switch apc_status_OnBattery "USV Batteriebetrieb [%s]" {channel="modbus:data:apc_ups:apc_status:on_battery:switch", expire="1m,0"} + +Number apc_ups_counter "Zeit auf Batterie [%.0f sec]" \ No newline at end of file diff --git a/openhab2/rules/apc_ups.rules b/openhab2/rules/apc_ups.rules new file mode 100644 index 0000000..dfb6b5e --- /dev/null +++ b/openhab2/rules/apc_ups.rules @@ -0,0 +1,12 @@ +rule "Calculate Battery Runtime" +when + Time cron "* * * ? * * *" +then + if (apc_status_OnBattery.state == ON) { + val temp = (apc_ups_counter.state as Number) + 1; + apc_ups_counter.sendCommand(temp); + } + if (apc_ups_counter.state == NULL || apc_ups_counter.state == "") { + apc_ups_counter.sendCommand("0"); + } +end \ No newline at end of file diff --git a/openhab2/sitemaps/default.sitemap b/openhab2/sitemaps/default.sitemap index 68cc406..ea8c27c 100644 --- a/openhab2/sitemaps/default.sitemap +++ b/openhab2/sitemaps/default.sitemap @@ -77,16 +77,22 @@ sitemap default label="Power Station Manager" { } } Group item=apc_ups_time_remaining label="APC USV" { - Text item=apc_ups_time_remaining - Text item=apc_ups_soc - Text item=apc_ups_battery_pos - Text item=apc_ups_battery_temp - Text item=apc_ups_load_w - Text item=apc_ups_load_va - Text item=apc_ups_ac_current - Text item=apc_ups_ac_voltage - Text item=apc_ups_ac_freq - Text item=apc_ups_work + Frame label="APC USV Büro - Übersicht" { + Text item=apc_ups_time_remaining + Text item=apc_ups_soc + Text item=apc_ups_battery_pos + Text item=apc_ups_battery_temp + Text item=apc_ups_load_w + Text item=apc_ups_load_va + Text item=apc_ups_ac_current + Text item=apc_ups_ac_voltage + Text item=apc_ups_ac_freq + Text item=apc_ups_work + } + Frame label="Zustand, Zeitmessung" { + Text item=apc_status_OnBattery + Text item=apc_ups_counter } } + } } \ No newline at end of file diff --git a/openhab2/things/modbus_apc.ups.things b/openhab2/things/modbus_apc.ups.things index 8d29a0c..9dcc9c9 100644 --- a/openhab2/things/modbus_apc.ups.things +++ b/openhab2/things/modbus_apc.ups.things @@ -1,6 +1,6 @@ Bridge modbus:tcp:apc_ups [ host="192.168.0.122", port=502, id="1" ] { - Bridge poller apc_ups_measurements [ start=128, length=19, refresh=2000, type="holding" ] { + Bridge poller apc_ups_measurements [ start=128, length=19, refresh=200, type="holding" ] { Thing data time_remaining [ readStart="128", readValueType="uint32", readTransform="JS(divide60.js)"] Thing data soc [ readStart="130", readValueType="uint16", readTransform="JS(divide512.js)"] Thing data battery_pos [ readStart="131", readValueType="int16", readTransform="JS(divide32.js)" ] @@ -12,4 +12,8 @@ Bridge modbus:tcp:apc_ups [ host="192.168.0.122", port=502, id="1" ] { Thing data ac_freq [ readStart="144", readValueType="uint16", readTransform="JS(divide128.js)" ] Thing data work [ readStart="145", readValueType="uint32", readTransform="JS(divide1000.js)" ] } + + Bridge poller apc_status [ start=18, length=1, refresh=200, type="holding" ] { + Thing data on_battery [ readStart="18.0", readValueType="bit"] + } } \ No newline at end of file