39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import time
|
|
|
|
from . import hardware, helpers
|
|
|
|
|
|
class SensorReadout:
|
|
"""Overview class for (actual and potential) sensor sources"""
|
|
|
|
def __init__(self):
|
|
""""""
|
|
self.sensor_modules = { # we already call them, they are objects and not classes anymore
|
|
"temperature" : hardware.sensors.TemperatureModule(),
|
|
"humidity" : hardware.sensors.HumidityModule(),
|
|
"luminosity" : hardware.sensors.BrightnessModule(),
|
|
# more to come?
|
|
}
|
|
# self db_utils set externally
|
|
|
|
def start(self):
|
|
helpers.timer.RepeatedTimer(120, self.spread_measure)
|
|
|
|
def spread_measure(self):
|
|
measurements = dict((el,[]) for el in self.sensor_modules.keys())
|
|
# create an empty dict with a list for each readout-type
|
|
|
|
for _ in range(5): # number of measures to average out
|
|
for name in self.sensor_modules.keys():
|
|
measure = self.sensor_modules[name].readout()
|
|
measurements[name].append(measure)
|
|
time.sleep(3)
|
|
|
|
results = {}
|
|
for e in measurements.keys():
|
|
lst = measurements[e]
|
|
results[e] = sum(lst) / len(lst)
|
|
|
|
self.db_utils.sensor_log(**results)
|
|
|