I - Flash-Speicher komplett löschen mit blank .bin
- bei WLAN-Schaltern, Steckdosen, Lampen... mit ESP8266 / ESP8285 Chip wie Sonoff, Shelly, usw.
- bei 'unerklärlichem' Verhalten und Fehlern nach Firmware-Wechsel
- bei WLAN-, Update-, Flash-, Konfig-Problemen usw.
I.I - Vorbereitung
Die hier beschriebene Methode zum Löschen des Speichers und anschließendem
Neu-Beschreiben funktioniert NUR per Hardware Flasher (OTA ist nicht möglich).
Wie für das Flashen von Tasmota, wird auch hier ein FTDI-, CP2102-, CH340-,... Adapter benötigt,
mit der üblichen Verdrahtung (TX, RX, GND,...).
Genauso muss das Gerät für das Löschen in den Flash-Modus versetzt werden,
z.B. Taste während dem Anstecken gedrückt halten oder GPIO0 auf GND legen.
Die dazu benötigten Dateien: blank_1MB_2MB_4MB_mit_ESPtool.zip
I.II - Löschen mit blank_1M.bin / blank_2MB.bin / blank_4MB.bin
'Löschen' bedeutet hier Überschreiben des gesamten Flash-Speichers
mit einer .bin Datei, in der nur 'FF' Bytes enthalten sind.
Je nach Gerät ist unterschiedlich großer Flash-Speicher vorhanden,
entsprechend sollte die blank .bin gewählt werden.
Bei den meisten Sonoff wird 1MB Flash verwendet.
Shelly 1 und Shelly 2 verwenden 2MB Flash.
Bei Sonoff POW v2.0 / WeMos D1 / NodeMCU z.B. 4MB Flash.
Die Größe des Flash-Speichers lässt sich z.B. mit esptool.py feststellen:
esptool.py flash_id
I.III - Löschen per ESPEasy Flasher (esptool.exe bzw. FlashESP8266.exe) unter Windows
- die Datei FlashESP8266.exe (GUI zu esptool.exe) starten
- COM-Port sollte schon passend vorgewählt sein
- Firmware blank_1M.bin / blank_2MB.bin / blank_4MB.bin auswählen
- Flash Button drücken
Danach kann eine Firmware .bin (Tasmota, ESPEasy, ESPurna...) gewählt werden, um sie ebenso zu Flashen.
-> aktuelle TASMOTA development -> aktuelle TASMOTA release
I.IV - Löschen per esptool.py
Das Löschen des Flash-Speichers ist auch mit esptool.py möglich:
esptool.py erase_flash
II - Hinweise zum Lösungsansatz
Die Methode (Flash-Speicher vollständig löschen und anschließend neue .bin aufspielen)
ist meistens der schnellste Weg, um zu einem definierten Punkt zurückzukehren,
bei dem gesichert ist, dass es zu 100% funktioniert bzw. funktionieren müsste (Firmwaretechnisch).
Bei der Fehlersuche hat es sich deshalb bewährt, diesen als 1. Schritt zu wählen.
Beim Wechsel zwischen Firmware-Versionen, bei Änderungen des Core 2.3.0/2.4.2/2.5.0,
beim Wechsel zwischen 1MB, 2MB, 4MB Firmware usw. usw.
bleiben (ohne Löschen) Reste im Speicher vorhanden, die sich gegenseitig stören und
zu 'unerklärlichen' Phänomen führen können.
Andere Methoden (wie CFG_HOLDER...) sind meistens zeitaufwändiger und manchmal
auch nicht zielführend, da nur Teile des Speichers gelöscht oder überschrieben werden.
III - Probleme und weitere Lösungsvorschläge
III.I - WLAN und MQTT Probleme:
- 1. Schritt, wie schon beschrieben, Flash komplett löschen und eine vorkompilierte Tasmota .bin flashen (z.B. sonoff-DE.bin)
- Core 2.4.2 sollte man meiden
- bei MQTT Verbindungsabbrüchen (unter Core 2.5.0) versuchsweise Sleep 0 einstellen
- sonst u.a. WLAN Kanalwahl überprüfen / Mesh ausschalten / Repeater deaktivieren / Fixe IP...
III.II - WLAN verbindet sich nicht:
- Ursache können Sonderzeichen und Leerzeichen in WLAN SSID und Passwort sein.
- Probleme kann es auch durch aktiviertes 5GHz WLAN mit identischer SSID / Mixed Mode etc. geben.
III.III - WLAN funktioniert nach einiger Zeit nicht mehr:
- dies kann zum einen Hardware-Fehler bedeuten --> Lötverbindungen kontrollieren und nachlöten, Elkos, Überhitzung...
- zum anderen könnten Störungen durch Interferenzen mit anderen/neuen Geräten etc. die Ursache sein.
III.IV - Relais-Klicken und LED-Blinken im Sekunden-Takt:
- ist ein Zeichen für fehlerhafte oder nicht vollständig geflashte .bin --> Löschen und neu Flashen
III.V - Problem mit zu wenig Speicher (iRAM):
- das Gerät startet zwar und lässt sich z.B. über Taste schalten, kurz darauf folgen aber Resets mit Neustart
- oder es stehen bestimmte Funktionen nicht zur Verfügung (fehlende Menüpunkte in Tasmota).
- Lösung: vorkompilierte Tasmota .bin flashen oder Funktionen von Tasmota in my_user_config.h bzw. user_config_override.h deaktivieren.
Weitere Infos zu Fehlerbehebung: https://github.com/arendst/Sonoff…Troubleshooting
P.S.:
Der Artikel befindet sich zur Zeit in Bearbeitung.
Kommentare zu Korrekturen und Verbesserungsvorschlägen sind SEHR willkommen und werden von mir mit Sicherheit überdacht.
Wenn dir der Beitrag geholfen hat, freut mich ein '' natürlich besonders.