HowTo: Tasmota – Firmware flashen

Neben der Hardware ist die richtige Software für Euer Projekt natürlich genauso wichtig. Eine praktische und universell einsetzbare Firmware für den Wald-und-Wiesen-Mikrocontroller ESP8266 ist die Tasmota Firmware. Damit lassen sich diverse Projekte realisieren ohne, dass Ihr selber programmieren müsst. Außerdem muss man das Rad ja auch nicht jedes mal “neu erfinden”. 🙂

Bevor Ihr diese mit Eurem Mikrocontroller nutzen könnt muss sie natürlich erst auf diesen überspielt werden. Wie das geht und was Ihr dabei beachten müsst ist im folgendem Artikel beschrieben.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Hilfreiche Artikel:
Bevor ihr mit diesem Artikel startet solltet Ihr die Arduino-IDE installiert und konfiguriert haben. Informationen dazu findet Ihr in dem folgenden Artikel.
Programme installieren – ein Beispiel
ArduinoIDE – Tipps und Tricks

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.

Benötigtes Werkzeug:

In der folgenden Liste findet Ihr alle Werkzeuge die Ihr zur Umsetzung dieses Artikels benötigt.


Die aktuelle Tasmota-Version aus dem GitHub kopieren

Bevor Ihr mit der Konfiguration und dem programmieren der Tasmota-Firmware beginnen könnt müsst Ihr diese zunächst aus dem GitHub herunterladen.

Die Dateien zu der Firmware findet Ihr unter: https://github.com/arendst/Sonoff-Tasmota

Wie Ihr Dateien aus einem GitHub herunterladen könnt ist im Artikel GitHub – Wie kopiere ich Dateien aus einem GitHub auf meinen Computer beschrieben.

Nach dem herunterladen der komprimierten Firmware-Dateien müsst Ihr diese noch entpacken. Tips dazu findet Ihr im Artikel WinRar? WinZip? WinWas? – Liebling ich habe die Dateien geschrumpft


Die Tasmota-Firmware konfigurieren

Viele Einstellungen der Tasmota-Firmware lassen sich auch während des laufenden Betriebes einstellen. Trotzdem finde ich es einfacher diese Einstellungen durch eine korrekt konfigurierte Firmware direkt einzuspielen.
Außerdem ist das bei einigen verwendeten Sensoren auch unbedingt notwendig, da nicht alle Softwarekomponenten für jeden Sensor oder Aktor standardmäßig mitkompiliert(“zur Firmware hinzugefügt”) werden.

In dem nun heruntergeladenen GitHub-Projekt findet Ihr einige Ordner. Für Uns ist dabei aber erst mal nur der Ordner “lib” und “sonoff” wichtig. In “lib” sind alle Arduino-Bibliotheken enthalten welche die Tasmota benötigt um erfolgreich kompiliert zu werden. Installiert also alle darin enthaltenen Arduino-Bibliotheken. Tips dazu findet Ihr im Artikel ArduinoIDE – Eine Bibliothek installieren Habt Ihr dies erledigt könnt Ihr in den Ordner “sonoff” wechseln.
Darin sind alle benötigten Firmware-Dateien enthalten. Öffnet diese nun durch einen Doppelklick auf die Datei “sonoff” bzw. “sonoff.ino”.
Dadurch öffnet sich das komplette Tasmota-Projekt in der Arduino IDE.
Wechselt nun wie abgebildet in den Reiter “user_config.h”. Wie dieser Name schon ahnen lässt, könnt Ihr hier alle Optionen der Tasmota-Firmware konfigurieren. Diese ist dazu in verscheidene “Themenbereiche” eingeteilt.

Die verschiedenen Optionen der Tasmota-Firmware

In der nun geöffneten “user_config.h” sind allerhand Einstellungsmöglichkeiten vorhanden. Meistens benötigt man nur einen Bruchteil davon. Der Vollständigkeit halber sind hier aber alle Optionen aufgelistet und kurz beschrieben.

Damit Ihr nicht alle Optionen einzelnd durchgehen müsst, habe ich die Optionen die ihr unbedingt bearbeiten müsst Grün hinterlegt. Dahinter verbergene sich zum Beispiel Passwörter oder URL’s die Ihr unbedingt indiviudell konfigurieren oder zumindest überprüfen solltetn. Überpüft diese Optionen also bevor Ihr die Firmware auf Euer Tasmota-Device übertragt.

“PROJECT” legt den Namen eures Projektes fest. Dieser ist zugleich auch die ID welche als Prefix für den von diesem ESP verwendetem MQTT Pfad genutzt wird.
“MODULE” legt fest auf welche Hardware diese Tasmota-Firmware installiert wird. So könnt Ihr bereits jetzt angeben ob diese Konfiguration für eine Sonoff S26 oder ein einfaches WEMOS D1 Mini Modul genutzt wird.
“SAVE_DATA” aktiviert bzw. deaktiviert, dass geänderte Einstellungen im Flash-Speicher gespeichert werden. Dies solltet Ihr aktiviert lassen, da Eure Einstellungen sonst nach jedem Neustart bzw. Spannungsunterbrechung verloren gehen.
“SAVE_STATE” aktiviert bzw. deaktiviert, dass der letzte Schaltzustand im Flash-Speicher gespeichert bleibt. Verwendet Ihr die Tasmota-Firmware zum Beispiel um eine Lampe anzusteuern, könnt Ihr so sicherstellen, dass deren Schaltzustand auch nach einem Stromausfall wiederhergestellt wird.
Hier lassen sich die verwendete IP-Adresse, Gateway, Subnetmask und die IP des DNS Servers konfigurieren. In den meisten Netzwerken ist dies allerdings nicht nötig, weil diese Daten dynamisch mit dem Router ausgehandelt werden. Die standardmäßig eingetragenen Werte können in den meisten Fällen also so belassen bleiben.
Nun kommen wir zu einem wichtigen Teil, den Ihr vor dem aufspielen der Firmware mindestens überprüfen solltet. Denn hier werden die Login-Daten zu eurem WLan konfiguriert. Hier könnt Ihr bei “STA_SSID1” die SSID(also den Namen) Eures WLans und unter “STA_PASS1” das Passwort eures WLans angeben. Unter “STA_SSID2” und “STA_PASS2” ist es möglich ein weiteres WLan zu konfigurieren. Dies wird genutzt falls eine Verbindung zu dem ersten konfiguriertem WLan fehlgeschlagen ist. “WIFI_CONFIG_TOOL” “WIFI_CONFIG_…
In der Rubrik “Syslog” könnt Ihr Serverdaten für einen Syslog-Server konfigurieren. Für die meisten Anwender ist das nicht notwendig. Syslog ist ein System um Log-Meldungen einzelner Clienten in einem Netzwerk zu Überwachen. Dazu ist ein Syslog-Server notwendig. Neben den Syslog-Daten lassen sich hier auch die Log-Meldungen konfigurieren die über die Serielle Konsole oder die Web Konsole ausgegeben werden. Dadurch könnt Ihr einstellen wie detailliert die Ausgaben auf der Web- oder Seriellen-Konsole sind. Dabei sind folgende stufen möglich(welche auch in dieser Reihenfolge immer detaillierter werden): LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE
Mit “OTA_URL” könnt Ihr eine URL festlegen von der OTA(Over-the-Air)-Updates bezogen werden. Startet ihr also später in der bereits installierten Tasmota-Firmware ein Update wird Tasmota dieses unter der angegebenen Adresse suchen und ggf. installieren.

In der “MQTT”-Sektion lassen sich die grundlegenden Parameter zur Verbindung mit dem MQTT-Server einstellen. – – “MQTT_USE” aktiviert den MQTT-Clienten.
– “MQTT_HOST” legt die Adresse eures MQTT-Servers fest.
– Unter “MQTT_FINGERPRINTX” könnt Ihr den Fingerprint zur Verschlüsselung Eurer MQTT-Verbindung festlegen. – – – “MQTT_PORT” stellt den Port eures MQTT-Servers ein.
– In “MQTT_USER” und “MQTT_PASS” könnt Ihr jeweils Benutzername und Passwort für Euren MQTT-Server festlegen.
– Mit “MQTT_BUTTON_RETAIN”, “MQTT_POWER_RETAIN” und “MQTT_SWITCH_RETAIN” könnt Ihr das Retain-Flag für die jeweiligen MQTT-Nachrichten aktivieren. Dies bewirkt, dass die jeweiligen MQTT-Nachrichten auch an MQTT-Clienten gesendet werden die zum Zeitpunkt des sendens der MQTT-Nachricht noch nicht online waren.
–  Mit “MQTT_STATUS_OFF” könnt Ihr den String einstellen der in Befehlen genutzt wird um etwas auszuschalten.
–  Mit “MQTT_STATUS_ON” könnt Ihr den String einstellen der in Befehlen genutzt wird um etwas einzuschalten.
–  Mit “MQTT_CMND_TOGGLE” könnt Ihr den String einstellen der in Befehlen genutzt wird um etwas umzuschalten.
–  Mit “MQTT_CMND_HOLD” könnt Ihr den String einstellen der gesendet werden soll, wenn ein Taster für länger als in KEY_HOLD_TIME angegeben gedrückt wird.

In dieser Sektionen können verschiedene Details zu den genutzten MQTT-Topics festegelegt werden.
Mit “MQTT_FULLOPIC” legt Ihr die Struktur der genutzten Topics fest. Standardmäßig besteht dieses immer aus dem “prefix” und dem jewieligen “topic”.

Unter “SUB_PREFIX”, “PUB_PREFIX” und “PUB_PREFIX2” werden dann die Prefixe festgelegt.
Dabei nutzt Euer Tasmota-Device das unter “SUB_PREFIX” angegebene Prefix als Abonement – also um Werte und Befehle zu empfangen.
Das unter “PUB_PREFIX” angegebene Pefix wird genutzt um Werte zu veröffentlichen.
Dabei werden Telemetrie-Daten über das in “PUB_PREFIX2” festgelegte Prefix versendet.

Unter “MQTT_TOPIC”, “MQTT_GRTOPIC”, “MQTT_BUTTON_TOPIC”, “MQTT_SWITCH_TOPIC” werden dann die Topics festgelegt.
Dabei steht “MQTT_TOPIC” für das individuelle Topic des Tasmota-Devices. Dabei wird auch immer ein Teil der MAC-Adresse Eures Tasmota-Devices mit angehängt.
“MQTT_GRTOPIC” steht für ein Topic in der Ihr mehrere Tasmota-Devices in einer Gruppe zusammenfassen könnt.
Mit “MQTT_BUTTON_TOPIC” und “MQTT_SWITCH_TOPIC” könnt Ihr spezielle Topics für die eventuell angeschlossenen Taster und Schalter einstellen.

Mit “MQTT_CLIENT_ID” könnt Ihr noch den Namen bzw. die ID des MQTT-Clienten festlegen.

All diese Werte könnt Ihr normalerweise so belassen.

“TELE_PERIOD” legt fest in welchem Intervall die Telemtrie-Daten gesendet werden. Diese zeit wird in Sekunden angegeben. Bei einem Wert von 300 werden die Telemetriedaten wie Verbindungsdaten und Sensorwerte also alle fünf Minuten an die eingestellten MQTT-Topics gesendet.
Mit “DOMOTICZ_UPDATE_TIMER” könnt Ihr festlegen in welchem Interval der Relais-Status an Eure Domoticz-Instanz gesendet bzw. geupdated wird.
Mithilfe des Parameters “HOME_ASSISTENT_DISCOVERY_ENABLE” könnt Ihr die autmatische Erkennung Eures Tasmota-Devices aktivieren. Solltet Ihr Home-Assisten verwenden so sollte dies Funktion aktiviert sein.
In diesem Bereich können verschiedene Einstellungen zu dem auf dem Tasmota-Device laufenden Webserver konfiguriert werden. “WEB_SERVER” legt dabei fest in welchem Benutzermodus der Webserver läuft. Habt Ihr dies auf “2”=Admin gestellt solltet Ihr bei der nächsten Option “WEB_PASSWORD” unbedingt ein Passwort festlegen. Ansonsten ist jeder, der Zugriff auf Euer Netzwerk hat, in der Lage die Konfiguration Eures Tasmota-Devices zu ändern und zu steuern. Mit “FRIENDLY_NAME” könnt Ihr dann noch einen besser leserlichen Namen festlegen. Dieser wird zur Anzeige im Webmenü und für die eventuelle Verknüpfung mit Alexa genutzt.
Mit der Option “NTP_SERVERX” könnt Ihr die Adresse der NTP-Server festlegen. Dabei könnt Ihr drei verschiedene Server festlegen. Ist der erste Server nicht erreichbar wird automatisch der nächste konfigurierte als Ersatz genutzt.

Mit diesen und den Optionen im nächsten Abschnitt könnt Ihr die Kriterien für die Sommer-/Winter-Zeitumstellung festlegen. Dabei legen die Parameter die mit “TIME_DST…” starten fest unter welchen Bedingungen von Standardzeit(Winterzeit) auf Sommerzeit umgestellt wird. Die Parameter die mit “TIME_STD_…” beginnen sind dagegen für den umgekehrten Fall, also die Umstellung von Sommer- auf Winterzeit ausschlaggebend. Die Parameter sind ansonsten für beide Bereiche identisch: “…HEMISPHERE” legt fest auf welchem Teil der Erdkugel Ihr euch befindet. Diese Option wird eigentlich nicht für die Zeitumstellung sondern eher für die Berechnung des korrekten Sonnen- Auf- und Untergangs-Zeitpunkts benötigt.

Nun geht es an die Parameter für die Zeitumstellung. Da die Zeitumstellung (zumindest in Deutschland) von Winter- auf Sommerzeit immer am letzten Sonntag im März um 02:00 Uhr stattfindet müsst Ihr den Paramater “TIME_DST_WEEK” auf “Last”, den Parameter “TIME_DST_DAY” auf “Sun”(=Sunday), den Parameter “TIME_DST_MONTH” auf “Mar” (=March) und den Parameter “TIME_DST_HOUR” auf zwei stellen. Mit dem Parameter “TIME_DST_OFFSET” gebt Ihr dann noch an welche Zeitverschiebung in diesem Fall eintritt. Dabei müsst Ihr auch die Abweichung durch die Zeitzone mit anegeben. In Fall Deutschlands, dass die Zeitzone UTC+1 hat also +60 Minuten hat, gilt hier für die Sommerzeit +120 Minuten.

Die Zeitumstellung von Sommer- auf Winterzeit (wieder in Deutschland) findet immer am letzten Sonntag im Oktober um 03:00 Uhr statt.
Deshalb müsst Ihr den Paramater “TIME_STD_WEEK” auf “Last”, den Parameter “TIME_STD_DAY” auf “Sun”(=Sunday), den Parameter “TIME_STD_MONTH” auf “Oct” (=October) und den Parameter “TIME_STD_HOUR” auf drei stellen. Mit dem Parameter “TIME_STD_OFFSET” gebt Ihr dann noch an welche Zeitverschiebung in diesem Fall eintritt. Dabei müsst Ihr auch die Abweichung durch die Zeitzone mit anegeben. In Fall Deutschlands, dass die Zeitzone UTC+1 hat also +60 Minuten hat, gilt hier für die Standardzeit(=Winterzeit) somit +60 Minuten.

Mit den Optionen “LATITUDE” und “LONGITUDE” könnt Ihr die Position des Tasmota-Devices festlegen. Dies ist notwendig um die korrekte Sonnen-Auf- und Untergangs-Zeit zu berechnen. Solltet Ihr diese Funktion nutzen wollen ist es wichtig hier die korrekten Daten anzugeben. Wie Ihr die Position eines beliebigen Ortes herausfinden könnt ist im Artikel Breiten- und Längengrad einer beliebigen Position mit GoogleMaps ermitteln beschrieben. Achtet dabei darauf, dass Ihr die Position (wie abgebildet) im Dezimalsystem angebt. Wie dies geht ist ebenfalls in dem genannten Artikel beschrieben.

“APP_TIMEZONE” definiert die Zeitzone.
“APP_LEDSTATE” definiert die Funktion der (in vielen Sonoff-Devices) integrierten LED’s
“APP_PULSETIME” definiert die Pulsdauer in Form von vielfachen von 0,1 Sekunden. Ein Wert von 5 entspricht hier also 0,5 Sekunden bzw. 500 Millisekunden. Ein Wert von 0 deaktiviert diese Funktion.
“APP_POWERON_STATE” definiert den Zustand der konfigurierten Relays nach dem Einschalten. Hierbei sind folgende Einstellungen verfügbar: POWER_ALL_OFF, POWER_ALL_ON, POWER_ALL_SAVED_TOGGLE, POWER_ALL_SAVED, POWER_ALL_ALWAYS_ON, POWER_ALL_OFF_PULSETIME_ON
“APP_BLINKTIME” definiert die Impulslänge eines “blinkenden” Relais
“APP_SLEEP” definiert eine Zeitdauer zwischen 1 und 250 Millisekunden in denen der ESP8266 in den Schlafmodus versetzt wird. Auf diesem Weg lässt sich etwas Energie sparen. Natürlich reagiert der ESP8266 im worst case so erst 250 Millisekunden später.
“KEY_DEBOUNCE_TIME” definiert die Entprellzeit eines angeschlossenen Tasters. Ein Wert von 50 gibt also an, dass nach einem erkannten Tastendruck der betreffende Taster für 50 Millisekunden ignoriert wird.
“KEY_HOLD_TIME” definiert die Zeitdauer die ein Taster gedrückt werden muss bis dies als dauerhaft gedrückter Taster erkannt wird. Dabei wird der angegeben Wert wieder mit 0,1 Sekunden multipliziert. Ein Wert von 40 entspricht hier also einer Zeitdauer von 4 Sekunden. Erst nach 4 Sekunden wird also das “Taster ist gedrückt”-Event ausgelöst.
“SWITCH_DEBOUNCE_TIME” definiert die Entprellzeit eines angeschlossenen Schalters. Ein Wert von 50 gibt also an, dass nach einem erkannten Schalter-positionswechsels der betreffende Schalter für 50 Millisekunden ignoriert wird.
“SWITCH_MODE” definiert das Verhalten des konfigurierten Relais in Bezug auf einen angeschlossenen Schalter. Dabei sind folgende Optionen möglich:
TOGGLE; FOLLOW, FOLLOW_INV, PUSHBUTTON, PUSHBUTTON_INV, PUSHBUTTONHOLD, PUSHBUTTONHOLD_INV, PUSHBUTTON_TOGGLE
“WS2812_LEDS” definiert die Anzahl der angeschlossenen WS2812 LED’s.
“TEMP_CONVERSION” aktiviert (=1) oder deaktiviert (=0) die konvertierung der Temperatur in die Einheit Fahrenheit.
“TEMP_RESOLUTION” definiert mit welcher Auflösung die Temperatur angezeigt wird. Dabei kann man zwischen keiner und bis zu drei Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.
“HUMIDITY_RESOLUTION” definiert mit welcher Auflösung die Luftfeuchtigkeit angezeigt wird. Dabei kann man zwischen keiner und bis zu drei Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.
“PRESSURE_RESOLUTION” definiert mit welcher Auflösung der Luftdruck angezeigt wird. Dabei kann man zwischen keiner und bis zu drei Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.
“ENERGY_RESOLUTION” definiert mit welcher Auflösung der Energieverbrauch angezeigt wird. Dabei kann man zwischen keiner und bis zu fünf Stellen hinterm Komma wählen. ACHTUNG: Die jeweilige Auflösung muss natürlich auch vom angeschlossenen Sensor geliefert werden. Sonst ist dieser vermeintlich exaktere Wert eher geraten als exakt.

In diesem Bereich könnt Ihr die verwendete Sprache festlegen die das Tasmota-Device z.B. für das Webmenü nutzen soll. Um die jeweilige Sprache zu aktivieren, müssen die // vor der entsprechenden Zeile entfernt werden. Alle anderen Zeilen sollten dann durch ein vorangestelltes // deaktiviert werden. Im oben gezeigten Beispiel ist also gerade Deutsch(de-DE) als Sprache festgelegt.

Mit diesen Optionen lässt sich das verhalten in dem Fall, dass für das Tasmota-Device noch keine gültigen WLAN-Zugangsdaten hinterlegt sind, festlegen. Ist “USE_WPS” aktiviert(also die beiden // vor dem entsprechendem Eintrag entfernt) habt Ihr die Möglichkeit Euer Tasmota-Device mittels der WPS-Funktion mit Eurem Router zu verbinden. Ist “USE_SMARTCONFIG” aktiviert könnt Ihr die Zugangsdaten mit der Android App ESP8266 Smart Config konfigurieren.

Mit dem parameter “USE_ARDUINO_OTA” aktiviert Ihr die OTA-Funktion. Damit ist es also Möglich “Over the Air(=OTA)” Updates auf das Tasmota-Device einzuspielen. Der große Vorteil davon ist, dass Ihr die Firmware über die WLAN-Verbindung auf das Tasmota-Device aufspielen könnt ohne es mit einem USB-Kabel verbinden zu müssen. Sollte Ihr den Speicher zur Verfügung haben empfehle ich diese Funktion aktiviert zu lassen.
In diesem Bereich könnt Ihr die verwendete MQTT-Library festlegen. Aktiviert bzw. deaktiviert dazu die gewünschte Option durch entfernen bzw. hinzufügen der vorangestellten //. Im Normalfall könnt Ihr die abgebildete Option “MQTT_PUBSUBCLIENT” eingestellt lassen.
“MQTT_TELE_RETAIN” aktiviert bzw. deaktiviert das Retain-Flag für die gesendeten Telemetrie-Daten. Dies bewirkt, dass wenn ein anderer MQTT-Client das jeweilige Telemetrie-Topic aboniert nachdem Werte daran gesendet wurden, diese Werte erneut an den neu verbundenen MQTT-Clienten zugestellt werden.
Mit “DOMITICZ_IN_TOPIC” könnt Ihr das Domiticz-Input-Topic festlegen. Mit “DOMITICZ_OUT_TOPIC” könnt Ihr das Domiticz-Output-Topic festlegen.
Mit “USE_HOME_ASSISTENT” könnt Ihr die automatische “Bekanntmachung” Eures Tasmota-Devices aktivieren. Mithilfe der Option “HOME_ASSISTENT_DISCOVERY_PREFIX” lässt sich dann auch das gewünschte Prefix einstellen.
Die Option “USE_MQTT_TLS” aktiviert bzw. deaktiviert die TLS-Verschlüsselung für Eure MQTT-Kommunikation. Dies ist ein großer Sicherheitsgewinn geht aber leider auch zu Lasten des genutzten Speichers. Diese Funktion könnt Ihr also je nach Speichernutzung nicht in jeder Konfiguration nutzen.
Mit “USE_KNX” könnt Ihr die Unterstützung für das KNX-Protokoll aktivieren bzw. deaktivieren. Außerdem lässt sich durch “USE_KNX_WEB_MENU” das dazugehörige Web-Menü aktivieren bzw. deaktivieren.
In dieser Rubrik lassen sich die wesentlichen Einstellung zu Eurem Webserver einstellen. Mit der Option “USE_WEBSERVER” lässt sich die komplette Webserver-Funktionalität aktivieren bzw. deaktivieren. “WEB-PORT” definiert dabei den genutzten Port und “WEB_USERNAME” den gewünschten Benutzernamen. Mithilfe der Option “USE_EMULATION” könnt Ihr die Simulation eines Belink WeMo inkl. Hue Bridge simulieren. Dadurch seid Ihr in der Lage das jewielige Device auch über die SmartHome-Funktion Eures Alexa-Devices zu steuern.
Mit “USE_DISCOVERY” und den entsprechenden Unterkategorien aktiviert Ihr die Funktion, dass sich Euer Tasmota-device selbstständig den Hostnamen Eures MQTT-Servers sucht oder der Webserver über einen lokalen Domain-namen erreichbar ist. Dazu müssen noch die entsprechenden Optionen “WEBSERVER_ADVERTISE” bzw. “MQTT_HOST_DISCOVERY” aktiviert werden.
Mit “USE_TIMERS” und den nachfolgenden Optionen könnt Ihr die Timer-Funktionen von Tasmota aktivieren/deaktivieren und steuern. Dabei könnt Ihr mit “USE_TIMERS_WEB” aktivieren /deaktivieren, dass die Timer über die Weboberfläche steuerbar/anzeigbar sind. Mit “USE_SUNRISE” könnt Ihr verschiedene Funktionen hinzufügen die Euch ermöglichen auch auf Sonnenaufgang- und Sonnenuntergangs-Zeiten reagieren zu können. Um diese Zeitpunkte genau festlegen zu können, könnt Ihr dazu mit “SUNRISE_DAWN_ANGLE” auch noch genau festlegen welche Dämmerung genutzt werden soll. Dabei gibt es die folgenden Optionen: DAWN_NORMAL, DAWN_CIVIL, DAWN_NAUTIC, DAWN_ASTRONOMIC
“USE_RULES” aktiviert/deaktiviert die Unterstützung für eigene Regeln. Wollt Ihr Euer Tasmota-Device also über bestimmte Regeln individiuell steuern solltet Ihr diese Funktion aktivieren.
Die Option “USE_ADC_VCC” ist wichtig für den Fall, dass Ihr den integrierten ADC Eures ESP8266 verwenden wollt. Ist diese Option aktiviert wird der interne ADC nämlich dazu genutzt die Versorgungsspannung zu messen. In diesem Fall ist es nicht möglich externe Spannungen zu messen. Dazu muss diese Funktion deaktiviert werden.
Mit “USE_DS18x20” könnt Ihr die Unterstützung für DS18x20-Temperatursensoren aktivieren bzw. deaktivieren. Mit “W1_PARASITE_POWER” könnt Ihr zusätzlich die Unterstützung für die parasitäre Energieversorgung verbessern.
In dieser Rubrik lässt sich die Unterstützung für diverse über das I2C-Protokoll angebundene Sensoren aktivieren/deaktivieren. Dazu muss in jedem Fall die Option “USE_I2C” aktiviert werden. Die individuelle Unterstützung für die jeweiligen Sensoren wird dann über die aktivierung/deaktivierung der jeweiligen Option konfiguriert.
Mit der Option “USE_SPI” kann die Unterstützung für Sensoren und Aktoren die über SPI kommunizieren aktiviert/deaktiviert werden.
Neben I2C und SPI können auch Sensoren und Aktoren mit einer seriellen Schnittstelle angeschlossen werden. In dieser Rubrik könnt Ihr die Unterstützung für die jeweligen Sensoren aktivivieren/deaktivieren.
Mit der Tasmota Firmware ist es auch möglich Infrarot-Kommandos zu senden und zu empfangen. Die dafür nötigen Einstellungen findet Ihr in dieser Rubrik. Dabei aktiviert/deaktiviert die Funktion “USE_IR_REMOTE” die Möglichkeit Kommandos zu senden. Die Funktion “USE_IR_RECEIVE” aktiviert/deaktiviert dagegen die Funktion Kommandos zu empfangen.
Die Option “USE_WS2812” solltet Ihr aktivieren, wenn Ihr mit Eurem Tasmota-Device WS2812 LED’s steuern wollt. Dabei könnt Ihr mit “USE_WS2812_CTYPE” auch den LED-Typ, also z.B. NEO_GRB/NEO_RGB/usw. einstellen. Die Option “USE_WS2812_DMA” ermöglicht es euch die WS2812-LED’s über das DMA Interface anzusteuern. Dies ist gerade bei Zeitkritischen Anzeigen sinnvoll und verringert dazu die Prozessorbelastung.
Die Option “USE_ARILUX_RF” aktiviert/deaktiviert die Unterstützung für den Arilux RF controller.
Mithilfe der Option “USE_SR04” könnt Ihr die Unterstützung für den sehr verbreiteten HC-SR04 Ultraschall-Abstandssensor aktivieren/deaktivieren. 

Die Option “USE_RF_FLASH” ermöglicht, sofern aktiviert auf einer SONOFF 433Mhz RF Bridge die programmierung des angeschlossenen Co-Prozessors über die Weboberfläche der Tasmota-Firmware. Näheres dazu könnt Ihr auch im Artikel Tasmota – Sonoff RF Bridge RF-Chip(EFM8BB1) mit Portisch Firmware flashen finden.

In dieser und der folgenden Rubrik lassen sich Optionen konfigurieren die hauptsächlich für Entwickler nützlich sind. Mithilfe der Option “USE_DEBUG_DRIVER” aktiviert/deaktiviert Ihr experimentelle Treiber für noch nicht vollständig getestete Sensoren und Aktoren.
Diese Optionen aktivieren/deaktivieren gewisse “Standardkonfigurationen”. “USE_CLASSIC” aktiviert alle Optionen die für die “klassische” Tasmota-Version notwendig sind. “USE_SESNORS” aktiviert alle Option für die am meisten genutzten Sensoren. “USE_KNX_NO_EMULATION” erstellt eine Version mit KNX aber ohne dieses Funktion zu emulieren. “BE_MINIMAL” deaktiviert die meisten Funktionen und erzeugt somit ein sehr kompaktes Firmware-Image, welches sich perfekt eignet um per OTA auf einen ESP8266 aufgespielt zu werden.

Starten des Programmiervorgangs

Nachdem Ihr die Firmware nach Euren Wünschen angepasst bzw. konfiguriert habt geht es nun daran diese auf den ESP8266 Eures Tasmota-Devices zu übertragen. In diesem Beispiel wird ein normales ESP8266-Adaperboard der WEMOS D1-Mini mit der Tasmota-Firmware programmiert.

Wählt dazu zuerst das von Euch verwendete ESP8266 Adapterboard aus.
Im Fall eines WEMOS D1-Mini sollten die Optionen wie abgebildet eingestellt sein. Mit der Option “Erase Flash…” könnt Ihr noch einstellen welche Daten während des programmierens gelöscht werden sollen. Dabei könnt Ihr zwischen “Only Sketch”=Nur die Firmware, “Sketch + Wifi Settings”= Firmware und Wifi-Konfigurationsdaten und “All Flash Contents”= Alle Daten auswählen. Im Normalfall könnt Ihr dies auf “Only Sketch” eingestellt lassen.
Um den Programmiervorgang dann zu starten reicht ein Klick auf das Türkis-Grün hinterlegte Pfeilsymbol(das zweite von Links) in der oberen Icon-Leiste.
Dies startet die kompilierung und anschließende programmierung der Firmware. Je nach Umfang der Firmware kann dieser Vorgang ein bis fünf Minuten dauern. War dies erfolgreich wird es Euch durch ein “Hochladen abgeschlossen” in der unteren Statusleiste bestätigt.
Überprüfen könnt Ihr den Startvorgang des frisch programmierten ESP8266 auch über die serielle Schnittstelle. Nach der erfolgreichen Installation gibt die Tasmota-Firmware darüber nämlich allerhand Statusnachrichten aus. Klickt dazu auf den Menüpunkt “Werkzeuge” und “Serieller Monitor”. Mehr Infos zur seriellen Schnittstelle könnt Ihr auch in dem Artikel Ardunio – Die serielle Schnittstelle verwenden finden.
In dem nun geöffneten Fenster könnt Ihr alle Meldungen des ESP8266 bzw. der Tasmota-Firmware lesen die unter anderem während des Boot- und Verbindungsvorgangs ausgegeben werden.

Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

2 Kommentare

  1. in der aktuellen tasmota Firmwareversion von github gibt es den Ordner sonoff so wie oben beschrieben nicht mehr. Das Kompilieren funktioniert nicht. Was mache ich falsch?
    Schöne Grüße
    Fabian

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.