Stromzähler auslesen (ESP32/8266, IR-Lesekopf, Tasmota)

  • Werte an eure Smart Home Steuerzentrale senden
    z.B. Home Assistant, ioBroker, openHAB, FHEM
  • Werte können direkt auf dem ESP mit Tasmota + Script grafisch dargestellt werden (Smart Home Zentrale nicht notwendig)
  • ESP8266 oder ESP32 mit oder ohne LAN

Falls ihr, so wie ich, einen neuen digitalen Stromzähler (z.B. von Iskra) eingebaut bekommen habt und auch gerne den aktuellen Zählerwert [kWh] + Leistung [P] als schöne Kurve in eure Smart Home System (z.B. Home Assistant "kurz HA") angezeigt bekommen möchtet, dann seid ihr hier genau richtig! Hier beschreibe ich allerdings nur Home Assistant, da ich dieses System selbst im Einsatz habe. Wenn ihr ein anderes System habt, dann könnt ihr die Werte einfach via MQTT übertragen lassen.

Falls man nicht vor hat, ein Smart Home System einzurichten, sondern einfach nur gerne die Werte schön aufbereitet als Grafik (Liniendiagramm, Tagesverbrauch, Monatsverbräuche, Jahresansicht) anzeigen zu lassen, dann könnt ihr auch einfach nur den ESP mit dem Google Chart Skript nehmen. Tasmota unterstützt Google Chart und somit könnt ihr die Daten direkt auf der Tasmota Seite darstellen lassen! Tasmota mit Google Chart und ohne HA gibt es nun bei den Downloads!

 

 

 

 

Getestete Zähler (es funktionierten sicherlich auch andere):

  • Iskra MT174, MT175, MT631, MT681
  • EMH ED300L
  • Die Zähler DWS DVS 7420, 7412 (DZG DVS74 DWS74) haben einen Firmware Bug die negative Werte ausgeben, bei Leistungen unter 650W! Ab Tasmota 12.2.0.6 dev ist dieser Bug behoben! Weitere Details findet ihr unter (4c).
  • Logarex LK13BE (LK13BE606739)
  • Zähler die die Werte verschlüsselt (nach IEC 62056 / EN 62056-21) übertragen werden nun ab Tasmota 12.3.1.3 dev unterstützt! Skriptbeispiel unter (4c).Mehr Infos hier und hier.
Hauptseite vom Tasmota Device (ESP) - Google Chart Script ohne PV
Hauptseite vom Tasmota Device (ESP) - Google Chart Script ohne PV
Hauptseite vom Tasmota Device (ESP) - +Einspeisung Diagramme
Hauptseite vom Tasmota Device (ESP) - +Einspeisung Diagramme
Home Assistant Darstellung
Home Assistant Darstellung
Home Assistant Energy Seite
Home Assistant Energy Seite


 

Inhaltsverzeichnis:

(1) Was benötigt ihr (Komponentenauswahl)

      (1a) WiFi / WLAN - Lesekopf mit integriertem ESP

              ESP32 oder ESP8266

      (1b) LAN - Lesekopf (TTL, am Zähler) und separates ESP32 Modul mit LAN

(2) ESP8266 mit IR-Lesekopf verbinden (Schaltplan)

(3) Stromzähler direkt über den Raspberry Pi auslesen (EDL21)

(4) Stromzähler vorbereiten, ESP flashen, Tasmota und HA einrichten

  (4a) Stromzähler vorbereiten und ESP8266 flashen

      *** Download Tasmota Images ***

      *** Download Chart Script ***

     - Download weitere Custom Chart Scripte/Images

     - Firmware flashen

  (4b) Tasmota Einstellungen für euer Smart Home System (z.B. Home Assistant)

  (4c) Tasmota SML Script Beispiele  für gängige Stromzähler

  (4d) SML Scripterklärung (Descriptor)

  (4e) Wichtig! TESTEN OB DATEN ANKOMMEN

  (4f) Tasmota Google Chart Script (Liniendiagramm/Graph)

  (4g) Tasmota Einstellungen - Sende- und Abrufintervall, Zeitzone und Home Assistant

  (4h) Home Assistant Einstellungen (+ Energy Dashboard) für Tasmota

(5) Tasmota von extern erreichen (VPN Wireguard)

(6) Tasmota Firmware selbst erstellen (TasmoCompiler/Visual Studio)

(7) Tasmota Firmware Flashen/Updaten

(8) Stromzähler Daten an eine ext. Datenbank/Seite senden (clever-pv, thingspeak)

(9) Bei PV-Stromüberschuss Verbraucher einschalten (via WLAN Tasmota Steckdose)

(10) Tasmota Script Variable (z.B. Tageseinspeisung) an Home Assistant senden

(11) Nützliche Sachen für Home Assistant

(12) Tasmota via LAN/Ethernet (ESP32 WT32-ETH01)

(13) Marstek Jupiter/Venus/B2500 Shelly Emu

(14) Upgradeanleitung für die neuen Tasmota Scripte Version 01.12.2025 (nur ESP32)

FAQ und Problemlösungen

Quellen/Nützliche Links

 

=> zu den Kommentaren

 


(1) Was benötigt ihr
  • Digitaler Stromzähler. Hier in der Anleitung wird einer von Iskra Typ MT175 oder MT681 und EMD ED300L mit SML Protokoll verwendet (andere funktionieren ähnlich).
  • persönlichen 4-stelligen Code für den Stromzähler, damit ihr auch die momentane Leistung anzeigen + auslesen könnt (einfach per Mail beim Energieversorger nachfragen)
  • IR Auslesekopf für den Zähler. Empfehlung: Einen fertigen All-in-One WiFi Lesekopf inkl. ESP32 nehmen, siehe A). Wenn ihr selbst basteln wollt oder euer WLAN im Bereich des Zählers schlecht ist, dann könnt ihr einen Auslesekopf (TTL, nicht USB, Lesekopf Zähler [eBay Werbung]) und einen eigenen ESP verwenden oder schaut unter A) Variante ganz unten (fertige Kauflösung). Lesekopf + separater ESP32 mit LAN/Ethernet siehe B). (Alte Quelle photovoltaik Forum) - Schaltplan + Wiki

    (TTL)

  • Optional: Home Assistant System (z.B. auf einem Raspberry Pi 3+ oder 4)
    oder ihr nutzt nur den ESP8266 mit der integrierten Weboberfläche. Es gibt auch die Möglichkeit die Daten als Kurve (Google Charts) anzeigen zu lassen.

-- Wenn ihr einen All-in-One Lesekopf (z.B. den von Hichi oder bitshake) verwenden wollt, dann scrollt weiter zu A) bzw. B) --

  • ESP32 z.B. D1 mini ESP32[eBay Werbung] oder noch kleiner 
  • M5Stamp (oder Stack) pico [eBay Werbung]
  • ESP32-C3 Super Mini (eBay Link)
  • ESP32-C6 Zero (eBay Link)
  • ESP32-S2 Mini (eBay Link)
  • oder die älteren (nicht empfehlenswert, da die ESP32 gleich viel kosten) ESP8266 (z.B. Wemos D1 mini[eBay Werbung] / NodeMCU ~5€) oder
  • ESP01s[eBay Werbung] das ist der kleinste ESP8266 mit 1M Flash Speicher
  • Lötkolben + Lötzinn + 3- oder 4-adriges Kabel für den IR Auslesekopf (wenn ihr nur den Bausatz kauft)
  • wenn ihr ein ESP ohne USB Anschluss habt, dann braucht ihr noch ein USB-zu-TTL Adapter. Ein passenden (ESP einfach aufsteckbar) für den ESP01s findet ihr hier[eBay Werbung]. Für alle anderen hier[eBay Werbung].

Hier biete ich euch ein paar Möglichkeiten an, wie ihr die Hardware umsetzen könnt. Am einfachsten und besten ist Variante A). Wenn euer Zähler aber in einem Sicherungskasten aus Metall eingebaut ist, dann könnte das WLAN des ESPs stark abgeschirmt werden. In dem Fall müsst ihr mal schauen wie gut der Empfang im Kasten ist, z.B. einfach mal euer Handy reinlegen, Tür schließen, warten und wieder öffnen und schauen wieviel WLAN Balken noch zu sehen sind. Wenn der Empfang sehr schlecht ist rate ich dazu ein WLAN Repeater zu setzen oder einen TTL Auslesekopf zu kaufen und dann den ESP irgendwo außerhalb des Sicherungskasten in ein extra Gehäuse zu setzen, dafür gibt es bereits etwas Fertiges siehe B). Es gibt aber auch die Möglichkeit das ganze über LAN zu machen, siehe C). Oder ihr sucht euch einen ESP Board mit extern anschließbarer Antenne. Die könnt ihr dann rausführen.

A) WiFi / WLAN - Lesekopf mit integriertem ESP

Welchen ESP soll ich nehmen?

 

Da die Preise für ESP32 Module stark gesunken sind und deshalb die Leseköpfe mit ESP32 fast genau soviel kosten wie die mit ESP8266, würde ich definitiv die ESP32-Leseköpfe empfehlen. Ich habe die ESP8266 Leseköpfe aber trotzdem noch auf meiner Seite gelassen. Bei der Stromaufnahme ist der ESP8266 allerdings deutlich genügsamer als der ESP32., das könnte für einige auch ein Entscheidungskriterium sein. Ab 01.12.2025 entwickle ich die Tasmota Scripte nur noch für den ESP32! Die älteren Scripte funktionieren noch auf dem ESP8266.

 

Ich habe mal die Leistungsaufnahme gemessen:

Hichi Lesekopf v1 mit ESP8266 (ESP01s) = 0,05W (Idle), 0,25-0,35W (Stromzähler sendet Daten)

Hichi Lesekopf v2 mit ESP32 C3 mini = 0,4W (Idle), 0,4W (Stromzähler sendet Daten)

 

Wifi v2 Lesekopf EHZ Volkszähler Hichi Smartmeter (ESP32-C3-Mini-1) [eBay Werbung]

Auf dem ESP ist bereits Tasmota mit SML "vorinstalliert". Wenn ihr aber mein Google Chart Script verwenden wollt, dann müsst ihr mein angepasstes ESP32 Image (ESP32-C3) via WLAN übertragen. Mit dem Hichi Lesekopf könnt ihr sogar noch weitere IR-Leseköpfe anschließen, wenn ihr mehrere Stromzähler auslesen möchtet. Mehr dazu findet ihr auf der Seite. Wollt ihr das Factory Image von mir flashen muss GPIO9 mit GND gebrückt werden, bevor es mit dem USB des PCs verbunden wird.

Pinbelegung 1: Rx = 3, Tx = 1. Meter Definition Beispiel +1,3,s,0,9600,MT681,1

Pinbelegung 2: Rx = 5, Tx = 4. Beispiel +2,5,s,0,9600,MT175,4

Achtung: Ab mehr als 2 verwendeten Leseköpfen muss Software Serial verwendet werden (nur RX möglich)

Pinbelegung 3: Rx = 21, Tx = nicht möglich. Beispiel +3,-21,s,0,9600,MT671

  

 

All-in-One WiFi Lesekopf von bitshake (ESP32-C3-Mini-1) [eBay Werbung]

Der Lesekopf von bitshake ist eine gute Alternative und bietet den gleichen Umfang wie der hichi. Auf dem ESP ist ebenfalls bereits Tasmota mit SML "vorinstalliert". Vorteil: Mit der Firmware könnt ihr auch direkt mein Google Chart Script verwenden ohne irgendwas zu flashen. Wollt ihr trotzdem mein Image flashen, geht das nur über USB via Online Flasher (siehe Anleitung unten). Dazu muss der Deckel abgenommen werden. Vor dem Stecken des USB-Kabels in den PC die Taste gedrückt halten = FlashModus. Nachdem Kauf bekommt ihr einen Link zu einer sehr ausführlichen Beschreibungsseite.

Pinbelegung: Rx = 5, Tx = 4. Meter Definition Beispiel +1,5,s,0,9600,MT681,4

 

stromleser tasmota smart meter IR Lesekopf (ESP-C3-Mini-1) [eBay Werbung]

Dieser Lesekopf sieht sehr professionell aus und hat ein echtes Kunststoffgehäuse (nicht aus dem 3D-Drucker). Er wird mit einer richtig hübschen Verpackung, kleinem Handbuch/Anleitung und USB-C Kabel geliefert und hat sogar eine App (diese ruft die Daten von Tasmota ab). An der Seite gibt es eine Anschlussmöglichkeit für vier weitere Leseköpfe, also insgesamt 5! Integriert ist noch ein Schmitt-Trigger (74HC14), der die Signalübertragung verbessert. Auf dem ESP ist ebenfalls bereits Tasmota mit SML "vorinstalliert", allerdings müsst ihr für meine Scripte mein Image flashen, was aber kein Problem ist. Der Hersteller hat auch eine eigene Seite mit vielen Beispielscripten für verschiedene Zähler.

Pinbelegung 1: Rx = 3, Tx = 1. Meter Definition Beispiel +1,3,s,0,9600,MT681,1

Pinbelegung 2: Rx = 5, Tx = 4. Beispiel +2,5,s,0,9600,MT175,4

Achtung: Ab mehr als 2 verwendeten Leseköpfen muss Software Serial verwendet werden (nur RX möglich)

 

Pinbelegung 3: Rx = 21, Tx = nicht möglich. Beispiel +3,-21,s,0,9600,MT671

Pinbelegung 4: Rx = 7. Beispiel +4,-7,s,0,9600,MT671

Pinbelegung 5: Rx = 10. Beispiel +5,-10,s,0,9600,MT671

   

 

WiFi IR SMI SMA V32 Christians Technikshop (ESP-C3-Mini-1) [eBay Werbung]

Der Lesekopf von Christians Technikshop GmbH ist im Prinzip wie die anderen Leseköpfe, allerdings kann man hier auch eine externe Antenne (2/9 dBi) anschließen, was gerade bei abgelegenen Stromzählern von Vorteil sein könnte. An der Seite gibt es hier auch eine Anschlussmöglichkeit für einen weiteren Lesekopf (TTL) zum Auslesen eines 2. Stromzählers. Integriert ist noch ein Schmitt-Trigger (??), der die Signalübertragung verbessert. Auf dem ESP ist ebenfalls bereits Tasmota (eigene Version) mit SML "vorinstalliert", allerdings müsst ihr für meine Scripte mein Image flashen, was aber kein Problem ist. Der Hersteller hat eine richtig gute Beschreibungsseite für den Lesekopf (Handbuch).

Pinbelegung: Rx = 3, Tx = 1 (2. Lesekopf Rx = 20, Tx = 21). Meter Definition Beispiel +1,3,s,0,9600,MT681,1

  

 

Andere ESP32 Leseköpfe:

Es gibt natürlich noch andere fertige Leseköpfe mit integriertem ESP32. I.d.R. bekommt ihr dann vom Händler Infos, welche Pins ihr verwenden müsst. D.h. an welchen GPIOs der Hersteller die Sende und Empfangsdiode angeschlossen hat. Der ESP32-C3 hat 2 UARTs (UART0 und UART1 = RX/TX), die via Multiplex auf fast jeden GPIO-Pin gelegt werden können (das macht die Firmware im Hintergrund).

Empfehlung:

ESP32-C6 (Datasheet ESP32-C6, ESP32-C6-Zero Pinout)

Pinbelegung: Rx = 3, Tx = 1. Meter Definition Beispiel +1,3,s,0,9600,MT681,1

ESP32-C3 (Datasheet ESP32-C3 Chip, ESP32-C3 Super Mini Pinout)

Pinbelegung: Rx = 3, Tx = 1. Meter Definition Beispiel +1,3,s,0,9600,MT681,1

 

ESP8266: All-in-One WiFi Lesekopf von Hichi (ESP01s) [eBay Werbung]

Hichi bietet bei eBay komplett fertige WiFi Leseköpfe an. Diese beinhalten bereits den ESP8266 (ESP01s Modul) und muss nur über die Mikro USB Buchse mit 5V versorgt werden. Mit einem USB-Netzteil/Ladegerät[eBay Werbung] oder ihr baut euch ein 5V Hutschienen Netzteil[eBay Werbung] ein. Allerdings müsst ihr dafür guten WLAN Empfang in eurem Sicherungskasten haben, der aus Metall ist. Aber dies ist wirklich eine sehr einfache Lösung und kostet weniger als 40€. Auf dem ESP ist bereits Tasmota "vorinstalliert". Deshalb könnt ihr direkt mein fertiges Image via WLAN übertragen ohne TTL Adapter.

Pinbelegung: Rx = 3, Tx = 1. Meter Definition Beispiel: +1,3,s,0,9600,MT681,1

 

B) Ethernet / LAN - Lesekopf (TTL, am Zähler) und separates ESP32 Modul mit LAN

 

Spätere Firmware Upgrades müssen immer über das WLAN und nicht über LAN gemacht werden!

Optionen:

  • WT32-ETH01 ~14€

    manche Versionen basieren auf dem ESP32 WT32-S1 (v1.4 SingleCore) = Tasmota S1solo Image (diese Seite ebenfalls beachten!)
    andere Versionen basieren auf dem ESP32-WROOM (DualCore) = Normales ESP32 Image
    Je nachdem welches Modell ihr habt, müsst ihr das Image wählen.
    ihr braucht hier auch einen USB-TTL Adapter
    eBay Link[eBay Werbung]
    Tasmota Seite
    Flashanleitung
    Tasmota Setup Anleitung
    Unofficial github Guide (Schaltpläne, Pinbelegung, usw)
    Achtung: Auf den neueren Modulen (ESP32-D0WD v1.1 laut Tasmota Info) ist ein ESP32-S1 Single Core verbaut! Da benötigt ihr das Image tasmota32solo1.bin / tasmota32solo1.factory.bin.
    Meter Definition Beispiel (TX0, RX0)
    : +1,3,s,16,9600,MT175,1

oder mit PoE (Power over Ethernet) ~18€

  • WARNUNG: Nicht geeignet ist der Shelly 1 Pro / Pro 3EM / 3EM
    Das Problem bei diesen Shellys ist, dass die TX, RX, GND, 3.3V Schnittstelle an der Seite, die man für den Lesekopf ja bräuchte, nicht galvanisch vom Netz getrennt ist. Falls man dort dann seinen Lesekopf anschließen würde, liegt die volle 230 V Netzspannung an. Bei Berührung kann dies tödlich enden!

 

ESP Hutschienengehäuse

(2) ESP8266 mit IR-Lesekopf verbinden (altes Beispiel)

 

Unbenutzer TX-Pin (Sendediode)

Wichtig: Wird die Sendediode (TX) vom IR-Lesekopf nicht benötigt, dann müsst ihr den GPIO Pin in eurer Meter Definition im Script am Ende trotzdem angeben, ansonsten kann die Diode ungewollt flackern und euer Smart Meter verwirren. Das könnte z.B. so aussehen +1,3,s,0,9600,MT681,1

 

Eine andere Methode: Es ratsam diese fest auf 3,3V zu legen (mit 3,3V verbinden). Bei fertigen Leseköpfen inkl. ESP ist das natürlich schwierig. Den TX-Pin kann man da dann einfach in Tasmota (via Software) auf High-Pegel 3,3V legen. Configuration -> Template und da den entsprechenden GPIO TX-Pin von User auf Output Hi setzen. Beim Ready2Use WiFi Lesekopf von Hichi ist es GPIO 1. (Rx ist GPIO 3).


Hintergrund: Wird die Sendediode (TX) nicht angeschlossen, dann hat sie keinen Spannungsbezug (nennt man floating pin). Vor der Diode ist noch ein Schmitt-Trigger vorgeschaltet. Wenn nun die TX-Ader nicht beschaltet ist, dann kann in die nicht angeschlossene Leitung Spannung induziert werden. Da diese nicht abgebaut werden kann wird irgendwann die Schwelle des Schmitt-Triggers erreicht und er schaltet kurz durch. Das kann nun öfters hintereinander passieren und euren Stromzähler zufällig Befehle zusenden. Den Fall hatte ich persönlich und mehrere Leser meines Blogs (siehe Kommentar #1021). Deshalb vorsichtshalber den Pin per Hand oder via Software auf HIGH-Pegel setzen (3,3V).

 

(3) Stromzähler direkt über einen Raspberry Pi auslesen (EDL21)

Falls ihr den Stromzähler direkt über einen Raspberry Pi, auf dem z.B. euer Home Assistant läuft, auslesen wollt, dann müsst ihr nur folgende Integration installieren. Dafür ist dann ein USB Auslesekabel notwendig. Ihr könnt aber auch direkt an die TX/RX Pins des Rpi gehen. Dann müsst ihr nur die config der Integration ändern (/dev/serial0). Weitere Infos.

https://www.home-assistant.io/integrations/edl21/

 

(4) Stromzähler vorbereiten, ESP flashen, Tasmota und HA einrichten

(4a) Stromzähler vorbereiten und ESP8266 flashen

1. Den Pin / Code, den ihr von euren Stadtwerken erhalten habt, an eurem Stromzähler eingeben und somit freischalten. Ansonsten könnt ihr nur den Gesamtverbrauch auslesen. Den Code könnt ihr meistens über eine Taste / Schalter oder in jedem Fall über eine Taschenlampe eingeben. Schaut einfach in die Anleitung eures Stromzählers. Wenn ihr den MT175 habt, die blaue Taste 2x drücken (es folgt ein Displaytest). Nun schnell die Pin mit der blauen Taste eingeben. Wenn ihr 3s wartet wird zur nächsten Stelle des Pins gesprungen. Anschließend sollte eure aktuelle Leistung unter dem Zählerstand angezeigt werden. Info: Beim DZG DWS74 muss nach der Eingabe Inf auf On und Pin auf Off gestellt werden.

2. Nun die ESP8266 Tasmota Firmware herunterladen (scrolle runter). Ihr könnt euch auch selbst ein Images erstellen. Siehe dazu Kapitel 6. Nachdem ihr euer Image heruntergeladen habt folgt das Flashen. Die Anleitung geht hinter den Downloads mit Schritt 3 weiter.


Downloads

-Tasmota Images & Scripte-

 

Angepasste Tasmota Images:

Generell immer in Englisch mit SML (Script), Home Assistant, Google Chart Support. Externer Link zu Google Drive.

 

 

ESP32 (S2, S3, C3, C6, SOLO-1 ):

+ Ethernet (LAN), Modbus TCP, TCP-Server Support und Shelly Simulation. Welche Features ich genau aktiviert habe findet ihr in der Beschreibung des entsprechenden Release auf github.

----------------------------------------------

 

ESP8266/8285 1M (z.B. ESP01s Hichi) / 4M+ Flash (z.B. D1 mini) / SonOff POW(R2) / Gosund EP-2 / Nous A1T:

Ich habe alle unnötigen Tasmota Features/Treiber aus dem Image entfernt, damit das Google Chart Skript richtig läuft und auch Firmwareupdates ohne den Umweg über die minimal möglich ist. Die deaktivierten Features findet ihr Punkt 6.4 bzw. hier oder im github Release. Wenn euch etwas fehlen sollte, dann könnt ihr euch eine eigene Version bauen (siehe Punkt 6). Oder fragt in den Kommentaren.

Hinweise: 

  • Tasmota Images für ESP8266 sind komprimiert "TasmotaXYZ.bin.gz" . Wenn ihr ein OTA Upgrade macht müsst ihr die .gz nicht entpacken!
  • ESP8266 mit nur 1 MByte Flash:  Nur bei Update/Upgrade Problemen: Wenn ihr bereits eine Tasmota Version auf euren ESP geflasht habt und nun via OTA (load file) meine Version flashen wollt, dann müsst ihr  ggf. vorher die minimal in der gleichen Version übertragen!
  • Wenn ihr kein Home Assistant habt oder benötigt, dann könnt ihr die Firmware trotzdem verwenden. Ist wird einfach nur HA und Google Charts unterstützt.

----------------------------------------------

 

Tasmota Google Chart Script:

Visuelle Anzeige eures Verbrauchs (Tages, Monats, Jahresansicht) via Google Charts und optional (+PV Script) mit Anzeige der Netzeinspeisung (Monatsansicht). Dabei handelt es sich um ein großes Tasmota Script, das ihr auf euren ESP übertragen müsst! Anleitung und Beschreibung weiter unten (4f).

 

Features:

- Visuelle Anzeige des Verbrauchs (Tages, Monats, Jahresansicht)

- Visuelle Anzeige der Einspeisung (Tages, Monats, Jahresansicht) "+PV"

- Gefilterter Leistungswert z.B. für Regelung Nulleinspeisung (openDTU-onbattery). Vergleich Leistung gefiltert und ungefiltert siehe Bild unten und FAQ Nr 9.

  Abrufbar via http://eure-ip/cm?user=admin&password=joke&cmnd=script?power2

- Alle Daten können auch via MQTT übertragen werden! Siehe Kapitel 10.

- Im Skript sind optionale Inhalte deaktiviert (auskommentiert mit ";" am Anfang der Zeile). Zum Aktivieren das Semikolon entfernen. Es gibt folgende Optionen:

  > Werte (Leistung) im 4h/24h-Diagramm begrenzen. Optional auch über ein Schieberegler. Sucht im Skript nach "vn" um die Stellen zu finden, die aktiviert werden müssen.

  > Seite automatisch aktualisieren. Sucht nach "Auto reload" im Skript.

  > Schalte einen 2. ESP (Verbraucher) bei Netzeinspeisung. Suche nach "swesp" im Skript.

  > Tages, Monats, Jahreswerte via MQTT übertragen. Suche nach "publish" im Skript.

  > Einfacher Säulenchart darstellen. Suche nach "Säulenchart" im Skript.

  • Tasmota Script Google Chart SML github
    Hinweis: Wenn ihr mein Script bearbeitet um eure SML Descriptor Zeilen einzufügen, denkt an die korrekte Reihenfolge: Die Zeile 1. ist die Leistung (sml[1]), 2. Energie vom Netz (sml[2]), 3. Energie ins Netz (sml[3]). Folgende weitere Scripte findet ihr hinter dem Link:
    Tasmota SML Script + Chart + PV (mit visuelle Anzeige der Netzeinspeisung, falls ihr eine PV Anlage habt)
    Tasmota SML Script + Chart + PV - ohne 4h 24h Diagramm
     (ich habe beide Diagramme und deren Variablen entfernt, spart Speicher)
    Tasmota SML Script + Chart
    Tasmota SML Script + Chart für 1-Richtungszähler und PV (
    Falls man ein BKW (Balkonkraftwerk) und einen rücklaufgesperrten Zähler hat, der aber die Leistung negativ anzeigt, wenn ins Netz gespeist wird. Anhand der aktuellen negativen Leistung wird die eingespeiste Energie errechnet, anstatt diesen Wert direkt vom Zähler zu bekommen. Man hat so einen virtuellen Einspeisezähler statt der Auslesung aus einem Zwei-Richtungszähler.)
    und noch mehr Scripte auf github ...

 

 

----------------------------------------------

 

Weitere nützliche Scripte:
Hier findet ihr weitere nützliche Google Chart Scripte die von meinen fleißigen Lesern des Blogs erstellt wurden. Falls ihr dafür ein angepasstes Tasmota Image benötigt steht das mit im Text.


 

hier gehts mit der Anleitung weiter ;)

 

Firmware flashen 

3. Nun müsst ihr Tasmota auf euren ESP flashen. Hier gibt es zwei Wege:

  • Wenn ihr ein ESP habt, wo bereits Tasmota drauf ist (z.B. Hichi IR Lesekopf), dann könnt ihr einfach zu Punkt 4. springen.
  • Habt ihr einen unbeschriebenen/neuen ESP (einzeln irgendwo gekauft), dann müsst ihr das Tasmota Image erstmalig über das USB-Kabel (wenn euer ESP ein USB Anschluss hat z.B. D1 mini) oder über ein USB-TTL-Adapter (wenn euer ESP kein USB Anschluss hat) flashen. Für mehr Infos bzgl. der Hardware schaut ins Kapitel 1. Wie ihr den Adapter anschließt findet ihr hier. In beiden Fällen habt ihr dann eine neue serielle Schnittstelle (COM Port, z.B. COM3) auf eurem PC. Diese findet ihr im Gerätemanager von Windows. Sieht dann z.B. so aus:

Jetzt braucht ihr noch das richtige Programm. Hier gibt es wieder zwei Wege:

 

Empfohlen: Tasmota Web Installer (ihr müsst keine Software installieren) => [Update vom 13.5.26] Geht bei mir aktuell nicht, es kommt ständig "Device has been reset to firmware mode. The USB port has changed. Please click the button below to select the new port." Über das Flash Download Tool klappt es aber noch einwandfrei.

Dort die zuvor von meiner Seite heruntergeladene tasmota.factory Firmware hochladen und dann via Connect mit dem ESP verbinden und flashen (Haken bei Erase setzen). Nachdem das Image erfolgreich übertragen wurde könnt ihr anschließend über den Button "CONNECT TO WI-FI" den ESP mit eurem WLAN verbinden (im Menü auswählbar). Wenn ihr diese Option nicht auswählen könnt (z.B. beim ESP32-C3, C6), dann könnt ihr euch auch über die Console verbinden (LOGS & CONSOLE). Gibt in die Console zuerst wifiscan 1 ein, anschließend (nachdem APs gefunden wurden) wifitest SSID+Passwort (das + dazwischen ist wichtig). Hat's geklappt, steht in der Console "Connected - IP Address xxx". Die IP merken. Weiter geht's bei 4 bzw. 7.

 

Andere Software: 

  • ESP8266 - da könnt ihr den ESP_Flasher (Jason2866) oder Tasmotizer verwenden um das Image "tasmota.bin" (vorher entpacken mit 7zip) zu flashen. Wählt den korrekten COM Port aus und drückt auf flashen.
  • ESP32 - da könnt ihr auch den ESP_Flasher verwenden, da dieses Tool auch die Factory Images übertragen kann. Ansonsten könnt ihr das Tool vom Hersteller (Flash Download Tool) verwenden um das Factory Image zu flashen. Da das System beim ESP32 anders aufgebaut ist muss beim ersten Flashen das Factory Image verwendet werden. Fortan könnt ihr das normale Image verwenden. Das Factory Image findet ihr immer bei den ESP32 Downloads im gleichen Ordner. Es folgt nun eine bebilderte Anleitung (Flash Download Tool):
     →  → 
    ESP32 und Develop wählen. Factory Image auswählen, Haken setzen, 0x0 ins Kästchen eintippen, 4. bis 6. sollte bereits so eingestellt sein, COM Port wählen, zuerst auf ERASE drücken (zur Sicherheit um alles zu löschen inkl. config) und dann auf START. In einer Konsole sollte nun der Fortschritt zu sehen sein. Im Fenster Detected Info seht ihr euren ESP. Hat alles geklappt sollte im schwarzen Konsolenfenster "is stub and send flash finish" stehen.

Tasmota ist nun auf eurem ESP. USB-Kabel vom PC und ESP trennen und weiter zum nächsten Schritt.

 

4. USB-Ladegerät/Netzteil mit dem ESP verbinden ... ESP8266/32 müsste nun starten und evtl. blinken

5. via Handy auf den vom ESP erstellten Tasmota Hotspot verbinden und dort das WLAN einrichten

6. Nun über einen Webbrowser auf den ESP zugreifen, der sich ja jetzt in eurem WLAN Netz befinden sollte. Die neue IP sollte auf der Tasmota Seite auf eurem Handy erscheinen. Adresse könnte lauten http://192.168.178.31.

7. Habt ihr das geschafft, klickt ihr als nächstes auf Configuration -> Module und wählt ein Modul aus. Beim ESP8266 "Generic (0)". Bei den verschiedenen ESP32 Boards je nachdem welches ihr habt euer Modul z.B. ESP32C3. Findet ihr nicht euren ESP in der Liste, dann einfach Generic (0).

8. Jetzt wechselt ihr zur Hauptseite und dann Consoles -> Edit Script und setzt den Haken bei "Script enable".

9. Stromversorgung des ESPs trennen und den IR-Lesekopf mit dem ESP verdrahten, falls ihr keinen All-In Lesekopf gekauft habt (welchen GPIO? Siehe ESP8266ESP32Hier gibt es noch eine Infoseite). Den Schritt könnt ihr aber auch später machen, nachdem ihr das Script übertragen habt. Ich würde aber nun alles verbinden und den Lesekopf an den Zähler anbringen. Habt ihr den fertigen Hichi Lesekopf, dann braucht ihr diesen ja nur an den Zähler heften, mit Strom versorgen und das Script (das sind die nächsten Schritte) übertragen/eingeben. Später im Script müsst ihr die verwendeten GPIOs eingeben. Siehe Kapitel 4d zur Erklärung welche GPIO Pins ihr nehmen könnt/dürft.

 

Falls ihr kein komplexes Smart Home System wie z.B. Home Assistant habt/braucht bzw. ihr einfach nur die Stromzähler Werte (+Liniendiagramme/Graphen) lokal auf eurem ESP abrufen wollt, dann springt weiter zum Tasmota Script!

 

(4b) Tasmota Einstellungen für euer Smart Home System (z.B. Home Assistant)

Configuration -> MQTT (die Tasmota HA Integration nutzt auch MQTT!):

  • Host = Die IP eures Smart Home Systems, auf dem der MQTT Broker laufen wird
  • Port = 1883
  • User = mqtt (Benutzername des extra für mqtt angelegten Nutzers)
  • Passwort = mqtt1 (Passwort des Benutzers "mqtt")
  • Topic = MT175 (oder wählt selbst einen Namen)
  • Full Topic = %prefix%/%topic%/

Main Menu -> Console:

  • Wenn ihr Home Assistant habt und die Tasmota Home Assistant Integration nutzen wollt müsst nicht nichts ändern, da SetOption19 bereits auf 0 eingestellt ist
  • Habt ihr ein anderes System oder wollt die Integration nicht nutzen, dann müsst ihr in die Console "SetOption19 1" eintippen (ohne "). Dadurch verwendet ihr ganz normal MQTT.

(4c) Tasmota SML Script Beispiele für ein paar gängige Stromzähler (ohne Google Charts)

Hinweis: Ab Tasmota Image V15.1.0 11.12.2025 (meine erstellten Images) könnt ihr die Scripte direkt aus Tasmota heraus auswählen. Wählt 0_SML_Simple aus, danach könnt ihr auf der Hauptseite euren Stromzähler auswählen und müsst diesen nicht per Hand im Script einstellen. Allerdings funktioniert das nur auf einem ESP32 (z.B. HichiV2 oder Bitshake, usw). Der ESP8266 ist einfach zu schwach und deshalb entwickle ich meine Scripte ab dem 01.12.2025 auch nicht mehr für den ESP8266 weiter (die alten findet ihr aber immernoch auf github).

 

Alte Anleitung für Images vor 15.1.0 oder ESP8266:

Hinweis: Wenn ihr mehr wollt, also richtige Verbrauchsdiagramme (Google Charts), dann müsst ihr zum Punkt (4f) springen. Das Skript müsst ihr aber dann trotzdem anpassen (4d).

Jetzt müsst ihr das SML Skript zum Auslesen eures Zählers auf den ESP übertragen. Dazu geht ihr auf Consoles -> Edit Script. Ich habe auf meiner github Seite eine große Auswahl von Scripten gängiger Stromzähler. Sucht nach euren Zähler und kopiert den Inhalt der .tas Datei (Copy raw file ) und fügt es einfach ins Tasmota Edit Script Fenster ein. Zuvor alles aus dem Fenster löschen! Klickt nun erstmal auf Save. Weiter unten geht's weiter!

 

Findet ihr euren Zähler nicht auf meiner github Seite, dann gibt's auf dieser Seite noch mehrere Zähler Scripte. Wenn ihr euren Zähler dort auch nicht, dann gibt es noch eine andere Methode mit SML Parser und der Debugfunktion "sensor53 d1" (springt zum Kapitel 4e) die Meter Definition/Script für euren Zähler selbst zu erstellen. Wenn ihr mein Google Chart Skript verwenden solltet, dann achtet bitte auf die Reihenfolge der Zeilen mit 1,77.. beginnend. Jede Zeile mit 1,77... erzeugt eine neue Variable im Skript "sml[x]", x = 1-n. z.B. sml[1] ist in meinem Skript die Leistung in W. sml[2] der Verbrauch in kWh. Wenn ihr die Reihenfolge anders habt, dann kommen die Diagramme durcheinander (nur wenn ihr mein Google Chart Script verwendet).

  

Um das Skript an euren Zähler und an eure ESP Hardware anzupassen müsst ihr i.d.R. nur die Zeile +1,14,s,16,9600,MT175 anpassen. Dazu scrollt weiter runter zu (4d).

 

Hier in den Beispielen bekommt ihr anschließend 3 Werte aus dem Stromzähler (falls das euer Zähler unterstützt):

  • momentane "Leistung" W (Power), alle 3 Phasen zusammen
  • Verbrauchte Leistung "elektrische Arbeit/Energie" kWh (ExportActive)
  • ins Netz eingespeiste "elektrische Arbeit/Energie" kWh (ImportActive)

Wenn ihr noch mehr Werte haben möchtet, dann schaut hier nach. Dort steht z.B. bei MT175 - Leistung (Momentan) = 1-0:16.7.0*255. Jede Zahl müsst ihr nun in Hex Code umwandeln (am besten mit dem Windows Taschenrechner im Programmierermodus). Aus der Zahl von eben wird dann 01 00 10 07 00 FF (Striche, Punkte und * weglassen). Davor kommt nun die 77 07. Hinter dem FF ein @1 (Skalierung) usw. Für eine genaue Beschreibung des Scriptes siehe Hilfeseite Tasmota SML.

 

Wenn ihr nur erstmal testen möchtet ob der Lesekopf korrekt arbeitet und Daten ankommen, dann fügt das Skript wie bereits beschrieben ein, speichert und aktiviert ist. Aber die Zeile(n) mit 1,SML-Code@xxx weglassen. Nun scrollt ihr etwas runter zu (4e). Denkt daran den korrekten GPIO Pin anzugeben!

 

(4d) SML Scripterklärung (Descriptor)

>D = a valid script must start with >D in the first line

>B = Declare >B (boot) section to inform the interface to read the meter descriptor sensor53

=>sensor53 r     Reset SML Treiber
->sensor53 l2    
Optional: LED an GPIO2 blinken lassen, wenn Stromzähler sendet. Hichi z.B. hat eine blaue LED im Lesekopf an GPIO2.

>M 1 = Declare >M section with the number of connected meters, in this case only 1

 

+1,3,s,16,9600,MT175,1

= 1. Zähler (Smartmeter) Meter Definition

3 = GPIO 3 . Hier könnt ihr den Pin (GPIO) ändern, an dem ihr das RX Signal des Lesekopfes (Empfangsdiode) angeschlossen habt. Je nachdem ob ihr einen fertigen Lesekopf inkl. ESP verwendet oder euch selbst etwas baut müsst ihr darauf achten, den korrekten Pin zu verwenden. Die Hersteller der fertigen Leseköpfe geben immer mit an, welche Pins ihr verwenden müsst. Wenn ihr euch das ganze aber selbst zusammen baut, dann könnt frei entscheiden. Je nach verwendeten ESP gibt es 1-3 UARTs, die verwendet und auf fast jeden beliebigen GPIO gelegt (via multiplex) werden können. Beim ESP8266 solltet ihr es vermeiden 0, 2 oder 15 zu verwenden. Beim ESP32 müsst ihr unbedingt nach eurem verwendeten Board (z.B. ESP32-C3 Super Mini Pinout) suchen. Unter Tasmota -> Configuration -> Module gewählten GPIO auf None stellen (ist Standard). Configuration -> Logging -> Serial log level (Info) = 0 None. Wenn ihr die Pins ändert, müsst ihr ggf. neustarten. Je ESP gibt es folgende Anzahl an UARTs:

- ESP8266 hat 1 verwendbaren UART

- ESP32 hat 3 verwendbare UARTs

- ESP32-C3, C6 hat 2 verwendbare UARTs

Sind diese aber belegt oder ihr wollt noch mehr Leseköpfe anschließen, könnt ihr auch Software Serial verwenden (nicht unbedingt empfehlenswert, es geht nur RX, siehe auch Link). Dafür muss das Tasmota Image mitUSE_ESP32_SW_SERIAL kompiliert werden (bei mir ab 14.4.1) und vor dem Pin muss ein "-" Zeichen hinzugefügt werden (siehe auch tasmota SML Seite).

s = SML binary coding

16 = 16 = Werte werden Median gefiltert = geglättet. Könnt ihr auch auf 0 ändern

9600 = Baudrate eures Stromzählers. Beim MT175 ist dieser auf 9600baud eingestellt

MT175 = Name des Stromzählers. Wird später in HA angezeigt (nur 6 Zeichen!)

1 = GPIO 1 - Sendediode, wenn ihr eine habt. Wenn nicht kann ",1" entfallen. ! Wenn euer Lesekopf eine hat und diese an ein Pin geht, solltet ihr den GPIO angeben (siehe Kapitel 2). Verwendet hier auch generell nur Hardware TX-Pins. Siehe Hinweis (1).

# = Put at the end to terminate M section of the script

; = Use to comment lines in the script

 

 

Meter Definition:

+<M>,<rxGPIO>,<type>,<flag>,<parameter>,<jsonPrefix>{,<txGPIO>,<txPeriod>,<cmdTelegram>}

 

Meter Metrics:

<M>,<decoder>@<scale><offs>,<label>,<UoM>,<var>,<precision>
<precision> = number of decimal places. Add 16 to transmit the data immediately. Otherwise it is transmitted on TelePeriod only.

 

Mit Hilfe dieser sehr nützlichen Seite könnt ihr das SML Skript (Desriptor) an euren Zähler anpassen! Siehe auch nächstes Kapitel.

  

(4e) Wichtig! TESTEN OB DATEN ANKOMMEN

Funktioniert der Lesekopf (RX/TX-Pins korrekt konfiguriert?)

Ich habe einen Lesekopf-Spiegeltest als auswählbaren "Zähler" zur DropDown Liste hinzugefügt. Wählt man diesen "Stromzähler" aus, dann kann man sein Lesekopf am Spiegel testen.

 

1. "0_SML_Simple" unter EditScript wählen

2. "Lesekopftest mit Spiegel" auf der Hauptseite auswählen (Stromzählerauswahl)

3. RX und TX Pin wählen

4. Lesekopf vor einem Spiegel halten

5. Es sollten nun Werte angezeigt werden, die Leistung wird zufällig geändert

 

Mein Tasmota Image 15.1.0 oder höher erforderlich!

 

Nun Prüfen ob der Stromzähler Daten sendet

In der console "sensor53 d1" eingeben. Wenn alles richtig einstellt und verdrahtet wurde erscheint jetzt viel Hex Code und ihr könnt weitermachen. Wenn nicht müsst ihr evtl. eure Verdrahtung (nur beim Eigenbau) prüfen, den Auslesekopf drehen usw. An welchen GPIO Pin des ESP habt ihr euren Lesekopf angeschlossen (z.B. TX Lesekopf -> RX Pin ESP. Gilt nicht beim Lesekopf von Hichi. Dort muss TX an TX Pin). Nach dem Testen "sensor53 d0" eingeben.

 

Die Daten die ihr in der Console seht, sind Rohdaten vom SML Treiber bzw. von eurem Stromzähler. Die Zeilen könnt ihr kopieren und auf dieser schönen SML Parser Seite online in fertiges Script umwandeln. Eine schöne Anleitung und eine verbesserte Version des SML Parsers findet ihr auf Christians Technikshop (bietet auch Leseköpfe an).

 

(4f) Tasmota Google Chart Script (Liniendiagramm/Graph)

Hinweis: Ab Tasmota Image V15.1.0 11.12.2025 (meine erstellten Images) könnt ihr die Scripte direkt aus Tasmota heraus auswählen! Und ihr könnt danach auch euren Stromzähler auswählen und müsst diesen nicht per Hand im Script einstellen. Allerdings funktioniert das nur auf einem ESP32 (z.B. HichiV2 oder Bitshake, usw). Der ESP8266 ist einfach zu schwach und deshalb entwickle ich meine Scripte ab dem 01.12.2025 auch nicht mehr für den ESP8266 weiter (die alten findet ihr aber immernoch auf github).

Hinweis: Bitte beachtet unbedingt die Upgradeanleitung für die neuen Tasmota Scripte Version 01.12.2025 (nur ESP32)

  

Eine kurze Anleitung zu diesem neuen Feature (und mehr) findet ihr hier.

 

Habt ihr noch einen alten Lesekopf mit ESP8266 oder wollt die Scripte selbst übertragen und bearbeiten, dann folgt dieser alten vorherigen Anleitung:

 

Alte Anleitung für die "alten" ESP8266 Scripte:

  • Auf eurem Tasmota Device: Tools > Edit Script
  • Geht auf meine github Seite. Dort im Ordner ESP8266 liegen die Scripte. Dort geht in den Ordner komprimiert und entscheidet euch für ein Script
  • Kopiert den Inhalt des Scriptes via Copy & Paste
  • Unter Edit Script in Tasmota einfügen
  • Passt den SML Descriptor an euren Stromzähler an (siehe Kapitel 4d)
  • Save

Falls es Probleme gibt beim Speichern des Scriptes oder Script wird abgeschnitten beim Einfügen, dann verwendet den externen Script Editor. Dieser sendet das Script direkt an den ESP.

 

Im Script müsst ihr an der Stelle mit ;-- SML -- den SML Descriptor für euren Zähler anpassen. Folgt dazu der Anleitung weiter oben. Beim Google Chart Script es es aber wichtig, dass ihr die Reihenfolge nicht ändert. In der ersten Zeile muss die Leistung, in der zweiten der Netzbezug und in der dritten die Netzeinspeisung (nur beim +PV Script) eingegeben werden. Also so z.B.:

>M 1 

+1,14,s,16,9600,SML

1,77070100100700ff@1,Leistung,W,Power,0

1,77070100010800ff@1000,Verbrauch,KWh,ImportActive,2

1,77070100020800ff@1000,Netzeinspeisung,KWh,ExportActive,2 (nur beim +PV Script)

 

Auch wichtig: Damit der Tagesverbrauch und die Diagramme auch die korrekten Werte anzeigen muss nach dem Start (Auf eurer Tasmota Seite oben muss der korrekte Zählerstand dargestellt werden) folgendes hintereinander in der Console eingegeben werden: script>=#init 

 

 

(4g) Tasmota Einstellungen - Sende- und Abrufintervall, Zeitzone und Home Assistant

1. Other Configuration -> Other:

  • MQTT = enabled
  • Device Name = MT175 (oder wählt einen anderen Namen)

2. Sende/Abruf Intervall einstellen Configuration -> Logging

  • Telemetry period
    (Wie oft soll der Wert an HA geschickt werden, default=300s)
  • Serial log level (Info) = 0 None

4. Main Menu -> Console:

  • Wenn ihr die Tasmota Home Assistant Integration nutzen wollt müsst nicht nichts ändern, da SetOption19 bereits auf 0 eingestellt ist
  • Wenn ihr verhindern wollt, dass Tasmota rebootet wenn euer WLAN Router mal nicht verfügbar ist dann folgendes eintippen: WifiConfig 5
    (wait until selected AP is available again without rebooting)
  • Falls ihr Probleme mit der Uhrzeit/Zeitumstellung habt, folgendes eingeben (die Befehle werden bereits in meinem Script gesetzt)
    • Backlog0 Timezone 99; TimeStd 0,0,10,1,3,60; TimeDst 0,0,3,1,2,120
    • oder lasst euch den Befehl generieren: https://tasmotatimezone.com
  • Skript bezogene Einstellungen findet ihr direkt im Skript ganz oben erklärt (englisch)

 

(4h) Home Assistant Einstellungen (und Energy Dashboard) für Tasmota

-- Ihr braucht für die Tasmota Integration auch immer den MQTT broker! --

1. Für MQTT einen neuen User hinzufügen: Configuration -> People -> Users -> Add User: user = mqtt, password = mqtt (oder wählt einen anderen) 

2. Mosquitto broker Addon hinzufügen. Danach die Mosquitto broker Integration hinzufügen.

3. Tasmota Integration hinzufügen

4. Nun müsste automatisch ein neues Device unter der Integration auftauchen, unter dem Namen, den ihr in Tasmota vergeben habt. Bei mir MT175. (siehe Bilder unten)
Wenn ihr da Probleme habt könnt ihr das Addon MQTT Explorer installieren und schauen, ob Daten von Tasmota kommen. Bei mir siehts so aus:
 
Unter tasmota > discovery > MAC > sensors sollten eure Werte vom Zähler ankommen. Diese werden im Intervall "Telemetry period" (Tasmota Einstellungen > Logging default 300s) aktualisiert. Schaut eine Zeile eueres Stromzählerscripts am Ende so aus, dann wird der Wert sofort übertragen und landet woanders (2. Bild):
1,77070100100700ff@1,Leistung,W,Power_curr,16  

5. Jetzt habt ihr ein neues Device und die Entities! Unter der Integration Tasmota.

6. Wenn die Werte Einheitenlos sind, dann liegt es daran, dass die Werte wie Leistung, Verbrauch, Einspeisung in Tasmota nicht nach dieser Tabelle benannt wurden. Die Momentanleistung muss z.B. als Power oder ActivePower benannt werden. 1,77070100100700ff@1,Leistung,W,Power,0

 

 

Optional: Wenn ihr eine extra Tages, Wochen, Monats, Jahresverbrauchsanzeige benötigt (und das nicht über das Energy Panel ablesen wollt):

utility_meter:
mt175_daily_energy:
source: sensor.mt175_mt175_total_in
cycle: daily
mt175_weekly_energy:
source: sensor.mt175_mt175_total_in
cycle: weekly
mt175_monthly_energy:
source: sensor.mt175_mt175_total_in
cycle: monthly
mt175_yearly_energy:
source: sensor.mt175_mt175_total_in
cycle: yearly

 

(5) Zugriff auf Tasmota von Außen / Extern via Handy - VPN/WireGuard

Externe Anleitung von AVM (FRITZ!Box). Habt ihr den VPN Zugang auf dem Router und auf eurem Handy eingerichtet, müsst ihr nur noch die lokale IP-Adresse von Tasmota (eurem Lesekopf bzw. dem ESP) eingeben.

 

(6) Tasmota Firmware selbst erstellen (TasmoCompiler/VisualStudio)

1. Geht auf https://gitpod.io/#https://github.com/benzino77/tasmocompiler (Github Account notwendig).

 

Für etwas erfahrene User empfehle ich Visual Studio Code (Linux erforderlich wegen Pathname length Problem, z.B. Ubuntu oder in einer VM auf Windows). Ihr müsst euch dann einfach nur noch für eine Version entscheiden und auf den Link klicken und dann zu Punkt 4. springen. In der Datei user_config_override.h im Ordner tasmota ein dann die Zeilen aus den Kästen unter Punkt 4 eingeben.

 

Development Branch: https://gitpod.io#https://github.com/arendst/Tasmota/tree/development

Master Release: https://gitpod.io#https://github.com/arendst/Tasmota/tree/master

 

2. Es sollte sich nach dem Login und Zugriff erlauben zwei neue Tabs öffnen. Öffnet den TasmotaCompiler Tab und geht die Punkte 1-2 durch. Wer will kann bei Punkt 2. bereits seine WLAN SSID vorgeben. Ansonsten erstellt Tasmota ein Hotspot auf den ihr euch verbinden und dann die SSID einstellen könnt.

3a. Bei Punkt 3. "Features" wählt folgende Optionen aus (andere deaktivieren)

  • Home Assistant
  • Script
  • Web interface

Oben wählt ihr euren ESP aus. ESP8266 Generic habe ich gewählt (Standard China Teile).

 

3b. Wenn ihr einen ESP32 habt dann müsst zusätzlich das folgendes aktivieren (Standardmäßig bereits aktiviert):

  • Berry-Skripte
  • Ethernet (optional, falls ihr euren ESP via LAN-Kabel verbinden wollt)

Oben wählt ihr euren ESP aus, z.B. ESP32 Generic beim D1 mini

 

4. Folgende Zeilen bei "Custom Parameters" einfügen (für Visual Studio Benutzer die Zeilen in der user_config_override.h eingeben):

#ifndef USE_SML_M
#define USE_SML_M
#endif

Mit diesen #defines (Treiber/Features) kompiliere ich via Visual Studio Code:

user_config_override.h (github)

 

Wenn ihr nicht den TasmoCompiler verwendet, sondern Visual Studio (oben bei 1. erwähnt), dann müssen die #defines in die user_config_override.h sein. Dann könnt ihr im Terminal Fenster z.B. den Befehl platformio run -e tasmota32 (ESP32) eingeben, um das Image erstellen zu lassen. Ihr könnt auch meine Dateien verwenden, um "ottelo" Tasmota Images zu erzeugen: user_config_override.h und platformio_tasmota_cenv.ini. Im Ordner build_output\firmware\ findet ihr dann die Images.

 

TasmoCompiler:

5. Wählt die Sprache und die Version (nicht Development) aus

6. Compile! 

 

(7) Tasmota Firmware Flashen/Updaten (Firmware Upgrade)

Vor einem Update (Upgrade) solltet ihr unbedingt die Daten aus den Diagrammen sichern (falls ihr das Google Chart Script verwendet). Folgt dazu der Anleitung im FAQ. Falls die Daten dann nach einem Update weg sein sollten könnt ihr sie wieder herstellen. Ist dies geschehen lädt ihr euch einfach das neuste Image herunter (nicht entpacken). Dann geht ihr auf "Firmware Upgrade" -> "Upgrade by file upload" und wählt die eben heruntergeladene Datei aus. Nachdem Übertragen startet Tasmota neu. Es kann nun passieren, dass euer Script nun weg ist (aber eigentlich nicht). Das müsst ihr dann einfach wieder mit dem ScriptEditor übertragen.

 

(8) Stromzähler Daten an eine ext. Datenbank/Seite senden

Falls ihr euren aktuellen Verbrauch (Momentanleistung) auch von unterwegs aus anschauen möchtet oder die Daten auch zusätzlich extern sichern wollt, zeige ich euch hier eine sehr einfache und kostenlose Lösung. Es gibt mehrere Anbieter (Auswahl): clever-pv.com, zaehlerfreunde.de, thingspeak.com

 

Hinweis: Der Befehl WebQuery benötigt bis zu 1s und blockt solange die Ausführung des Scriptes. Wenn ihr diese Lösung in mein Google Chart Script einfügt, dann werden die Tages-, Monats- und Jahreswerte nicht korrekt berechnet, da in der >S Sektion der "alle-60s-Block" (upsecs%60==0) nicht immer ausgeführt wird. Ich arbeite an einer Lösung. Wenn ihr nur die >M Sektion habt (also mein Script nicht verwendet), dann spielt das alles natürlich keine Rolle!

 

clever-pv:

  1. Registriert euch bei www.clever-pv.com (kostenlos)
  2. Klickt auf Geräte -> Messsystem verbinden -> Keine PV-Anlage -> Push API ... dort solltet ihr dann unter 2. eine API URL erhalten
  3. Geht in euer Tasmota Script in die Sektion >S. Wenn ihr mein Script verwendet fügt im Block if (secs%3==0) { ... } folgende Zeile ein:
    ->WebQuery EURE-PUSH-API-URL POST [Content-Type:application/json] {"watt": %0sml[1]%}

    In meinem Script wird die aktuell empfangende Leistung in die Variable sml[1] gespeichert (Das wird in der >M Sektion definiert). Wenn ihr aber nicht mein Script verwendet, müsst ihr das ggf. anpassen bzw. auch die Sektion >S einfügen. Wenn ihr die Daten alle Sekunde senden wollt braucht ihr die Zeile nur hinter >S einfügen. Wollt ihr die Daten aber z.B. nur alle 5s senden dann fügt folgende Zeile ein
    if (secs%5==0) {
    ->WebQuery ....
    }

Funktioniert es nicht? Evtl. hilf dieser Forumsbeitrag.

 

 

(9) Bei PV-Stromüberschuss Verbraucher einschalten (via WLAN Tasmota Steckdose)

Wenn man ein Balkonkraftwerk (BKW) oder eine PV-Anlage hat und so wenig wie möglich ins Netz einspeisen möchte (weil es dafür z.B. kein Geld gibt), dann gibt es mit Tasmota Script die Möglichkeit, eine (oder mehr) WLAN-Steckdose (ebenfalls mit Tasmota) zu steuern und somit eine Last zuzuschalten (z.B. Poolpumpe).

 

Was wird dafür alles benötigt?

  • ESP mit Tasmota zum Auslesen eures Zählers (also das, was in den vorherigen Kapiteln beschrieben wird)
  • WLAN-Steckdose (mit oder ohne Strommessung) auf der Tasmota installiert ist / werden kann (Tasmota Steckdose [eBay Werbung]). Bei amazon gibt es z.B. GHome EP2-A Tasmota tauglich!
    WICHTIG: Manche Steckdosen lassen sich leider nicht mit Tasmota flashen. Am besten vorher den Händler fragen. In meinem Fall habe ich nämlich die GHome EP2 Steckdose auf Amazon gekauft. Nach dem extrem schwierigen Öffnen der Steckdose kam kein ESP sondern ein Realtek Chip zum Vorschein! Auf diesem kann kein Tasmota installiert werden!
  • Tasmota auf der Steckdose installieren (falls nicht bereits vorinstalliert) via Tuya Convert. Ich habe einfach mein RPi4 genommen, Raspberry Pi OS Legacy 32Bit auf eine neue SD Karte übertragen lassen und dann der Anleitung gefolgt. Wichtig ist, dass der RPi via LAN mit eurem Netzwerk verbunden ist (dann noch das WLAN Land auf DE einstellen: raspi-config). Via SSH müsst ihr eigentlich nur die folgenden Befehle eingeben:
    git clone https://github.com/ct-Open-Source/tuya-convert
    cd tuya-convert
    ./install_prereq.sh
    ./start_flash.sh
    Am Ende fragt euch das Script ob Tasmota Lite installiert werden soll. Das tut ihr, danach könnt ihr via Firmware Upgrade auf die neuste Version updaten. Ihr braucht nicht mein Image von dieser Seite!
    Dann noch die korrekte Konfiguration (Template) einstellen. Bei der EP2-A (GHome) Steckdose z.B. das hier.
  • Tasmota Image (ESP8266 1M/4M oder ESP32) für den ESP mit IR-Lesekopf, der an eurem Stromzähler hängt
  • ein passendes Tasmota Script auf dem ESP mit IR-Lesekopf, der an eurem Stromzähler hängt

Wenn ihr mein Google Chart Script für den ESP mit IR-Auslesekopf verwendet, dann ist die Funktion bereits inkludiert, muss aber noch von euch angepasst werden! Wenn ihr den kleinen ESP8266 (ESP01s) verwendet, müsst ihr dazu leider das Script auf dem PC bearbeiten und wieder neu auf den ESP übertragen (siehe Anleitung Kapitel 4f). 

Ob ihr nun mein Script bereits verwendet oder nicht, die Funktion sollte dann so bei euch aussehen bzw. müsst ihr so einfügen:

 

Tasmota Script (ESP im IR-Lesekopf am Stromzähler) - Beispiel - Ich arbeite noch dran

 

Anpassungen im Script:

  • In meinem Google Chart Script sind einige Stellen mit ";" auskommentiert. Das ";" muss entfernt werden damit es funktioniert.
  • Dann müsst ihr euren Stromzähler SML Descriptor korrekt eingeben (siehe separate Anleitung hier auf der Seite.
  • Die IP eurer WLAN-Steckdose anpassen (192.168.0.50).
  • Leistungsschwellwerte anpassen. Momentan wird die Steckdose bei einer Netzeinspeisung von mehr als 300 W (Leistung = -300) eingeschaltet und bei einem Netzbezug von über 100 W wieder ausgeschaltet. Die vorgegebenen Werte könnte man z.B. für eine kleine Poolpumpe verwenden.

Funktion testen:

Die ext. Steckdose kann man über die Tasmota Console (ESP im Lesekopf) über folgenden Befehl schalten:

  • websend [192.168.0.50] power 1
  • websend [192.168.0.50] power 0

 

(10) Tasmota Script Variable (z.B. Tageseinspeisung) an Home Assistant senden

Mein Google Chart Script zeigt nicht nur hübsche Graphen an, sondern errechnet ja auch den Tages- und Monatsverbrauch sowie die Tages- und Monatseinspeisung. Standardmäßig sendet Tasmota aber nur die direkt via SML empfangenen Stromzählerwerte. In meinem Fall (MT175) also nur Leistung, Verbrauch und Einspeisung. Wenn man nun noch mehr in Home Assistant anzeigen lassen möchte, muss man folgendes tun. Wenn ihr mein Google Chart Script verwendet, dann müsst ihr nur nach publish suchen und das Kommentar Zeichen ";" entfernen. Das Script dann neu hochladen und dann werden die Werte an HA gesendet. Danach muss man die Werte noch in HA einbinden. Das kann man entweder in der configuration.yaml machen oder einfach ein "MQTT config topic" an euren MQTT Broker senden. Dafür nimmt man das Addon MQTT Explorer in HA. Ich beschreibe jetzt erstmal kurz wie man ein Wert in Tasmota an HA sendet und am Ende folgt die Anleitung zum Einfügen des Sensors in HA:

  1. Im Tasmota Script in der Sektion >S (oder >T) folgendes einfügen (Beispiel aus meinem Script):
    =>publish stat/%topic%/script/consday %2(dcon[day])%
    Tagesverbrauch = frei wählbarer MQTT Name des Sensors 
    dcon[day] = Tasmota Script Variable, in diesem Fall ein Array
    %2(   )%  = nur 2 Dezimalstellen ausgeben
  2. Nun wird jede Sekunde der Tagesverbrauchswert an den MQTT Broker in HA gesendet. Das kann man natürlich auch noch nach Belieben anpassen.
  3. MQTT Explorer Addon installieren und starten. Mit eurem Broker verbinden. Nun sollte links eine Liste mit allen Topics sein. Dort sucht ihr nach stat -> tasmota_xyz -> script: consday = xxx
    Wenn nicht, dann habt ihr im Script was falsch gemacht. Oder wartet 60s (bei mir im Script wird der Wert alle 60s übertragen).
  4. Der Wert wird aber noch nicht in eurem Tasmota Device angezeigt. Dafür wird noch ein config Topic benötigt. Das könnt ihr entweder von Tasmota aus senden (lassen) oder einfach im MQTT Explorer. Dazu klickt auf das Topic homeassistant -> sensor. Rechts unter dem Menüpunkt Publish ist der Pfad, den ändert ihr nun in:
    homeassistant/sensor/mt175/consday/config            mt175 = frei wählbarer Name z.b. Stromzähler,   consday = Abkürzung für "Consumption Day", frei wählbar
  5. Darunter in das Feld fügt ihr nun die Sensor Config ein. Beispiel:
  6.                 {
      "name": "Stromzähler Tagesverbrauch",
      "uniq_id": "mt175_dayconsumption",
      "dev_cla": "energy",
      "stat_t": "stat/tasmota_1AFAD3/script/consday",
      "unit_of_meas": "kWh",
      "sug_dsp_prc": "2",
      "dev": {
        "connections": [
          [
            "mac",
            "A02xxxxAFAD3"
          ]
        ]
      }
    }
  7. Das alles sind MQTT Configuration Variables (ich habe Abkürzungen verwendet, weil ich das ganze eig ins Tasmota Script bauen wollte). Ihr könnt hier nach belieben weitere einfügen, die euren Sensor noch besser beschreiben können. Folgende Variablen müsst ihr noch ändern:
    name = So wird in HA euer Sensor heißen + Device Prefix. Bei mir wäre das also sensor.mt175_stromzahler_tagesverbrauch
    A02xxxxAFAD3 = Tasmota MAC-Adresse
    tasmota_1AFAD3 = Tasmota Topic (letzter Teil der MAC)
    uniq_id = in HA verwendete eindeutige ID (z.B. mt175_dayconsumption)
    usw
  8. Nun noch wichtig, das Haken setzen bei retain ! Sonst ist die config nach einem Neustart weg.
  9. Publish drücken und schon findet ihr den neuen Wert unter eurem Tasmota Device!
  10. Wollt ihr das Entity wieder löschen, dann einfach die Sensorconfig via MQTT Explorer löschen.

Beispiel2:

Variable "power2" (gefilterte aktuelle Leistung vom Stromzähler) aus meinem Script via MQTT an Home Assistant übertragen. Hier im Beispiel für den Stromzähler MT175. Orange Textstellen sind frei wählbar, blaue Textstellen müsst ihr an euer Gerät anpassen, siehe Beschreibung oben.

  1. Folgende Zeile direkt hinter der Berechnung von power2 ins Script einfügen (alle 3s senden)
    =>publish stat/%topic%/script/power2 %0power2%              0=keine Dezimalstelle
  2. Folgt den Punkten 3. - 9. aus Beispiel 1 nur müsst ihr nun folgendes beim Topic (4.) einfügen: homeassistant/sensor/mt175/power2/config
  3.                 {
      "name": "Stromzähler Leistung gemittelt",
      "uniq_id": "mt175_power2",
      "dev_cla": "power",
      "stat_t": "stat/tasmota_31F8D4/script/power2",
      "unit_of_meas": "W",
      "sug_dsp_prc": "0",
      "dev": {
        "connections": [
          [
            "mac",
            "84FCE631F8D4"
          ]
        ]
      }
    }

 

Hier findet ihr nochmal alles etwas detaillierter und in Englisch.

(11) Nützliche Sachen für Home Assistant

(11aZweirichtung Leistungssensor [W] (positiv/negativ) in zwei Sensoren aufteilen (from_grid, to_grid):

Hier wird eine Methode beschrieben um aus einem einfachen Leistungssensor zwei Sensoren für Home Assistant zu erstellen. Ein Sensor (Entity) nur für negative (ins Netz eingespeist) Leistung und der andere für positive (aus dem Netz bezogen). Habt ihr einen von folgenden Fällen, dann könnt ihr die Methode einfach umsetzen:

  • ihr habt keinen digitalen Stromzähler und nutzt deshalb irgendein anderes Leistungsmessgerät, das ein Leistungssensor (Entity [W]) in HA bereitstellt
  • ihr habt einen Stromzähler, der aber nur die aktuelle Leistung [W] (positiv oder negativ) an euch sendet

Wenn euer Zähler die Energie vom Netz und ins Netz an euch senden kann, dann braucht ihr das natürlich auch nicht! Die Sensoren könnt ihr dann direkt ins HA Energiesystem einbinden.

 

1. Erstellt in eurer configuration.yaml (oder in eurer sensor.yaml falls vorhanden) via dem HA Addon FileEditor folgende Zeilen. Den Namen "sensor.powersensor" müsst ihr gegen euren Leistungssensor tauschen, der in beide Richtungen (positiv/negativ) messen kann. Den Namen "mynewsensor_xx" könnt ihr natürlich frei wählen.

 

 

2. HA neustarten! Nun hat man zwei neue Sensoren/Entities "mynewsensor_positive" und "mynewsensor_negative". Der eine zeigt nur etwas an, wenn die Leistung vom Sensor "sensor.powersensor" positiv ist. Der andere wenn die Leistung negativ ist. Aus den beiden Sensoren kann man nun via "Rieman Sum Integration" zwei Energiezähler Sensoren/Entities machen (wieder configuration.yaml, direkt darunter):

 

 

3. Nun hat man man wieder zwei neue Sensoren/Entites. Sie zählen die verbrauchte bzw. erzeugte Energie/Arbeit [kWh]. Bevor man sie aber in das HA Energiesystem einbinden kann muss noch etwas in der customize.yaml eingefügt werden. Siehe dazu Punkt 4h) Punkt 17 ! Nach einem Neustart könnt ihr die Sensoren in das Energiesystem einbinden.

 

 

(11bLeistungssensor Werte glätten (Peaks unterdrücken)

Falls man einen Leistungssensor hat, der leider ab und zu kleine Peaks erzeugt (z.B. Sonoff mit Tasmota) dann kann man diese filtern/glätten. Es wird ein neuer Sensor/Entity erstellt.

 

(12) Tasmota ohne WLAN sondern über LAN/Ethernet (ESP32 WT32-ETH01)

Was kann man eigentlich machen, wenn kein oder nur sehr schlechtes WLAN in der Nähe des Stromzählers verfügbar ist? Alle ESP8266 benötigen ja zwingend ein funktionierendes WLAN, sonst könnt ihr eure Daten ja nicht abrufen. Auch dafür gibt es eine Lösung und zwar ein ESP32 mit einer LAN-Buchse und die passende Tasmota Firmware + korrekte Einstellungen. Eins vorweg, ich habe es selbst noch nicht getestet!

 

Was benötigen wir? Zuerst natürlich die passende Hardware. Es gibt eine kleine Auswahl an ESP32 Boards mit einer LAN Buchse. Es gibt erstmal generell eine Liste von unterstützten Boards direkt auf der Tasmota Seite. Dort einfach nach einem Board mit LAN Buchse suchen. Ich habe mal zwei passende herausgesucht.

 

12a) Hardware

 

Siehe Kapitel 1. C) !

 

12b) ESP32 Firmware

Habt ihr eure Hardware ausgesucht, müsst ihr die passende ESP32 Tasmota Firmware (natürlich wieder mit SML Support) flashen. Das Image findet ihr im ESP32 Downloadbereich. Eine Anleitung wie ihr das WT32-ETH01 Modul korrekt mit eurem Programmer verbindet findet ihr z.B. hier. Habt ihr alles verbunden könnt ihr der Anleitung im Kapitel 4a) 3. folgen um das Factory Image zu flashen. Danach den Jumper entfernen und die Stromversorgung des ESPs neu verbinden. Dann normal über den Tasmota Hotspot verbinden und dann mit eurem WLAN verbinden lassen.

Achtung: Auf den neueren Modulen (ESP32-D0WD v1.1/v1.4 laut Tasmota Info) ist ein ESP32-S1 Single Core verbaut! Da benötigt ihr das Image tasmota32solo1.bin / tasmota32solo1.factory.bin, das ihr ebenfalls im ESP32 Download Ordner findet (erst ab 14.3.0). Habt ihr den ESP32-WROOM könnt ihr das normale ESP32 Image verwenden.

 

WICHTIG: Spätere Firmware Upgrades müssen immer über das WLAN und nicht über LAN gemacht werden!

 

12c) Template

Falls ihr mein fertiges ESP32 Image nehmt und den WT32-ETH01 verwendet, dann braucht ihr nur noch das korrekte Modul auswählen unter Configuration-> Module. Nach einem Reboot ist der ESP32 automatisch mit eurem LAN und WLAN verbunden. Beachtet auch diese Tasmota Seite.

Habt ihr andere Hardware, dann müsst ihr diese erstmal korrekt via Template einstellen. Configuration-> Other ganz oben im Feld dann die Konfiguration für eure Hardware, die ihr auf der Tasmota Seite von eurem ESP32 Board findet, eingeben. Es ist ein langer String mit Zahlen usw. Nach dem Einfügen, Activate anhaken und dann auf Save klicken. Folgt einfach der Anleitung. Ihr könnt dann das eben importierte Template für eure Hardware unter Modules auswählen.

 

12d) LAN Verbindung prüfen

Im Hauptmenü unter Information könnt ihr nun sehen, ob ihr korrekt verbunden seid. Wenn ihr das WLAN nicht mehr benötigt könnt ihr es abschalten via Wifi 0 über die Console.

 

 

12e) Optional: LAN Settings (für Olimex oder wESP32-PoE)

Wenn ihr den ET32-ETH01 verwendet, müsst ihr nichts mehr tun und einfach mit meiner normalen Anleitung oben weitermachen (Kapitel 4).

Falls das LAN nicht funktioniert oder ihr ein anderes Modul habt dann müsst ihr evtl. noch das LAN Modul aktivieren. Tippt dazu folgenden Befehl in die Tasmota Console ein:

 

Ethernet 1

 

Je nach verbauten Ethernet Chip (Olimex oder wESP32 Modul) müssen noch andere Sachen evtl. angepasst werden. Siehe dazu die Tasmota Wiki.

 

Es kann sein, dass ihr noch Wifi 0 eintippen müsst, damit LAN funktioniert. Dadurch schaltet sich WLAN ab und der ESP32 sollte über LAN erreichbar sein! Jetzt könnt ihr hier wieder nach oben scrollen und mit meiner normalen Anleitung weitermachen. Sucht euch einen freien GPIO Pin für den IR-Sensor, verdrahtet alles usw!

 

Achtung! Bei Verwendung eines LAN-ESPs ist die Performance der Tasmota GUI sehr langsam, wenn man nur über LAN verbunden ist (wifi 0). Hier gibt es aber ein Workaround:

Befehl "EthClockMode 0" in die Console eingeben. Quelle https://github.com/arendst/Tasmota/discussions/19803

 

 

(13) Smarte PV-Akkus: Nulleinspeisung via Shelly oder EcoTracker Emulator auf Tasmota-Lesekopf
Getestete Akkus: Marstek (Jupiter, Venus, B2500), Hoymiles (MS-A2), Growatt NOAH 2000 und mehr

Habt ihr ein Marstek / Hoymiles / Growatt Akku, ein IR-Lesekopf mit ESP/Tasmota (z.B. Hichi/bitShake) und wollt die Nulleinspeisung Funktion nutzen? Dann ist das jetzt möglich! Dazu müsst ihr das Tasmota Image von meiner Seite laden und ein extra Tasmota Script von mir verwenden. Habt ihr ein ESP32 Lesekopf, dann könnt ihr mein großes Script (2_SML_Script_Chart_PV_XXXEmu.tas) inkl. den Diagrammen verwenden, wenn ihr Verläufe von euren Verbräuchen auf dem ESP direkt haben wollt. Habt ihr nur ein ESP8266 Lesekopf (ESP01s, HichiV1) oder braucht keine Diagramme auf eurem ESP32, dann könnt ihr das kleine Script (1_SML_XXXEmu_Simple.tas) verwenden (ESP8266 Scripte hier). Die Anbindung an Home Assistant (Smart Home Systeme) via MQTT ist in beiden Fällen möglich! Wie ihr das Script mit dem externen Scripteditor überträgt, finden ihr oben in der Beschreibung. Das kleine Script (_Simple) könnt ihr aber einfach via Copy&Paste in den internen Editor einfügen.

Update 01.12.2025: Mit meinen neuen Tasmota Images V15.1.0 könnt ihr das Script und euren Stromzähler ganz einfach direkt in Tasmota auswählen. Siehe Kapitel 4f.

 

Shelly oder EcoTracker Emulation?

Gemu2015 (+Kalle) hatten zuerst die Shelly Emulation für den Venus E entwickelt. Das klappte dann ganz gut. Die Regelung vom Marstek Akku reagiert allerdings sehr empfindlich und benötigt die Daten vom Stromzähler nahezu in Echtzeit. Versuche die Leistung zu dämpfen/filtern führten zum Schwingen/Oszillieren des Reglers. Nun funktioniert es aber wunderbar, Schwankungen im Hausnetz werden sofort ausgeregelt. Mir hat das alles aber nicht so gefallen, vor allem ist für die Emulation ein großes Script notwendig. Zusammen mit meinem PV Script inkl. den Diagrammen ist das System gut gefordert. Ich hab auch parallel noch eine openDTU-onBattery Akku-Steuerung/Regelung, dort wird aber sehr träge geregelt, mir reichte es aber immer. Deswegen habe ich dann noch die EcoTracker Emulation entworfen, da der EcoTracker von everHome im Prinzip auch nur via Lesekopf die Daten ließt und an den Akku weiterleitet. Das passiert bei meinem Marstek Jupiter C Plus tatsächlich nur alle ~13 Sekunden. Der Marstek Regler reagiert nun völlig anders und ist träge, was mir eigentlich gut gefällt. Das Ganze schwingt bei mir auch nicht und das Script ist sehr klein.

Von daher würde ich jedem zu dem EcoTracker Script raten. Aber das kann natürlich jeder selbst entscheiden.

 

a) Anleitung (a-d)

Habt ihr den Lesekopf erst neu gekauft, dann solltet ihr erstmal mit der Anleitung ganz oben (Tasmota Image flashen) anfangen und versuchen die Werte von eurem Stromzähler in Tasmota anzeigen zu lassen. Dafür braucht es nur die >D und >M Sektion im Script. Beispielscripte für einige Zähler findet ihr hier. Ansonsten einfach nach eurem Zähler + SML Tasmota googlen. Wenn ihr Leistung und Verbrauch angezeigt bekommt, dann könnt ihr weitermachen.

Update 01.12.2025: siehe Update Hinweis oben!

 

b) Script Optionen (anpassen beim ESP8266)

Im Script gibt es Akku Einstellungen. So sehen die Optionen z.B. beim ShellyEmu Script aus:

Offset für Nulleinspeisung [W]:

Sendet die Momentanleistung mit einem Offset an den Akku. Bei 100 W würde die Regelung des Akkus dann versuchen die Nulleinspeisung auf 100 W Netzbezug zu regeln.

Update der Werte verzögern [s]:

Aktualisiert die Momentanleistung, die an den Akku gesendet wird, nur alle x Sekunden. 1 s = Normaleinstellung, also jede Sekunde die Leistung aktualisieren. Diese Einstellung verändert/beeinflusst NICHT das Abruf/Sendeintervall vom/zum Akku!

UDP-Port (Neustart notwendig):

Je nach Akkutyp unterschiedlich. Eignetlich nur bei Marstek B2500 notwendig (je nach Firmwarestand). Standard 1010.

Datenübertragung erzwingen:

EIN = Kann das Regelverhalten bei Akkus verbessern (getestet mit Marstek):

Empfohlene Einstellung: AUS und Verwendung der neuen Regleroptimierung

SML Median Filter aktivieren:

EIN = Interne Filterung aller Werte die vom Zähler kommen.

Empfohlene Einstellung: AUS und Verwendung der neuen Regleroptimierung (siehe unten)

Regleroptimierung: (neu ab 02.04.2026):

 

EIN = Verbessert z.B. bei Marstek Akkus das Regelverhalten. Dem Akku wird ein falscher/kleinerer Verbrauch vorgekaukelt. Der interne Regler im Akku sieht eine kleinere Regelabweichung und versucht diese dann langsam auszuregeln. Getestet mit diversen Marstek Akkus (Jupiter, Venus). Siehe auch die Diskussion.


Update 01.12.2025: siehe Update Hinweis oben!

  • Shelly Emu: Je nach Firmwarestand vom B2500 muss der Port im Script angepasst werden: 1010 (FW Version <= 224), 2220 (FW Version >= 226).
  • Shelly Emu: Habt ihr einen Zähler, der die Leistung/Ströme aller 3 Phasen einzeln ausgeben kann, dann könnt (ihr müsst nicht) ihr das Script dafür anpassen. Sucht nach c2p bzw. c3p. Dort könnt ihr die ; entfernen um alle 3 Phasen korrekt an den Akku zu senden. Der Akku kann dann nämlich erkennen, an welcher Phase er hängt. Gibt euer Zähler nur die Ströme (und ggf. Spannungen) für L1-3 aus, dann müsst ihr die Leistung im Script für die einzelnen Phasen berechnen (U*I+cosPhi) oder ihr verwendet nur die Gesamtleistung, was zu empfehlen ist.
  • Das Ganze funktioniert auch mit mehreren Marstek Akkus im Verbund, danke an PallMall und Harisjems für die Info.
  • Wenn bei euch die PV-Panels direkt mit dem Akku verbunden sind (z.B. Marstek Jupiter C Plus), d.h. der Akku nur geladen wird, wenn auch Sonne scheint (nicht aus dem Hausnetz), dann könnt ihr im Script ein Offsetwert (z.B. 50W) einstellen, damit der Regler nicht um 0W sondern z.B. um 50W regelt. Das verringert kurzzeitige Einspeisungen bei Schwingern.

c) Tasmota Einstellungen

  • WICHTIG: Configuration -> Other -> HTTP API enable
  • Tools -> Edit Script: Script einfügen (in komprimierter Form), Script enable und Save (Update 01.12.2025: siehe Update Hinweis oben!)
  • Restart Tasmota

d) Emulator testen

Ich habe mir ein Powershell Script erstellen lassen (Claude AI) um das Shelly und EcoTracker Emulator Script testen zu können. Der Shelly Emu antwortet auf HTTP GET und UDP Anfragen (Shelly.GetStatus, EM.GetStatus). Der EcoTracker nur auf HTTP GET Anfragen (v1/json). Das Tool könnt ihr hier herunterladen. Nachdem ihr es heruntergeladen habt müsst ihr einmal mit Rechtsklick die Box anhaken, sonst startet es nicht.

Das Tool startet ihr dann mit Rechtsklick Mit Powershell ausführen. So sieht das Tool dann aus:

 

e) Akku App (Beispiel Marstek App)

In der App geht man auf Work Mode und wählt Auto Mode aus. Dann den Shelly Pro 3EM oder EcoTracker auswählen. Die App bzw. der Akku sucht nun nach dem Emulator und sollte ihn automatisch finden, wenn das Tasmota Script korrekt läuft und beide Geräte im gleichen WLAN Netz sind. Bei Output Power Reference wählt man Three-phase sum(PhaseA+B+C) aus. Nach einer kurzen Analyse sollte der Text dann auch neben Output Power Reference stehen. Bekommt ihr da die Meldung Diagnosis failed, please try again, dann habt ihr ein Fehler im Script gemacht. Der Akku speist nämlich Energie in euer Haus-Netz ein und schaut dann, auf welcher der drei Phasen ein Peak entsteht. Dann weiß er, auf welcher Phase er angeschlossen ist. Shelly Emu Script: Mein Script ist standardmäßig so eingestellt, dass es nur eine Gesamtleistung (Variable cpwr) gibt und diese (geteilt durch 3) einfach auf Phase 1 (Variable c1p) ausgegeben wird. Phase 2 und 3 sind 0 W (c2p, c3p). Wie oben beschrieben, könnt ihr das ändern wenn euer Zähler 3 Phasen ausgeben kann.

 

Daten vom Akku via MQTT abrufen (Beispiel Marstek)

Da nutze ich hame-relay + hm2mqtt. Die Daten kommen dann in mein Home Assistant Smarthome System.

 

Info: Ich habe eine Marstek Thread im PV-Forum erstellt. Dort gibt es einen regen Erfahrungsaustausch zwischen den Nutzern. Dort findet ihr auch immer die neusten Infos. Hoymiles Thread hier. Growatt Thread hier.

 

(14) (Upgrade)Anleitung für die neuen Tasmota Scripte Version 01.12.2025 (nur ESP32)

Ich habe mich nun dazu entschieden, die Scripte nur noch für den ESP32 weiterzuentwickeln, da ich ansonsten keine neuen Verbesserungen und Features inkludieren kann. Bisher funktionierten die Scripte ja immer für beide ESPs, diesen Stand habe ich in den Ordner ESP8266 auf github verschoben. Ich werde die Scripte dann so lassen. D.h. wenn ihr einen ESP8266 habt auf dem bereits mein Script läuft, dann könnt ihr gerne die neuste Tasmota Version upgraden aber das Script vom 01.12.2025 könnt ihr nicht verwenden. Für alle die einen ESP32 haben, bitte weiterlesen:

Diese Anleitung gilt in erster Linie für alle, die bereits eines meiner Scripte (bis einschließlich 29.09.2025) mit den Diagrammen (Google Charts) auf einem ESP32 verwenden und nun ein Upgrade auf die neuste Version vom 01.12.2025 durchführen möchten. Neueinsteiger können direkt zum Punkt 4. springen, dort wird erklärt wie der Zähler und die RX/TX-Pins des Lesekopfes ausgewählt werden und wie man notfalls alles manuell selbst einstellen kann, falls der Zähler nicht in der Liste auftaucht.

Mit den neuen Scripten vom 01.12.2025, die ich auf github veröffentlicht habe, ändert sich die Art, wie die Daten auf dem ESP32 gesichert werden. Vorher wurden sie als Array im Scriptspeicher abgelegt, jetzt werden sie aber als data.csv Datei im Dateisystem von Tasmota gesichert. Mit den neuen Scripten könnt ihr nun auch einfach in einem Untermenü euern Stromzähler und die Pins vom Lesekopf wählen. Es muss nicht mehr kompliziert im Script rumgefummelt werden! Und ihr könnt nun bequem im internen Scripteditor Menü eines meiner Scripte wählen. Es wird dann direkt von Tasmota aus heruntergeladen ihr müsst es also nicht mehr selbst machen!

 

Bevor das Upgrade durchgeführt wird, müssen erstmal die bisherigen Daten (Verbrauch/Einspeisung als Balkendiagramme) auf einem PC gesichert werden. Dazu geht folgendermaßen vor:

  1. Öffnet die Console auf eurem ESP: Tools > Console. Dort müssen nun folgende Befehle hintereinander eingegeben werden. Die Werte in den { Klammern } kopiert man einfach in eine Textdatei (Notepad)
  2. script?mval         (Zählerstand vom Anfang des Monats)
  3. script?mval2       (Zählerstand eingespeist vom Anfang des Monats, nur beim +PV Script)
  4. script?dval          (Zählerstand eingespeist vom Anfang des Tages)
  5. script?dval2        (Zählerstand eingespeist vom Anfang des Tages, nur beim +PV Script)
  6. script?yval          (Zählerstand eingespeist vom Anfang des Jahres)
  7. script?yval2        (Zählerstand eingespeist vom Anfang des Jahres, nur beim +PV Script)
  8. script?dcon         (Liste: Tagesverbräuche 1.-31.)
  9. script?dprod       (Liste: Tageseinspeisungen 1.-31., nur beim +PV Script)
  10. script?mcon       (Liste: Monatsverbräuche 1.-12. und danach Monatseinspeisungen 1.-12. nur beim +PV Script)

Das ganze sollte dann so bei euch aussehen:

  1. Sichert euch das Script, was aktuell bei euch läuft. z.B. via "Tools > Manage File system" dort auf script.txt klicken > Download.
  2. Jetzt müsst ihr die Firmware updaten (Tasmota V15.1.0 vom 01.12.2025 oder neuer, Download siehe oben)
  3. Achtung: Dieser Schritt überschreibt euer aktuelles Script und ggf. eure persönlichen Anpassungen dadrin! Das Script habt ihr aber im Schritt 1 gesichert! Selbst vorgenommene Anpassungen könnt ihr am Ende wieder einbauen.
    Als nächstes wechselt ihr zum Script "Editor Tools > Edit Script" und wählt im neuen DropDown Menü eines meiner Scripte aus. Das Script erscheint unten. Nun auf SAVE drücken.
  4. Ab hier können auch Neueinsteiger lesen (4-6): Geht zurück zur Hauptseite. Scrollt runter und drückt auf den Button "Stromzähler konfigurieren / Daten sichern"
  5. Dort wählt ihr euren Zähler und die korrekten Pins von eurem Lesekopf aus. Eure Auswahl wird sofort ausgeführt und gesichert (das passende Zählerscript wird im Hintergrund heruntergeladen und als "sml_meter.def" gesichert. Diese Datei könnt ihr jederzeit anpassen, Änderungen werden sofort übernommen.
    Falls euer Zähler nicht in der Liste ist, dann könnt ihr diesen selbst hinzufügen (und mir Bescheid geben!). Wählt dazu erstmal irgendein anderen Zähler aus und wechselt danach zu "Tools > Manage File system". Dort seht ihr die Datei "sml_meter.def". Klickt auf 📝 um die Datei zu bearbeiten und die Zeilen an euren Zähler anzupassen. Ihr dürft in dieser Datei/Script die Variable %0rxpin% und %0txpin% nicht löschen. Achtet bitte darauf, dass die 1. Meter Metric Zeile die Leistung (W) ist, dann folgt die 2. aus dem Netz bezogene Energie (kWh) und ggf. als 3. Zeile die ins Netz eingespeiste Energie. Was danach kommt ist für das Script egal. Falls ihr für euren Zähler die >S oder >F Sektion benötigt, dann könnt ihr diese ebenfalls hier einfügen. Ihr dürft nur keine eigenen Variablen definieren sondern müsst auf interne, bereits definierte zurückgreifen = lnv0, lnv1, ... lnv3. Als Beispiel könnt ihr euch das Script vom Zähler "Apator 12EC3 12EC3g" anschauen.
  6. Nun sollten bereits Werte von eurem Zähler oben angezeigt werden (falls nicht prüft die Pinauswahl und startet ggf. neu), aber die Diagramme müssen noch initialisiert (und euer Backup wieder eingespielt werden)! Falls ihr Neueinsteiger seid, dann müsst ihr nur noch auf  klicken und fertig.
  7. Geht wieder zu "Tools > Manage File system" und ladet euch die Datei data.csv herunter. Öffnet diese am besten mit dem Editor "Notepad++" und dazu noch euer Backup (die Textdatei mit euren Daten, siehe oben). Die data.csv besteht aus 6 Zeilen (6. muss leer sein) bzw. aus 8 beim +PV3 Script:
    1 = 4h Diagramm [W]
    2 = 24h Diagramm [W]
    3 = Tagesverbräuche 1.-31. (dcon)
    4 = Tageseinspeisungen 1.-31. (dprod) [kWh] nur beim +PV Script
    5 = Monatsverbräuche 1.-12. [kWh] (mcon 1-12) gefolgt von den Monatseinspeisungen 1.-12., nur beim +PV Script (mcon 13-24)
    6 = Wochenverbräuche KW1 - KW53 [kWh] (wcon 1-53)  nur beim +PV3 Script
    7 = Wocheneinspeisungen KW1 - KW53 [kWh] (wprod 1-53)  nur beim +PV3 Script
  8. Nun kommt der nervige Part, ihr müsst die Werte in die data.csv Datei übertragen. Ich habe es mit Notepad++ so gemacht:
    Die Wertereihen in den eckigen Klammern (Komma getrennt) kopiert und dann die Werte in der data.csv (Tab getrennt) überschrieben, Zeile für Zeile. Als erstes also die dcon Werte "dcon":[ a,b,c,d,.... ]
    Was in welcher Zeile stehen muss habe ich in Punkt 7 geschrieben.
  9. Ist das getan sind die Werte aber alle Komma getrennt. Das muss korrigiert werden und zwar geht das mit der "Replace" oder "Ersetzen" Funktion in Notepad++. Suchen nach "," und ersetzen mit "\t".
  10. Wollt ihr kein Notepad installieren, dann müsst ihr die Werte alle per Hand übertragen und auf den Tab zwischen jeder Zahl achten.
  11. Jetzt sichert die Datei und ladet sie wieder hoch. Geht zur Console und gibt folgendes ein: script>=#load
    Mit diesem Befehl wird die Datei neu eingelesen.
  12. Jetzt sollten die Diagramme die richtigen Werte anzeigen, aber die Tages-, Monats-, und Jahreswerte könnten noch falsch sein. Diese Werte werden nicht aus der data.csv geladen sondern liegen im Flash als Variable. Diese Werte müsst ihr einmal über die Console (Menü Tools) eintragen. Die Werte der Variablen habt ihr ja zuvor gesichert (schaut zum Anfang dieses Kapitels). Also für xx gibt ihr die korrekt Werte (Zählerstände) ein z.B. 143212 kWh. Falls euch der Aufwand zu groß ist, könnt ihr auch einfach auf  klicken. Dann werden alle Werte auf 0 zurückgesetzt. Sichert euch vorher aber die data.csv und ladet euch diese nach dem Initialisieren wieder zurück!
    script>mval=xx
    script>mval2=xx
    script>dval=xx
    script>dval2=xx
    script>yval=xx
    script>yval2=xx
  13. FERTIG

 

 

FAQ und Problemlösungen

  1. Ich möchte ein Firmware Upgrade machen, bleibt das Skript und meine Einstellungen erhalten?
    Ich möchte die aufgezeichneten Daten sichern oder auf einen neuen ESP übertragen.
    Diese Anleitung ist veraltet und gilt nur bis Scriptversion 25.09.2025! Die neuen Scripte ab 01.12.2025 speichern die Daten in die data.csv Datei! Siehe dazu Kapitel 14.
    Auch wenn ihr die data.csv wieder zurückladen wollt, siehe Kapitel 14!

    Beim ESP32 bleibt alles (außer das 4h Diagramm) nach einem Update erhalten. Beim ESP8266 kann es sein (je nach Upgrade), dass das Skript weg ist und neu übertragen werden muss. Ab Tasmota 12.4 klappt dies auch ohne Verlust des Skriptes. Die gespeicherten Verbrauchs/Produktionsdaten bleiben eigentlich immer erhalten. Man sollte sie sich aber lieber einmal manuell notieren in dem man sich in der console die arrays ausgeben lässt und sich die Ausgabe in eine Textdatei kopiert:

    script?var        var = Variable eintragen z.B. mcon für die Monate

    Welche Daten werden in welche Variablen gespeichert:
    Variablen:
    mval (kWh Zählerstand (Netzbezug) am Anfang des aktuellen Monats, wichtig für "Monatsverbrauch")
    mval2 (wie mval (aber Einspeisung) der PV Anlage, nur bei +PV Script, wichtig für "Monatseinspeisung")
    dval (kWh Zählerstand (Netzbezug) am Anfang des aktuellen Tages, wichtig für "Tagesverbrauch")
    dval2 (wie dval (aber Einspeisung) der PV Anlage, nur bei +PV Script, wichtig für "Tageseinspeisung")
    yval (kWh Zählerstand (Netzbezug) am Anfang des aktuellen Jahres, wichtig für "Jahresverbrauch")
    yval2 (wie yval (aber Einspeisung) der PV Anlage, nur bei +PV Script, wichtig für "Jahreseinspeisung")
    wval (kWh Zählerstand (Netzbezug) am Anfang der aktuellen Kalenderwoche, nur bei +PV3 Script, wichtig für "Wochenverbrauch")
    wval2 (wie wval (aber Einspeisung), nur bei +PV3 Script, wichtig für "Wocheneinspeisung")

    Arrays (komplettes Array anzeigen lassen ohne [ ] z.B. via script?dcon):
    dcon[n] (errechneter Verbrauch Monatsdiagramm n=1-31 Tag im Monat)
    dprod[n] (errechnete Einspeisung)
    mcon[n] (errechneter Verbrauch Jahresdiagramm n=1..12 Jan bis Dez, Eingespeist n=13..24, nur bei PV Skript)
    dprod[n] (errechnete Einspeisung Monatsdiagramm n=1-31 Tag im Monat, nur bei PV Skript)
    wcon[n] / wprod[n] (errechneter Verbrauch/Einspeisung pro Kalenderwoche 1-53, nur PV3 Script)

    Die Ausgabe ohne [ ] sieht dann so aus:
    {"script":{"mcon":[20,221.17,105.47,148.44,162.11,165.04,177.73,158.2,160.16,148.44,20,167.97]}}

    Ab Tasmota 12 kann man sich das ganze Array auf einmal anzeigen und setzen lassen. Einfach die Klammern [ ] weglassen!

    Wenn dann nach einem Upgrade etwas nicht stimmt kann man die Daten einfach schnell korrigieren: script >var[n]=xxx   z.B. script >mcon[1]=200 damit setzt man für für den Monat Januar 200kWh. Bei mir war es mal so, dass der erste Wert in den Arrays falsch war. Das kann man dann wie eben geschrieben schnell beheben. Falls man das gesamte Array setzen möchte, dann geht das wie folgt. Zuvor hat man sich die Ausgabe des Arrays in der Console in eine Textdatei kopiert. Dann markiert man alle Zahlen innerhalb der [ ] und öffnen dann Suchen&Ersetzen. Nun sucht man nach Komma "," und ersetzt es durch ein Leerzeichen " ". Dann kopiert man alle Zahlen in den Klammern und fügt sie in die console. Es folgt ein Beispiel:

    Kommas entfernen und die Zahlen in die untere Zeile einfügen (Beispiel Array mcon mit PV):
    {"script":{"mcon":[20,221.17,105.47,148.44,162.11,165.04,177.73,158.2,160.16,148.44,20,167.97]}}
    Diesen Befehl dann in die console einfügen (Beispiel Array mcon mit PV):
    backlog script >mcon={20 221.17 105.47 148.44 162.11 165.04 177.73 158.2 160.16 148.44 20 167.97};

    Backup erstellen / Daten auf neuen ESP übertragen, Vorgehensweise:
    Ich mache es immer so. Ich gehe in die Console auf den alten ESP mit den Daten, die ich sichern möchte. Dort gebe ich der Reihe nach folgendes ein und sichere mir die Ausgabe in einer Textdatei.
    script?dval
    script?dval2             (nur wenn ihr das +PV Script habt)
    script?mval
    script?mval2            (nur wenn ihr das +PV Script habt)
    script?yval
    script?yval2             (nur wenn ihr das +PV Script habt)
    script?dcon
    script?dprod            (nur wenn ihr das +PV Script habt)
    script?mcon
    script?wcon            (nur wenn ihr das +PV3 Script habt)
    script?wprod           (nur wenn ihr das +PV3 Script habt)

    Wie oben geschrieben müsst ihr die Ausgabe dann leicht anpassen (Kommas entfernen z.B. mit Suchen und entfernen via Notepad++) und danach der Reihe nach auf dem neuen ESP eingeben:
    backlog script >dval=22661.3; script >dval2=606.92;
    backlog script >mval=22270.55; script >mval2=606.38;
    backlog script >yval=19001; script >yval2=571;
    script >dcon={10.24 7.09 17.04 41.25 3.44 33.31 16.87 7.26 35.22 10.25 10.45 4.75 7.28 6.71 26.65 10.49 10.9 23.34 7.91 6.16 10.56 7.78 43.42 4.94 12.03 8.73 6.11 3.3 7.16 7.16 0}
    script >dprod={0 0.01 0.04 0.06 0.02 0.04 0.01 0.01 0.01 0 0.03 0.02 0.03 0.02 0.03 0.04 0.02 0.04 0.01 0.01 0.01 0.02 0.01 0.01 0.02 0.01 0 0 0.11 0.08 0}
    script >mcon={561.08 459.91 444.17 222.83 275.88 217.06 352.48 332.41 406.95 -22270.55 492.09 484.72 0.53 4.95 1.96 3.57 7.84 6.73 3.62 3.14 2.54 0 1.34 0.07}   (wenn ihr nicht das +PV Script habt, dann habt ihr hier nur 12 Zahlen).

    Am Ende unbedingt 'script >svars' eingeben!
  2. Es werden keine Werte mehr in meinem Smart Home System angezeigt, speziell die Sensoren (Leistung und Energie) oder im Energy Dashboard von HA
    Das Problem hatte ich einmal nach einem Upgrade und anschließendem Downgrade der Firmware. Bei mir war das Problem das Skript, dass ich dann einmal neu übertragen musste. Danach wurden die Sensoren wieder in der Tasmota Integration aufgeführt. Wenn das bei euch nicht der Fall ist, dann löscht die Einträge in der customize.yaml und geht danach zu den Developer Tools -> Services -> Recorder: Purge Entities und wählt die Sensoren von Tasmota aus. Danach ein Neustart vom System durchführen, Tasmota ebenfalls.
    Wenn eurer Netzbezug (und Einspeisung) nicht im Dashboard auswählbar ist, dann könnte euch diese Hilfe weiterhelfen. Beachtet auch Kapitel 5 meiner Seite!
  3. Die Werte in den Diagrammen stimmen nicht. Wie kann ich sie korrigieren?
    Die neuen Scripte ab 01.12.2025 speichern die Daten in die data.csv Datei! Falls man von einem älteren Script updaten will, sollte sich Kapitel 14 anschauen.
    Kurze Erklärung wie das Script die Werte wohin speichert und lädt:
    Alle Diagrammdaten (4/24h Chart und die Säulendiagramme) laden die Daten aus der data.csv Datei. Diese kann man hier finden "Tools > Manage File system", direkt editieren oder herunterladen (und auch wieder hochladen). Die Daten werden immer nach einem Neustart in folgende Variablen geladen: s4h, s24h, dcon, dprod, mcon (siehe auch FAQ 1). Beim Speichern (Mitternacht oder manuell über den Button im Untermenü) wird der Inhalt der Variablen wieder in die Datei geschrieben = aktualisiert.
    Dann gibt es noch den Tages-, Wochen-, Monats- und Jahresverbrauch bzw. Einspeisung. Das sind errechnete Werte vom Script. Letzendlich wird um Mitternacht der Zählerstand in eine Variable geschrieben, um damit den Tageswert für den folgenden Tag errechnen zu können (Tageswert = ZählerstandMitternacht - aktueller Zählerstand). Das gleiche passiert mit den anderen Werten am Ende eines Monats, Woche oder Jahr. Diese werden nicht in die data.csv gesichert, sondern liegen sind nur in den Variablen (permament), also im Flashspeicher (wie auch die data.csv). Folgende Variablen: mval, dval, mval2, dval2, yval, yval2, wval, wval2 (siehe FAQ 1).

    So, wie korrigiere ich nun die Werte, wenn etwas nicht stimmt?
    - Stimmt etwas im Chart / Diagramm nicht, dann müsst ihr den Wert in der data.csv korrigieren. Die Datei könnt ihr direkt in Tasmota editieren. Was ich wo ändern müsst findet ihr im Kapitel 14 Punkt 7. Habt ihr die Werte geändert müsst ihr nur Tasmota neustarten und die geänderten Werte werden geladen.
    - Stimmen die Tages, Wochen, Monats... Werte nicht? Dann müsst ihr in die Console gehen (Tools > Console) und etwas "hacken" 😉 . Ich habe oben ja geschrieben, welche Variablen dafür zuständig sind, aber ich habe nicht erwähnt welche Variable für was ist. Da schaut ihr bitte in FAQ Nr 1 bei Variablen. Habt ihr die richtige identifiziert, dann gibt folgendes in die Console ein: 

    script>VariableXYZ=200       (korrekten Zählerstand in kWh, bei dcon wäre das der Zählerstand Netzbezug um Mitternacht)
    script>VariableXYZ=400
    ...

    script>svars     (um zu speichern)
  4. Die Diagramme werden nicht korrekt angezeigt oder das Skript läuft nicht einwandfrei
    Entweder habt ihr dann nicht mein fertiges Image auf euren ESP geflasht oder falls ihr das Image selbst erstellt habt nicht die erforderlichen #includes hinzugefügt. Oder ihr habt etwas im Skript gelöscht oder geändert. Am besten einfach mein Image nehmen und dann das Skript mit dem externen Skript Editor übertragen ohne etwas zu ändern. Wenn dann die Diagramme korrekt angezeigt werden könnt ihr anfangen mit einem Notepad das Skript anzupassen und erneut zu übertragen. Denkt dran, ihr könnt mit dem ESP8266 das Skript nicht über die Tasmota Seite editieren, weil der ESP zu wenig RAM hat! Falls nur ein paar Werte in den Diagrammen nicht stimmen, dann könnt ihr diese in der Console korrigieren mit z.B. script >sday[n]=korrigierter Tageswert. Siehe dazu Punkt 1. der FAQ. Und wie gesagt, viele Fehler kommen dadurch, dass man das Skript per Hand mit Notepad bearbeitet (z.B. die Kommentare entfernt) und dann via Copy&Paste in den WebEditor einfügt. Der ext. Editor entfernt automatisch alle Kommentare und unnötige Leerzeichen (die ich z.B. für die Lesbarkeit eingefügt habe).
  5. Der aktuelle Tages-, Monats-, Jahres und Wochenverbrauchswert stimmt nicht (auch in den Diagrammen)
    Das Skript speichert sich immer um 00:00 Uhr den aktuellen Zählerstand in gewisse Variablen, um damit den Tagesverbrauch für den nächsten Tag auszurechnen. Nach einem Monatswechsel wird der Wert zudem noch in eine weitere Variable geschrieben um den Monatsverbrauch zu errechnen, das gleiche gilt für Jahresverbrauch und Wochenverbrauch. Die Variablen hierfür sind dval, dval2, mvalmval2, yval, yval2, wval, wval2 diese sind permanent und werden nach einem Neustart aus dem Flash Speicher geladen, so wie auch die restlichen Variablen aus Punkt 1. der FAQ. Nach einem Firmware oder Scriptupdate kann es passieren, dass diese Variablen falsche Werte haben. Oder wenn man das Script zum ersten Mal aufspielt, dann sind nämlich alle diese Variablen 0! Der aktuelle Tageswert (und Monatswert) errechnet sich aus aktuellem Zählerstand (der immer >0 ist!) und dem um Mitternacht gespeicherten Stand. So oder so würde dann etwas völlig falsches errechnet werden. Um alle Arrays/Variablen auf einen definierten Wert zu setzen siehe Punkt 3 der FAQ. Tritt das Problem nach einem Update auf, dann muss man die Variablen händisch korrigieren und den aktuellen Zählerstand oder falls man den Stand von Mitternacht hat via Console eingeben: "script >dval=Zählerstand", "script >mval=Zählerstand", "script >dval2=ZählerstandEingespeist" usw.
  6. Nach der Zeitumstellung (Sommer / Winterzeit) stimmt die Uhrzeit in Tasmota nicht mehr
    Folgt der Anleitung unter 4g).
  7. Mein Zähler zeigt keine, nur kurzzeitig oder eine negative Leistung an
    Wenn euer Zähler keine Leistung anzeigt oder sie nur für eine kurze Zeit ausgibt, dann könnte euch dieses Dokument weiterhelfen (falls der Link nicht mehr geht, Bescheid geben). Es kann auch sein, dass ihr einen Befehl regelmäßig zum Zähler senden müsst, das hatte ein User mal in den Kommentaren beschrieben (finde ich gerade nicht mehr, irgendwas mit Push-Pull).
    Wenn euer Zähler eine negative Leistung ausgibt, dann schaut euch im Kapitel 4c) das Beispiel SML Script an (DWS DVS 7420, 7412 (DZG DVS74 DWS74) inkl. "negative Leistung" Fix).
  8. Beim Updaten der Tasmota Firmare (OTA) erhalte ich eine rote Fehlermeldung "ungenügender Speicherplatz" oder "Not enough space"
    Das betrifft nur den ESP8266 mit 1M Flash. Kommt dieser Fehler, dann habt ihr noch eine ältere Tasmota Firmware von mir drauf, die noch nicht abgespeckt war oder eine Firmware von jemand anders. In diesem Fall müsst ihr erstmal die minimal Firmware via OTA (Upgrade by file upload) auf euren ESP übertragen. Das minimal Image findet ihr immer im Download Ordner für die entsprechende Version. In seltenen Fällen klappt aber nichtmal das, weil eure aktuelle Tasmota Version soviel Flash Speicher belegt, dass das minimal Image nicht in den Flash passt. Aber dafür gibt es auch eine Lösung in Form eines Minimal HTTP Updaters. Damit sollte es dann klappen. (Danke für den Hinweis @User Norbert).
  9. Kann ich mir die Zähler SML Werte auch im JSON via Web Request abrufen (anstatt via MQTT) z.B. für openDTU-onBattery?
    Ja! hiermit: http://-EURE-IP-/cm?cmnd=status%2010
    %20 = Leerzeichen
    10 = show connected sensor information (replaces 'Status 8')
    https://tasmota.github.io/docs/Commands/#status
    Antwort sieht dann bei mir so aus: {"StatusSNS":{"Time":"2023-12-18T09:18:12","MT175":{"Power":240,"Total_in":18773.34,"Total_out":571.48}}}
    Falls ihr das für openDTU-onBattery verwenden wollt müsst ihr bei Einstellungen -> Stromzähler folgendes verwenden:
    Stromzählertyp: http(s) + json
    URL: http://192.168.178.31/cm?cmnd=status%2010
    optional Authorization Type: Basic mit username und password
    JSON-Pfad: StatusSNS/MT175/Power    <- MT175 = Name Stromzähler im SML Script (Meter Definition), Power = Name aktuelle Leistung SML Script (Meter Metrics)
    Einheit: W
    Falls ihr die Momentanleistung gefiltert/gemittelt haben möchtet, dann gibt es ebenfalls eine Möglichkeit (wenn ihr mein +PV Script verwendet):
    http://-EURE-IP-/cm?cmnd=script?power2
    JSON Pfad = script/power2
  10. Fehlermeldung "Syntax Error Line 1" bei Verwendung des externen Script Editors
    Aktiviert im Windows Dateiexplorer unter Ansicht die Option "Dateinamenerweiterung" bzw. Haken bei Erweiterung bei bekannte Dateitypen ausblenden deaktivieren. Hinweis vom aus dem Gästebuch #900 von Andy.
  11. Google Chart Script auf den ESP32 kopieren (ohne ScriptEditor)
    Der ESP32 hat fast genug Speicher um mein ganzes Script inkl. den Kommentaren und Leerzeichen (Einrückungen) im internen Web Editor zu laden. Leider reicht es dann doch nicht ganz und ihr müsst per Hand einige Kommentare entfernen. Ist euch das aber auch zu aufwendig, dann könnt ihr den externen Script Editor nehmen und mein Script "entschlacken" lassen. Dazu ladet euch das Tool herunter (siehe Punkt 4f) und öffnet mein Script. Dann via "Window -> Export to documents folder" mein Script konvertieren lassen. Ihr findet das entschlackte Script dann unter C:\Users\xxx\Documents\.
  12. Komische Peaks im 4h / 24h Diagramm (z.B. 10000W) / ESP rebootet ab und zu oder häufig
    Einige meiner Leser hatten Probleme mit sporadischen Peaks in den Diagrammen. Z.B. ab und zu 10.000 W (oder mehr) im 4h und 24h Diagramm. Meistens hilft es dann, eure Meter Definition anzupassen. So ist der Aufbau der Meter Definition: +<M>,<rxGPIO>,<type>,<flag>,<parameter>,<jsonPrefix>{,<txGPIO>,<txPeriod>,<cmdTelegram>}. bei <flag> solltet ihr 16 eintragen. Mehr Infos auf der Tasmota SML Seite oder hier bei mir im Kapitel 4d. Am Script kann es nicht liegen. Es addiert die aktuelle Leistung alle 3s auf. Nach 30s wird diese Summe durch die Anzahl der Additionen dividiert und man erhält den Mittelwert der dann in den 4h Graphen eingetragen wird. Das gleiche passiert auch mit dem 24h Graphen, jedoch wird dort erst nach 60s der Mittelwert errechnet und eingetragen.
    Wenn das alles nichts hilft kann es noch folgende Ursachen haben:
    - schlechtes Netzteil (z.B. einfaches Handyladegerät -> ungeeignet)
    - ESP zu warm / Bauteile schlecht ... gealtert ... Spannungsversorgung dadurch nicht mehr sauber, siehe auch ersten Punkt.
    - Lesekopf verrutscht oder es kommt irgendwie Licht in dein Zählerschrank (Nachmittagssonne scheint drauf ...)
    - ESP hat schlechten WLAN Empfang und verbindet sich ab und zu neu (siehe WifiConfig) -> das hat dann ggf. irgendwelche Einflüsse
  13. Zu hohe Werte im 4h / 24h Diagramm. Ich möchte die Leistungen im Diagramm begrenzen.
    Wenn ihr ab und zu mal hohe Peaks im Diagramm habt (weil ihr z.B. eine große Last schaltet oder euer E-Auto lädt), dann können die Diagramme ziemlich schnell nutzlos sein, weil ihr nur noch den einen großen Peak seht. Ihr könnt die Y-Achse des Diagramms aber begrenzen. Optional auch über ein Schieberegler. Sucht in meinem neuen (ab 13.10.2024) Skript nach "vn" um die Stellen zu finden, die aktiviert werden müssen. Braucht ihr den Schieberegler nicht, dann einfach unten in der >W Sektion bei den Diagrammen nach vAxis suchen und mein Kommentar lesen.
  14. Die Zählerwerte / Daten sollen schneller als 10s (kleinster Bereich von TelePerio bzw. tper) via MQTT übertragen werden
    Dazu musst du im Skript, in der SML Sektion ">M" <precision> des Meter Metrics anpassen (siehe auch Kapitel 4d):
    <M>,<decoder>@<scale><offs>,<label>,<UoM>,<var>,<precision>
    <precision> = number of decimal places. Add 16 to transmit the data immediately. Otherwise it is transmitted on TelePeriod only.
  15. Tasmota Buttons (Config usw) ausblenden, damit man nicht ausversehen was verstellen kann
    Im Tasmota Script in der >W Sektion folgendes einfügen:
    <style>form button{display:none}</style>
    Damit man immernoch ins Menü kommt: http://tasmota-ip/mn?
  16. Lesekopf soll via Sendediode ein Initial-Command an den Zähler senden, funktioniert aber nicht
    Mein Lesekopf/Tasmota empfängt keine Daten vom Zähler
    Beim MT174 muss z.B. eine Sequenz am Anfang der Kommunikation gesendet werden, damit der Zähler überhaupt etwas sendet. Das kann man z.B. mit dieser Meter Definition Zeile machen:
    +1,3,o,0,300,MT174,1,100,2F3F210D0A        <- sendet <0D><0A> zum Aufwecken an den Zähler
    1 = TX-Sendepin, 100 = sende alle 10s (n * 100ms), 2F3F210D0A = ASCII "/?!CRLF" zum Aufwecken an den Zähler senden
    Es gibt nun diverse ESP Boards mit USB-Anschluss (z.B. WEMOS), bei dem die (UART) RX/TX-Pins zusätzlich auch mit dem UART-USB-Chip verbunden sind (um den ESP zu flashen). Bei anderen Boards kann auch eine LED mit verbunden sein um die Kommunikation anzuzeigen. D.h. die Signalleitungen werden über Widerständen mit dem USB-IC oder LED verbunden und ziehen das Signal somit definiert z.B. auf 3.3V. Das kann die Funktion des Lesekopfes beeinflussen. D.h. dann kann z.B. der Fototransistor den RX-Eingang nicht auf low (0V) ziehen, wenn ein Signal empfangen wird. Das gleiche gilt für den TX-Ausgang. Dieser kann dann unter Umständen die IR-Diode nicht treiben und somit empfängt der Zähler kein Startbefehl. Wenn dann auch noch die Dioden im Lesekopf leicht schief ausgerichtet sind, klappt es garnicht mehr. Das alles "kann" dazu führen, dass es bei euch nicht klappt. Es kann natürlich aber auch ein anders Problem bei euch vorliegen...
    Um sowas zu umgehen kann man den RX/TX-Pin der zweiten UART (falls ESP32-x) oder Software Serial verwenden. Dazu muss das Tasmota Image aber via USE_ESP32_SW_SERIAL kompiliert werden und bei der Meter Definition ein Minus "-" vor den Pin geschrieben werden. Mehr Infos im Kapitel 4d. Falls man eine andere Baudrate als 8N1 verwendet, sollte man laut der Wiki nur Hardware TX/RX verwenden. Laut dem Entwickler ist das aber wohl egal!
  17. Nulleinspeisung mit Marstek Venus / Jupiter Akku (Shelly Pro 3EM Emulator)
    Der Teil hat nun ein extra Kapitel bekommen.
  18. Wake-on-LAN (WoL) via Script
    Ab Tasmota Image 15.1.0 (meine Images) / Scriptversion 5.9 ist das möglich.
                                                                                                                    >D
    M:array=0 102
    M:wolmac=0 6
    i=0 j=0 res=0
    wol=0

    >B
    ; hier die IP des Hosts eintragen, den ihr starten wollt wolmac={0x9C 0x6B 0x00 0x34 0x5F 0x36} for i 1 6 1 array=0xFF next for i 1 16 1 for j 1 6 1 array=wolmac[j] print %0j% next next
    ; Semikolon entfernen, wenn ein WOL Paket beim Booten/Neustart gesendet werden soll ;res=udp(7 "192.168.178.255" 7 array)

    >S
    if wol==1 {
    wol=0
    res=udp(7 "192.168.178.255" 7 array)
    }

    >W
    bu(wol "WOL Paket gesendet!" "PC aufwecken")
  19. Pin für Stromzähler herausfinden via Script / TinyC - Smart-Meter Optical PIN Unlocker
    Wenn ihr den PIN für euren Stromzähler, aus welchen Gründen auch immer, nicht bekommt/habt, dann könnt ihr es mit diesem Tasmota Script oder TinyC Programm versuchen zu "knacken".
    meter_pin_unlock.tas
    meter_pin_unlock.tc
    Dafür benötigt ihr natürlich einen Tasmota Lesekopf und mein Image.
  20. 2. Stromzähler hinzufügen (in der sml_meter.def)
    Wichtig: Sobald via DropDown Menü irgendwas anderes gewählt wird => sml_meter.def wird überschrieben
                                                                                    ;Anzahl der Meter. Muss genau gesetzt werden
    >M 2
    ;1.Zähler via DropDown Menü automatisch eingefügt, kann beliebig erweitert werden!
    +1,%0rxpin%,s,%0smlf%,9600,SGM,%0txpin%
    1,77070100100700ff@1,Leistung,W,Power,16
    1,77070100010800ff@1000,Verbrauch,kWh,ImportActive,3
    1,77070100020800ff@1000,Einspeisung,kWh,ExportActive,3
    
    ;SGM2 als neuer Alias und GPIOs (RX=32, TX=33)
    +2,32,s,16,9600,SGM2,33
    2,77070100100700ff@1,Leistung,W,Power,16
    2,77070100010801ff@1000,VerbrauchHT,kWh,E_inHT,3
    #

 


Kommentare: 2555
  • #2555

    Stefan (Mittwoch, 01 Juli 2026 13:54)

    @otello Erstmal vielen Dank für die Fülle von Informationen. Ich habe mir einen SunEnergyXT 500 Pro Akku zugelegt, dort kann man einen Stromzähler basierrend auf Tasmota hinzufügen. Wie ich aber festgestellt habe, muss Tasmota dann auch mdns enthalten, auf unserem ESP8266 konnten wir nur unter original Tasmota 8.5.1 mdns mit SetOption55 1 und SetOption19 1/0 aktivieren.
    In einigen Foren konnte ich lesen das Tasmota ab 9.1 mdns entfernt hat. Unter dem aktuellen Image für unseren ESP8266 (tasmota1m_ottelo_tas.bin) scheint keine mds enthalten zu sein, dies ist aber für den SunEnergyXT 500 Pro Akku zwingend erforderlich, da dieser den Stromzähler sonst nicht findet. Auch das hinzufügen via API, was laut Anleitung von SunEnergy geht, funktioniert nicht ohne mdns, direct mit IP kann hier nicht verwendet werden laut API, geht auch nicht, ich habe es getestet.

    Es wäre schön zu wissen ob es tatsälich so ist, dass die otelle tasmota bin's kein mdns enthalten oder ob das evtl. mit dem ESp8266 in unserem IR-Lesekopf zusammen hängt. Wir hatten diesen mit dem Script für den ITRON eHz konfiguriert, er liefert auch fleissig Daten im Webinterface der tasmota, als auch an Homeassistant.

    Danke für eine Antwort.

    Gruß Stefan

  • #2554

    SaschaMike (Dienstag, 30 Juni 2026 17:38)

    @ottelo kann ich die tasmota Version vom 31.05.2026 Tasmota v15.4.0 vom 13.06.2026 aktualisieren?

  • #2553

    Greengho (Dienstag, 30 Juni 2026 16:50)

    @Marcus

    nicht selber gebaut, hab einen bei Weidmann ergattert. Da gibt es fertig aufgebaute die gut funktionieren

  • #2552

    Marcus (Dienstag, 30 Juni 2026 14:24)

    @Greenho
    wie hast Du den D0 Splitter gemacht? An einem ESP Daten empfangen und gleich wieder ausgegeben (wenn ja, wie) oder Hardwaretechnisch (z.B. mit einem Schnittrigger auf einen Eingang und dann auf zwei Ausgänge) gelöst?

  • #2551

    Greengho (Dienstag, 30 Juni 2026 12:49)

    Ich habe deine Emulation mit 2 Bitshake Leseköpfen und einem D0 Splitter an meinem Zähler. Die beiden Lese Köpfe steuern jeweils einen Minjet natürlich nicht mit der Gesamteinspeisung, sondern aufgeteilt. L1L2L3

  • #2550

    Greengho (Dienstag, 30 Juni 2026 12:43)

    Ja genau den meine ich. Ist zur Zeit noch als Refurbed erhältlich zum Preis von 229 €. Der läuft echt super damit das Schöne ist. Er kann auch ohne App gesteuert werden. Bezugsquelle gerne wenn gewünscht

  • #2549

    ottelo (Dienstag, 30 Juni 2026 10:46)

    @Greengho
    Meinst du den: Minjet MH7A-48
    Man findet kaum etwas darüber und auch keine Shops die das Teil anbieten. Kannst du mehr dazu sagen?

  • #2548

    Greengho (Montag, 29 Juni 2026 19:16)

    Vielen Dank für das tolles Skript! Zur Liste der funktionierenden Geräte können nun auch ein super günstiges hinzugefügt werden. Seit 14 Tagen nutze ich es mit dem Minjet Speicher. Der ist super billig zu bekommen. Hab es so geschafft zwei parallel zu betreiben. Die Shelly Emulation funktioniert einfach perfekt. Vielen vielen Dank

  • #2547

    SaschaMike (Sonntag, 28 Juni 2026 10:08)

    Ich hab nen HM-600 den ich mit dem Flole Tool auf nen HM-800 geflasht habe...

  • #2546

    thc (Samstag, 27 Juni 2026 10:17)

    Das geht hier auch, aber nicht an den B2500.
    Verkabelung ist hier 10 qmm - 20 Meter zu den B2500er und 1 Meter zu den HM's

    Firmware vom 800er :1.00.16
    HW : 1.10

    Und bei dir ?

    Der HMS800W-2T liefert voll.

  • #2545

    SaschaMike (Samstag, 27 Juni 2026 09:25)

    Ich hab 6 mm² MC4 Kabel verwendet und 800 Watt gibt der HM-800 maximal ans Hausnetz

  • #2544

    Denis (Samstag, 27 Juni 2026 00:46)

    Jetzt sogar 735w damit kann ich leben.
    Ich werde es mal tagsüber beobachten.
    Lag wohl wircklich an der Verkabelung.
    @thc danke für den Tipp

  • #2543

    Denis (Samstag, 27 Juni 2026 00:44)

    Habe alles komplett neu verkabelt wir folgt:

    Beide Südwest panele zusammen in Input 1

    Beide südost Panele in Input 2

    Am Output dann den Wechselrichter.

    Maximale Leistung waren jetzt 670w ist etwas besser geworden.

  • #2542

    Denis (Freitag, 26 Juni 2026 23:00)

    Im manuellen modus werden aich nur macimal ca. 640w ausgegeben.
    Ich habe tatsächlich bei 2 Modulen jeweils 2x 1 meter Verlängerungskabel. Kann es vielleicht daran liegen?
    Wobei ich aber sagen muss das ohne dem B2500 der hoymiles ca. 770w ausgegeben hat.

    Ich werde mal morgen versuchen die Plätze von den Modulen am speicher zu tauschen.
    Ist schon doof das man ständig 200w nicht ausgeben kann.

    In anderen foren ist das problem mit den 600w auch schon bekannt, bei eingen verschwand das irgendwann dann seltsamer Weise..

  • #2541

    thc (Freitag, 26 Juni 2026 19:11)

    @SaschaMike

    Ja, die laufen dann sauber bis unter 40 Watt runter.
    Du kannst da praktisch auswählen wozu du Lust hast :-)
    Der HM 800 läuft allerdings auf keiner Einstellung voll hoch.
    Da ist so bei 760 das Ende erreicht. Der 600er geht bis rund 630.

  • #2540

    horst (Freitag, 26 Juni 2026 14:47)

    Hallo Ottelo,
    ich verwende aktuell auf einem ESP8266 mit Tasmota 15.1.0 folgendes Script, um eine LED am Zähler zyklisch blinken zu lassen. Dadurch soll verhindert werden, dass sich der Zähler nach der PIN-Eingabe sperrt.
    Wenn ich jedoch die Firmware tasmota1m_shelly_ottelo_tas.bin flashe, funktioniert mein bisheriges SML-Script (SML-Zähler + Modbus-Zähler) weiterhin problemlos, allerdings bleibt die LED ohne Funktion.
    Der Counter cnt wird laut Konsole korrekt hochgezählt.
    Hast du eine Idee, woran das liegen könnte ?

    Hier mein aktuelles Script(der LED teil):

    >D
    cnt=0

    >B
    ; Pin als Output definieren
    spinm(12 1)
    =>sensor53 r
    ; Pin 14 auf LOW setzen
    spin(12 0)

    >S
    ; Switch-Logik
    switch cnt
    case 1
    spin(12 1) ; LED an
    case 2
    spin(12 0) ; LED aus
    case 5
    cnt=0
    ends

    ; Counter hochzählen
    cnt+=1

  • #2539

    SaschaMike (Freitag, 26 Juni 2026 14:33)

    @thc Du hast nen Marstek 800 angegeben, obwohl es eigentlich ein hoymiles ist?

  • #2538

    thc (Freitag, 26 Juni 2026 13:17)

    Merkwürdig finde ich das eine Seite liefert die andere nicht. 400/215 ..
    Eigendlich sieht das nach Verkabelung aus.

    Ich hoffe das da nicht die mitgelieferten Kabel dran sind, das ist unter aller Würde.
    Hatte da gleich 2 Stecker in der Hand :-(

    Ich würde mal die Seiten wechseln und schauen ob das wandert - trotzdem er manuell liefert.

    Meine HM 800/600 laufen mit den eingestellten Marstek Wechselrichtern am besten.

  • #2537

    SaschaMike (Freitag, 26 Juni 2026 09:01)

    @Denis konkret meine ich diese Korrektur: https://github.com/ottelo9/tasmota-sml-images/issues/46

  • #2536

    SaschamMike (Freitag, 26 Juni 2026 08:58)

    Ottelo hat ja 2 Tasmota Versionen vom 31.05. und 08.06. zurück gezogen: https://github.com/ottelo9/tasmota-sml-images/releases

    Hast Du ggf. eine von denen installiert und die Parameter werden nicht gespeichert?

  • #2535

    SaschaMike (Freitag, 26 Juni 2026 08:53)

    @Denis ok, dann ist es zumindest kein Darstellungsfehler in der App. Hast Du mal den Marstek Support angeschrieben? Ggf. stimmt deren Definition des Wechselrichter - Modells nicht. Ansonsten gibt es ein Problem in der Kommunikation zwischen Smartmeter Emulation und dem Marstek Speicher. Am Smartmeter von Ottelo kann man ja Häkchen setzen um Schwankungen zu glätten (SML usw.). Haben diese Optionen Auswirkungen?

  • #2534

    SaschaMike (Freitag, 26 Juni 2026 08:44)

    @Denis ich habe den HMS-800 2T ausgewählt nachdem ich beim Marstek Support angefragt hatte. Den Ecotracker hab als Emulation. Hatte anfangs den shelly und hab dann den Ecotracker ausprobiert als ottelo den angeboten hat und bin dabei geblieben. Damals war es noch ein Thema, ob der Stromzähler Werte für eine Phasen oder für 3 Phasen anzeigt. Mein Landis & Gyr zeigt nur eine Phase an.

  • #2533

    Denis (Donnerstag, 25 Juni 2026 20:06)

    https://www.directupload.eu/file/d/9326/eeemhucn_jpg.htm

    Auch im Tool werden knapp über 600w ausgegeben

  • #2532

    Denis (Donnerstag, 25 Juni 2026 19:56)

    @SaschaMike

    Danke erstmal für deine antworten.
    Welchen Wechselrichter hast du denn in der Marstek App ausgewählt den hm800 finde ich nicht.
    Und welchen Emulator nutzt du?
    Wie kann ich denn mein Speicher mit dem Tool verbinden?

  • #2531

    SaschaMike (Donnerstag, 25 Juni 2026 19:41)

    @Denis je nach Version hat die Marstek App Darstellungsprobleme. Ggf. wird die Einspeisung falsch dargestellt. Das Tool https://tomquist.github.io/hmjs/ zeigt auch die output power an. Ggf. stimmt sie da?

  • #2530

    SaschaMike (Donnerstag, 25 Juni 2026 19:38)

    @Denis den Marstek B2500-D hab ich auch und 800 Watt sind im automatischen Modus möglich, habe allerdings Hichi als Lesekopf und HM-800 als Wechselrichter.

  • #2529

    Denis (Donnerstag, 25 Juni 2026 14:27)

    Mqtt habe ich nicht laufen, den anderen Emulator habr jch irgendwie nicht zum laufen gekriegt.

  • #2528

    thc (Donnerstag, 25 Juni 2026 14:25)

    Komisch, hast du mqtt laufen oder schau mal in der grafischen Aufbereitung der App was da angefordert wird.
    Passiert das auch mit anderer Emulation, z.b. Ecotracker ß

  • #2527

    Denis (Donnerstag, 25 Juni 2026 09:26)

    Ich habe wie du gesagt hast den Marstek 800 mal als Wechselrichter genommen und neu gestartet, selbes problem siehe bilder:


    https://www.directupload.eu/file/d/9326/uamienqn_jpg.htm

    https://www.directupload.eu/file/d/9326/4rxl55se_jpg.htm

  • #2526

    Denis (Donnerstag, 25 Juni 2026 09:21)

    Der Wechselrichter ist suf 800w eingestellt.
    Genau, beispielsweise ist der sktuelle verbrsuch 2000w die app stoppt aber bei rund 620w.
    Im manuellen modus kriege ich ca. 770w.

  • #2525

    thc (Donnerstag, 25 Juni 2026 09:05)

    Habe ich noch nicht gesehen.

    Ev. mal Marstek 800 W Wechselrichter eintragen und neu starten.

    Fordert die Software die Leistung an ? Und der Wechselrichter stoppt bei rund 600 Watt ?
    Bei den manuellen Eistellungen werden rund 800 Watt geliefert ?

  • #2524

    Denis (Mittwoch, 24 Juni 2026 23:41)

    Hallo,

    ich habe es geschafft mein Bitshake mit meinem marstek b2500 akku als Shelly emulator einzurichten.
    Allerdings wird die Ausgabe im Automodus auf 600w begrenzt ist dies normal?
    Im Manuellen midus kann ich bis zu 800w hochgehen.
    Habe jch etwas wichtiges übersehen?

  • #2523

    SaachaMike (Montag, 22 Juni 2026 16:04)

    ah, ich habe die Version 15.4.0 vom 31.05.
    Ottelo hat Probleme bei der Auswahl des Stromzählers gefixt. Ich dachte, der WT32-ETH01 sei träge.

  • #2522

    SaschaMike (Montag, 22 Juni 2026 15:48)

    @Mi-Hol
    Danke für den Hinweis. Dann hoffe ich auf die neuste tasmota Version von ottelo

  • #2521

    Mi-Hol (Sonntag, 21 Juni 2026 20:27)

    @SaschaMike

    in GitHub issue https://github.com/ottelo9/tasmota-sml-images/issues/47 findest Du vielleicht die Erklärung dafür

  • #2520

    SaschaMike (Samstag, 20 Juni 2026 19:44)

    Heute war die Tageseinspeisung bei 0,06 kWh, also läuft der WT32-ETH01 inzwischen

  • #2519

    SaschaMike (Samstag, 20 Juni 2026 15:12)

    Hat jemand Kühlkörper auf den WT32-ETH01 drauf geklebt?

  • #2518

    SaschaMike (Samstag, 20 Juni 2026 10:01)

    @ottelo auch von mir viel Spaß und gutes Wetter beim Festival.

    Seit dem CRC Check scheint der WT32-ETH01 zu funktionieren. Es dauert nur etwas, bis der Marstek auf neue Verbraucher reagiert.

  • #2517

    Marcus (Freitag, 19 Juni 2026 10:25)

    @Ottelo
    Hallo Ottelo, hier die versprochene Rückmeldung zur Smarten Regelung des Noah 2000.
    Tasmota 15.3. von dir auf dem WT32-ETH01 Solo1 (per Ethernet anschlossen, Wifi 0) mit dem Shelly Emulator PV und Chart.
    Noah über Fritz Mesh Repeater der per Kabel an der Fritzbox hängt verbunden.
    Noah 2000 an HERF-800 WR. 4 Module a 440W (je zwei parallel) direkt am Noah.
    Modulausrichtung ca.5 ° nach Westen.
    Das Shelly Script läuft jetzt seit zwei Tagen und der Noah hat den Shelly im Gegensatz um EcoTracker nicht mehr "vergessen".

    Hier mal eine kommentierte Auswertung über die letzten 24h. Die Leistung ist eine Momentaufnahme (minütlich) der Variablen power2.
    https://ibb.co/7704P0v
    https://ibb.co/tpDw2kCs
    Sofern genug Leistung geliefert werden kann, regelt es so aus, dass man nur noch einen stündlichen Bezug und Einspeisung von 10-30 Wh hat. Und wir haben noch nicht mit den Regelanpassungen gespielt. Das ist echt super.

    Mir bleibt eigentlich nur ein großes DANKESCHÖN für die Arbeit und den Support den Du hier machst zu sagen.
    Und viel Spaß beim Festival.

    Gruß
    Marcus



  • #2516

    Ottelo (Donnerstag, 18 Juni 2026 20:51)

    Sorry bin aufm Festival (Hurricane) und kann nur bedingt antworten.

  • #2515

    SaschaMike (Donnerstag, 18 Juni 2026 18:48)

    @ottelo wie siehst Du das? Der ESP32-WROOM hat sichergestellt, dass möglichst wenige eingespeist wird. Beim WT32-ETH01 habe ich hohe Einspeisewerte

  • #2514

    SaschaMike (Donnerstag, 18 Juni 2026 18:43)

    https://www.directupload.eu/file/d/9319/h3iyyvtr_jpg.htm

    bzw.

    https://www.directupload.eu/file/d/9319/jrzsohgu_jpg.htm

  • #2513

    SaschaMike (Donnerstag, 18 Juni 2026 17:22)

    Der CRC Check hat für Stabilität gesorgt

  • #2512

    Marcus (Donnerstag, 18 Juni 2026 17:13)

    Ich meinte ich kenne die Marstek App zwar nicht ....

  • #2511

    Marcus (Donnerstag, 18 Juni 2026 17:12)

    @SaschaMike,
    ich kenne die zwar nicht, aber wenn ich das richtig sehe, wird in dem moment des Snaps 35W gezogen, an den Akku die Info 7W geschickt und der Akku gibt 4 Watt ab.
    Das passt doch.

  • #2510

    SaschaMike (Donnerstag, 18 Juni 2026 14:15)

    https://www.directupload.eu/file/d/9319/h7w49f86_jpg.htm

    bzw.

    https://www.directupload.eu/file/d/9319/pd8ld7il_jpg.htm

  • #2509

    ottelo (Mittwoch, 17 Juni 2026 20:08)

    Und was zeigt denn der Wert "Leistung (an PV-Akku)" ?

  • #2508

    Saschamike (Mittwoch, 17 Juni 2026)

    WT32-ETH01 Solo1
    Tasmota 15.4.0
    Der Marstek B2500-D reagiert erst nach ein paar Minuten wenn über 300 Watt im. Hausnetz benötigt werden. D.h. 200 Watt werden über Strombezug gedeckt, statt die Energie aus dem randvollen Speicher zu nutzen.

  • #2507

    ottelo (Mittwoch, 17 Juni 2026 19:20)

    @Sascha
    Nur nochmal zur Erinnerung. Du hast einen WT32 Solo1? Und was genau läuft mit dem und Tasmota 15.4.0 nicht? Nur die Nulleinspeisung? Was genau?

    Würde mir sonst auch mal das Teil zum Testen holen.

  • #2506

    SaschaMike (Mittwoch, 17 Juni 2026 18:45)

    @Marcus wifi hab ich nur aktiviert, weil ich dachte, es liegt am Ethernet. Schalte es wieder ab und schaual, ob der CRC Check hilft. Tasmota 15.3.0 probier ich mal auf nem anderen WT32-ETH01 aus den ich eh neu installieren muss.