added runtimestats

This commit is contained in:
Nico Melone
2023-02-05 09:01:48 -06:00
parent 33e20696f7
commit d048dc6541
5 changed files with 23 additions and 5 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -5,6 +5,7 @@ import json
import os
import time
from random import randint
from datetime import datetime as dt
# PERSISTENCE FILE
import persistence
PERSIST = persistence.load("extra_data.json")
@@ -69,7 +70,7 @@ class start(threading.Thread, deviceBase):
mqtt=mqtt, Nodes=Nodes)
self.daemon = True
self.version = "16"
self.version = "17"
self.finished = threading.Event()
self.force_send = False
self.public_ip_address = ""
@@ -81,7 +82,8 @@ class start(threading.Thread, deviceBase):
self.rts = RTS()
self.rts.loadDataFromFile()
self.rts.saveDataToFile()
self.rts.manageTime()
self.today = dt.now().date()
threading.Thread.start(self)
# this is a required function for all drivers, its goal is to upload some piece of data
@@ -154,6 +156,14 @@ class start(threading.Thread, deviceBase):
#time.sleep(TAG_DATAERROR_SLEEPTIME) # sleep to allow Micro800 to handle ENET requests
except Exception as e:
log.info("Error: {}".format(e))
try:
self.rts.manageTime()
if dt.now().date() != self.today:
self.sendtodbDev(1, "avgFrequency30Days", self.rts.calculateAverageHertzMultiDay(),0,'advvfdipp')
self.sendtodbDev(1, "percentRunTime30Days", self.rts.calculateRunPercentMultiDay(), 0,'advvfdipp')
self.today = dt.now().date()
except Exception as e:
log.error("Error: {}".format(e))
time.sleep(30) #sleep for 30 seconds after a full poll
# print("advvfdipp driver still alive...")
if self.force_send:

View File

@@ -9,7 +9,7 @@
"file5": "runtimeStats.py"
},
"deviceName": "advvfdipp",
"releaseVersion": "16",
"releaseVersion": "17",
"driverFileName": "advvfdipp.py",
"driverId": "0100"
}

View File

@@ -103,7 +103,7 @@ class start(threading.Thread, deviceBase):
mqtt=mqtt, Nodes=Nodes)
self.daemon = True
self.version = "27"
self.version = "28"
self.finished = threading.Event()
self.force_send = False
self.public_ip_address = ""
@@ -204,8 +204,16 @@ class start(threading.Thread, deviceBase):
self.sendtodbDev(1, chan.mesh_name, chan.value, 0, 'PiFlow')
if chan.value > 0:
self.sendtodbDev(1, "run_status", "Running", 0, 'PiFlow')
if not self.rts.runs[self.rts.todayString]["run_" + str(self.rts.currentRun)]["start"]:
self.rts.startRun()
self.rts.saveDataToFile()
else:
self.sendtodbDev(1,"run_status", "Stopped", 0, 'PiFlow')
if self.rts.runs[self.rts.todayString]["run_" + str(self.rts.currentRun)]["start"] and not self.rts.runs[self.rts.todayString]["run_" + str(self.rts.currentRun)]["end"]:
self.rts.endRun()
self.rts.saveDataToFile()
self.sendtodbDev(1, "percentRunTime30Days", self.rts.calculateRunPercentMultiDay(), 0,'PiFlow')
elif chan.mesh_name == "run_status":
if "Operating" in val and not self.rts.runs[self.rts.todayString]["run_" + str(self.rts.currentRun)]["start"]:
self.rts.startRun()

View File

@@ -3,7 +3,7 @@
"driverFileName":"PiFlow.py",
"deviceName":"piflow",
"driverId":"0280",
"releaseVersion":"27",
"releaseVersion":"28",
"files": {
"file1":"PiFlow.py",
"file2":"Channel.py",