Im Eigentlichen können Taster und Schalter innerhalb der Tasmota Firmware gänzlich ohne Tasmota Rule betrieben werden. Zudem sind die Tasmota Button und Switch Funktionen sehr umfassend, diesbezüglich umreissen wir nachfolgend nur das notwendige Grundverständnis.
Bereits bei der Konfiguration eines Switch oder Button über das Tasmota Webinterface erkennt man – ähnlich wie bei den Relais – ein weiteres DropDown zur Auswahl einer Zahl erscheint. Die Zahl hat nicht nur den Sinn für eine Zuweisung eines Triggers / Auslöser für eine Tasmota Rule ON BUTTON2 …. sondern vielmehr wird wenn Relais / Ausgänge vorhanden diese dem jeweiligen Button zugeordnet
BUTTON1 schaltet Relais1, BUTTON2 schaltet Relais2, ….
Zwar sind Buttons und Schalter in der eigentlichen Funktion AN oder AUS sehr einfach, jedoch scheitern sehr oft Tasmota Funktionen und Tasmota Rules in Verbindung mit digitalen Eingangssignalen an einem fehlenden Grundverständnis. Diesbezüglich zunächst die Grundlagen / Hardware im Bezug Taster (Buttons) und Schalter (Switch).
Tasmota Pull Widerstände

Gleich zu Beginn sei auf die Funktion und Verwendung von Pull Widerständen erinnert. Pull Widerstände ziehen das Level des jeweiligen GPIO mittels Hardware – also einen Widerstand – auf den jeweiligen Grundwert.
Hier im folgenden Beispiel wird das 2 Kanal Sensor Relais verwendet, dies verfügt über einen 4,7KΩ PullUp Widerstand um beispielsweise ein I2C (SCL oder SDA) oder 1-Wire Sensor (Data / Signal) zu betreiben, ABER auch ein Taster kann über GPIO02 betrieben werden.
Mit einfachen Worten die „Grundeinstellung“ des GPIO02 ist HIGH also +3,3V, somit muss wenn der Taster aktiv ist ein LOW <– also GND auf den GPIO02 geschaltet werden. Mit einfachen Worten es wird stets strikt digital umgeschaltet liegt +3,3V am GPIO02 an haben wir 1 am GPIO02, liegt GND am GPIO02 an haben wir 0, ganz wichtig das reduziert sich nur auf die Hardware (siehe im Weiteren unter Konfiguration), hier findet sich ein sehr oft ein Fehler.
Sobald man den Taster (Button2) wieder öffnet liegt wieder ein HIGH am GPIO02 an, die Grundstellung des GPIO02 ist wieder aktiv (WICHTIG NUR IM BEZUG DER HARDWARE).
Das fehlen eines Pull Widerstands an einem GPIO ist eine sehr häufige Fehlerquelle für
- der ESP erhält kein Signal / der GPIO wird nicht geschaltet
- der ESP erhält keinen Signalwechsel / der GPIO fällt nicht auf seinen Grundzustand zurück
- beides kann dabei auch noch sporadisch funktionieren
Das Gleiche gilt für Schalter, also Akteure die den Schaltzustand beibehalten / einrasten, wie typische Lichtschalter. Dementsprechend ist auch das Verhalten, solange der Schalter aktiv ist, solange ist auch das Signal am GPIO vorhanden. Aber auch hier ist auf einen Pull Widerstand zu achten, schaltet der Schalter LOW (GND) muss ein beispielsweise 10KΩ Pull Up Widerstand von +3,3V auf den jeweiligen GPIO geschaltet werden (siehe vorherige Grafik Button2).
Tasmota Button oder Switch Konfiguration
Das Vorgenannte bezieht sich im Eigentlichen nur auf die Hardware, hierzu addiert sich die Tasmota Konfiguration von digitalen Eingangssignalen im Detail Button und Switch.

| Konfiguration | Beschreibung |
|---|---|
| Button | Sobald der Taster (Button) aktiv ist wird ein LOW Level (GND / 0) an den jeweiligen GPIO übergeben. Dabei wird ein interner PullUp Widerstand verwendet (bitte beachten ab und an kommt es bei einem internen Widerstand zu Problem / der GPIO wird nicht auf HIGH Level gezogen |
| Button_n | Sobald der Taster (Button) aktiv ist wird ein LOW Level (GND / 0) an den jeweiligen GPIO übergeben. Dabei wird kein interner PullUp Widerstand verwendet, als Gedankenstütze, Button NO PullUp Widerstand |
| Button_i | Invertierter Taster, sobald der Taster (Button) aktiv ist wird ein HIGH Level (+3,3V / 1) an den jeweiligen GPIO übergeben. Dabei wird ein interner PullDown Widerstand verwendet (bitte beachten ab und an kommt es bei einem internen Widerstand zu Problem / der GPIO wird nicht auf LOW Level gezogen |
| Button_in | Invertierter Taster, sobald der Taster (Button) aktiv ist wird ein HIGH Level (+3,3V / 1) an den jeweiligen GPIO übergeben. Dabei wird kein interner PullDown Widerstand verwendet, als Gedankenstütze, Button NO PullDown Widerstand |
Im Bezug der Schalter, also rastende Signalgeber reduziert sich das Ganze auf folgende 2 Optionen
| Konfiguration | Beschreibung |
| Switch | Sobald der Schalter aktiv ist wird ein LOW Level (GND / 0) an den jeweiligen GPIO übergeben. Dabei wird ein interner PullUp Widerstand verwendet (bitte beachten ab und an kommt es bei einem internen Widerstand zu Problem / der GPIO wird nicht auf HIGH Level gezogen |
| Switch_n | Sobald der Schalter aktiv ist wird ein LOW Level (GND / 0) an den jeweiligen GPIO übergeben. Dabei wird kein interner PullUp Widerstand verwendet, als Gedankenstütze, Switch_n NO PullUp Widerstand |
Bei genauer Betrachtung erkennt man das Tasmota (bis auf invertierte Button) stets GND als aktiv auswertet. Im Eigentlichen gilt das weitläufig als Standard bei der Signalauswertung zahlreicher Mikrocontroller, obgleich wir im Alltag meist mit aktiv = wenn Spannung fliest konfrontiert werden.
Hierzu addiert sich dass die vorgenannte Umschreibung der Hardware einem typischen Taster und Schalter entspricht – nicht zu verwechseln wie Tasmota das Eingangssignal interpretiert –
Nachfolgend praktische Beispiele
man verwendet als Hardware einen Taster, konfiguriert den Taster innerhalb Tasmota
- als Switch (Schalter), so ist der Ausgang nur so lange aktiv wie der Taster mechanisch aktiv ist
- als Button (Taster), so wird der Ausgang erst bei on release / wenn der Taster wieder geöffnet wird aktiv, gleichermassen wird der Ausgang erst wieder deaktiviert wenn der Taster erneut gedrückt wird und ein Release erfolgt / der Taster wieder geöffnet wird
Tasmota zu beachten bei GPIO Konfiguration
Die grundsätzliche Frage ob Button (Taster) oder Switch (Schalter) verwendet werden soll obliegt zunächst den verfügbaren GPIO’s, denn einige GPIO’s nehmen direkten Einfluss auf den Betriebszustand des ESP8266
| GPIO | Funktion | Beschreibung |
| GPIO0 | Boot Modus | Wird üblicherweise mit einem PullUp Widerstand versehen, sodass der ESP8266 im normalen Betriebsmodus startet. Wird der GPIO0 beim Booten / Spannungsversorgung auf GND gezogen startet der ESP8266 im Flash Modus, sodass eine Firmware geflasht werden kann |
| GPIO1 | TX UART | GPIO1 ist der TX Pin zum Übertragen von Daten über die serielle UART Schnittstelle, – kann – insofern keine serielle Schnittstelle benötigt wird anderweitig konfiguriert werden |
| GPIO2 | WLan Status LED | wird bei vielen ESP8266 als WLan Status (blaue) LED verwendet, muss beim Booten mittels PullUp Widerstand auf HIGH Level gezogen werden |
| GPIO3 | RX UART | GPIO3 ist der RX Pin zum Empfangen von Daten über die serielle UART Schnittstelle, – kann – insofern keine serielle Schnittstelle benötigt wird anderweitig konfiguriert werden |
| GPIO15 | benötigt einen PullDown Widerstand andernfalls scheitert das Booten des ESP8266 | |
| GPIO16 | WakeUp Pin | wird als WakeUp Pin verwendet um den ESP8266 aus dem Energiesparmodus / Deep Sleep zu reaktivieren |
Tasmota digitale Eingangssignale
Gemäß obiger Tabelle eignen sich die dort benannten GPIO’s nicht für Schalter. Beispielsweise verwendet man einen Schalter in Kombination mit GPIO0 kann zwar im Betrieb mittels LOW Level / GND geschaltet werden, ist aber der Schalter aktiv (eingerastet / eingeschaltet) und der ESP8266 rebootet, so startet der ESP stets im Flash Modus.
Ferner sollte man Button und Switch sollte man keineswegs nur auf Taster und Schalter reduzieren, vielmehr wird ein Großteil von Sensoren mit digitalem Ausgang wie beispielsweise
- PIR / Bewegungsmelder
- Magnetschalter / Reed Kontakt / Zähler / Counter
- Sensoren mit DO Pin (Digital Out), verfügen meist über einen Operationsverstärker in Kombination mit einem Potentiometer, sodass der Schaltpunkt / Schwellenwert eingestellt werden kann, z.B.
- Distanzsensor
- Lichtsensor
- Luftsensor
- Geräuschsensor
- Drucksensor
Tasmota Switch Button von Relais / Ausgängen entkoppeln
Wie bereits erwähnt erhält man bereits durch die einfache Konfiguration eines Tasmota Button oder Switch die grundlegende Funktion eines Eingangssignals. In Kombination mit einer Tasmota Rule kann die direkte Verbindung zwischen Eingangssignal und Relays / Ausgang hinderlich sein.
Ferner setzt Tasmota automatisch eine Button / Switch Relais Konfiguration wenn die Anzahl an Eingängen größer ist als die Anzahl der Ausgänge, beispielsweise Relais. Als einfaches Beispiel man hat ein 4 Kanal Relais, also 4 Ausgänge, konfiguriert aber 5 Eingänge, im Detail wird ein Button 5 konfiguriert, so schaltet Button 5 Relais 1.
Möchte man dieses Verhalten ändern kann das direkte Schalten von Ausgängen durch Eingangssignale mittels dem Befehl
SetOption73 1
über die Befehlszeile der Tasmota Konsole entkoppelt werden. Das heisst es wird nun lediglich das Eingangssignal interpretiert ohne direkt einen Ausgang / Relais zu beschalten.

