Wie kompiliere und konfiguriere ich die Tasmota Firmware?

Tasmota (Theo-Arends-Sonoff-MQTT-OTA) ist eine kostenfreie Open Source Firmware die als Alternative auf IoT Geräten mit ESP8266 Chip installiert werden kann. Der Vorteil dieser Open Source Firmware ist die Transparenz und Anpassung der Konfiguration nach eigenen Zwecken. Während die Geräte von Sonoff, Gosund oder auch Zigbee mit einer sehr restriktiven und mit Vorbehalt behafteten Firmware ausgeliefert werden, kann die Tasmota Software noch vor dem Flashen auf deine Zwecke angepasst werden. Ich finde immer wieder Artikel im Internet in denen eine gewisse Warnung vor den Standard-Firmware der Hersteller ausgeht. Diese telefonieren sehr gerne nach Hause oder zu anderen Diensten.

In diesem Artikel geht es um genau diesen Prozess: Quelloffene Firmware herunterladen, nach eigenen Wünschen anpassen und auf das IoT Gerät flashen.

Für diesen Artikel muss das Gerät bereits eine Tasmota Firmware aufgespielt haben. Dieser Artikel richtet sich nicht an „Erstflasher“, dann das erfordert häufig das Öffnen dieser Geräte!

Steckdosen mit Tasmota preflashed!

Steckdosen, die mit Tasmota OTA/Tuya geflasht werden können (laut Kommentare und Quellen)

Herunterladen der Firmware

Die Software liegt in einem Github Repository. Wir klonen das Repository und öffnen dann den Ordner mit Visual Studio Code.

#Git Repository klonen
git clone https://github.com/arendst/Tasmota.git
#In den geklonten Ordner navigieren
cd Tasmota
#Visual Studio Code hier öffnen
code .

Vorbereiten von Visual Studio Code – PlatformIO IDE installieren

Nachdem wir Visual Studio Code, im weiteren Verlauf VSCode genannt, geöffnet haben müssen wir zu erst die Extension PlatformIO IDE installieren. Wechselt in den Tab Extensions und sucht nach PlatformIO IDE. Das erste Suchergebnis sollte die gewünschte Extension zeigen. Klick auf Install und wartet, bis die Installation abgeschlossen ist. Wichtig: Bitte startet nach der Installation VSCode neu!

Installation von PlatformIO IDE
Installation von PlatformIO IDE

Anpassung der Konfiguration

Nach Neustart von VSCode können wir beginnen die Firmware auf unsere Zwecke anzupassen. Öffnet in eurem Projekt die Datei my_user_config.h. Diese befindet sich wiederum in dem Unterordner tasmota.

my_user_config.h
my_user_config.h

In dieser Datei gibt es alle möglichen Voreinstellungen wie z.B. Netzwerk, Loglevel, MQTT und sogar Styling für das Web UI.

Ich habe das Netzwerk direkt in der Firmware konfiguriert damit sich das Gerät direkt im richtigen WIFI anmeldet und agiert. Das Nachteil dieser Methode ist das vorkonfigurieren jedes einzelnen Gerätes, da die IP Adresse für jedes Gerät unterschiedlich ist. Der Kompiliervorgang dauert allerdings nur ein paar Sekunden. Für meine 6 Steckdosen dauert das Anpassen und Kompilieren nur wenige Minuten.

// -- Wi-Fi ---------------------------------------
#define WIFI_IP_ADDRESS        "192.168.178.96"         // [IpAddress1] Set to 0.0.0.0 for using DHCP or enter a static IP address
#define WIFI_GATEWAY           "192.168.178.1"     // [IpAddress2] If not using DHCP set Gateway IP address
#define WIFI_SUBNETMASK        "255.255.255.0"   // [IpAddress3] If not using DHCP set Network mask
#define WIFI_DNS               "192.168.178.1"     // [IpAddress4] If not using DHCP set DNS1 IP address (might be equal to WIFI_GATEWAY)
#define WIFI_DNS2              "0.0.0.0"         // [IpAddress5] If not using DHCP set DNS2 IP address (might be equal to WIFI_GATEWAY)

#define STA_SSID1              "WLAN_SSID"                // [Ssid1] Wi-Fi SSID
#define STA_PASS1              "WLAN_PASSWORD"                // [Password1] Wi-Fi password

Nutzt ihr das Tasmota Standard Image müsst ihr zunächst den geräteinternen Access Point aktivieren und euch mit diesem verbinden. Danach könnt ihr die oben genannten Einstellungen ebenfalls durchführen. Mit der vorkonfigurierten Firmware sparen wir uns diesen Weg. Eine Anleitung für diesen Weg findet ihr hier.

Andere Einstellungen müssen im Quellcode angepasst werden, da dies in der Weboberfläche sonst nicht möglich ist. Dazu gehört zum Beispiel die Konfiguration von CORS (Cross-Origin Resource Sharing). Diese ist aus Sicherheitsgründen in der Firmware komplett deaktiviert und lässt sich auch nicht aktivieren. Ich möchte jedoch meine Tasmota Geräte über die HTTP API verwalten und muss daher CORS aktivieren. Dazu entferne ich den Kommentar für Zeile 188 (abhängig von Version).

//#define USE_CORS //[Cors] Enable CORS - Be aware that this feature is unsecure ATM (https://github.com/arendst/Tasmota/issues/6767)
#define CORS_DOMAIN "" //[Cors] CORS Domain for preflight requests

CORS ist nach Entfernung des Kommentars grundsätzlich aktiviert und kann verwendet werden. Im Web UI taucht unter Configuration -> Configure WIFI nun die Option CORS Domain auf. Ich kann diese Option aber auch direkt in der Zeile darunter vorausfüllen. Meine React App wird später unter dem internen DNS smarthome.internal.loc laufen. Diese Domain trage ich unter CORS_DOMAIN ein, damit ich HTTP Requests für diese Domain erlaube. Bitte beachtet, dass eine falsche Konfiguration von CORS ein Sicherheitsrisiko birgt!

#define USE_CORS //[Cors] Enable CORS - Be aware that this feature is unsecure ATM (https://github.com/arendst/Tasmota/issues/6767)
#define CORS_DOMAIN "smarthome.internal.loc" // [Cors] CORS Domain for preflight requests

Es gibt noch etliche andere Einstellungen, die ihr in dieser Konfiguration vornehmen könnt. Fast alle dieser Einstellungen könnt ihr aber auch später im Web UI konfigurieren.

Kompilieren der Firmware

Wechelt im VSCode in die PlatformIO Ansicht und öffnet das Dropdown von tasmota und tasmota-minimal. Für das Flashen werden sowohl das Tasmota Image sowie das Tasmota-lite Image benötigt. Zum Kompilieren beider Images wählt jeweils unter General -> Build aus. Nach dem Anklicken von Build startet der Kompliervorgang.

Kompilieren der Firmware
Kompilieren der Firmware

Sind beide Kompiliervorgänge durchgelaufen findet ihr im geklonten Tasmota Ordner die Firmware unter build_output/firmware.

Flashen des Tasmota Gerätes

Öffnet das Web UI unter http://192.168.178.96 (IP Adresse des Gerätes) und navigiert zu Firmware Upgrade. Wählt bei Upgrade by file upload zuerst das tasmota-minimal.bin Image aus. Es muss immer zuerst das minimal Image geflasht werden. Diese Reihenfolge muss aus Speicherplatzgründen des Gerätes eingehalten werden. Nachdem der Flashvorgang abgeschlossen ist startet das Gerät neu.

Das Hauptmenü sieht mit dem minimal Image schlanker aus und weißt im Kopfbereich ebenfalls darauf hin, dass es sich bei dem geflashten Image um eine Minimal Firmware handelt.

Tasmota Minimal Firmware
Tasmota Minimal Firmware

Wiederholt das Firmware Upgrade mit dem großen Image der kompilierten Firmware. Ist der Flashvorgang erfolgreich durchgelaufen startet das Gerät wieder neu und ihr könnt das Gerät nutzen.

Hilfreiche Links

Beitrage der gleichen Kategorie

Luftqualitätsüberwachung in der Werkstatt

In der heutigen digitalen Ära wächst das Bewusstsein für die Umwelt und die Notwendigkeit, diese zu überwachen, stetig. Die Luftqualitätsüberwachung in der Werkstatt ist nicht nur eine Frage der Gesundheit, sondern auch der Produktivität und Sicherheit. In Werkstätten, wo mit verschiedenen Materialien gearbeitet wird, können Schadstoffe in die Luft gelangen, die ohne geeignete Überwachungssysteme oft […]

0 Kommentare

Bitte tragt euren Namen ein.
Bitte tragt eure Email-Adresse ein.
Top