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:
|
else:
|
||||||
self.strip = neopixel.NeoPixel(board.D18, 24, brightness=0.5, pixel_order=neopixel.GRB, auto_write=False)
|
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_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 = {
|
self.doors = {
|
||||||
"oben": Door("10.42.1.28", "open", "close"),
|
"oben": Door("10.42.1.28", "open", "close"),
|
||||||
@@ -207,16 +207,18 @@ class StateMenu:
|
|||||||
self.timeout = None
|
self.timeout = None
|
||||||
self.next_state = None
|
self.next_state = None
|
||||||
|
|
||||||
def button_pressed(self, area):
|
def button_pressed(self, btn):
|
||||||
if self.state == StateMenu.OFF:
|
if self.state == StateMenu.OFF:
|
||||||
self.set_state(StateMenu.SHOW_STATE, 10)
|
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:
|
elif self.state == StateMenu.SHOW_STATE:
|
||||||
self.set_state(StateMenu.CHANGE, 10)
|
self.set_state(StateMenu.CHANGE, 10)
|
||||||
self.change_target = area
|
self.change_target = btn
|
||||||
elif self.state == StateMenu.CHANGE:
|
elif self.state == StateMenu.CHANGE:
|
||||||
self.set_state(StateMenu.PROGRESS, 5)
|
self.set_state(StateMenu.PROGRESS, 5)
|
||||||
self.next_state = StateMenu.SHOW_STATE
|
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)
|
print(self.change_target, self.target_state)
|
||||||
if self.target_state == "open":
|
if self.target_state == "open":
|
||||||
@@ -292,7 +294,6 @@ def main():
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
|
|
||||||
if not btn_oben.value:
|
if not btn_oben.value:
|
||||||
if not btn_locked:
|
if not btn_locked:
|
||||||
menu.button_pressed("oben")
|
menu.button_pressed("oben")
|
||||||
@@ -306,6 +307,7 @@ def main():
|
|||||||
|
|
||||||
if door_sense.value != menu.doors["unten"].door_sense_state:
|
if door_sense.value != menu.doors["unten"].door_sense_state:
|
||||||
menu.doors["unten"].door_sense_state = door_sense.value
|
menu.doors["unten"].door_sense_state = door_sense.value
|
||||||
|
menu.button_pressed("door_sense")
|
||||||
menu.mqtt.client.publish("foobar/unten/foodoor/door",
|
menu.mqtt.client.publish("foobar/unten/foodoor/door",
|
||||||
{True: "open", False: "closed"}[menu.doors["unten"].door_sense_state],
|
{True: "open", False: "closed"}[menu.doors["unten"].door_sense_state],
|
||||||
retain=True)
|
retain=True)
|
||||||
|
Reference in New Issue
Block a user