ESP8266 D1 Mini mit Tasmota flashen
Nick
Inhaltsverzeichnis [Verbergen]
Was ist Tasmota?
Viele Hersteller binden ihre Geräte an die Cloud. Dadurch ist die Steuerung der Geräte teilweise nur über das Internet möglich. Außerdem drücken sehr viele Käufer und Smarthome-Fans ihre Bedenken gegenüber dieser Technik aus, da nicht immer klar ist, welche Daten an welche Server geschickt werden.
Tasmota knüpft genau hier an und sorgt für eine alternative Software die auf den ESPs, die in den Geräten meist verbaut sind, installiert werden kann.
Was bietet Tasmota?
- Einfache Installation
- Weboberfläche zum konfigurieren
- MQTT-Support
- Erstellung von Regeln und Zeitplänen
- Einfache Updates über das Interface
- Detailliertes Logging
- Nutzung von vorgefertigten Templates und Erstellung eigener Templates
- Alles komplett lokal
Installation Linux
ESP-Tools ist eine Python basierte Software. Aus diesem Grund muss Python zuerst auf unserem System installiert sein. Es wird außerdem eine Python-Bibliothek benötigt, die wir ebenfalls vorher installieren müssen. Wenn alle nötigen Pakete installiert wurden, dann können wir die ESP-Software von GitHub herunterladen. Geht dazu in dem Git-Repository unter die Releases und ladet euch den Source Code der neusten Version als ZIP-Archiv runter. Nach dem Download muss das Archiv noch entpackt werden. In dem entpackten Ordner befindet sich die Datei esptool.py, die wir für die weiteren Schritte benötigen.
Hier der Ablauf der Befehle, die ihr absetzen müsst. Achtet bitte auf die Versionsnummern, die gegebenenfalls geändert werden müssen.
Dem Programm muss später übergeben werden, an welchem USB-Port der ESP8266 Di Mini angeschlossen ist.
Hierzu kann unter Linux folgender Befehl genutzt werden:
ls -la /dev/serial/by-id
Ihr bekommt dann eine Liste der angeschlossenen USB-Geräte. Sucht den passenden raus. Meistens befindet sich schon das Wort "serial" mit im Namen, wie bei mir:
lrwxrwxrwx 1 root root 13 Nov 20 20:47 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB0
Für später wird dann das ttyUSB0 benötigt. Der vollständige Pfad heißt dann : /dev/ttyUSB0
Da die nötigen Schritte nun getan wurden, können wir mit dem eigentlich Flash-Vorgang beginnen. Vorher benötigen wir natürlich die Tasmota-Software, die auf den ES8266 D1 Mini gespielt werden soll. Tasmota erhalten wir ebenfalls auf GitHub und können es unter den Releases herunterladen. Ihr müsst ein wenig scrollen, bis die verschiedenen .bin-Dateien erscheinen. Sucht euch die passender Firmware in eurer präferierten Sprache raus. Ich nehme die tasmota-DE.bin und lade sie direkt runter in den Ordner esptool-2.8 in meinem Home-Verzeichnis.
- Wir haben python und python-serial installiert.
- Wir haben die ESP-Tools runtergeladen und es gibt einen entpackten Ordner.
- In diesem Ordner muss eine Datei mit dem Namen esptool.py enthalten sein.
- Außerdem befindet sich in dem Ordner die Tasmota-Software mit der Dateiendung ".bin".
- Mein PC erkennt die USB-Schnittstelle, an der der ESP angeschlossen ist
- Ich habe administrative reche bzw. darf den Befehl "sudo" ausführen.
Um Tasmota nun zu flashen, führt folgenden Befehl aus:
sudo python esptool.py --port /dev/ttyUSB0 write_flash 0x0 tasmota-DE.bin
Der Befehl wird als root-Benutzer ausgeführt, damit die USB-Schnitstelle angesprochen werden kann. Mit der --port Eigenschaft geben wir die USB-Schnitstelle an, die wir ein paar Schritte zuvor herausgefunden haben. Am Ende des Befehls wird noch der Pfad zur Tasmota-Software angegeben. Da sich die esptool.py Datei und die .bin Datei im selben Verzeichnis befinden, reicht es wie oben angegeben.
- esptool.py v2.8
- Serial port /dev/ttyUSB0
- Connecting....
- Detecting chip type... ESP8266
- Chip is ESP8266EX
- Features: WiFi
- Crystal is 26MHz
- MAC: ec:fa:bc:39:46:b3
- Uploading stub...
- Running stub...
- Stub running...
- Configuring flash size...
- Auto-detected Flash size: 4MB
- Flash params set to 0x0340
- Compressed 576672 bytes to 397228...
- Wrote 576672 bytes (397228 compressed) at 0x00000000 in 34.8 seconds (effective 132.4 kbit/s)...
- Hash of data verified.
- Leaving...
- Hard resetting via RTS pin...
Installation Windows und Mac
Unter Windows und Mac gestaltet sich das ganze noch viel einfacher. Bei GitHub gibt es einen Entwickler, der auf Basis der Python ESP-Tools (esptool.py) eine Anwendung mit Benutzeroberfläche programmiert hat. Ihr müsst nur in den Releases die richtige .exe-Datei für euer Windows-System herunterladen. Die Software muss nicht installiert werden, sondern kann direkt gestartet werden.
Als erstes wählt ihr den richtigen Serial Port aus. Wenn ihr nur den ESP8622 D1 Mini angeschlossen habt, dann wird sehr wahrscheinlich nur ein COM-Port angezeigt. Anschließend wählt ihr die Firmware, in unserem Fall Tasmota, aus. Die Baudrate lasst ihr standardmäßig auf 115200 stehen. Wenn ihr einen ESP8622 flashen wollt, dann nutzt ihr bei dem "flash mode" die Option Dual IO (DIO).
Ersteinrichtung
Nach dem flashen startet der ESP in einem "HotSpot" oder "AccessPoint" - Modus. Das bedeutet, dass ein eigenes WLAN bereit gestellt wird. Mit diesem WLAN müsst ihr euch einmalig verbinden. Wenn ihr euch verbunden habt, dann öffnet sich meistens schon automatisch ein Browserfenster mit der Konfigurationsseite von Tasmota. Sollte sich die Seite bei euch nicht automatisch öffnen, gebt manuell die IP-Adresse 192.168.4.1 ein.
Auf der Konfigurationsseite gebt ihr dann an , mit welchem WLAN sich der ESP in Zukunft verbinden soll. Außerdem könnt ihr manuell einen Hostnamen vergeben oder einen "generieren lassen".
Wenn ihr auf speichern klickt, dann Startet der ESP neu und verbindet sich mit dem angegebenen WLAN. Achtet darauf, dass der ESP nun eine IP-Adresse von dem DHCP-Server in eurem Netzwerk (meistens der Router) bekommt. Dieses IP-Adresse müsst ihr herausfinden.
Grundkonfiguration
Aktuell sind nur die GPIO PINs 1,2,3 und 14 benutzbar. Das liegt daran, dass Tasmota einiges vorgefertigte Templates mitliefert. Bei vielen Smarthome-Produkten, die einen ESP verbaut haben, ist nicht ganz einfach ersichtlich, welcher GPIO zum Beispiel das Relais steuert. Durch die bereitgestellten Templates, muss man nur das gekaufte Gerät angeben und die richten GPIOs werden angesprochen.
Um alle PINs nutzen zu können, geht ihr unter Einstellungen in das Menü Gerät konfigurieren. Hier stellt ihr den Gerätetyp auf "Generic" und klickt auf "speichern". Nachdem der ESP neu gestartet hat, seht ihr, dass ihr alle PINS benutzen könnt.
Im Dropdown Menü jedes PINs könnt ihr nun auswählen, welche Komponente an dem jeweiligen Pin angeschlossen wird. Hier kann ich natürlich nicht für jeden Button, Sensor etc. eine eigene Erklärung geben. Aber eventuell kommt ja in Zukunft ein kleines Beispiel
Wem die Begriffe PINs und GPIO neu sind, der sollte sich vorher den Artikel ESP8266 D1 Mini Pinbelegung und Eigenschaften durchlesen.