Mercurial > templog
view py/fridge.py @ 141:4755e6f9a5b8
python raspberry pi rewrite
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Mon, 19 Nov 2012 22:46:34 +0800 |
parents | |
children | 0895f5ad7731 |
line wrap: on
line source
from utils import L,W,E import config class Fridge(object): def __init__(self): self.setup_gpio() self.wort_valid_clock = 0 def setup_gpio(self): fn = '%s/direction' % config.FRIDGE_GPIO f = open(fn, 'w') f.write('low') f.close() # .off() shouldn't do anything, but tests that "value" is writable self.off() def turn(self, value): fn = '%s/value' % config.FRIDGE_GPIO f = open(fn, 'w') if value: f.write('1') else: f.write('0') f.close() def on(self): self.turn(1) def off(self): self.turn(0) def do(self): wort, fridge, ambient = server.current_temps() if server.uptime() < config.FRIDGE_DELAY: L("fridge skipping, too early") return # handle broken wort sensor if wort is not None: self.wort_valid_clock = server.now() else: W("Invalid wort sensor") invalid_time = server.now() - self.wort_valid_clock if invalid_time < config.FRIDGE_WORT_INVALID_TIME: W("Has only been invalid for %d, waiting" % invalid_time) return if fridge is None: W("Invalid fridge sensor") def run(self, server): self.server = server while True: self.do() gevent.sleep(config.FRIDGE_SLEEP)