In der user_config_override.h findet ihr eine Liste mit Features/Treibern (#define bzw. #undef), die ich für meine ESP Tasmota Images/Firmware verwende und auf ottelo.jimdo.de zum Download anbiete. Die hier hochgeladenen Dateien können euch dabei helfen, ein eigenes angepasstes Tasmota Image für euren ESP mit Gitpod (oder Visual Studio) zu erstellen, wenn ihr mit dem ESP ein Stromzähler über ein Lesekopf auslesen wollt (SML) oder eine smarte Steckdose mit Energiemessfunktion (SonOff, Gosund, Shelly) habt und ihr die Liniendiagramme (Google Chart Script) für den Verbrauch haben wollt. Das passende Script findet ihr in meinem anderen Repo https://github.com/ottelo9/tasmota-sml-script.
Die Dateien in euer Tasmota Projektverzeichnis von Visual Studio Code oder Gitpod kopieren (ggf. überschreiben).
- TasmotaProjekt/
tasmota/user_config_override.h
- TasmotaProjekt/
platformio_tasmota_cenv.ini
- TasmotaProjekt/
platformio_tasmota32.ini
<- habe ich nur als Referenz mit hochgeladen. Bei [core32] platform sollte immer das neuste framework verwendet werden!
Eine ausführliche Anleitung zum Einrichten von Tasmota und weitere Details findet ihr auf meinem Blog: https://ottelo.jimdo.de
Zum Kompilieren unter Gitpod/VSC den passenden Befehl in die Console eingeben:
ESP32:
platformio run -e tasmota32_ottelo
(Generic ESP32)
platformio run -e tasmota32s2_ottelo
platformio run -e tasmota32s3_ottelo
platformio run -e tasmota32c3_ottelo
platformio run -e tasmota32c6_ottelo
platformio run -e tasmota32solo1_ottelo
(für ESP32-S1 Single Core z.B. WT32-ETH01 v1.1)
ESP8266:
platformio run -e tasmota_ottelo
( = 1M Flash)
platformio run -e tasmota_energy_ottelo
( = 1M Flash, Update nur über minimal da Img zu groß. für SonOff POW (R2) / Gosund EP2 SonOff Dual R3 v2)
platformio run -e tasmota4m_ottelo
(>= 4M Flash)
Tasmota Web Installer (ESP32: nur Factory Images)
Die ESP32 Non-Factory Images überträgt ihr via OTA (Firmware Upgrade -> Use file upload)
Die findet ihr hier.
Mehr Infos bzgl. ESP32 Versionen:
https://tasmota.github.io/docs/ESP32/#esp32_1
Für weitere ESPs siehe:
https://github.com/arendst/Tasmota/blob/development/platformio_override_sample.ini bei default_envs
Features/Treiber (de)aktivieren:
https://tasmota.github.io/docs/Compile-your-build/#enabling-a-feature-in-tasmota
Hier ist eine Übersicht aller Features/Treiber:
https://github.com/arendst/Tasmota/blob/development/tasmota/my_user_config.h
Wenn beim Kompilieren eine Standard Tasmota Variante verwendet wird (z.B. -e tasmota32c3
), dann werden Features/Treiber für diese Konfiguration (siehe https://github.com/arendst/Tasmota/blob/development/platformio_tasmota_env32.ini z.B. [env:tasmota32c3]) verwendet und die deaktivierten Features, die ihr in der user_config_override.h
eingetragen habt, überschrieben und somit doch verwendet! Wenn Features/Treiber (de)aktivieren werden sollen, dann eine eigene Variante in platformio_tasmota_cenv.ini
erstellen und -DFIRMWARE_TASMOTA32
entfernen, da wie bereits oben erwähnt, ESP32 Standard Features wie Berry usw verwendet werden (siehe FIRMWARE_TASMOTA32
in tasmota_configuration_ESP32.h
). Siehe auch https://tasmota.github.io/docs/Compile-your-build/#customize-your-build
Noch eine Info:
Immer die neuste Tasmota Platform Framework builds verwenden. D.h. in der platformio_tasmota32.ini bei [core32] platform url aktualisieren
Offizielle Tasmota Github Seite
Falls Tasmota mal ab und zu aus unbekannten Gründen neustarten (Reboots) sollte, gibt es mehrere Möglichkeiten die Ursache des Problems festzustellen.
ESP via USB mit dem PC verbinden und ein Terminalprogramm (putty oder MobaXterm) laufen (loggen) lassen bis der Reboot passiert. Tasmota gibt dann beim Crash/Reboot ein Crash Dump aus. Das könnte z.B. so aussehen:
Guru Meditation Error: Core 0 panic'ed (Stack protection fault).
Detected in task "loopTask" at 0x42023fee
Hat man das Image selbst kompiliert, so kann man in der .map Datei nach der Adresse 0x42023fee bzw. 0x42023* suchen. Die map Datei liegt unter \.pio\build\tasmota32xxx\firmware.map
. Dort findet man dann die Funktion, in der das Problem (in diesem Fall Buffer Overflow) aufgetaucht ist. Die genaue Stelle kann man nur herausfinden, wenn man die firmware.asm Datei hat. Die wird erst erstellt, wenn man folgendes mit in die platformio_tasmota_cenv.ini einfügt:
extra_scripts = ${env:tasmota32_base.extra_scripts}
post:pio-tools/obj-dump.py
Die extrem große Datei liegt unter \.pio\build\tasmota32xxx\firmware.asm
. Dort kann man dann exakt nach der Adresse suchen.
Für den C6 muss man aber noch die obj-dump.py
anpassen, da der C6 dort fehlt. Ich habe einfach die Zeile vom C3 kopiert.
Bedanken möchte ich mich besonders bei gemu2015, der das Tasmota Scripting und SML entwickelt hat und mir immer sofort bei Problemen geholfen hat. Und natürlich beim restlichen Tasmota Entwickler-Team, für das grandiose Tasmota :).