diff py/fridge.py @ 220:251524081924

make the fridge off timer more robust add a few comments
author Matt Johnston <matt@ucc.asn.au>
date Fri, 19 Dec 2014 22:32:59 +0800
parents 16a83e2c97a0
children 720809f6c968
line wrap: on
line diff
--- a/py/fridge.py	Fri Dec 19 21:52:50 2014 +0800
+++ b/py/fridge.py	Fri Dec 19 22:32:59 2014 +0800
@@ -13,13 +13,14 @@
         self.setup_gpio()
         self.wort_valid_clock = 0
         self.fridge_on_clock = 0
-        self.fridge_off_clock = server.now()
+        self.off()
 
     def setup_gpio(self):
         dir_fn = '%s/direction' % config.FRIDGE_GPIO
         with open(dir_fn, 'w') as f:
             f.write('low')
         val_fn = '%s/value' % config.FRIDGE_GPIO
+        # XXX - Fridge should have __enter__/__exit__, close the file there.
         self.value_file = open(val_fn, 'r+')
 
     def turn(self, value):
@@ -35,6 +36,7 @@
 
     def off(self):
         self.turn(False)
+        self.fridge_off_clock = self.server.now()
 
     def is_on(self):
         self.value_file.seek(0)
@@ -71,7 +73,9 @@
         if wort is not None:
             self.wort_valid_clock = self.server.now()
 
-        if off_time < config.FRIDGE_DELAY:
+        # Safety to avoid bad things happening to the fridge motor (?)
+        # When it turns off don't start up again for at least FRIDGE_DELAY
+        if self.is_off() and off_time < config.FRIDGE_DELAY:
             L("fridge skipping, too early")
             return
 
@@ -116,7 +120,6 @@
             if turn_off:
                 L("Turning fridge off")
                 self.off()
-                self.fridge_off_clock = self.server.now()
 
         else:
             # fridge is off