Dateien nach "old" hochladen
This commit is contained in:
190
old/pnd.py
Normal file
190
old/pnd.py
Normal file
@@ -0,0 +1,190 @@
|
||||
import pndSRC as mypnd
|
||||
import pndConfig as cfg
|
||||
import ntptime
|
||||
import ujson
|
||||
import time
|
||||
import machine
|
||||
import array
|
||||
import gc
|
||||
|
||||
gc.enable()
|
||||
|
||||
from machine import Pin, I2C, ADC
|
||||
gc.enable()
|
||||
|
||||
class rt():
|
||||
|
||||
wifi = mypnd.wifi
|
||||
Psystem = mypnd.Psystem
|
||||
lastTry = 0
|
||||
cycle = 0
|
||||
looping = 0
|
||||
|
||||
def run(self):
|
||||
self.cycle = 1
|
||||
timer = "s"
|
||||
while True:
|
||||
try:
|
||||
## main loop
|
||||
gc.collect()
|
||||
|
||||
machine.idle()
|
||||
print(self.Psystem.status())
|
||||
##display
|
||||
temp, hum = self.Sensors[0].getStr()
|
||||
mois = self.Sensors[1].getStr()
|
||||
ptemp = "T:" + str(temp)
|
||||
ptemp += " C"
|
||||
phum = "H:" + str(hum)
|
||||
phum += " %"
|
||||
pmoi = "M:" + str(mois[:6])
|
||||
pmoi += " %"
|
||||
#up = self.cycle * self.looping
|
||||
|
||||
if(up > 300 and timer == "s"):
|
||||
runtime = up / 60
|
||||
timer = "m"
|
||||
elif(timer == "m" and up > 3600):
|
||||
runtime = up / 3600
|
||||
timer = "h"
|
||||
elif(timer == "m"):
|
||||
runtime = up / 60
|
||||
elif(timer == "h"):
|
||||
runtime = up / 3600
|
||||
else:
|
||||
runtime = up
|
||||
|
||||
year, mon, day, h, m, s, nope, nope2 = time.localtime()
|
||||
if((m % 55) == 0):
|
||||
# self.wifi.reconnect()
|
||||
# self.cycle = self.cycle + 1
|
||||
if(self.cycle > 10000): self.cycle = 1
|
||||
machine.idle()
|
||||
time.sleep(self.looping)
|
||||
except OSError as e:
|
||||
mypnd.ecx.handle(mypnd.ecx(),self,e)
|
||||
|
||||
def backgroundTask(self):
|
||||
if(not self.online):
|
||||
lhttp = mypnd.webserver()
|
||||
print('starting Webserver...')
|
||||
|
||||
## method with main loop goes here
|
||||
lhttp.showStatusPage()
|
||||
else:
|
||||
print('offline Mode: no Webserver...')
|
||||
|
||||
def init(self, lastTry):
|
||||
try:
|
||||
self.online = cfg.defaults.gc_offline
|
||||
self.Psystem.setCallback(self)
|
||||
i = 0
|
||||
self.lastTry = lastTry
|
||||
if(not self.online):
|
||||
self.wifi.connect()
|
||||
ntptime.host = cfg.defaults.gc_ntp_host
|
||||
try:
|
||||
ntptime.settime()
|
||||
except:
|
||||
pass
|
||||
if hasattr(cfg.tasks, "gc_sensors"):
|
||||
self.Sensors = {}
|
||||
for sens in cfg.tasks.gc_sensors:
|
||||
if cfg.tasks.gc_sensors[sens]['ADC']:
|
||||
self.Sensors[i] = mypnd.adcsens(cfg.tasks.gc_sensors[sens]['name'],cfg.tasks.gc_sensors[sens]['pin'])
|
||||
else:
|
||||
self.Sensors[i] = mypnd.sens(cfg.tasks.gc_sensors[sens]['name'],cfg.tasks.gc_sensors[sens]['type'],cfg.tasks.gc_sensors[sens]['pin'])
|
||||
i += 1
|
||||
if hasattr(cfg.tasks, "gc_display"):
|
||||
self.dispService = dispService();
|
||||
|
||||
self.looping = cfg.defaults.gc_looping
|
||||
except OSError as e:
|
||||
mypnd.ecx.handle(mypnd.ecx(),self,e)
|
||||
|
||||
|
||||
class mqService():
|
||||
def __init__(self):
|
||||
try:
|
||||
self.mqtt = mypnd.mqtt()
|
||||
self.mqclient = self.mqtt.connect()
|
||||
except OSError as e:
|
||||
self.lastTry = 1
|
||||
mypnd.ecx.handle(mypnd.ecx(),self,e)
|
||||
|
||||
def logConf(self):
|
||||
topic = cfg.mqtt.gc_topic_config
|
||||
sys = mypnd.Psystem
|
||||
ip = mypnd.wifi.getIp()
|
||||
status = sys.statusJSON()
|
||||
self.mqtt.publish(self.mqclient, topic, status)
|
||||
|
||||
def logSensors(self, sensors):
|
||||
year, mon, day, h, m, s, nope, nope2 = time.localtime()
|
||||
date = str(year) + "-" + str(mon) + "-" + str(day) + "T" + str(h) + ":" + str(m) + ":" + str(s)
|
||||
for sens in sensors:
|
||||
if sensors[sens].ADC:
|
||||
jsens = ujson.dumps({ "name" : cfg.gc_name, "Time": date, "senso_name": sensors[sens].id, "value": sensors[sens].update()})
|
||||
self.mqtt.publish(self.mqclient, cfg.mqtt.gc_topic_sensor, jsens)
|
||||
else:
|
||||
temp, hum = sensors[sens].update()
|
||||
jsens = ujson.dumps({ "name" : cfg.gc_name, "Time": date, "senso_name": "Temperature_" + sensors[sens].id[-1], "value": temp})
|
||||
self.mqtt.publish(self.mqclient, cfg.mqtt.gc_topic_sensor, jsens)
|
||||
jsens = ujson.dumps({ "name" : cfg.gc_name, "Time": date, "senso_name": "Humidity_" + sensors[sens].id[-1], "value": hum})
|
||||
self.mqtt.publish(self.mqclient, cfg.mqtt.gc_topic_sensor, jsens)
|
||||
|
||||
def close(self):
|
||||
self.mqtt.disconnect(self.mqclient)
|
||||
del self.mqclient
|
||||
del self.mqtt
|
||||
|
||||
class dispService():
|
||||
def __init__(self):
|
||||
import pndSRC as mypnd
|
||||
self.disp = mypnd.display(cfg.tasks.gc_display)
|
||||
self.disp.contrast(50)
|
||||
self.disp.flush()
|
||||
|
||||
def show4TxtLines(self, l1, l2, l3, l4 ):
|
||||
self.disp.flush()
|
||||
year, mon, day, h, m, s, nope, nope2 = time.localtime()
|
||||
if((m % 2) == 0):
|
||||
self.disp.addTxt(l1, 0, 0, 1)
|
||||
self.disp.addTxt(l2, 0, 13, 1)
|
||||
self.disp.addTxt(l3, 0, 25, 1)
|
||||
self.disp.addTxt(l4.date, 0, 37, 1)
|
||||
elif((m % 3) == 0):
|
||||
self.disp.addTxt(l2, 0, 0, 1)
|
||||
self.disp.addTxt(l4.time, 0, 13, 1)
|
||||
self.disp.addTxt(l1, 0, 25, 1)
|
||||
self.disp.addTxt(l3, 0, 37, 1)
|
||||
|
||||
else:
|
||||
self.disp.addTxt(l4.time, 0, 0, 1)
|
||||
self.disp.addTxt(l3, 0, 13, 1)
|
||||
self.disp.addTxt(l2, 0, 25, 1)
|
||||
self.disp.addTxt(l1, 0, 37, 1)
|
||||
self.disp.show()
|
||||
self.disp.invert()
|
||||
|
||||
def showTxtLines(self, texts ):
|
||||
self.disp.flush()
|
||||
year, mon, day, h, m, s, nope, nope2 = time.localtime()
|
||||
y = 0
|
||||
if((m % 2) == 0):
|
||||
for text in texts:
|
||||
self.disp.addTxt(str(text), 0, y, 1)
|
||||
y += 13
|
||||
elif((m % 3) == 0):
|
||||
y = 64
|
||||
for text in texts:
|
||||
y -= 13
|
||||
self.disp.addTxt(str(text), 0, y, 1)
|
||||
|
||||
|
||||
else:
|
||||
for text in texts:
|
||||
self.disp.addTxt(str(text), 0, y, 1)
|
||||
y += 13
|
||||
self.disp.show()
|
||||
self.disp.invert()
|
||||
Reference in New Issue
Block a user