New Cable, debounce

This commit is contained in:
T
2026-06-25 23:52:18 +02:00
parent 95580bb3eb
commit b8a56829f3
4 changed files with 155 additions and 23 deletions
+16 -16
View File
@@ -122,14 +122,10 @@ class StateMenu:
self.next_state = None
self.reset_state()
self.mqtt = FoodoorMQTT(["oben", "unten"])
self.mqtt.message_cbs.append(lambda *_: self.draw())
self.mqtt.connect()
self.strip = neopixel.NeoPixel(board.D18, 36, brightness=0.5, pixel_order=neopixel.GRB, auto_write=False)
self.strip_cellar = SubStrip(self.strip, pixel=list(range(12)))
self.strip = neopixel.NeoPixel(board.D12, 36, brightness=0.5, pixel_order=neopixel.GRB, auto_write=False)
self.strip_aerie = SubStrip(self.strip, pixel=list(range(12)))
self.strip_center = SubStrip(self.strip, pixel=list(range(12, 24)))
self.strip_aerie = SubStrip(self.strip, pixel=list(range(24, 36)))
self.strip_cellar = SubStrip(self.strip, pixel=list(range(24, 36)))
self.strip_loop = SubStrip(self.strip, [
0, 1, 2, 3, 4, 5, 6, 7, 8,
@@ -143,6 +139,10 @@ class StateMenu:
"aerie": Door("10.42.1.28", "open", "close"),
}
self.mqtt = FoodoorMQTT(["oben", "unten"])
self.mqtt.message_cbs.append(lambda *_: self.draw())
self.mqtt.connect()
def reset_state(self):
self.state = StateMenu.SHOW_STATE
self.change_target = None
@@ -260,24 +260,24 @@ def main():
btn_aerie.switch_to_input(digitalio.Pull.DOWN)
menu = StateMenu()
btn_locked = False # For waiting while a button is still pressed
btn_locked = 0 # For waiting while a button is still pressed
try:
while True:
if not btn_cellar.value:
if btn_cellar.value:
if not btn_locked:
menu.button_pressed("cellar")
btn_locked = True
elif not btn_center.value:
btn_locked = 10
elif btn_center.value:
if not btn_locked:
menu.button_pressed("center")
btn_locked = True
elif not btn_aerie.value:
btn_locked = 10
elif btn_aerie.value:
if not btn_locked:
menu.button_pressed("aerie")
btn_locked = True
else:
btn_locked = False
btn_locked = 10
elif btn_locked:
btn_locked -= 1
menu.tick()
time.sleep(.01)