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. Am besten den Ready2Use WiFi Lesekopf inkl. ESP8266 mit 1M Flash von Hichi nehmen 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 Lesekopf Zähler[eBay Werbung] suchen. (Alte Quelle photovoltaik Forum) - Schaltplan + Wiki. Schaut euch bitte auch die Auswahlmöglichkeiten weiter unten an A) bis C).

 

  • 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 den Ready2Use Hichi Lesekopf verwenden wollt, dann könnt ihr nun zu Punkt 4) springen --

  • 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) Ready2Use WiFi Lesekopf von Hichi[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. 30€. Auf dem ESP ist bereits Tasmota "vorinstalliert". Deshalb könnt ihr direkt mein fertiges Image via WLAN übertragen ohne TTL Adapter.

Im Script müsst ihr dann Port 3 anstatt 14 (nach meiner Bauanleitung) verwenden: +1,3,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)

 

 

(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):

inkl. Berry-Skript, Ethernet (LAN) 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).

  • Tasmota Script Google Chart SML (29.02.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 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 müsst 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. Danach könnt ihr auch den ESP_Flasher usw. verwenden (dann aber nicht das Factory Image verwenden). Das Factory Image findet ihr immer bei den ESP32 Downloads im gleichen Ordner. Es folgt nun eine bebilderte Anleitung:
     →  → 
    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, 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. 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. 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Übersichtsbild
(10- Platzhalter
(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 "ESPHome Flasher" 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.