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)