shrooms-server/humidifier_v3.py

45 lines
1.3 KiB
Python

import time
from utils import send_update
# this is driving a SSR that's powering a AC-powered humidifier
# we don't need voltage readings for this one
class HumidifierV3:
def __init__(self, humidifier_id="humidifier"):
self.last_toggle = 0
self.last_state = None
self.cooldown = 5
self.humidifier_id = humidifier_id
def set(self, s, on):
if on != self.last_state:
if (time.time() - self.last_toggle) < self.cooldown:
return
if on:
s.write(b"Z")
s.flush()
else:
s.write(b"z")
s.flush()
if self.last_state != on:
self.last_toggle = time.time()
if on:
print("send {} on".format(self.humidifier_id))
else:
print("send {} off".format(self.humidifier_id))
send_update({"status": {self.humidifier_id: on}})
self.last_state = on
# TODO: read this from Arduino to verify the pin state
def update(self, val):
self.last_state = (val != 0)
@property
def on(self):
return self.last_state is not None and self.last_state
@property
def off(self):
return self.last_state is not None and not self.last_state