Python plugin: UPS Monitor
Moderator: leecollings
- TiXav
- Posts: 38
- Joined: Saturday 28 November 2015 22:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
For your information or for the others in the same case :
I come back to stable version : Domoticz crashes until the UPS plugin is activated
Yesterday evening, I did :
sudo apt-get update
sudo apt-get upgrade
then now it looks like working fine since
regards.
I come back to stable version : Domoticz crashes until the UPS plugin is activated
Yesterday evening, I did :
sudo apt-get update
sudo apt-get upgrade
then now it looks like working fine since
regards.
-
- Posts: 40
- Joined: Thursday 18 December 2014 20:12
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: Poland
- Contact:
Re: Python plugin: UPS Monitor
Thanks, very usefull. It works with QNAP (UPS NUT name: qnapups, default port) with no issues
HW: HP dc7900 USD running ESXi, RaspberryPi (few of it), AEON S2 USB stick, Fibaro modules (Dimmers, switches), 1-wire (DS18B20, DS2423), DSC Alarm with Envisalink ethernet module, MySensors, RFLink
-
- Posts: 228
- Joined: Sunday 28 August 2016 7:48
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
@TiXav and @Irybak,
Many thanks for your feedback for the community. Glad this works well for you.
Many thanks for your feedback for the community. Glad this works well for you.
- ycahome
- Posts: 248
- Joined: Sunday 12 February 2017 10:55
- Target OS: Linux
- Domoticz version: lat Beta
- Contact:
Re: Python plugin: UPS Monitor
Hello Logread and thank you for this wonderful plugin.
I own the "EATON 5E 650i" Ups and i thought that everything was OK, till i was realised that "UPS Status Mode" was not updated (except the first time on installation).
After some troubleshooting, found the following correction that need to be done:
My output for "status" is
Code: Select all
VAR ups ups.status "OL CHRG"
changed from:
Code: Select all
if key == "ups.status":
nvalue = 1 if "OL" in self.variables[key][2] else 4
svalue = "On Line" if "OL" in self.variables[key][2] else "Backup Power"
to:
Code: Select all
if key == "ups.status":
nvalue = 1 if "OL" in self.variables[key][2] else 4
svalue = "On Line" if "OL" in self.variables[key][2] else "Backup Power"
svalue = "On Line - Charging" if "OL CHRG" in self.variables[key][2] else "Backup Power"
Its time to bring more functionality to this plugin by processing all possible values of "ups.status":
Code: Select all
OL - On line (mains is present)
OB - On battery (mains is not present)
LB - Low battery
HB - High battery
RB - The battery needs to be replaced
CHRG - The battery is charging
DISCHRG - The battery is discharging (inverter is providing load power)
BYPASS - UPS bypass circuit is active - no battery protection is available
CAL - UPS is currently performing runtime calibration (on battery)
OFF - UPS is offline and is not supplying power to the load
OVER - UPS is overloaded
TRIM - UPS is trimming incoming voltage (called "buck" in some hardware)
BOOST - UPS is boosting incoming voltage
FSD - Forced Shutdown (restricted use, see the note below)
Code: Select all
UpsStatusCode = self.variables[key][2].find("OB", beg=0, end=len(string))
.....
.....
.....
if UpsStatusCode is OB or CHRG or DISCHRG or BYPASS or CAL or BOOST or FSD then raise a warning
if UpsStatusCode is RB or OVER or TRIM then raise an alarm
My regards,
--------
https://www.youtube.com/siakavelisgr
https://www.youtube.com/siakavelisgr
-
- Posts: 228
- Joined: Sunday 28 August 2016 7:48
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
@ycahome,
Thanks for your appreciation and suggestions... my own UPS does not have all these status levels, so did not think about these.
These would be great additions, though I am pretty tied up at the moment with my day job so not sure I can devote much time to this effort for now.
If you are willing to contribute code through GitHub via a pull request, please do so. If not you’ll have to bear with me.
Thanks for your appreciation and suggestions... my own UPS does not have all these status levels, so did not think about these.
These would be great additions, though I am pretty tied up at the moment with my day job so not sure I can devote much time to this effort for now.
If you are willing to contribute code through GitHub via a pull request, please do so. If not you’ll have to bear with me.
-
- Posts: 135
- Joined: Friday 13 November 2015 9:11
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: The Netherlands, Emmen Area
- Contact:
Re: Python plugin: UPS Monitor
It works fine, but i noticed that since begin this month the plugin not works anymore
Error log:
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) 'onHeartbeat' failed 'EOFError'.
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 138 in /home/pi/domoticz/plugins/NUT_UPS/plugin.py, function onHeartbeat
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 82 in /home/pi/domoticz/plugins/NUT_UPS/plugin.py, function onHeartbeat
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 327 in /usr/lib/python3.5/telnetlib.py, function read_until
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 403 in /usr/lib/python3.5/telnetlib.py, function read_very_lazy
Error log:
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) 'onHeartbeat' failed 'EOFError'.
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 138 in /home/pi/domoticz/plugins/NUT_UPS/plugin.py, function onHeartbeat
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 82 in /home/pi/domoticz/plugins/NUT_UPS/plugin.py, function onHeartbeat
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 327 in /usr/lib/python3.5/telnetlib.py, function read_until
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 403 in /usr/lib/python3.5/telnetlib.py, function read_very_lazy
-
- Posts: 135
- Joined: Friday 13 November 2015 9:11
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Location: The Netherlands, Emmen Area
- Contact:
Re: Python plugin: UPS Monitor
Solved after rebooting Qnap NASassenzuid wrote: ↑Tuesday 23 January 2018 16:30 It works fine, but i noticed that since begin this month the plugin not works anymore
Error log:
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) 'onHeartbeat' failed 'EOFError'.
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 138 in /home/pi/domoticz/plugins/NUT_UPS/plugin.py, function onHeartbeat
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 82 in /home/pi/domoticz/plugins/NUT_UPS/plugin.py, function onHeartbeat
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 327 in /usr/lib/python3.5/telnetlib.py, function read_until
2018-01-23 16:29:07.874 Error: (APC UPS02 Office) ----> Line 403 in /usr/lib/python3.5/telnetlib.py, function read_very_lazy
-
- Posts: 228
- Joined: Sunday 28 August 2016 7:48
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
@ycahome,
I actually found some spare time... testing the code for now. Will share updated plugin for your testing if you do not mind
I actually found some spare time... testing the code for now. Will share updated plugin for your testing if you do not mind
-
- Posts: 228
- Joined: Sunday 28 August 2016 7:48
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
New version 0.2.0 is available. For install/upgrade, please follow instructions from the wiki (https://www.domoticz.com/wiki/Plugins/NUT_UPS.html)
As suggested by @ycahome, the plugin now handles many more UPS status states and corresponding alert levels, as per list below:
Partially tested only, so please report any issue/bug (excluding general Domoticz Python Plugins framework issues please... nothing I can do about these).
As suggested by @ycahome, the plugin now handles many more UPS status states and corresponding alert levels, as per list below:
Code: Select all
#code (display, alarm level)
"OL": ("ONLINE", 1), # On line (mains is present)
"OB": ("ONBATTERY", 4), # On battery (mains is not present)
"LB": ("LOWBATTERY", 4), # Low battery
"HB": ("HIGHBATTERY", 1), # High battery
"RB": ("REPLACEBATTERY", 3), # The battery needs to be replaced
"CHRG": ("CHARGING", 1), # The battery is charging
"DISCHRG": ("DISCHARGING", 3), # The battery is discharging (inverter is providing load power)
"BYPASS": ("BYPASS", 3), # UPS bypass circuit is active - no battery protection is available
"CAL": ("CALLIBRATION", 1), # UPS is currently performing runtime calibration (on battery)
"OFF": ("OFF", 0), # UPS is offline and is not supplying power to the load
"OVER": ("OVERLOAD", 4), # UPS is overloaded
"TRIM": ("SMARTTRIM", 3), # UPS is trimming incoming voltage (called "buck" in some hardware)
"BOOST": ("BOOST", 3), # UPS is boosting incoming voltage
"FSD": ("FORCE_SHUTDOWN", 4) # Forced Shutdown
- ycahome
- Posts: 248
- Joined: Sunday 12 February 2017 10:55
- Target OS: Linux
- Domoticz version: lat Beta
- Contact:
Re: Python plugin: UPS Monitor
Thanks a lot LogRead for this upgraded version.
--------
https://www.youtube.com/siakavelisgr
https://www.youtube.com/siakavelisgr
-
- Posts: 42
- Joined: Friday 28 April 2017 19:11
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: USA
- Contact:
Re: Python plugin: UPS Monitor
@Logread It seems that when I don't have the domoticz GUI open, the virtual devices do not continue to update. Is this expected behavior? For example, I set a notification for "last update" to 10 minutes. Well, exactly 10 minutes (or any amount I set) after I close the GUI, the notification fires.
On that note, how do you recommend setting alarms for different values such as time remaining, charge amount, etc?
Thanks!
On that note, how do you recommend setting alarms for different values such as time remaining, charge amount, etc?
Thanks!
Last edited by hamster on Thursday 08 February 2018 3:03, edited 1 time in total.
- waaren
- Posts: 6028
- Joined: Tuesday 03 January 2017 14:18
- Target OS: Linux
- Domoticz version: Beta
- Location: Netherlands
- Contact:
Re: Python plugin: UPS Monitor
@logreadLogread wrote: ↑Wednesday 31 January 2018 8:36 New version 0.2.0 is available. For install/upgrade, please follow instructions from the wiki (https://www.domoticz.com/wiki/Plugins/NUT_UPS.html)
Partially tested only, so please report any issue/bug (excluding general Domoticz Python Plugins framework issues please... nothing I can do about these).
Many thanks for this excellent plugin. I already used it on my other domoticz installations and because I am testing with Jessie on my PI3 to investigate if I encounter less problems with domoticz beta with Python plugins in general, I installed it on that instance as well.
The problem I encountered there was:
Error: (Synology UPS) Error reading UPS variables_: ERR ACCESS-DENIED
after quite some comparing between the working (Stretch) instance and the on Jessie, I finally came to the network settings.
on the working version (Stretch)
ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.xxx.51 netmask 255.255.255.0 broadcast 192.168.xxx.255
...........
and on the failing one (Jessie)
ifconfig eth0
eth0 Link encap:Ethernet HWaddr b8:27:eb:95:ca:49
inet addr:192.168.xxx.97 Bcast:0.0.0.0 Mask:255.255.255.0
.........
After the command ifconfig eth0 broadcast 192.168.xxx.255
and a restart of the plugin (disable / enable ) in domoticz. The information from my UPS came in and the device got updated.
Is this something worthwhile to add to the wiki ?
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>> dzVents wiki
-
- Posts: 42
- Joined: Friday 28 April 2017 19:11
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: USA
- Contact:
Re: Python plugin: UPS Monitor
In addition to previous question: Do you have any plans to create a plugin version to work with beta versions? The way the beta handles plugins will eventually be the stable way, so was hoping you might be willing to have two versions until the merge
-
- Posts: 228
- Joined: Sunday 28 August 2016 7:48
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
@waaren,
Interesting catch but in my view this is more to be reported under raspberry pi network configuration (localhost loopback), as it is not specific to this plugin.
@hamster: not sure I get your question. The plugin had factored the breaking changes to the python framework long ago and it works well with betas (putting aside some issues certain users seem to have with stability of the plugin framework, that are not specific to this particular plugin it seems).
Interesting catch but in my view this is more to be reported under raspberry pi network configuration (localhost loopback), as it is not specific to this plugin.
@hamster: not sure I get your question. The plugin had factored the breaking changes to the python framework long ago and it works well with betas (putting aside some issues certain users seem to have with stability of the plugin framework, that are not specific to this particular plugin it seems).
-
- Posts: 42
- Joined: Friday 28 April 2017 19:11
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: USA
- Contact:
Re: Python plugin: UPS Monitor
odd, I recently went from stable to beta and now the plugin doesnt show in the hardware list at all. completely disappeared.
edit: DONKEY BALLS. so, apparently the "enabled" slider for lua/events/scripts wasnt showing properly in Chrome, so the thing was disabled this whole time. finally ran across another forum post that mentioned it and got it fixed... geez. sorry for false report. Thanks for the nice plugin!
edit2: note to any future readers, dont rename any of the devices from their defaults. will break any script you might want to use with this.
edit: DONKEY BALLS. so, apparently the "enabled" slider for lua/events/scripts wasnt showing properly in Chrome, so the thing was disabled this whole time. finally ran across another forum post that mentioned it and got it fixed... geez. sorry for false report. Thanks for the nice plugin!
edit2: note to any future readers, dont rename any of the devices from their defaults. will break any script you might want to use with this.
-
- Posts: 42
- Joined: Friday 28 April 2017 19:11
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 2020.2
- Location: USA
- Contact:
Re: Python plugin: UPS Monitor
new question:
I'm currently troubleshooting a stale data issue with nut, I know that isn't your territory BUT, I'm noticing that even when nut is reporting stale data AND the errors are showing in domoticz log, that the plugin is still refreshing the virtual sensors with the stale data as if everything is normal. Is there a way for the plugin to make the virtual sensors stop updating? That would allow me to monitor "last seen" to be notified when data goes stale.
Or, do you know how I might send a notification when "Error: (CyberPower) Error reading UPS variables: ERR DATA-STALE" shows up in the domoticz log?
Thanks!
I'm currently troubleshooting a stale data issue with nut, I know that isn't your territory BUT, I'm noticing that even when nut is reporting stale data AND the errors are showing in domoticz log, that the plugin is still refreshing the virtual sensors with the stale data as if everything is normal. Is there a way for the plugin to make the virtual sensors stop updating? That would allow me to monitor "last seen" to be notified when data goes stale.
Or, do you know how I might send a notification when "Error: (CyberPower) Error reading UPS variables: ERR DATA-STALE" shows up in the domoticz log?
Thanks!
-
- Posts: 228
- Joined: Sunday 28 August 2016 7:48
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
Yes, this is on my to do list... easy to implement. Bear with me please.hamster wrote: ↑Wednesday 14 February 2018 23:52 the plugin is still refreshing the virtual sensors with the stale data as if everything is normal. Is there a way for the plugin to make the virtual sensors stop updating? That would allow me to monitor "last seen" to be notified when data goes stale.
-
- Posts: 228
- Joined: Sunday 28 August 2016 7:48
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: France
- Contact:
Re: Python plugin: UPS Monitor
New version 0.2.1 is available. For install/upgrade, please follow instructions from the wiki (https://www.domoticz.com/wiki/Plugins/NUT_UPS.html).
This version changes the handling of communication errors with the UPS or the NUT server, as suggested by @hamster: in this event:
This version changes the handling of communication errors with the UPS or the NUT server, as suggested by @hamster: in this event:
- the plugin stops updating the devices
- the "UPS Status" device is marked as "Timed Out" (Red bar in GUI) if the host domoticz version handles this (only recent betas do)
- the "UPS Status" device shows "COMMUNICATION ERROR and its alert level is 0 (grey icon)
- ycahome
- Posts: 248
- Joined: Sunday 12 February 2017 10:55
- Target OS: Linux
- Domoticz version: lat Beta
- Contact:
Re: Python plugin: UPS Monitor
Hello Logread.
I think that your wiki guide for upgrade has an error
Code: Select all
get reset –-hard
Code: Select all
git reset –-hard
--------
https://www.youtube.com/siakavelisgr
https://www.youtube.com/siakavelisgr
Who is online
Users browsing this forum: No registered users and 1 guest