From 7104802fedc605cb386339733a6162e10da2aabd Mon Sep 17 00:00:00 2001 From: root Date: Sun, 16 Jan 2022 13:36:16 +0000 Subject: Add rolling average to heating with queue --- heating.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/heating.py b/heating.py index 9bb0bc5..f21b986 100644 --- a/heating.py +++ b/heating.py @@ -1,4 +1,5 @@ from abc import ABC, abstractmethod +from queue import circular_queue import time import os @@ -9,6 +10,7 @@ class heating(ABC): self.target = 19 self.on = False self.db = db + self.queue = circular_queue(20) def up(self, increase=0.5): self.target += increase @@ -19,7 +21,9 @@ class heating(ABC): self.update() def update(self): - self.temperature = self.get_temperature() + # rolling average for current temperature + self.queue.add(self.get_temperature()) + self.temperature = self.queue.average() if self.temperature < self.target: self.on = True self.turn_on() -- cgit v1.2.3