Releases: ottelo9/tasmota-sml-script
15.01.2026 - Optimierung UI, Setupmenü, Bugfixes, Optionen für ShellyEmu
- Tasmota konnte crashen (man musste factory neu flashen), wenn RX und TX Pin identisch waren (für Bugfix ist neues Image notwendig)
- Setupseite "Stromzähler konfigurieren / Daten sichern" optimiert
- RX/TX-Pins für verschiedene Leseköpfe hinzugefügt
- EcoTrackerEmu: Nulleinspeisung Offset der Leistung einstellbar
- ShellyEmu: Nulleinspeisung Offset der Leistung einstellbar & Daten immer senden Option
- Lesekopf Test mit Spiegel (in der Stromzähler Liste wählbar). Nach Auswahl Tasmota neustarten und dann Lesekopf gegen Spiegel halten
- Tasmota kann nun via OTA aktualisiert werden, ich habe alle meine Images bei github hochgeladen, die URL wird im Script via sota("") gesetzt. URL ist im Image eingebettet, erst ab V15.2.0.
- Stromzähler Scripte CRC Check entfernt, 1,=soC,1024,0 entfernt, machte bei einigen Probleme ...
- Update Logarex LK13BE
- Update Eastron SDM630 Modbus
Setupmenü: Stromzähler konfigurieren / Daten sichern / Werte initialisieren
![]()

Scriptupdate nur für ESP32 !
ACHTUNG: KRITISCHE ÄNDERUNG AB SCRIPT VERSION 01.12.2025
Diagramm-Daten müssen vor dem Upgrade auf diese Version gesichert werden. Nach dem Update können die Daten wieder importiert werden.
Anleitung: https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/#14
Die Daten werden nun in einer extra Datei „data.csv“ gespeichert und können so jederzeit gesichert werden.
Dieses Script ist nur noch für den ESP32. Tasmota (ottelo) Image ab v15.1.0 (07.12.2025) notwendig.
01.12.2025 - Stromzähler via DropDown & Verwendung Tasmota Dateisystem zur Datenspeicherung
- Stromzähler wählbar via DropDown Menü
- Pin Auswahl via DropDown Menü
- Daten werden in eine data.csv Datei geschrieben und können so bequem gesichert werden
- Daten/Diagramm auf Knopfdruck initialisieren
Scriptupdate nur für ESP32 !
ACHTUNG: KRITISCHE ÄNDERUNG AB SCRIPT VERSION 01.12.2025
Diagramm-Daten müssen vor dem Upgrade auf diese Version gesichert werden. Nach dem Update können die Daten wieder importiert werden.
Anleitung: https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/#14
Die Daten werden nun in einer extra Datei „data.csv“ gespeichert und können so jederzeit gesichert werden.
Dieses Script ist nur noch für den ESP32. Tasmota (ottelo) Image ab v15.1.0 (07.12.2025) notwendig.
15.08.2025 - Shelly Emu Script (Marstek Jupiter/Venus/B2500) Regelung optimiert
Änderungen gegenüber 11.06.2025 Release:
- kleinen Bug gefixt. Wenn ihr Tasmota am letzten Tag im Monat neustartet, dann wird am nächsten Tag der ganze Verlauf des letzten Monats gelöscht. Der Hinweis kam von Thorsten, danke dafür :)
- Marstek Shelly Pro 3EM Emulation für Jupiter/Venus/B2500 oder auch openDTU-onBattery
2_SML_Script_Chart_PV_ShellyEmu.tas 2_SML_Script_Chart_PV_ShellyEmu.tasWerte werden nun sekündlich an Marstek gesendet (immer). Mein Marstek Jupiter regelt nun nahezu perfekt auf 0 W ohne Schwingung/Oszillation.
Scripte wurden mit diesem Image getestet:
https://github.com/ottelo9/tasmota-sml-images/releases/tag/V15.0.1_250724
Images werden fortlaufend erneuert:
https://github.com/ottelo9/tasmota-sml-images/releases
Release Datum = Datum der letzten Aktualisierung (Script 2_SML_Script_Chart_PV_ShellyEmu.tas).
11.06.2025 - Wasserzähler Script, automatische Zeitzone, größere Diagramme
- 6_Tasmota_Script_Wasseruhr NEU
- beim Booten wird die Zeitzone gesetzt (muss man ggf. je nach Standort anpassen). Siehe
Timezone 99;TimeStd 0,0,10,1,3,60;TimeDst 0,0,3,1,2,120 - Diagramme vergrößert!
width:600px;height:400px
03.06.2025 - kleiner Bugfix bei Verwendung des ext. Script Editors
Danke an Thomas Fu für den Hinweis:
Im Script gibt es unter >B die Zeile
is(0 "Jan|Feb|Mär|Apr|Mai|Jun|Jul|Aug|Sep|Okt|Nov|Dez|")
Diese führt bei der Nutzung eines externen Script-Editors zu einem Übertragungsfehler. Das Problem tritt anscheinend nur beim ESP32-C3 auf (nicht beim ESP8266). Die Lösung ist im Creationx-Forum aufgeführt.
08.02.2025 - Unwichtiger Bug in >S Sektion behoben
In der >S Sektion habe ich für den 3s, 30s und 60s "Task" die Variable secs verwendet. Der Wertebereich geht von 0-59, also wird 60 nie erreicht. Wenn secs allerdings auf 0 springt funktionierte es trotzdem, da 0 Modulo ebenfalls 0 ist. Ich habe es aber trotzdem korrigiert.
Mir ist das alles erst aufgefallen, nachdem ich das optionale Feature ->WebQuery EURE-PUSH-API-URL POST [Content-Type:application/json] {"watt": %0power%} in der >S Sektion verwendet habe. Dieser Befehl benötigt ca. 1s und blockiert solange. D.h. ab und zu wird der wichtige 60s Task nicht ausgeführt! Das ist immernoch ein Problem. Selbst wenn der Befehl in >t1 ausgeführt wird (Multitasking) kommt es zu diesem Problem.
25.01.2025 - Kommentare optimiert, clever-pv.com hinzugefügt
- Beschreibung/Anleitung etwas mehr strukturiert und optimiert
- Neue optionale Funktion hinzugefügt: Daten an clever-pv.com senden (Siehe mein Blog)
- Im SonoffPow/Gosund Script wurde fälschlicherweise enrg[11] als Zählerwert verwendet statt enrg[10] -> Zählerwert Start
- EOL der Textdatei auf Unix (LF) umgestellt, damit der ext. Editor die Datei besser darstellen kann
(Hinweis für mich: git config --global core.autocrlf true)
01.01.2025 - Jahresverbrauch/einspeisung Fix
- Jahresverbrauch und Jahreseinspeisung (+PV Script) wurde beim Jahreswechsel nicht zurück gesetzt (chg[] Abfrage funktioniert nur für Variablen, nicht Sondervariablen wie year).
Um das Script nachträglich bei euch zu ändern müsst ihr oben nach hour=0, yr=0 einfügen (neue Variable). Dann weiter unten, unter hour=hours, yr=year hinzufügen. Dann etwas weiter unten chg[year] in chg[yr] ändern. - Jahresverbrauchs/einspeisung Diagramm Titel zeigt nun 2024/2025 an, weil immernoch die Werte aus dem Vorjahr mit dargestellt werden bis sie überschrieben werden
17.12.2024
- "Daten sofort speichern" Button hinzugefügt
- Beschreibung angepasst
- Beschriftung der Diagramme geändert
- Jahresdiagramm angepasst (PV Script). Netzbezüge linke Y-Achse, Netzeinspeisung rechte Y-Achse
- optional mqtt publish Jahresverbrauchswerte Fix
Initial release
Initial Release auf Github (vorher nur via Google Drive)
Ihr müsst das Script vorher anpassen:
Sucht die Zeile
;-- SML --
M 1
Dort müsst ihr den SML Descriptor für euren Zähler anpassen. Weitere Details auf meiner Seite!
Wenn ihr SML Zeilen entfernt oder hinzufügt, dann müsst ihr auch die Variablen im Script anpassen.
Wenn die erste SML Zeile im Script z.B. "1,77070100100700ff@1,Leistung,W,Power_curr,0" ist, dann wird im Hintergrund von Tasmota die aktuelle Leistung "Power_curr" des Zählers in die Variable sml[1] geschrieben. Die 2te und 3te Zeile (im Script ist das der Verbrauch und die Netzeinspeisung) werden in sml[2] und sml[3] geschrieben.
Bisheriges Changelog:
11.11.2024
- Bugfix für Tasmota 14.2.0 / 14.3.0. Folgende Abfrage musste vor jedem sub eingefügt werden if wm>0 { .... }
In folgenden Subroutinen: #daysub #dayprod #monthsub (z.B. bei +PV Script)
14.10.2024
- Jahresverbrauchs- und Einspeisungszähler korrigiert
13.10.2024
- neu: Jahresverbrauch und Einspeisung
- Begrenzung der Werte im 4h/24h Diagramm möglich. Manuell oder via Schieberegler.
- Alle Kommentare in den Skripten auf Deutsch geändert
07.06.2024
- nur Kleinigkeiten, z.B. Balkendiagramme werden nun farblich unterschieden (eingespeist/verbrauchte Energie und aktueller Monat)
26.03.2024
- neue Variable power2. Alle 3s wird nun ein stark gemittelter/gefilterter Leistungswert errechnet/aktualisiert und kann z.B. über WebRequest abgefragt werden via: http://192.168.178.31/cm?user=admin&password=joke&cmnd=script?power2
Habe ich für meine zweite openDTU-onBattery Steuerung (steuert 2. Wechselrichter vom BKW) eingebaut. Da ich zwei openDTU Steuerungen habe, schwingen sich die Dynamic Power Limiter (DPL) gegenseitig auf (ist natürlich kein Regler implementiert, schwingt aber trotzdem hin und her). Deshalb habe ich meine 2. Steuerung träger gemacht. Diese bekommt nun einen stark gefilterten Leistungswert vom Zähler und reagiert deshalb auch nicht sofort auf Sprünge! Das kann dann meine erste Steuerung machen.
29.12.2023 - Klammer im Code vergessen (für eine optionale Funktion “; switch second ESP if power flows to grid, see >W section”)
V2023.02.28 - Möglichkeit einen zweiten ESP (Tasmota) bei PV Überschuss einzuschalten um z.B. die Poolpumpe einzuschalten. Dafür einfach das “Tasmota SML Script + Chart + PV” Script laden und nach “websend” und “bu(swesp” suchen und das ; vor der Zeile entfernen. Dann bekommt ihr einen virtuellen Web Button zum Aktivieren der Funktion! Der zweite ESP wird bei < -50W eingeschaltet und bei > +30W wieder ausgeschaltet. Das könnt ihr natürlich beliebig ändern.
V2023.02.24 - 24h chart höhere Auflösung (alle 5min ein Wert)
- 24h chart kann via “script >=#rst24h” resettet werden
- 4h und 24h Chart Werte werden nun geglättet/gemittelt
- in beiden Scripte das Format Zeilenende auf Unix gestellt. Das könnte/sollte die Probleme mit dem ext. ScriptEditor und die leeren Zeilen im Script beheben!
- Optimierungen
V2023.02.21 - Danke an Dennis!
- Uptime in HH.MM.SS
- Nicht vorhandene Tage im Tagesverbrauchsdiagramm (Monatsansicht) bei einem Monatswechsel werden nun auf 0 gesetzt. Gilt für Februar, April usw (keine 31 Tage)
- Code aufgeräumt, vereinfacht
- 4h Diagramm: Werte nun alle 30s statt vorher 15s = 480 Werte (960 Werte nicht darstellbar, da nur Auflösung von ca. 400px)
V2023.02.18 - Tageseinspeisung Monatsansicht Diagramm wurde nicht angezeigt
V2023.02.17 - Skript wurde komplett überarbeitet und verbessert, vielen Dank an Dennis für die Mühe!
- Es gibt nun einen gemeinsamen Jahres-Chart für Energie Verbrauch und eingespeiste Energie
- Skriptgröße verringert => weniger Probleme beim Übertragen
- Bitte versucht auch das neue Testimage V12.4 ! Damit sollten die Probleme beim Neustart (halbes Skript gelöscht) der Vergangenheit angehören! Es ist aber noch ein Test, es können Probleme auftauchen. Dann bitte bei mir melden, ich gebe es dem Entwickler weiter.
V2023.02.08 - Option zum Filtern der Leistungswerte für das 4h Diagramm hinzugefügt. Sucht einfach im Script nach “;power=med(0 sml[3])” und entfernt das ; . In der nächsten Zeile darunter das ; hinzufügen “;power=sml[3]”. Dann werden eure Leistungswerte 5x gefiltert.
V2023.02.03 - es gibt nun 2 Skripte! Mit und ohne PV (Netzeinspeisung) Unterstützung. Danke an Dennis aus dem Gästebuch meiner Seite für die Vorlage 🙂
das alte Script findet ihr noch hier auf google drive “Tasmota Script Google Chart SML 20230202” - Line Charts verbessert (Idee auch von Dennis)
- Scripte etwas aufgeräumt
V2023.02.02 - Fehler im 24h Diagramm korrigiert. Der zuletzt berechnete Wert wurde immer erst ganz links ins Diagramm geschrieben.
V2023.01.22 - Diagramme werden nun richtig eingerückt
V2022.12.22 - Hinweis unten auf der Webseite korrigiert: … "script>=#save"
V2022.12.21 - SML Scriptzeile für DWS74 Bugfix eingefügt. Zum Verwenden einfach auskommentieren ; <- entfernen


