From 95a8fb7a77d5fe9efdb83c6320d3bd0996e8d9f2 Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 6 Oct 2021 22:18:57 +0200 Subject: [PATCH] Daemon functions for logging temp no longer recursive --- source/brewSensor.py | 50 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/source/brewSensor.py b/source/brewSensor.py index d92db67..649f3d0 100644 --- a/source/brewSensor.py +++ b/source/brewSensor.py @@ -58,18 +58,18 @@ class DHT11Sensor(BrewSensor): logger.info("spawned background sensor {} log at interval: {}".format(self.location, self.interval)) def logSensorOnIntervalForever(self): - try: - self.logReadings() - except RuntimeError as error: - logger.error('Sensor log daemon failed, sleeping and trying again', es={ - 'location': self.location, - 'error': str(error), - 'exception': error.__class__.__name__ - }) - time.sleep(2) + while True: + try: + self.logReadings() + except Exception as error: + logger.error('Sensor log daemon failed, sleeping and trying again', es={ + 'location': self.location, + 'error': str(error), + 'exception': error.__class__.__name__ + }) + time.sleep(2) - time.sleep(self.interval) - self.logSensorOnIntervalForever() + time.sleep(self.interval) @staticmethod def fromYaml(loader, node): @@ -88,16 +88,16 @@ class BME680Sensor(BrewSensor): self.sensor.set_pressure_oversample(bme680.OS_4X) self.sensor.set_temperature_oversample(bme680.OS_8X) self.sensor.set_filter(bme680.FILTER_SIZE_3) - + self.sensor.set_gas_status(bme680.ENABLE_GAS_MEAS) self.sensor.set_gas_heater_temperature(320) self.sensor.set_gas_heater_duration(150) self.sensor.select_gas_heater_profile(0) - + def read(self): self.lastSensorRead = time.time() return self.sensor.get_sensor_data() - + def logReadings(self, detailed): if self.needToUpdateReadings: self.read() @@ -127,18 +127,18 @@ class BME680Sensor(BrewSensor): logger.info("spawned background sensor {} log at interval: {}".format(self.location, self.interval)) def logSensorOnIntervalForever(self): - try: - self.logReadings(detailed=True) - except exception as error: - logger.error('Sensor log daemon failed, sleeping and trying again', es={ - 'location': self.location, - 'error': str(error), - 'exception': error.__class__.__name__ - }) - time.sleep(2) + while True: + try: + self.logReadings(detailed=True) + except Exception as error: + logger.error('Sensor log daemon failed, sleeping and trying again', es={ + 'location': self.location, + 'error': str(error), + 'exception': error.__class__.__name__ + }) + time.sleep(2) - time.sleep(self.interval) - self.logSensorOnIntervalForever() + time.sleep(self.interval) @property def needToUpdateReadings(self):