Stromzähler mit einem ESP8266 / ESP32 mit Tasmota auslesen und darstellen

  • Werte an eure Smart Home Steuerzentrale senden
    z.B. Home Assistant, ioBroker, openHAB, FHEM
  • Werte können direkt auf dem ESP8266 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 MT175, 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



(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. ESP nehmen, siehe A) bis B). Oder wenn ihr selbst basteln wollt oder euer WLAN im Bereich des Zählers schlecht ist dann nimmt einen Auslesekopf mit TTL Ausgang (nicht die USB Variante!). Bei eBay nach TTL Lesekopf Zähler [eBay Werbung] suchen. (Alte Quelle photovoltaik Forum) - Schaltplan + Wiki

 

  • Optional: Home Assistant System (z.B. auf einem Raspberry Pi 3+ oder 4)
    NEU: 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) --

  • ESP8266 (am besten einen mit USB Anschluss z.B. Wemos D1 mini[eBay Werbung] / NodeMCU ~5€) oder
  • ESP01s[eBay Werbung] das ist der kleinste ESP8266 mit 1M Flash Speicher
  • oder besser noch einen ESP32 (mehr Performance) z.B. D1 mini ESP32[eBay Werbung] oder noch kleiner 
  • M5Stamp (oder Stack) pico [eBay Werbung]

  • 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).

 

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

Hichi bietet bei ebay komplett fertige WiFi Leseköpfe an. Dieser beinhaltet 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. Kostet ca. 35€. Auf dem ESP ist bereits Tasmota "vorinstalliert". Deshalb könnt ihr direkt mein fertiges Image via WLAN übertragen ohne TTL Adapter.

Rx = GPIO3, Tx = GPIO1. SML Deskriptor Beispiel: +1,3,s,0,9600,MT681

oder

 

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

Der Hichi mit seinem ESP01s reicht eigentlich für alles aus (auch um das Google Chart Script auszuführen). Will man aber mehr oder für die Zukunft gerüstet sein, dann würde ich eher zu dem Größeren von bitshake greifen. Er hat einen starken ESP32 der wirklich alles bietet. Er ist nur etwas teurer als der Hichi, ca. 46€. 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.

Rx = GPIO5, Tx = GPIO4. SML Deskriptor Beispiel +1,5,s,0,9600,MT681


 

B) Ready2Use Lesekopf + ESP außerhalb vom Sicherungskasten[eBay Werbung]

Es gibt noch eine andere Variante vom Verkäufer Steffen (eBay). Diese hat den Vorteil, dass der ESP nicht mit im Zählerkasten sitzt, sondern außen angebracht werden kann wo der WLAN Empfang besser ist. Zusätzlich können auch mehrere Leseköpfe angeschlossen werden. Der Lesekopf selbst sitzt natürlich im Zählerschrank am Zähler. Ist allerdings auch etwas teurer als der Hichi. Hier kommt der Wemos Di mini zum Einsatz.

 

C) ESP32 mit LAN + TTL Lesekopf

Optionen:

  • Shelly 1 Pro Hutschinenmodul ~55€
    ! Den IR Lesekopf müsste man an die Programmierschnittstelle (RX/TX/3V) an der Seite anschließen, allerdings weiß ich nicht, ob dieser galvanisch getrennt ist. Also ist diese Option wohl erstmal nicht ohne Gefahr verwendbar !

  • Shelly Homepage
    eBay Link[eBay Werbung]
    Tasmota Seite

 oder 

oder mit PoE (Power over Ethernet) ~18€

ESP Hutschienengehäuse

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

 

Unbenutzer TX-Pin (Sendediode)

Wichtig: Wird die Sendediode (TX) vom IR-Lesekopf nicht benötigt, dann ist 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 -> Configure 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:

in Englisch mit SML, Home Assistant, Google Chart Support

 

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

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 hier. Wenn ihr aber zusätzliche Sensoren nutzen wollt, dann müsst ihr euch eine eigene Version bauen (siehe Punkt 6).

ältere

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

ESP32 (+ S3, C3, S2):

inkl. Berry-Skript, Ethernet (LAN), Modbus TCP, TCP-Server Support und allen Standard Features/Treibern

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: 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 vorher zwingend die minimal in der gleichen Version flashen (liegt mit im Download Ordner)! Beim ESP32 ist das nicht notwendig! Update: Ab 12.4.0 nicht mehr notwendig.
  • 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 (anderes PV Script) mit Anzeige der Netzeinspeisung (Monatsansicht). Dabei handelt es sich um ein großes Tasmota Skript, das ihr noch zusätzlich via TasmotaScriptEditor 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.

  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.

  • Tasmota Script Google Chart SML (28.03.2023)
    Hinweis: Wenn ihr mein Script bearbeitet um eure SML Descripter Zeilen einzufügen, denkt an die korrekte Reihenfolge: Die 1te Zeile ist nun die Leistung (sml[1]), die 2te Energie vom Netz (sml[2]), die 3te Energie ins Netz (sml[3]).
    Tasmota SML Script + Chart + PV (mit visuelle Anzeige der Netzeinspeisung, falls ihr eine PV Anlage habt)
    Tasmota SML Script + Chart + PV für Einrichtungszähler (wenn euer Zähler keine Netzeinspeisung [kWh] übermittelt. Diese wird hier alle 60s errechnet)
    Tasmota SML Script + Chart + PV - ohne 4h 24h Diagramm
     (ich habe beide Diagramme und deren Variablen entfernt, spart Speicher)
    Tasmota SML Script + Chart
  • Tasmota Script Google Chart SML für 1-Richtungszähler und PV (07.08.2023)
    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.

 

 

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

 

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. auf dem ESP01s des Hichi IR Lesekopfes), 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:

  • 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 neuerdings 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 und dann auf START drücken. 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 nun in eurem WLAN Netz. befinden sollte. Die IP könnt ihr über euren Router herausbekommen. Z.b. bei der FritzBox unter Mesh oder Netzwerkübersicht müsste der ESP mit den Namen Tasmota-xxxx auftauchen. Adresse könnte also lauten http://192.168.178.31.

7. Habt ihr das geschafft, klickt ihr als nächstes auf Configuration -> Configure Module und wählt als Module "Generic (0)" aus.

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. 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.

 

Falls ihr kein kompliziertes Smart Home System wie 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 -> Configure 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 (ohne Google Charts usw)

Jetzt müsst ihr das SML Skript zum Auslesen eures Zählers auf den ESP übertragen. Dazu geht ihr auf Consoles -> Edit Script. Zuvor habt ihr ja das Skript bereits aktiviert. Jetzt kopiert euch eins der folgenden Skripte und fügt es einfach in dem Fenster ein. Zuvor alles aus dem Fenster löschen! Klickt nun erstmal auf Save. Weiter unten geht's weiter!

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

 

Für alle anderen Zähler geht auf diese Seite und scrollt nach unten. Dort findet ihr SML Beispiele für euren Zähler. 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).

 

 

Eine detaillierte Beschreibung der einzelnen Zeilen findet ihr unter den Scriptbeispielen (scrollt etwas runter)!

 

MT175/681, ED300L:

>D
>B
=>sensor53 r
>M 1
+1,3,s,16,9600,MT175
1,77070100100700ff@1,Leistung,W,Power_curr,1
1,77070100010800ff@1000,Verbrauch,KWh,Total_in,1
;Die nächste Zeile benötigt ihr nur, wenn ihr eine PV-Anlage habt. Sonst einfach löschen!
1,77070100020800ff@1000,Netzeinspeisung,KWh,Total_out,0
#

 

MT175, ED300L mit MQTT 0-Werte nach Boot Fix:

>D

;BOOT
>B
;disable mqtt at boot prevents sending 0
smlj=0
->sensor53 r

;SML
>M 1
+1,3,s,16,9600,MT175
1,77070100100700ff@1,Leistung,W,Power_curr,0
1,77070100010800ff@1000,Verbrauch,KWh,Total_in,0
;Die nächste 1 Zeile benötigt ihr nur, wenn ihr eine PV-Anlage habt. Sonst einfach löschen!
1,77070100020800ff@1000,Netzeinspeisung,KWh,Total_out,0
#

;EVERY SECOND
>S
;start mqtt if smartmeter is sending if (sml[2]>0) { smlj=1 }

DWS DVS 7420, 7412 (DZG DVS74 DWS74) inkl. "negative Leistung" Fix:

>D
>B
=>sensor53 r
>M 1
+1,3,s,16,9600,DWS74
1,77070100100700FF@1,Leistung,W,Power_curr,0
1,77070100010800FF@1000,Verbrauch,kWh,Total,2
;Die nächste 1 Zeile benötigt ihr nur, wenn ihr eine PV-Anlage habt. Sonst einfach löschen!
1,77070100020800FF@1000,Netzeinspeisung,kWh,Total_out,2
;DWS74 Bugfix (negative Leistung)
1,=so2,1
#

 Logarex LK13BE (LK13BE606739):

>D
>B
=>sensor53 r
>M 1

+1,14,s,0,9600,STROM,13,30,2F3F210D0A,063030300D0A
1,77070100100700ff@1,Leistung,W,power,16 1,77070100010800ff@1000,Energie gesamt,kWh,energy_sum,3 1,77070100020800ff@1000,Einspeisung,kWh,energy_supply,3 1,=h=================== 1,770701000E0700FF@1,Frequenz,Hz,Hz,2 1,=h=================== 1,77070100200700FF@1,Spannung L1,V,V_l1,2 1,77070100200700FF@1,Spannung L2,V,V_l2,2 1,77070100480700FF@1,Spannung L3,V,V_l3,2 1,=h=================== 1,77070100240700FF@1,Wirkleistung L1,W,wirkleistung_l1,0 1,77070100380700FF@1,Wirkleistung L2,W,wirkleistung_l2,0 1,770701004C0700FF@1,Wirkleistung L3,W,wirkleistung_l3,0 # # D5 RX 14, D7 TX 13

 APATOR LEPUS:

>D  
>B  
->sensor53 r
>M 1  
+1,3,s,1,9600,SML
1,77070100100700ff@1,Wirkleistung,W,curr_w,0 1,77070100010800ff@1000,Bezug,KWh,Total_in,4 1,77070100020800ff@1000,Einspeisung,KWh,Total_out,4 #

Wiener Netze Smart Meter verschlüsselt / kodiert (Landis, Siemens, ISKRA AM550):

;Landis,Siemens? (Wiener Netze)
>D
>B
=>sensor53 r
>M 1
+1,3,r,0,9600,Home
1,=so3,256
1,=so4,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1,0f001ax19UUuu@1,year,,year,0
1,0f001ax21ss@1,month,,month,0
1,0f001ax22ss@1,day,,day,0
1,0f001ax24ss@1,hh,,hh,0
1,0f001ax25ss@1,mm,,mm,0
1,0f001ax26ss@1,ss,,ss,0
1,0f001ax32UUuuUUuu@1000,+A,kWh,+A,3
1,0f001ax37UUuuUUuu@1000,-A,kWh,-A,3
1,0f001ax42UUuuUUuu@1000,+R,varh,+R,3
1,0f001ax47UUuuUUuu@1000,-R,varh,-R,3
1,0f001ax52UUuuUUuu@1,+P,W,+P,3 1,0f001ax57UUuuUUuu@1,-P,W,-P,3
1,0f001ax62UUuuUUuu@1,+Q,var,+P,3 1,0f001ax67UUuuUUuu@1,-Q,var,-P,3
#

;1,=so4,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (hier euren Kundenschnittstellenschlüssel eintragen)
;0f001a - hier die Rohdaten mal ausgeben und dann sieht man, welchen offset man hat, bei mir 3 bytes.
;x19 usw ist der offset für 3 bytes, wenns 4 sind dann jeweils um 1 erhöhen also hier x20 usw.

;ISKRA AM550 (Wiener Netze)
>D >B =>sensor53 r >M 1 +1,3,r,0,9600,HAUS
;falls ihr ab und zu mal plötzlich negative Leistung angezeigt wird 1,=so2,1 einfügen (siehe DWS74 Bugfix)
;1,=so2,1 1,=so3,256 1,=so4,Hier den Schlüssel von eurem Smartmeter eintragen 1,020909x14UUuuUUuu@1000,Zählerstand,kWh,Zaehlerstand,2 1,020909x34UUuuUUuu@1000,Bezug aktuell,kwh,Bezug,3
1,020909x19UUuuUUuu@1000,Einspeisung Gesamt,kWh,Einspeisung_ges,2
1,020909x39UUuuUUuu@1000,Einspeisung aktuell ,kW,Einspeisung_akt,3
1,020909x24UUuuUUuu@1000,BL Bezug,kvarh,BL_Bezug,3
1,020909x29UUuuUUuu@1000,BL Einspeisung,kvarh,BL_Einspeisung,3 #

;Siemens IM350 der (Wiener Netze)
>D >B =>sensor53 r >M 1 +1,3,r,0,9600,Home 1,=so3,128 1,=so4,key 1,020a09x19UUuu@1,year,,year,0 1,020a09x21ss@1,month,,month,0 1,020a09x22ss@1,day,,day,0 1,020a09x24ss@1,hh,,hh,0 1,020a09x25ss@1,mm,,mm,0 1,020a09x26ss@1,ss,,ss,0 1,020a09x32UUuuUUuu@1000,+A,kWh,+A,3 1,020a09x37UUuuUUuu@1000,-A,kWh,-A,3 1,020a09x42UUuuUUuu@1000,+R,varh,+R,3 1,020a09x47UUuuUUuu@1000,-R,varh,-R,3 1,020a09x52UUuuUUuu@1,+P,W,+P,3 1,020a09x57UUuuUUuu@1,-P,W,-P,3 1,020a09x62UUuuUUuu@1,+Q,var,+Q,3 1,020a09x67UUuuUUuu@1,-Q,var,-Q,3 # ;Kommentar 907 Christian: Die 3 bytes 020a09 durch die ersten drei Bytes des entschlüsselten Dumps ersetzen, da wird bei diesem Zählertyp eine Art Seriennummer ausgegeben, die wohl bei jedem Zähler anders ist.
;https://github.com/arendst/Tasmota/discussions/14610
;wohl erst ab Tasmota 13.3.0.3 (Dev) verwendbar!

 

 Beispiel für 3 Leseköpfe / 3 Zähler an einem ESP (max 5 möglich):

>D
>B
=>sensor53 r
>M 3
+1,3,s,16,9600,MT175_1
1,77070100100700ff@1,Leistung,W,Power1_curr,1
1,77070100010800ff@1000,Verbrauch,KWh,Total1_in,1
+2,4,s,16,9600,MT175_2
1,77070100100700ff@1,Leistung,W,Power2_curr,1
2,77070100010800ff@1000,Verbrauch,KWh,Total2_in,1
+3,5,s,16,9600,MT175_3
1,77070100100700ff@1,Leistung,W,Power3_curr,1
3,77070100010800ff@1000,Verbrauch,KWh,Total3_in,1
#

  Beispiel für Zähler, die den Pin Schutz wieder automatisch aktivieren (z.B. eHZ-Serie Gen. K):

;Bei meinem Zähler eHZ-Serie Gen. K greift die automatische PIN-Schutz Aktivierung nach 2 Minuten ein
;und ich kann die Werte nicht mehr ohne erneuerte PIN-Eingabe (mit der Taschenlampe) ablesen.
;Das optionale Menü „InF“ (PIN-Schutz deaktivieren) ist nicht vorhanden. Um das umzugehen, muss
;ich innerhalb von 2 Minuten ein Impuls generieren um den 2-Minuten-Timer zu resetten.
>D
>B =>sensor53 r ; GPIO 14 als output definieren für IR-Diode >BS spinm(14 1) ; SML Zähler Code >M 1 +1,3,s,0,9600,eHZ +1,3,s,0,9600,ESYQ3AA
1,77070100100700ff@1,Current Consumption,W,Power_cur,0 1,77070100010800ff@1000,Energy Import,KWh,Total_in,3 1,77070100020800ff@1000,Energy Export,KWh,Total_out,3
1,77070100000009ff@#,Server ID,,Meter_id,0 # ; alle 10 Sekunden für 2 Sek IR-Diode einschalten und damit die PIN-Aktivierung resetten >S ;print one second tick if upsecs%10==8 { ; print %upsecs% ; print IR-Diode On spin(14 1)} } if upsecs%10==0 { ; print %upsecs% ; print IR-Diode Off spin(14 0)} } ends

 

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_curr), alle 3 Phasen zusammen
  • Verbrauchte Leistung "elektrische Arbeit/Energie" kWh (Total_in)
  • ins Netz eingespeiste "elektrische Arbeit/Energie" kWh (Total_out)

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

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

 

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

= Zähler 1 (Sensor) wird nun konfiguriert

3 = GPIO 3 . Hier könnt ihr den Pin ändern, an dem ihr das RX Signal des Lesekopfes angeschlossen habt. Ihr könnt nicht einfach jeden Pin verwenden, sondern müsst erstmal nachschauen, welche Pins euer ESP Modul frei zur Verfügung stellt: ESP8266, ESP32Hier gibt es noch eine Infoseite. Wenn euer ESP Modul nicht dabei ist, googelt einfach nach "ESP-xxxx + pinout". Generell solltet ihr die Finger von GPIO0, 2 und 15 lassen, da sie zum Booten des ESPs wichtig sind.

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!)

# = 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>

 

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

  

(4e) Wichtig! TESTEN OB DATEN ANKOMMEN

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 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. Den empfangenen Code könnt ihr nützlicherweise auf dieser Seite entschlüsseln (Seite erstellt von dem creationx Forum User ixs).

 

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

Siehe Download oben! Wenn ihr ein ESP8266 verwendet, dann könnt ihr dieses Skript nicht einfach wie oben über "Consoles -> Edit Script" einfügen und speichern, da der 8266 zu wenig RAM hat. Dafür braucht ihr ein externes selbstgeschriebenes Tool namens Tasmota ScriptEditor (Wichtig: Vorher müsst ihr in Windows "Erweiterungen bei bekannte Dateitypen ausblenden" deaktivieren). Dieser entfernt auch automatisch alle Kommentare und Leerzeichen, sonst würde das Skript nicht in den Speicher passen. Es ist auch zu beachten, dass ihr die korrekte Tasmota Firmware haben müsst, die ein großes Skript mit 6200 (8192 V12.4) Zeichen erlaubt! Die passende Firmware findet ihr oben bei den Downloads. Es ist immer für den Standard ESP8266 mit 1 MByte Speicher (oder 4MB) kompiliert.

 

Kurzanleitung Script mit dem Editor übertragen:

  • Geht auf die Tasmota Weboberfläche eures ESPs und aktiviert jetzt schonmal die Script Funktion: Consoles -> Edit Script -> Haken setzen bei "Enable Script"
  • Ladet euch den Editor herunter und entpackt diesen irgendwo hin (z.B. Desktop)
  • öffnet den ScriptEditor (ScriptEditor.app\Contents\Windows\ScriptEditor.exe) und ladet das Script über File -> Open (z.B. Tasmota SML Script + Chart + PV.txt)
  • Nun öffnet sich ein neues Fenster mit dem Script
  • Ändert die IP oben auf die IP eures ESPs z.B. IP=192.168.178.31
  • Scrollt runter zu ;-- SML -- bzw. >M 1
  • Passt den SML Descriptor an euren Stromzähler an (siehe Kapitel 4d)
  • File -> Save
  • Nun könnt ihr das Script an euren ESP mit Tasmota übertragen: Window -> Run
  • Es sollte ein Fenster mit einer Bestätigung erscheinen, andernfalls versucht es nochmal
  • Nun ist das Script auf eurem ESP und sollte auch sofort ausgeführt werden

Wenn ihr das Skript übertragen habt, könnt ihr nicht mehr über "Consoles -> Edit Script" an das Skript kommen oder editieren, da wie gesagt der RAM zu klein ist um das Skript darzustellen. Für Änderungen oder Updates müsst ihr immer über den Tasmota ScriptEditor gehen. Eine sehr gute Anleitung befindet sich in der ScriptEditor zip Datei.

Sehr wichtig: Ihr müsst vorher die Skriptfunktion unter "Consoles -> Edit Script -> script enable" aktivieren, ansonsten könnt ihr nach dem Übertragen des Skriptes nichts sehen. Falls ihr strikt diese Anleitung befolgt, sollte das aber bereits geschehen sein! Falls ihr es doch vergessen habt könnt ihr über die Console das Skript via "script 1" ebenfalls aktivieren. Außerdem müsst ihr das Skript vorher auf euren Zähler und euren verwendeten RX Eingang anpassen, siehe Punkt (4d).

  • Verwendet ihr ein ESP32, dann könnt ihr theoretisch das Skript 1:1 über "Consoles -> Edit Script" einfügen. Allerdings müsst ihr einmal die ganzen Kommentare zu Beginn des Scriptes entfernen. Ansonsten passt es nicht rein. Dafür könnt ihr aber auch wieder den ScriptEditor verwenden. Dazu das heruntergeladene Script mit dem Editor öffnen und auf Window -> Export to documents folder. Dann findet ihr das bereinigte Script hier: C:\Users\<benutzer>\Documents\compressed_script.txt. Habt ihr das gemacht, dann kopiert und fügt das Script ein. Schaut ob ganz unten auch wirklich alles eingefügt wurde. Ganz unten muss ; -- END SCRIPT --; stehen!! Allerdings gab es nun einige User, bei dem das Script (vor allem das für den 1-Richtungszähler) dann nicht korrekt funktioniert. Nachdem sie das Script über den externen Tasmota ScriptEditor übertragen hatten, funktionierte alles. Ich schätz mal der interne WebEditor hat Probleme bei zu vielen Leerzeichen. D.h. ihr müsstet alle Leerzeichen vor den Befehlen entfernen, um wirklich sicher zu gehen. Näheres dazu im FAQ 4.

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_curr,0

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

1,77070100020800ff@1000,Netzeinspeisung,KWh,Total_out,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 mit (PV):

backlog script >dval=EnFrGrid; script >dval2=EnToGrid; script >dcon={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0}; script >dprod={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
backlog script >mval=EnFrGrid; script >mval2=EnToGrid; script >mcon={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
script >=#sday
script >svars

 

Script ohne (PV):

backlog script >dval=EnFrGrid; script >dcon={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
backlog script >mval=EnFrGrid; script >mcon={0 0 0 0 0 0 0 0 0 0 0 0};
script >=#sday
script >svars

  

Dadurch werden die korrekten Werte gesetzt und die Diagramme auf 0 zurück gesetzt. Nach kurzer Zeit (wenn wieder Daten ankommen) werden auch die Diagramme korrekt dargestellt. Eure Zeitzone und die Zeit sollte natürlich auch korrekt eingestellt sein (siehe Kapitel 4g-11). 

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

1. Configure other (Configuration -> Configure Other): 

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

2. Sende/Abruf Intervall einstellen (Configuration -> Configure Logging)

  • Telemetry period
    (Wie oft soll der Wert an HA geschickt werden z.B. 60s)

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:
    • Backlog0 Timezone 99; TimeStd 0,0,10,1,3,60; TimeDst 0,0,3,1,2,120
  • Skript bezogene Einstellungen findet ihr direkt im Skript ganz oben erklärt (englisch)

 

(4h) Home Assistant Einstellungen 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)

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

6. Allerdings sind die Werte alle Einheitenlos und ohne richtiges Icon. Das könnt ihr manuell über ein paar Einträge in der configuration.yaml machen. Ausführliche Anleitung hier: HomeAssistant - Customizing entities . Hier müsst ihr eure Entities hinzufügen und ein paar wichtige Sachen vorgeben. Nutzt dazu das Addon FileEditor! Die Entity Namen müsst ihr ggf. noch anpassen, je nachdem wie ihr die Namen im Tasmota Script unter SML (>M) vergeben habt. 

 

#configuration.yaml
homeassistant:
customize:
sensor.tasmota_mt175_power_curr: device_class: power unit_of_measurement: 'W' sensor.tasmota_mt175_total_in:
device_class: energy unit_of_measurement: 'kWh' state_class: total_increasing sensor.tasmota_mt175_total_out:
device_class: energy unit_of_measurement: 'kWh' state_class: total_increasing

 

Oder wenn ihr dies in eine ausgelagerte customize.yaml einfügen wollt:

#configuration.yaml
homeassistant: customize: !include customize.yaml
#customize.yaml
sensor.tasmota_mt175_power_curr:
device_class: power unit_of_measurement: 'W' sensor.tasmota_mt175_total_in:
device_class: energy unit_of_measurement: 'kWh' state_class: total_increasing sensor.tasmota_mt175_total_out:
device_class: energy unit_of_measurement: 'kWh' state_class: total_increasing

 

 

Diese Angaben sind wichtig, da ihr sonst diese Entities nicht im Energy Dashboard (Settings -> Dashboards -> Energy) auswählen könnt!

 

 

 

Optional: Tages, Wochen, Monats, Jahresverbrauchsanzeige:

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) Home Assistant Energy Panel

Optional: HA Feature "ENERGY"

Ihr könnt euren Zähler schön in das neue Feature einbinden. Dann bekommt ihr eine tolle Anzeige.

 

Allerdings ist mein Zähler von meinen Stadtwerken so eingestellt wurden, dass er ohne Dezimalstelle überträgt. Also die verbrauchte Leistung nur in 1kWh Schritten. Dann wird das nur als grobe Balken in HA angezeigt (immer wenn der Zähler um 1kWh erhöht wird. Deshalb habe ich mir einen genaueren Zähler über die erfasste momentane Leistung (vom Zähler) gebaut. (Link)

sensor:
- platform: integration
source: sensor.current_power
name: energy_spent
unit_prefix: k
round: 2

 

Dieser kann dann in der ENERGY Rubrik ausgewählt werden anstatt des groben "Total_in" Zählers.

 

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

1. Geht auf https://github.com/benzino77/tasmocompiler#how-to-start-using-tasmocompiler oder direkt auf https://gitpod.io/#https://github.com/benzino77/tasmocompiler (Github Account notwendig).

 

Für etwas erfahrene User empfehle ich GitPod zu verwenden. 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 Gitpod Benutzer die Zeilen in der user_config_override.h eingeben):

#ifndef USE_SML_M
#define USE_SML_M
#endif

Optional, falls ihr das Google Chart Script von meiner Seite verwenden wollt:

 

Wenn ihr nicht den TasmoCompiler verwendet, sondern GitPod (oben bei 1. erwähnt), dann müssen die #defines in die user_config_override.h. Dann könnt ihr im Terminal Fenster den Befehl platformio run -e tasmota (ESP8266) bzw. platformio run -e tasmota32 (ESP32) eingeben, um das Image erstellen zu lassen. Wenn ihr ein ESP8266 mit 4M+ Speicher habt, dann müsst ihr noch in der Datei platformio_override.ini bei folgenden Zeilen das ; entfernen:

 

;board = esp8266_4M2M

;board_build.f_cpu = 160000000L

;board_build.f_flash = 40000000L

 

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) Quellen

Lesekopf und SML Protokoll

https://www.photovoltaikforum.com/thread/141332-neue-lesekopf-baus%C3%A4tze-ohne-smd-l%C3%B6ten/

https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/iskraemeco_mt175

http://www.stefan-weigert.de/php_loader/sml.php

http://www.schatenseite.de/2016/05/30/smart-message-language-stromzahler-auslesen/

https://tasmota-sml-parser.dicp.net/

ESP8266 Firmware Tasmota - Anleitung

https://tasmota.github.io/docs/Smart-Meter-Interface/

Tasmota Skriptbeispiel für MT175

https://forum.creationx.de/forum/index.php?thread/1095-d0-z%C3%A4hler-sml-auslesen-mit-tasmota/&postID=26444#post26444

Home Assistant - MQTT

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

https://www.home-assistant.io/docs/mqtt/broker

https://tasmota.github.io/docs/Home-Assistant/

 

 

(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 hier auf der Seite beschrieben wird)
  • WLAN-Steckdose (mit oder ohne Strommessung) auf der Tasmota installiert werden kann z.B. Gosund Smart Steckdose [eBay Werbung]
    Es gibt diese Steckdose aber auch unter anderem Namen bei Amazon z.B. GHome Smart WLAN Steckdose
  • Tasmota Image (ESP8266 1M/4M oder ESP32) für den ESP mit IR-Lesekopf, der an eurem Stromzähler hängt
  • Tasmota Image -> DL-Ordner Gosund oder SonOff POW für den ESP, der in der WLAN Steckdose sitzt
  • ein passendes Tasmota Script auf beiden ESPs

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 am Stromzähler)

>D 40
; -- VARS --
swesp=0
swespflg=0
power=0

;-- SML -- >M 1
;Euer SML DESCRIPTOR .....

; -- EVERY SECOND -- >S
; every 3s if (secs%3==0) {
; copy SML value power=sml[1]

; switch second ESP if power flows to grid, see >W section if (swesp==1)
{ if ((power<-50) and (swespflg==0))
{
=>websend [192.168.0.50] power ON
print power ON %power%W
swespflg=1 }
if ((power>30) and (swespflg==1)) {
=>websend [192.168.0.50] power OFF print power OFF %power%W swespflg=0
}
}
}

; WEB INTERFACE >W ; web button ; switch second ESP if power flows to grid, see >S section bu(swesp "switch ESP ON" "switch ESP OFF")
Anpassungen im Script:
  • In meinem 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 50 W (Leistung = -50) eingeschaltet und bei einem Netzbezug von über 30 W wieder ausgeschaltet. Die vorgegebenen Werte machen nur Sinn, wenn ihr eine alte 50 W Glühlampe einschalten wollt ;).

Das Script auf dem ESP in eurer Steckdose sieht etwas anders aus:

 

Tasmota Script (ESP in der Steckdose)

    todo

 

(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 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.

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)

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. Dazu habe ich ein fertiges Tasmota Image extra für den ESP32 mit LAN Support erstellt. Ihr findet es im 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 und das Offline Flasher Tool "ESP_Flasher (von Jason2866)" nutzen. 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.

 

12c) Template

Falls ihr mein fertiges ESP32 Image nimmt und den ET32-ETH01 verwendet, dann braucht ihr nur noch das korrekte Modul auswählen unter "Configuration-> Configure Module". Nach einem Reboot ist der ESP32 automatisch mit eurem LAN und WLAN verbunden. 

Habt ihr andere Hardware, dann müsst ihr diese erstmal korrekt via Template einstellen. "Configuration-> Configure 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 "Configure 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

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

 

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!

 

 

(13) FAQ und Problemlösungen

  1. Ich möchte ein Firmware Upgrade machen, bleibt das Skript und meine Einstellungen erhalten?
    Beim ESP32 bleibt alles (außer das 4h Diagramm) 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
    Normale Variable:
    mval (kWh Verbrauchswert am Anfang des aktuellen Monats, wichtig für "Monatsverbrauch")
    mval2 (wie mval aber Produktionswert der PV Anlage falls man eine hat und falls der Zähler dies unterstützt)
    dval (kWh Verbrauchswert am Anfang des aktuellen Tages, wichtig für "Tagesverbrauch")
    dval2 (wie dval aber Produktionswert der PV Anlage falls man eine hat und falls der Zähler dies unterstützt)
    Arrays (komplettes Array anzeigen lassen ohne [ ] z.B. via script?dcon):
    dcon[n] (Verbrauch Monatsdiagramm n=1-31 Tag im Monat)
    mcon[n] (Verbrauch Jahresdiagramm n=1..12 Jan bis Dez, Eingespeist n=13..24, nur bei PV Skript)
    dprod[n] (Eingespeist Monatsdiagramm n=1-31 Tag im Monat, nur bei PV Skript)
    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};

    Nun sollte euer Jahresdiagramm wieder stimmen!
  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 werden nach einem Neustart oder Stromausfall nicht geladen
    Als erstes solltet ihr versuchen das Skript erneut zu übertragen. Die Werte werden immer um Mitternacht gespeichert. Manuell kann das via script >svars über die Console gemacht werden. Das 4 Stunden Diagramm wird nicht gespeichert! Nachdem ihr das Skript übertragen habt die Arrays löschen via Console:

    Script mit (PV):

    backlog script >dval=EnFrGrid; script >dval2=EnToGrid; script >dcon={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0}; script >dprod={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
    backlog script >mval=EnFrGrid; script >mval2=EnToGrid; script >mcon={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
    script >=#rst24h
    script >svars

     

    Script ohne (PV):

    backlog script >dval=EnFrGrid; script >dcon={0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0};
    backlog script >mval=EnFrGrid; script >mcon={0 0 0 0 0 0 0 0 0 0 0 0};
    script >=#rst24h
    script >svars

    Dann fügt testweise manuell etwas ins Array ein via Console: script >mcon[1]=200
    Im Jahresdiagramm sollte nun für Januar 200kWh erscheinen. Dann via Console: script >svars
    Und dann mal Stecker ziehen und schauen ob die Werte für Januar wieder geladen werden.
  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- und Monatsverbrauchswert stimmt nicht (auch in den Diagrammen)
    Das Skript speichert sich immer um 00:00 Uhr den aktuellen Zählerstand um damit den Tagesverbrauch des nächsten Tages auszurechnen. Nach einem Monatswechsel wird der Wert zudem noch in eine weitere Variable geschrieben um den Monatsverbrauch zu errechnen. Die Variablen hierfür sind dval, dval2, mval und mval2, 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)?
    Ja! hiermit: http://-EURE-IP-/cm?cmnd=status%2010
    Antwort sieht dann so aus: {"StatusSNS":{"Time":"2023-12-18T09:18:12","MT175":{"Power_curr":240,"Total_in":18773.34,"Total_out":571.48}}}
  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 ScriptEditor 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\.

 


Kommentare: 1077
  • #1077

    Alex (Mittwoch, 24 April 2024 19:56)

    Hallo,
    vielen Dank für die tolle Anleitung. Ich habe einen Lesekopf an einem D1 mini erfolgreich zum laufen gebracht (mit PV und Google-Chart). Allerdings startet der D1 mini in unregelmäßigen Abständen neu. Gefühlt macht er das, wenn ich per Handy darauf zugreife. Ich habe schon mehrere USB Netzteile probiert, um zumindest Das auszuschließen.
    Woran kann das liegen? Bzw. wo kann ich ansetzten, um das zu beheben?

    Gruß Alex

  • #1076

    ottelo (Sonntag, 21 April 2024 13:30)

    Schau mal unter Kapitel 1.a. Da habe ich den neuen Lesekopf hinzugefügt. Und welche GPIOs verwendet werden. Die kannst du ja auch verwenden.

  • #1075

    Marcus (Sonntag, 21 April 2024 13:20)

    @ Stefan: Wegen GPIOs ESP32supermini C3
    Hallo Stefan,
    Welche Pins / GPIOs Verwendest Du für die Sende und Empfangsdiode.
    Ist es richtig, das bei dem ESP32 die Hardware RX/TX auf GPIO 20/21 was auch den Pins 20/21 entspricht liegen?

    Mein Mini ist angekommen, es ist Sonntag, Aprilwetter und somit Zeit zum Basteln ;-)

    Gruß
    Marcus

  • #1074

    ottelo (Freitag, 19 April 2024 20:26)

    @Andreas
    Danke für den Hinweis. Ich habe den ESP32 Lesekopf mal oben hinzugefügt. Bitshake empfiehlt auch den Kunden meine Seite bzw. mein Script, passt also :)

  • #1073

    Andreas M. (Donnerstag, 18 April 2024 21:43)

    Hallo an alle,
    Es gibt einen fertigen esp32 c3 in einem SML Kopf von bitshake

    https://www.amazon.de/gp/product/B0CCMXSPVX/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1

    Bei mir läuft der schon eine Zeitlang ohne Probleme,
    macht den EVU Zähler und auch Modbus meines SMA Wechselrichters, so ist alles in einem esp.

    Soll keine Werbung sein ich habe davon auch nichts!

    Die Frage ein paar Beiträge vorher.

  • #1072

    Marcus (Donnerstag, 18 April 2024 19:45)

    Hallo Minion,

    Prima das es klappt. Da ich den Webquery Befehl bisher nicht kannte, kann ich dir das leider nicht beantworten.
    Vielleicht kann jemand anderes die Frage beantworten. Würde mich auch interessieren.

    Gruß
    Marcus

  • #1071

    MINION (Donnerstag, 18 April 2024 15:32)

    Hallo Marcus,

    danke für die schnelle Antwort. Ich habe mich da gestern glaub bisschen in die falsche Richtung verrannt.
    Über den Tipp mit Websend bin ich jetzt auf den WebQuerry Befehl gestoßen, mit diesem klappts bisher einwandfrei.
    ;=>WebQuery http://pvanlage.bplaced.net/test.php/?power=%power%&EnFrGrid=%sml[2]%&EnToGrid=%sml[3]% GET

    Was ist denn der Unterschied zwischen Websend und WebQuerry bis auf den anderen Befehlsaufbau? Ist da irgendeins schlechter oder besser?

    Danke nochmals und viele Grüße

    Minion

  • #1070

    Marcus (Mittwoch, 17 April 2024 21:20)

    Hallo Minion,
    Schau mal in den FAQ (13) 9.
    Direkt über diesen Kommentaren.
    Da hat ottelo was beschrieben.
    Ansonsten in den Kommentaren mal nach dem Befehl Websend suchen. Da hatte ich beschrieben wie ich die Daten an Thingspeak schicke. Bin z.Zt. nicht daheim sonst hätte ich es nochmal eingestellt.

    Gruß
    Marcus

  • #1069

    MINION (Mittwoch, 17 April 2024 20:12)

    Hallo @ottelo

    erstmal vielen Dank für das tolle Script und die ausführliche Beschreibung. Ich habe den Lesekopf mit dem Google Chart Skript und einem ESP8266 4MB nun seit ein paar Monaten problemlos laufen. Inzwischen versuche ich die Daten von dem ESP irgendwie zu einem Webserver zu bekommen, um diese dort zu verarbeiten/visualisieren. Hier mal die Frage gibt es eine Möglichkeit im Script in Tasmota eine Website aufzurufen und dadurch die Daten über http weiterzugeben.
    ca so: http://url.net/?power=sml1&...
    Habe dazu nichts gefunden und deshalb versucht die Daten per Mqtt abzufragen, hierfür habe ich mir einen Cloud Mqtt-broker eingerichtet. Wenn ich mich zu diesem verbinden will, bekomme ich in Tasmota eine failed connection, was daran liegt, dass auf der Tasmota Version kein Mqtt mit TLS vorhanden ist. Ich habe mich daran versucht die Firmware nach deiner Anleitung selbst über Gitpod zu kompilieren, wodurch nach dem Einbinden von Mqtt mit TLS dies auch funktioniert hat. Hierfür habe ich nur diese Zeilen zu den von dir vorgeschlagenen hinzugefügt.
    #ifndef USE_MQTT_TLS
    #define USE_MQTT_TLS
    #define USE_MQTT_TLS_CA_CERT
    #endif
    Jedoch ist der Controller dann fast unbrauchbar, der Aufruf der Weboberfläche dauert ewig und das Öffnen der Einstellungen lädt extrem langsam oder es kommt öfter zu Verbindungsabbrüchen. Wenn ich wieder auf deine Firmware update, läuft wieder alles einwandfrei. Hast du da noch irgendwas geändert, was nicht in der Anleitung steht, bzw. kannst du eventuell eine Firmware mit aktiviertem TLS zur Verfügung stellen.

    Vielen Dank schonmal

    Grüße
    MINION

  • #1068

    Stefan (Montag, 15 April 2024 22:28)

    Hi, ihr beiden. Es gibt ein Board auf C3 Basis, das hab ich irgendwann mal in den Tiefen des Netzes gefunden.
    Allerdings käuflich nicht auftreibbar. Genau wie der Esp01, aber mit 32er.

    Okay, wer den Kopf neu druckt, hat ja alle möglichkeiten.
    Dann könnte auch die Buchse dran bleiben. Ecken müssen aber rund.

    Auf jeden Fall ist der Umbau machbar, sofern man einen Lötkolben hat und nicht 2 linke Hände voller Daumen.
    Das Layout vom C3 ist bestens geeignet. Man kann das eigendlich nicht kaputt machen, selbst mit ungeeignetem Werkzeug nicht. Wifi technisch performt der auch viel besser.

    Gruss! Stefan

  • #1067

    ottelo (Montag, 15 April 2024 12:05)

    @Stefan
    Super Sache! Vielleicht passt Hichi ja sein Verkaufsschlager auch an, wäre jedenfalls genial.
    Ich könnte für meinen bestehenden Hichi sonst mal ein neues Gehäuse drucken, wo dann der C3 Super-Mini reinpasst.

  • #1066

    Marcus (Montag, 15 April 2024 11:47)

    Hallo Stefan,
    Danke für die Rückmeldung.
    Hört sich gut an.
    Dann werde ich mich mal mal daran versuchen.

    Gruß
    Marcus

  • #1065

    Stefan (Sonntag, 14 April 2024 23:06)

    @Markus - Und wen es sonst noch interessiert.

    Ich hab den C3 Super-Mini jetzt im 'Volkszählergehäuse' laufen.
    Erwartungsgemäß muss die USB Buchse aus dem C3 raus. Diese ist auch mittig unten nochmals verlötet.
    Einfach das Gehäuse (Metall) aufheizen, dann vorsichtig hochklappen.
    Mit passendem Werkzeug lassen sich die Anschlüsse ablöten. Ansonsten einfach leicht hin und her bewegen.
    Dort geht nichts kaputt, da ist nix weiter. Der Spannungsregler kann auch weg.
    Die mögen eigendlich keine 'Rückwärtsspannung' . Ich habe aber einen an 3.3 V zu laufen mit eingebautem Regler.
    Das macht seit Monaten auch keine Probleme.
    Die Ecken vom C3 müssen abgerundet werden. Dann passt das problemlos in das Gehäuse.
    Der Spannungsregler vom LeseKopf nimmt den C3 locker.
    Man könnte jetzt den Anschluß dort unterbringen wo vorher die USB Buchse war.
    Platz wäre dort. Ausdremeln oder so. Dann sähe das so aus wie beim originalen ESP01 (s)
    Ich hab die Leitungen an eine doppelte 2.54er Leiste angelötet und die Enden gekürzt.
    Dann muss der C3 schräg eingelegt werden, weil die Höhe des Kopfes um knapp 2mm zu niedrig ist.
    Spart aber die Arbeit mit dem Dremel.
    Auf jeden Fall gibts nach dem Start 'Freudentränen' , die Charts blitzen praktisch auf.
    Der Unterschied ist wie Tag und Nacht.
    Speziell wer an den Scripten dreht oder öfter was ändert oder aufbläst, hat mit dem C3 seine Freude.
    Bemerkungen im Script sind kein Problem mehr. Noch 2800 Zeichen frei.
    Mein Script (original von Otello) (Danke nochmals) hat noch zusätzlichen Code, ist also etwas grösser.
    Der C3 wird dann später auch Backups ins Filesystem schreiben.
    Danke für die Ausführungen dazu nochmals an Gemu.

    Ps. Der C3 lässt sich natürlich extern programmieren (auch ohne USB) , genau wie der ESP01 dann.
    Allerdings dürfte das mit der Safeboot Partion nicht mehr notwendig sein.
    Als Image können beide benutzt werden (also auch das ohne USB Support (ohne CDC) .

    Gruss Stefan

  • #1064

    Hans (Donnerstag, 11 April 2024 07:48)

    @Ottelo
    Habe es nun verstanden und in mein Script eingebaut. Es funktioniert und ist eine äußerst kompakte Filterung. Nochmals Danke.

  • #1063

    ottelo (Mittwoch, 10 April 2024 22:50)

    Das findest du hier unter Downloads.

  • #1062

    Hans (Mittwoch, 10 April 2024 22:30)

    @Ottelo
    Die Filterung sieht ganz gut aus.
    Kannst du mir das Script hier direkt einstellen, bzw. den Link wo ich ihn finden kann?
    Sorry, ich bin leider in diesen Dingen noch nicht so fit.

  • #1061

    ottelo (Dienstag, 09 April 2024 12:05)

    @Hans
    Du kannst die Filterung einstellen. Aktuell steht sie bei 0,9. D.h. wenn ein neuer Wert vom Stromzähler kommt, dann wird 90% vom vorherigen Wert und 10% vom neuen Wert verwendet. 0.9 ist schon eine ausreichende Filter finde ich.

    Hier sieht man den Vergleich beider Leistungen:
    https://imgur.com/a/kSezN47

  • #1060

    hans (Dienstag, 09 April 2024 11:48)

    @ottelo
    Vielen Dank für die schnelle Antwort und Hilfe, Prima!!

  • #1059

    ottelo (Dienstag, 09 April 2024 11:01)

    @Hans
    Ich habe im Script dafür eine neue Variable erstellt (Version 28.03.2024):

    ; simply filtered power for opendtu-onbattery DPL: http://192.168.178.31/cm?user=admin&password=joke&cmnd=script?power2
    power2=(0.9*power2)+((1-0.9)*power)

  • #1058

    Hans (Montag, 08 April 2024 19:26)

    Ich nutze die Leistungswerte (sml[1]) meines ISKRA175 Zählers zum Regeln des PV-Überschusses für einen Warmwasser-Boiler. Gibt es eine Variable die den Minuten-Mittelwert ausgibt?

  • #1057

    Volker (Samstag, 06 April 2024 09:26)

    @ottelo
    Es hat funktioniert. Danke. :-)
    Für das die Werte im Energie Dashboard bei Home Assistant angezeigt werden, musste ich noch die Einträge in der configuration.yaml machen.
    Jetzt noch den Monat abwarten und schauen ob dann wieder alles von vorne beginnt.

    Gibt es hier eine Kaffeekasse?

  • #1056

    ottelo (Dienstag, 02 April 2024 21:02)

    Ich habe die Beschreibung und meine Scripte korrigiert!

  • #1055

    ottelo (Dienstag, 02 April 2024 20:59)

    Ihr müsst nur in eurem Script das %, was zuviel ist löschen. Dann sollte alles gehen!

  • #1054

    ottelo (Dienstag, 02 April 2024 20:57)

    @Volker und KlausP
    Ich hatte ein Fehler (ein % zuviel) im Script bei publish!

    Korrekt ist z.B.
    =>publish stat/%topic%/script/consday %2(dcon[day])%

    Dann im Config Template für den MQTT Explorer ebenfalls ein Fehler bei "stat_t". Da muss consday hin, falls ihr mein Script verwendet habt. Muss der gleiche Pfad sein wie bei =>publish in eurem Script!

    {
    "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"
    ]
    ]
    }
    }

  • #1053

    Volker (Dienstag, 02 April 2024)

    stat
    tasmota_XXXXXX
    script
    tagesverbrauch = tasmota_XXXXXX
    tageseinspeisung = tasmota_XXXXXX
    monatsverbrauch = tasmota_XXXXXX
    monatseinspeisung = tasmota_XXXXXX

    Es ist alles zu sehen.
    Danach links auf homeassistant --> sensor --> und das unten von mir geschriebene eingeben.

    "Tagesverbrauch = xxx kWh" sehe ich nicht.
    Im Script habe ich das stehen:


    =>publish stat/%topic%/script/tagesverbrauch %2(%dcon[day])%

    =>publish stat/%topic%/script/tageseinspeisung %2(%dprod[day])%

    =>publish stat/%topic%/script/monatsverbrauch %2(%mcon[month])%

    =>publish stat/%topic%/script/monatseinspeisung %2(%mcon[month+12])%

  • #1052

    ottelo (Dienstag, 02 April 2024 18:00)

    Habt ihr denn den korrekten Wert im MQTT Explorer (siehe Kapitel 10.3)?

    Muss ich mir sonst nochmal anschauen und bei mir testen.

  • #1051

    Volker (Dienstag, 02 April 2024 17:45)

    Diesen Eintrag habe ich im MQTT Explorer gemacht.

    Topic:

    homeassistant/sensor/Hausstrom/Tagesverbrauch/config

    json:

    {
    "name": "Tagesverbrauch",
    "uniq_id": "hausstrom_tagesverbrauch",
    "dev_cla": "energy",
    "stat_t": "stat/tasmota_XXXXXX/script/Tagesverbrauch",
    "unit_of_meas": "kWh",
    "sug_dsp_prc": "2",
    "dev": {
    "connections": [
    [
    "mac",
    "F4CFA2XXXXXX"
    ]
    ]
    }
    }

    Der neue Eintrag bei Sensoren wird gemacht. Leider steht kein Wert da sondern Unbekannt.


  • #1050

    Volker (Sonntag, 31 März 2024 12:41)

    Ich habe auch Probleme mit den Tageswerten.
    Für mir den Tagesverbrauch anzeigen zu lassen, habe ich dem MQTT Explorer gearbeitet, und der neue Sensor wird auch bei meinem Hichi in den Tasmota Geräten angezeigt.
    Leider steht als Wert nur Unbekannt.
    Hat jemand eine Lösung dafür?

  • #1049

    Klaus P. (Sonntag, 31 März 2024 10:10)

    Die Tages und Monatswerte bekomme ich bei mir nicht angezeigt.
    Der Wert steht als "nicht Verfügbar" da.

  • #1048

    ottelo (Donnerstag, 28 März 2024 16:52)

    @Klaus P.
    Ich habe dazu eine neue Anleitung geschrieben. Siehe Kapitel 10 !

  • #1047

    Klaus P. (Donnerstag, 28 März 2024 09:11)

    Klaus P. (Dienstag, 26 März 2024 11:04)

    Kann mir bitte jemand beim hinzufügen der Tageseinspeisung in die configuration.yaml helfen.
    Ich bekomme das nicht gebacken.

  • #1046

    Bernd (Mittwoch, 27 März 2024 09:08)

    ich versuchte ein Restore Configuration mit der gesicherten dmp datei, jedoch bekomme ich die Meldung :
    dein Backup Upload Failed Not enough space
    Tasmota 13.1.0 (06.10.2023) 4MB ESP 8266

    was kann ich den da machen
    danke im vorraus
    Gruß Bernd

  • #1045

    Seyit (Dienstag, 26 März 2024 21:58)

    In etwar so

    https://www.google.com/search?sca_esv=28795b6719ac1a08&sxsrf=ACQVn0_G-t3PjVAcb5CbDM7ZoE-Y8qpt9Q:1711486364098&q=esp32+smartmeter+3d+model&uds=AMwkrPtesdIO-WE-LTiss4GIfUfMda7c66sQZ4J76snjcLfVYMiq-ig5peRb-8x6RTdyWnL-r8VYP3_eBhhE7_72yNL4PCkkNob71bpB-3GwUMrUU6FQg-NLcwLHxNhUOHtB1QwnPosM70qmx_qtAsjpPiJgHPM0othzW6IPoB0F0haNu1MlKX-KqDKxCNv-EXlP-aR2fDSdlnN1Gq1-CLpb5u_Qekbqt2Bbh_Bu13NsaDHOh0oNi7abBiSua_rIxmz12CWm-Rwcno9I9yl_R-41gvDLKLPODQ&udm=2&prmd=ivnbz&sa=X&ved=2ahUKEwjOh5TG55KFAxWx9gIHHcmgB8AQtKgLegQIDRAB&biw=412&bih=743&dpr=2.63#vhid=UlAI8Ds6U40zFM&vssid=mosaic

  • #1044

    Seyit (Dienstag, 26 März 2024 21:57)

    Ich ich nutze das System jetzt schon 1 1/2 und es läuft stabil und zuverlässig besten dank dafür erstklassige Arbeit.
    Nun meine Frage kann man die ausgelesenen Werte auch gleichzeitig auf einem 3.5 Zoll display wieder geben?

  • #1043

    Klaus P. (Dienstag, 26 März 2024 11:04)

    Kann mir bitte jemand beim hinzufügen der Tageseinspeisung in die configuration.yaml helfen.
    Ich bekomme das nicht gebacken.

  • #1042

    ottelo (Montag, 25 März 2024 20:13)

    @T.B.
    Der Inhalt von "p" Variablen wird fest im Flash gespeichert (svars Befehl im Script 1x um Mitternacht). Wenn du nun z.b. die 2. p-Variable aus meinem Script entfernst, das Script vorher aber schonmal lief, dann rücken alle Variablen im Speicher um 1 Stelle zurück. Die ehemals 3. Variable bekommt nun den Wert der eben entfernten (usw). Ich hoffe ich liege da richtig ^^. Du kannst die p-Variablen aber über die Console mit 0 belegen. Anleitung dazu im Script oder in der FAQ.
    Oder du flasht die Firmware über das USB-Seriell Kabel neu und löscht vorher den Speicher. Das geht z.B. mit dem ESP Flash Tool vom Hersteller oder mit Tasmotizer (Haken bei Erase before Flashing). Dann sollten auch alle Tasmota Einstellungen gelöscht werden.

  • #1041

    Stefan (Montag, 25 März 2024 19:39)

    @Chris O
    >Ich würde mir den genaueren Hintergrund über dieses Vorhaben oben in dem entsprechenden Abschnitt (2) - >Unbenutzter TX-Pin (Sendediode) - wünschen.
    >- warum auf high
    >- warum überhaupt abschalten und nicht nur abklemmen

    Kommt auf den benutzten ESP an, und natürlich welcher GPIo.

    Wenn die 'Led' mit Low geschaltet wird musst du High setzen, oder halt andersrum.
    Damit die halt definiert 'Aus' ist.

    Wenn du den 'Steuerpin' für die Led offen lässt, kannst du nicht genau sagen was zwischendurch passiert.
    Könnte durch parasitäre Ströme der anderen Leitungen geschaltet/getriggert werden, zum Beispiel.
    Sicher ist immer einen definierten Pegel zu haben. Da kannst du auch mit einem Widerstand (z.b. 10 Kohm) nach Ground oder Vcc erreichen.

    Bei dem 'Hitchi' mit dem esp01 drin, gibts da eigendlich keine Probleme.
    Zumindest hier nicht.

    Gruss!

  • #1040

    T.B. (Montag, 25 März 2024 15:14)

    @Andreas M.

    Wenn man eine neue Firmware aufspielt sind dann die P-Variablen immer noch im Speicher oder werden sie gelöscht?
    Wenn Ja, wie kann man dann das ganze löschen und mit leeren Speicher und anderer Firmware neu anfangen?

  • #1039

    ottelo (Montag, 25 März 2024 13:50)

    @Klaus P.
    Im neusten Script werden die Daten nun auch gesendet. Der Wert taucht aber nicht in HA automatisch auf (Auto Discovery). Man muss ihn selbst hinzufügen. Musst mal im Internet suchen wie das geht. "Home Assistant Entity MQTT configuration.yaml" suchen.

    @Chris O
    Habe ich umgesetzt

    @All
    Funktioniert bei euch die Übermittlung der Tages und Monatsverbrauchswerte? Ich habe es ja aktuell so drin:

    =>publish stat/%topic%/RESULT {"Tagesverbrauch":%2(dcon[day])%}
    =>publish stat/%topic%/RESULT {"Tageseinspeisung":%2(dprod[day])%}
    =>publish stat/%topic%/RESULT {"Monatsverbrauch":%2(mcon[month])%}
    =>publish stat/%topic%/RESULT {"Monatseinspeisung":%2(mcon[month+12])%}

    Via MQTTExplorer sehe ich aber leider immer nur Monatseinspeisung.

  • #1038

    Klaus P. (Montag, 25 März 2024 13:14)

    Wie kann man die Tageseinspeisung in HA abgreifen?

  • #1037

    Chris O (Sonntag, 24 März 2024 23:17)

    #Verbesserungsvorschlag:
    Danke für die passenden Beiträge zum Thema "TX Leitung auf HIGH-Pegel (3,3V) setzen".
    Ich würde mir den genaueren Hintergrund über dieses Vorhaben oben in dem entsprechenden Abschnitt (2) - Unbenutzter TX-Pin (Sendediode) - wünschen.
    - warum auf high
    - warum überhaupt abschalten und nicht nur abklemmen

    LG Chris

  • #1036

    Andreas M. (Samstag, 23 März 2024 21:40)

    Hallo,

    @T.B. und alle anderen hier

    P- Variablen immer am Ende von >D im Script einfügen, wenn vorher dann werden bei Änderungen von p- Variablen alle Variablen mit Werten verschoben, bringt alles durcheinander.
    Ganz wichtiger Tipp von einem Tasmota Entwickler!

  • #1035

    T.B. (Samstag, 23 März 2024 08:33)

    Wieso ist alles verwurschtelt wenn man p: Variablen im "Script" umstellt, oder eine normale Variable löscht, da sie nicht mehr gebraucht wird?

  • #1034

    ottelo (Mittwoch, 20 März 2024 20:49)

    Vom Tasmota Entwickler:
    das ist ein bug im Ardunio Core. Der soll bald behoben werden. (aber wann genau ist nicht bekannt)

    bei allen ESP32 Varianten geht zur Zeit nur ein serieller Hardware Serial Zähler weniger als bisher.

    du kannst aber mit Software Serial arbeiten. (#define USE_ESP32_SW_SERIAL)

    die Pin Nummern dann mit negativem Vorzeichen angeben.

    https://forum.creationx.de/forum/index.php?thread/4242-2-lesek%C3%B6pfe-wollen-nicht-gleichzeitig/&pageNo=1

  • #1033

    Joachim (Mittwoch, 20 März 2024 20:46)

    Ich habe Tasmota 13.3 installiert und lese 2 Zähler (2 x DWS74) mit WT32-ETH01 aus. Leider lassen sich hier keine Bilder einfügen.

  • #1032

    KaJo (Mittwoch, 20 März 2024 15:54)

    Hallo ottelo,

    danke für den Hinweis.

    Habe gerade einen Downgrade auf die 13.1.0 probiert mit der "Firmware upgrade" Funktion. Steigt aus mit der Meldung "Upload Failed - Invalid file signature". Eine Idee? Oder muss ich komplett frisch flashen? Ist beim ESP32-ETH01 etwas sep. zu beachten?

  • #1031

    ottelo (Mittwoch, 20 März 2024 11:41)

    @KaJo
    Den Hinweis Text direkt neben dem Download gesehen?

    ! ab 13.2 funktioniert das Auslesen von 2 Zählern nicht mehr. Bugfix von Tasmota ist von den Devs geplant.

  • #1030

    KaJo (Mittwoch, 20 März 2024 10:59)

    Hallo zusammen,
    ich habe ein ES32-EHT01 erfolgreich mit der aktuellen Version 13.3.0 (tasmota32.factory) geflasht. Connect via WIFI und ETH funktioniert einwandfrei.
    Die vier genutzten Hitchi-Köpfe mit Tasmota auf einem Wemos D1 mini funktionieren (alte Installation). Die SML Werte der Zähler kommen perfekt an beim Wemos D1. Diese Hitchi TTL Köpfe habe ich jetzt an den ESP32 angeschlossen. Das Script habe ich mit den neuen GPIOs aktualisiert. Ich bekomme keine Werte. Das Log zeigt Null Werte.
    Gibt es irgendeine Idee was fehlen könnte? Gibt es Einschränkungen bei den GPIOs Ich habe die genutzt die Input können und (GPIO 2, 4, 35 und 12 liegen direkt nebeneinander). Die nicht genutzten TX habe ich wie schon im Kommentar beschreiben auf 3V3 gelegt.

  • #1029

    ottelo (Dienstag, 19 März 2024 23:21)

    @Hans
    Nein, beim ESP32 habe ich nichts deaktiviert.

  • #1028

    Hans (Dienstag, 19 März 2024 21:10)


    Hallo ottelo, ist der DS18B20 Sensor auch in der ESP32-Software deaktiviert?