diff options
| -rw-r--r-- | upsmartmonitor.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/upsmartmonitor.py b/upsmartmonitor.py index 360f375..db8d622 100644 --- a/upsmartmonitor.py +++ b/upsmartmonitor.py @@ -1,6 +1,7 @@ from influxdb_client import InfluxDBClient, Point, WritePrecision from influxdb_client.client.write_api import SYNCHRONOUS import dotenv +import datetime import pytesseract import subprocess import tempfile @@ -18,7 +19,8 @@ ROIS = { "temperature": ((356, 312, 92, 27), True), "battery_capacity": ((566, 312, 90, 26), True), "ups_status": ((304, 429, 87, 23), False), - "utility_status": ((523, 427, 121, 32), False) + "utility_status": ((523, 427, 121, 32), False), + "discharge_time": ((217, 385, 58, 16), False) } def get_window_geometries(): @@ -62,6 +64,7 @@ def read_image(im_path): fields[field] = ocr fields["on_battery"] = int(fields["utility_status"] != 'Utility Normal') + fields["discharge_time"] = datetime.timedelta(**dict(zip(["hours", "minutes", "seconds"], [int(i) for i in fields["discharge_time"].split(":")]))).seconds return fields def influx_write(fields): @@ -77,20 +80,21 @@ def influx_write(fields): os.environ["DOCKER_INFLUXDB_INIT_BUCKET"], os.environ["DOCKER_INFLUXDB_INIT_ORG"], [{ - "measurement": "ups_status", + "measurement": "upsmartmonitor", "fields": fields }], write_precision = WritePrecision.S ) def main(): - focus_upsmart() + # focus_upsmart() with tempfile.TemporaryDirectory() as td: - fp = os.path.join(td, "upsmart.png") - subprocess.run(["gnome-screenshot", "--file=%s" % fp, "-w"]) + # fp = os.path.join(td, "upsmart.png") + # subprocess.run(["gnome-screenshot", "--file=%s" % fp, "-w"]) - fields = read_image(fp) + fields = read_image("upsmart.jpg") + # fields = read_image(fp) print(json.dumps(fields, indent = 4)) influx_write(fields) |
