Eigenen Lichtschalter / Taster mit ESP8266 bauen

Ich hab eine Weile lang versucht, einen Lichtschalter mit einfachen Druckbuttons und einem ESP8266 zu bauen und hab dabei auch Dank Diskussionen in dieser Community (über verschiedene Beiträge verstreute) einiges gelernt. Für mich hatte das Projekt einige unerwartete “Haken”. Daher fasse ich jetzt meine Erkentnisse hier mal zusammen:

Generell integriert man Buttons am besten als “binary sensor” und nicht als “switch”, weil sie ja nur ein Signal senden, wenn Sie kurz angetriggert werden.

Am einfachsten ist es, die Buttons so zu verkabeln: Den einen Draht an Ground und den anderen an einen Pin. Dann muss man an dem Pin den internen Widerstand aktivieren und die Eingabelogik umdrehen, um sinnvolle Ergebnisse zu erhalten. Der Code sieht dann so aus:

binary_sensor:  
  # roter Schalter, rotes Kabel auf D6 andere an ground     
  - platform: gpio
    name: "buro_rod"
    filters: 
      - delayed_off: 100ms
    pin:
      number: GPIO12
      mode:
         input: true
         pullup: True
      inverted: true

Ohne Umdrehen klappt auch, wenn man statt pullup pulldown verwendet, das kann mein Board allerdings nur an einem einzelnen PIN (D0), weswegen man mit dieser Methode nur einen einzelnen Schalter anschliessen kann. Das hat aber meines Wissens keinerlei Vorteile gegenüber der obigen Lösung.

Eine andere Lösung ist pullup und inverted aus obigen Code zu streichen und den Buttom zwischen 3 Volt und dem Pin zu verkabeln. Leider muss man dann aber einen Widerstand (z.B. 1000 Ohm) zwischen den Pin und ground einbauen, denn auch hier hat das board nicht genuegend interne Widerstände.

Klingt jetzt ja erstmal trivial, war aber langwirig das so herauszufinden. Daher wollte ich das hier in der Community teilen. Und vielleicht ein Video dazu anregen.

Denn eigene Bedienelemente zu verwenden bzw. baulich vorhandene Taster von irgendwas wie Wäschetrockner auf einen ESP8266 “umzuleiten” eröffnet ja viele Möglichkeiten.

Super Videaos zu dem Thema :slightly_smiling_face: