Activate buttons when door is opened
This commit is contained in:
12
ug/button.py
12
ug/button.py
@@ -191,7 +191,7 @@ class StateMenu:
|
||||
else:
|
||||
self.strip = neopixel.NeoPixel(board.D18, 24, brightness=0.5, pixel_order=neopixel.GRB, auto_write=False)
|
||||
self.strip_oben = SubStrip(self.strip, pixel=list(range(12)))
|
||||
self.strip_unten = SubStrip(self.strip, pixel=list(range(13, 24)))
|
||||
self.strip_unten = SubStrip(self.strip, pixel=list(range(12, 24)))
|
||||
|
||||
self.doors = {
|
||||
"oben": Door("10.42.1.28", "open", "close"),
|
||||
@@ -207,16 +207,18 @@ class StateMenu:
|
||||
self.timeout = None
|
||||
self.next_state = None
|
||||
|
||||
def button_pressed(self, area):
|
||||
def button_pressed(self, btn):
|
||||
if self.state == StateMenu.OFF:
|
||||
self.set_state(StateMenu.SHOW_STATE, 10)
|
||||
elif btn not in self.doors:
|
||||
pass # the following states should not be triggered by the door sensor
|
||||
elif self.state == StateMenu.SHOW_STATE:
|
||||
self.set_state(StateMenu.CHANGE, 10)
|
||||
self.change_target = area
|
||||
self.change_target = btn
|
||||
elif self.state == StateMenu.CHANGE:
|
||||
self.set_state(StateMenu.PROGRESS, 5)
|
||||
self.next_state = StateMenu.SHOW_STATE
|
||||
self.target_state = "open" if area == "oben" else "close"
|
||||
self.target_state = "open" if btn == "oben" else "close"
|
||||
|
||||
print(self.change_target, self.target_state)
|
||||
if self.target_state == "open":
|
||||
@@ -292,7 +294,6 @@ def main():
|
||||
|
||||
try:
|
||||
while True:
|
||||
|
||||
if not btn_oben.value:
|
||||
if not btn_locked:
|
||||
menu.button_pressed("oben")
|
||||
@@ -306,6 +307,7 @@ def main():
|
||||
|
||||
if door_sense.value != menu.doors["unten"].door_sense_state:
|
||||
menu.doors["unten"].door_sense_state = door_sense.value
|
||||
menu.button_pressed("door_sense")
|
||||
menu.mqtt.client.publish("foobar/unten/foodoor/door",
|
||||
{True: "open", False: "closed"}[menu.doors["unten"].door_sense_state],
|
||||
retain=True)
|
||||
|
Reference in New Issue
Block a user