Przycisk wielofunkcyjny

Zbudowałem sobie sterownik oświetlenia na Wemos D1 mini, obecnie działa tak że każdorazowe naciśnięcie przycisku ściennego włącza lub wyłacza oświetlenie na dwóch pinach Wemosa. Potrzebję pomocy by zrealizować funkcje jak poniżej:

  • jednorazowe naciśnięcie klawisza włączało lub wyłączało oświetlenie dla dwóch obwodów przy czym załączenie, to odtworzenie ostatniego stan zaprogramowania,
  • długie przytrzymanie klawisza to programowanie jak dwa obwody mają się świecić, czy lampa1 czy lampa2 czy obie lampy1 i 2 (długie przytrzymanie miało by w trybie ciągłym z opóźnieniem np. 1s przejścia pomiędzy tymi trzema trybami, zwalniając przycisk zapamiętuje ten tryb do kolejnej próby zmiany)
switch:

  - platform: gpio
    pin: 14
    id: L1
    name: "Lampa 1"
  
  - platform: gpio
    pin: 15
    id: L2
    name: "Lampa 2"
  

binary_sensor:  
     

- platform: gpio
  pin:
    number: GPIO2
    inverted: true
  id: button1
  on_press:
      then:
      - switch.toggle: L1
      - switch.toggle: L2

Do realizacji tego zadania musisz skorzystac z funkcji on_multi_click. Zastanów się jednak nad prostszą logiką przy użyciu jednego przycisku:

  • “on clik” - `switch.toggle: L1
  • “doblue click” - switch.toggle: L2
  • “on hold” - switch.turn_of L1 i L2.