From cd8204e020b4197737b75bf3828d434b508e89eb Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Fri, 17 Jun 2022 03:41:09 +0100 Subject: [PATCH] Pull get_temp out of main loop --- rpiserver/main.py | 33 ++++++++++++++++++++------------- rpiserver/relays.py | 2 +- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/rpiserver/main.py b/rpiserver/main.py index 5e4581c..cfee040 100644 --- a/rpiserver/main.py +++ b/rpiserver/main.py @@ -13,32 +13,39 @@ import relays import data HI_SETPOINT = 40.0 -LO_SETPOINT = 30.0 +LO_SETPOINT = HI_SETPOINT - 10.0 +PUMP_RELAY = relays.RELAY1 FAN_RELAY = relays.RELAY3 +async def get_temp(): + temps = await w1therm.get_temperatures() + if len(temps) != len(data.PROBES): + raise + + temperature_log = [] + for id_, temp in temps.items(): + temperature_log.append('{}: {} C'.format(data.PROBES[id_], temp)) + logging.info('Temperature probe ' + ', '.join(temperature_log)) + + temperature_list = list(temps.values()) + temperature_mean = mean(temperature_list) + return temperature_mean + + async def main(): relays.init_relays() + relays.set_relay(PUMP_RELAY, relays.RELAY_ON) while True: try: - temps = await w1therm.get_temperatures() - if len(temps) != len(data.PROBES): - raise + temperature_mean = await get_temp() except: - logging.error('Problem reading temperature probes! Setting fan on and sleeping.') + logging.error('Problem reading temperature probes! Turning fan on and sleeping 60s.') relays.set_relay(FAN_RELAY, relays.RELAY_ON) await asyncio.sleep(60) continue - temperature_log = [] - for id_, temp in temps.items(): - temperature_log.append('{}: {} C'.format(data.PROBES[id_], temp)) - logging.info('Temperature probe ' + ', '.join(temperature_log)) - - temperature_list = list(temps.values()) - temperature_mean = mean(temperature_list) - if temperature_mean > HI_SETPOINT: logging.info('Turning fan on') relays.set_relay(FAN_RELAY, relays.RELAY_ON) diff --git a/rpiserver/relays.py b/rpiserver/relays.py index 78dc5bc..45c9f46 100644 --- a/rpiserver/relays.py +++ b/rpiserver/relays.py @@ -31,7 +31,7 @@ async def test(): for r in RELAYS: set_relay(r, RELAY_ON) await asyncio.sleep(0.5) - #set_relay(r, RELAY_OFF) + set_relay(r, RELAY_OFF) if __name__ == '__main__': init_relays()