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):
Inhaltsverzeichnis:
(1) Was benötigt ihr (Komponentenauswahl)
(2) ESP8266 mit IR-Lesekopf verbinden (Schaltplan)
(3) Stromzähler direkt über den Raspberry Pi auslesen (EDL21)
(4) Stromzähler vorbereiten, ESP flashen, Tasmota und HA einrichten
(4a) Stromzähler vorbereiten und ESP8266 flashen
*** Download Tasmota Images ***
*** Download Chart Script ***
*** Download weitere Custom Chart Scripte/Images ***
(4b) Tasmota Einstellungen für euer Smart Home System (z.B. Home Assistant)
(4c) Tasmota SML Script Beispiele (ohne Google Charts usw)
(4d) SML Scripterklärung (Descriptor)
(4e) Wichtig! TESTEN OB DATEN ANKOMMEN
(4f) Tasmota Google Chart Script (Liniendiagramm/Graph)
(4g) Tasmota Einstellungen - Sende- und Abrufintervall, Zeitzone und Home Assistant
(4h) Home Assistant Einstellungen für Tasmota
(5) Home Assistant Energy Panel
(6) Tasmota Firmware selbst erstellen (GitPod)
(7) Tasmota Firmware Flashen/Updaten
(8) Quellen
(9) Bei PV-Stromüberschuss Verbraucher einschalten (via WLAN Tasmota Steckdose)
(10) Tasmota Script Variable (z.B. Tageseinspeisung) an Home Assistant senden
(11) Nützliche Sachen für Home Assistant
(12) Tasmota via LAN/Ethernet (ESP32)
-- Wenn ihr einen All-in-One Lesekopf (z.B. den von Hichi oder bitshake) verwenden wollt, dann scrollt weiter zu A) bzw. B) --
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) WiFi / WLAN - Lesekopf mit integriertem ESP
Welchen ESP soll ich nehmen?
1) Wenn man relativ günstig an ein ESP8266 Lesekopf kommt und in Zukunft nicht mehr an Tasmota rumfummeln will und einem das alles so aktuell reicht, dann würde ich den ESP8266 nehmen.
2) Wenn man sehr gerne mit der Technik rumspielt, ab und zu mal ein Update einspielen will, obwohl alles sauber läuft und zuhause auch noch ein Smart Home System hat (z.B. Home Assistant), dann würde ich unbedingt zum ESP32 Lesekopf raten.
Ich habe mal die Leistungsaufnahme gemessen:
Hichi Lesekopf v1 mit ESP8266 (ESP01s) = 0,05W (Idle), 0,25-0,35W (Stromzähler sendet Daten)
Hichi Lesekopf v2 mit ESP32 C3 mini = 0,4W (Idle), 0,4W (Stromzähler sendet Daten)
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 und kostet weniger als 40€. Auf dem ESP ist bereits Tasmota "vorinstalliert". Deshalb könnt ihr direkt mein fertiges Image via WLAN übertragen ohne TTL Adapter.
Rx = GPIO3, Tx = GPIO1. SML Deskriptor Beispiel: +1,3,s,0,9600,MT681,1
oder
Wifi v2 Lesekopf EHZ Volkszähler Hichi Smartmeter (ESP32-C3-Mini-1) [eBay Werbung]
Der kleine 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 v2 (oder den von bitshake) greifen. Er hat einen starken ESP32 der wirklich alles bietet. Er ist nur etwas teurer als der kleine Hichi. Auf dem ESP ist bereits Tasmota mit SML "vorinstalliert". Wenn ihr aber mein Google Chart Script verwenden wollt, dann müsst ihr mein angepasstes ESP32 Image (ESP32-C3) via WLAN übertragen. Mit dem Hichi Lesekopf könnt ihr sogar noch weitere IR-Leseköpfe anschließen, wenn ihr mehrere Stromzähler auslesen möchtet. Mehr dazu findet ihr auf der Seite.
Rx = GPIO3, Tx = GPIO1. SML Deskriptor Beispiel +1,3,s,0,9600,MT681,1
oder
All-in-One WiFi Lesekopf von bitshake (ESP32-C3-Mini-1) [eBay Werbung]
Der Lesekopf von bitshake ist eine gute Alternative und bietet den gleichen Umfang wie der hichi. Auf dem ESP ist ebenfalls bereits Tasmota mit SML "vorinstalliert". Vorteil: Mit der Firmware könnt ihr auch direkt mein Google Chart Script verwenden ohne irgendwas zu flashen. Nachdem Kauf bekommt ihr einen Link zu einer sehr ausführlichen Beschreibungsseite.
Rx = GPIO5, Tx = GPIO4. SML Deskriptor Beispiel +1,5,s,0,9600,MT681,4
oder
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.
B) Ethernet / LAN - Lesekopf (TTL, am Zähler) und separates ESP32 Modul mit LAN
Achtung! Bei Verwendung eines LAN-ESPs ist die Performance der Tasmota GUI sehr langsam, wenn man nur über LAN verbunden ist (wifi 0). Hier gibt es aber ein Workaround:
Befehl "EthClockMode 0" in die Console eingeben. Quelle https://github.com/arendst/Tasmota/discussions/19803
Optionen:
oder
oder mit PoE (Power over Ethernet) ~18€
ESP Hutschienengehäuse
(2) ESP8266 mit IR-Lesekopf verbinden (altes Beispiel)
Unbenutzer TX-Pin (Sendediode)
Wichtig: Wird die Sendediode (TX) vom IR-Lesekopf nicht benötigt, dann müsst ihr den GPIO Pin in eurer Meter Definition im Script am Ende trotzdem angeben, ansonsten kann die Diode ungewollt flackern und euer Smart Meter verwirren. Das könnte z.B. so aussehen +1,3,s,0,9600,MT681,1
Eine andere Methode: Es ratsam diese fest auf 3,3V zu legen (mit 3,3V verbinden). Bei fertigen Leseköpfen inkl. ESP ist das natürlich schwierig. Den TX-Pin kann man da dann einfach in Tasmota (via Software) auf High-Pegel 3,3V legen. Configuration -> 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.
-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 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.
----------------------------------------------
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:
Jetzt braucht ihr noch das richtige Programm. Hier gibt es wieder zwei Wege:
Hinweis: Der ESP-Flasher.exe wird fälschlicherweise als Virus erkannt! Das könnt ihr ignorieren. Siehe auch: github issue
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!):
Main Menu -> Console:
(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!
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
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
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
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
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
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,1
;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 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
2,77070100100700ff@1,Leistung,W,Power2_curr,1
2,77070100010800ff@1000,Verbrauch,KWh,Total2_in,1
+3,5,s,16,9600,MT175_3
3,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 oder EMH ED300L):
;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 1 definieren für IR-Diode (muss man je nach Lesekopf anpassen. z.B. Hichi = 1, bitshake = 4)
; spinm(x m) set GPIO x (0..16) to mode m (input=0, output=1) >BS spinm(1 1) ; SML Zähler Code Beispiel >M 1 +1,3,s,16,9600,eHZ
1,77070100100700ff@1,Power,W,power,0 1,77070100010800ff@1000,Consumption,kWh,consumption,2 1,77070100020800ff@1000,Production,kWh,production,2 ; alle 10 Sekunden für 2 Sek IR-Diode einschalten und damit die PIN-Aktivierung resetten
; spin(x b) set GPIO x (0..16) to value b (0,1) >S if secs%10==8
{ ; print IR-Diode On spin(1 1)} } if secs%10==0
{ ; print IR-Diode Off spin(1 0)} }
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):
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,1
1 = 1. Zähler (Smartmeter) Meter Definition
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, ESP32. Hier 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.
1 = GPIO 1 - Sendediode, wenn ihr eine habt. Wenn nicht kann ,1 entfallen. Auch bei Nichtbenutzung solltet ihr den GPIO angeben (siehe Kapitel 2).
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
+<M>,<rxGPIO>,<type>,<flag>,<parameter>,<jsonPrefix>{,<txGPIO>,<txPeriod>,<cmdTelegram>}
<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:
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. Ich habe durch Zufall rausgefunden, dass man nun das Script doch über den internen Script Editor
nachträglich bearbeiten kann! Wurde wohl irgendwann mit Tasmota 13.4.0 geändert. Mit 13.3.0 gehts jedenfalls noch nicht.
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).
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):
2. Sende/Abruf Intervall einstellen (Configuration -> Configure Logging)
4. Main Menu -> Console:
(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)
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):
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
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/
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?
Wenn ihr mein Google Chart Script für den ESP mit IR-Auslesekopf verwendet, dann ist die Funktion bereits inkludiert, muss aber noch von euch angepasst werden! Wenn ihr den kleinen ESP8266 (ESP01s) verwendet, müsst ihr dazu leider das Script auf dem PC bearbeiten und wieder neu auf den ESP übertragen (siehe Anleitung Kapitel 4f).
Ob ihr nun mein Script bereits verwendet oder nicht, die Funktion sollte dann so bei euch aussehen bzw. müsst ihr so einfügen:
Tasmota Script (ESP im IR-Lesekopf am Stromzähler) - Beispiel - Ich arbeite noch dran
>D 40
; -- VARS --
swesp=0
swespflg=0
power=0
power2=0
; optional!!
p:btn=0 btnstate=2
;-- SML -- >M 1
;Euer SML DESCRIPTOR .....
; -- EVERY 100MS -- optional!! >F if (btnstate!=btn) { =>websend [192.168.0.50] power %btn%
print power %btn% btnstate=btn }
; -- EVERY SECOND -- >S
; every 3s if (secs%3==0) {
; copy SML value
power=sml[1]
; simply filtered power power2=(0.9*power2)+((1-0.9)*power)
; switch second ESP if power flows to grid, see >W section if (swesp==1)
{ if ((power2<-300) and (swespflg==0))
{
=>websend [192.168.0.50] power ON print power ON %power2%W
swespflg=1
btn=1 ;optional
}
if ((power>100) and (swespflg==1)) { =>websend [192.168.0.50] power OFF print power OFF %power2%W swespflg=0
btn=0 ;optional
}
}
}
; WEB INTERFACE >W ; web button ; switch second ESP if power flows to grid, see >S section
bu(swesp "PV Steckdose aktivieren" "PV Steckdose deaktivieren")
; optional
bu(btn "Steckdose manuell ausschalten" "Steckdose manuell einschalten")
Funktion testen:
Die ext. Steckdose kann man über die Tasmota Console (ESP im Lesekopf) über folgenden Befehl schalten:
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:
{
"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"
]
]
}
}
Hier findet ihr nochmal alles etwas detaillierter und in Englisch.
(11a) Zweirichtung 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:
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.
(11b) Leistungssensor 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.
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
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!
Achtung! Bei Verwendung eines LAN-ESPs ist die Performance der Tasmota GUI sehr langsam, wenn man nur über LAN verbunden ist (wifi 0). Hier gibt es aber ein Workaround:
Befehl "EthClockMode 0" in die Console eingeben. Quelle https://github.com/arendst/Tasmota/discussions/19803
(13) FAQ und Problemlösungen
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
Marcus (Donnerstag, 25 Juli 2024 14:01)
@alligator_asl: Danke für den Hinweis mit der ESP32 Temperatur.
@ ESP32-C3 Super Mini Nutzer:
Wird der bei Euch auch so heiß?
71 Grad bei beiden die ich habe wenn ich mit 5V drauf gehe. 63 Grad bei Nutzung mit 3,3V.
Mein WT32-ETH01 (z.Zt. mit WLAN und 5V) hat "nur" 51 Grad.
Gruß
alligator_asl (Sonntag, 21 Juli 2024 17:09)
Hallo, hier noch 2 Anmerkungen für bastelfreudige User:
Wenn man beim ESP32 in der Console den Befehl
SetOption146 1
eingibt, erhält man in der Tasmota-Oberfläche eine Anzeige der ESP32-Temperatur.
MT631 Akt. Verbr. 199 W
MT631 Verbr. ges. 641.0517 KWh
MT631 Einsp. ges. 2618.4010 KWh
ESP32 Temperature 56.7 °C
Tagesverbrauch: 1.15 kWh
Monatsverbrauch: 26.42 kWh
Jahresverbrauch: 518.78 kWh
Tageseinspeisung: 8.59 kWh
Monatseinspeisung: 326.72 kWh
Jahreseinspeisung: 2494.50 kWh
Datum: 21.07.2024 - 16:42:23
Uptime: 00d 00h 10m
Wer eine schnellere Anzeige der altuellen Power-Werte wünscht (auch über MQTT) ändert einfach den
Eintrag im SML-Script von
1,77070100100700ff@1,Akt. Verbr.,W,Power_act,0
in
1,77070100100700ff@1,Akt. Verbr.,W,Power_act,16
(Quelle: https://github.com/helgeerbe/OpenDTU-OnBattery/wiki/Power-Meter)
ottelo (Donnerstag, 18 Juli 2024 11:25)
@Omage13
Dem kann ich auch "fast" zustimmen. Es kommt aber halt immer noch drauf an.
1) Wenn man relativ günstig an ein ESP8266 Lesekopf kommt und in Zukunft nicht mehr an Tasmota rumfummeln will und einem das alles so aktuell reicht, dann würde ich den ESP8266 nehmen.
2) Wenn man sehr gerne mit der Technik rumspielt, ab und zu mal ein Update einspielen will, obwohl alles sauber läuft und zuhause auch noch ein Smart Home System hat (z.B. Home Assistant), dann würde ich unbedingt zum ESP32 Lesekopf raten.
Ich habe mal die Leistungsaufnahme gemessen:
Hichi Lesekopf v1 mit ESP8266 (ESP01s) = 0,05W (Idle), 0,25-0,35W (Stromzähler sendet Daten)
Hichi Lesekopf v2 mit ESP32 C3 mini = 0,4W (Idle), 0,4W (Stromzähler sendet Daten)
Omega13 (Donnerstag, 18 Juli 2024 10:43)
Hallo @ottelo,
wollte noch mal über meine Erfahrung mit der Version 14.1.0 (selbstgebaut in deutsch) berichten. Ich habe meinen ESP8266 gegen einen ESP32 Wemos D1 mini getauscht und betreibe diesen jetzt mit einem Raspi-Netzteil. Mein älterer ESP32 (umgeflashter Powerfox)
läuft mittlerweile seit 26 Tage ohne Probleme. Der ESP32 Wemos D1 mini jetzt auch schon 15 Tage ohne Probleme.
Mein Fazit: Ein ESP32 sollte mittlerweile die erste Wahl sein. Auch ein ordentliches Netzteil, stabilisiert und ohne, oder nur geringe, Restwelligkeit ist auch empfehlenswert. Handyladegeräte sind nicht zu empfehlen.
ottelo (Montag, 15 Juli 2024 23:09)
@Jens
Ich würde auch den C3 dem ESP8266 vorziehen. Aber in einer Sache muss ich dir widersprechen. Man muss nicht das Minimal Image verwenden. Wenn man zuvor mein Image drauf hatte kann man problemlos das neuere Image von mir verwenden.
Jens (Montag, 15 Juli 2024)
Wer die Wahl hat sollte eine ESP32-C3 Mini dem ESP8266/8285 vor ziehen. Der C3 ist mittlerweile billiger als der ESP8266 zu bekommen. Es ist auch deutlich einfacher den C3 upzudaten. Beim ESP8266 geht das nur in dem man zuerst die Minimal FW per Datei aufspielt und dann die SML FW. Beim C3 ist das kein Problem
ronny275 (Samstag, 13 Juli 2024 15:31)
Hallo ottelo.
Vielen Dank für den Update der FW Dateien. Mit dem aktuellen Stand hat sich mein WT32-ETH01 Modul über das "flash_download_tool_3.9.7" mit der Datei tasmota32.factory.bin nun auch laden und korrekt starten lassen. Die vorherige Version lief nach dem Download auf meinem ESP-Modul erst gar nicht an (kein default access point). Damit konnte ich nun die HW fertigstellen. Jetzt fehlt nur noch die PIN Freischaltung am Zähler und etwas SML/OBIS Bastelei.
Nochmals vielen Dank.
ronny275 (Donnerstag, 11 Juli 2024 22:12)
Hallo zusammen.
Hier ein paar Erkenntnisse vom Test mit einem WT32-ETH01 Modul.
Ausgangspunkt: Firmware "tasmota32-scripting.bin", ESP-Modul mit aktivem Wifi und inaktivem LAN, Hichi Lesekopf (TTL).
- RxD liegt bei mir auf GPIO5 -> im Script anzugeben -> LED auf Modul zeigt Datenempfang an (wenn Lesekopf am Smart-Meter gut justiert ist)
- mit sensor53 d1 command in der Console wird der Dump angezeigt -> Hex-Daten kommen rein -> Script zeigt auch die Werte an
- Wenn wired LAN aktiviert wird, dann kommen keine Daten mehr rein. Teilweise hängt sich das Modul sogar auf und muss neu mit Firmware geladen werden.
Wifi und LAN scheinen sich zu beeinflussen -> evtl. passt da die GPIO Zuordnung nicht mehr zum Script -> Lösung bzw. Änderung der Einstellungen noch offen!
- bei den ersten Versuchen wurde der Hichi Lesekopf mit 3,3V betrieben. Dabei ist aufgefallen, dass die Werte die in Tasmota vom Script angezeigt wurden
zum Teil sehr stark schwankten und auch ab und zu unsinnige Größenordnungen annahmen. Das Verhalten hat mich auf einen unsauberen Signalpegel am Eingang der
seriellen Schnittstelle schließen lassen (falsche Werte werden eingelesen). Beheben konnte ich das Problem durch den Betrieb des Lesekopfes an 5V (stabilerer Pegel) und Einbau eines Pegelwandlers 5V -> 3,3V
vor den RxD Eingang des ESP-Moduls. Diese Pegelwandler gibt es ganz billig bei Amazon als kleines Platinchen mit z.B. 4 Kanälen.
Vielleicht können diese Erkenntnisse in manchen Fällen etwas weiter helfen.
ottelo (Donnerstag, 11 Juli 2024 16:52)
@Oer2001
Erstellt und hochgeladen.
Oer2001 (Donnerstag, 11 Juli 2024 16:29)
Hallo,
könntest du bitte für die letzte Version wieder eine S2 Variante zum Download anbieten.
Vielen Dank
Juro (Sonntag, 07 Juli 2024 17:45)
@Johann.
Das ist ist doch relativ logisch und hat nichts mit dem Lesekopf zu tun. Auf alle lokalen Geräte kannst du eben nur lokal sprich zuhause zugreifen. Wenn du eine Fritzbox hast, kannst du ein VPN einrichten. Über das Handy baust du dann unterwegs eine VPN Verbindung auf und bist mit deinem Handy dann wieder Teil deine lokalen Netzes. Damit kannst du auch auf den Tasmota IR Lesekopf zugreifen.
LG
Juro
JuRo (Sonntag, 07 Juli 2024 17:39)
PS ist nutze (nur) HA core, kann also keine Addo ons installieren ....
Juro (Sonntag, 07 Juli 2024 17:35)
Danke otello!
Ich denke mein Zähler von EMH ehz sendet den Tagesverbrauch gar nicht. Wenn ich die Bedienungsanleitung richtig verstanden habe, kann er es auch gar nicht. Gesamtverbrauch, Einspeisung (ist leider immer 0, sprich get gar nicht) und aktueller Verbrauch werden vom Zähler übermittelt. .
Mein Gefühl ist, dass nach jedem Neustart von HA und oder dem bitshake Zähler beim Tagesverbrauch in HA immer der Gesamtzählerstand angezeigt wird, was natürlich doof ist. Morgen ist der Wert dann wieder ok. Das bleibt dann auch im Energie dashboard so und verfälscht die Historie komplett
Ich müsste einen Helfer haben, der im Zweifel den Stand des Gesamtverbrauchs am Vortag vom derzeitigen Gesamtverbrauch (aktueller Zählerstand abzieht), damit hätte ich auch den aktuellen Tagesverbrauch. Wie und wo das HA wegschreibt und ob das überhaupt so geht, ist mir leider nicht bekannt.
LG Juro
Johann (Sonntag, 07 Juli 2024 17:32)
Hallo, wir haben über den IR Lesekopf mit Tasmota Software. Alles wird wunderbar angezeigt halt nur im WLan Bereich Zuhause. Wenn man unterwegs ist kann darauf nicht zugegriffen werden. Gibt es eine möglichkeit sich das trotzdem anzuschauen direkt auf dem Handy ohne Raspberry oder ähnliches?
ottelo (Montag, 01 Juli 2024 14:28)
@JuRo
Falls du das nun wie im Kapitel 10 beschrieben umsetzen willst, wieso nimmst du denn nicht die automatisch erzeugten Tages, Monats, Wochen und Jahresanzeige im Home Assistant Energy Panel? Genau dafür ist es ja da.
ottelo (Montag, 01 Juli 2024 14:26)
@JuRo
Übermittelt dein Zähler überhaupt den Tagesverbrauch an Tasmota (und Tasmota dann via MQTT an dein HA)? Wie sieht dein SML Descriptor im Tasmota Script aus?
Oder willst du vom Script addierten "Tages-, Wochen-, Monats- und Jahresverbrauchswerte" an Home Assistant senden? Das sind Werte, die das Script errechnet und nicht direkt von deinem Zähler kommen! Die werden NICHT automatisch an HA gesendet (Tasmota sendet nur die Werte, die dein Zähler sendet automatisch via MQTT raus). Da musst du dir dann was basteln. Siehe als Beispiel Kapitel 10.
JuRo (Sonntag, 30 Juni 2024 21:47)
Hi zusammen,
zu 1119 und dem Abschnitt 4h
Ich hatte es hinbekommen, indem ich alles direkt in die configuration.yaml gepackt hatte. Das ganze lief jetzt seit 1 Woche recht gut. Jetzt zeigt der daily sensor jedoch einen Wert an, der eher dem Gesamtverbrauch des Zählers und nicht dem kumulierten Tagesverbrauch. Was kann ich hier tun?
Danke! und Gruß
JuRo
Daniel (Sonntag, 30 Juni 2024 14:06)
Hallo zusammen,
ich nutze einen ESP32 C3 Super mini zusammen mit diesem Lesekopf:
https://www.ebay.de/itm/285350331996
Ich habe folgenden Stromzähler: "eBZ DD3 BZ06 ODZ1"
Tasmota ist geflasht RX GPIO20 ist die Photodiode und TX GPIO21 IR LED.
INF steht auf ON und PIN auf OFF.
Ich kriege keine Daten. Was kann ich noch machen?
Marcus (Freitag, 28 Juni 2024 11:41)
Hallo Tobias.
Ergänzend zu Joachim:
Lt. der Anleitung
https://www.rng.de/bedienungsanleitung-iskra-mt631.pdfx
sendet dein Zähler unidirektional auf der rechten Diode der Info Schnittstelle die Daten regelmäßig.
Hast du eventuell das von Ottelo unter (2) beschriebene Problem?
Generell muss bei deinem Zähler INFO auf on und PIN auf off gestellt werden. Sonst bekommst du den erweiterten Datensatz nur für 120 sek.
Viel Erfolg
Gruß
Joachim (Freitag, 28 Juni 2024 10:37)
Ich nutze auch einen WT32-ETH01. Ich nutze die Standard Tasmota FW 13.3.0 von dieser Seite und es läuft mit 2 Leseköpfen. Wenn du das Googlescript auch von dieser Seite nutzt, mus es um etliche Kommentare erleichtert werden, damit es in den Speicher passt. Du musst die definierten Pins mit den richtigen Kontakten vom Lesekopf verbinden. Bei diesem Service von ottelo (ein herzliches Danke dafür) würde ich aufs Selberbauen der Software verzichten. Denn diese läuft. Ich empfehle, diese Version von hier einmal auzuprobieren.
Tobias (Donnerstag, 27 Juni 2024 12:20)
Hallo,
ich hab einen WT32-Eth01 mit selbst erstellter Tasmota Firmware und SML. Ich krieg ums verrecken keine Daten angezeigt. Schon zig unterschiedliche GPIO Ports versucht, Script zig mal überprüft. PIN am MT631 mehrfach eingegeben. Info Anzeige ist kurz an und verschwindet dann wieder. Info auf ON umgestellt ändert auch nix, PIN off hab ich noch nicht geschafft. Mit der Handy Kamera hab ich die IR Schnittstelle am Zähler geprüft um die Ausrichtung vom Lesekopf besser zu finden. Blinkt gleichmäßig, keine Ahnung ob das so sein sollte. Hat jemand noch einen Tipp für mich?
>D
>B
=>sensor53 r
>M 1
+1,14,s,0,9600,MT631
1,77070100010800ff@1000,Total Consumed,KWh,Total,3
1,77070100100700ff@1,Current Consumption,W,Power_cur,0
1,77070100240700ff@1,Current Consumption P1,W,Power_p1,0
1,77070100380700ff@1,Current Consumption P2,W,Power_p2,0
1,770701004c0700ff@1,Current Consumption P3,W,Power_p3,0
1,77070100020800ff@1000,Total Delivered,KWh,Total_out,3
1,77070100000009ff@#,Service ID,,Meter_id,0
#
ottelo (Mittwoch, 19 Juni 2024 20:50)
@Oli
Das ist eig immer, wenn man die PIN nicht eingegeben hat. Sonst haben deine Stadtwerke das nicht aktivieren lassen im Zähler.
Oli (Mittwoch, 19 Juni 2024 18:39)
Super tolle Anleitung! Und es hat auch alles funktioniert - bis heute...
Die Stadt hat den Zähler ausgetauscht und jetzt kommen nicht mehr alle Werte. Den aktuellen Verbrauch scheint der Zähler (ED300L) nicht mehr zu liefern. Kann sowas sein? Ich habe die Hex-Werte schon auf dieser Homepage eingegeben https://tasmota-sml-parser.dicp.net/decode und als Ergebnis das hier als Vorschlag erhalten. Darin ist auch kein aktueller Verbrauch mehr drin.
M 1
+1,3,s,0,9600,
1,77070100000009FF@1,Geräteeinzelidentifikation,Unbekannte Einheit,geräteeinzelidentifikation,0
1,77070100010800FF@1,Zählerstand Total,Wh,zählerstand_total,-3
1,77070100010801FF@1,Zählerstand Tarif 1,Wh,zählerstand_tarif_1,-3
1,77070100010802FF@1,Zählerstand Tarif 2,Wh,zählerstand_tarif_2,-3
1,77070100020800FF@1,Wirkenergie Total,Wh,wirkenergie_total,-3
Gibt es dazu irgendeine Idee?
JuRo (Sonntag, 16 Juni 2024 19:28)
Das Ganze ist schon verzwickt.
Das habe ich in eine customize.yaml Datei eingetragen und das funktioniert:
# Einheiten und Klassen
sensor.bitshake_smartmeterreader_ehz_power:
device_class: power
unit_of_measurement: 'W'
sensor.bitshake_smartmeterreader_ehz_e_in:
device_class: energy
unit_of_measurement: 'kWh'
state_class: total_increasing
sensor.bitshake_smartmeterreader_ehz_e_out:
device_class: energy
unit_of_measurement: 'kWh'
state_class: total_increasing
Ich möchte auch die Tages-, Wochen-, Monats- und Jahresverbrauchsanzeige haben. Ich krige es aber nicht hin.
Wie genau müssen nun die Einträge für Tages-, Wochen-, Monats- und Jahresverbrauchsanzeige aussehen? Wo muss ich die wie eintragen? Es kommt leider wieder ne Fehlermeldung: "Invalid config for 'homeassistant' at customize.yaml, line 16: 'utility_meter' is an invalid option for 'homeassistant', check: customize->utility_meter"
Vielen Dank und viele Grüße
JuRo
JuRo (Sonntag, 16 Juni 2024 18:08)
Danke Omega13!
homeassistant hatte ich nicht drin! ;-) geht jetzt. Jetzt wird auch alles im Energiedashboard angezeigt.
ggroove (Samstag, 15 Juni 2024 10:39)
@ottelo
sml(m 3 hstr) ->hstr ist eine Hexstring variable
serialsend5 funktioniert nur wenn ich GPIO1=SerialTx und GPIO3=SerialRx configuriere, das mag aber der SML-Decoder nicht ...
Bei Configuration mit NONE startet der Decoder fehlerfrei mit "SNS: Hardware Serial"
ottelo (Samstag, 15 Juni 2024 09:56)
@groove
Das sind sehr spezielle Fragen und besser im creationix Forum aufgehoben.
Alles beachtet? Auszug aus der Wiki:
sml(m 3 hstr) = inserts SML Hexstring variable hstr as binary to Meter m in Output stream e.g. for special MODBUS cmds, hstr must be a string variable NO string constant
hstr darf keine Konstante (zb „test123“) sondern muss eine String Variable sein!
Du kannst aber auch den Befehl im Script ausführen:
=>SerialSend5 %xxxx%
ggroove (Samstag, 15 Juni 2024 08:18)
Hallo,
erstmal vielen Dank für hilfreiche Zusammenstellung! Ein paar Fragen habe ich dennoch.
Ich kommuniziere mit einem Modbus-Gerät, wenn ich die Kommandos über die Console mittels "serialsend5" sende, bekomme ich die gewünschte Antwort zurück.
Somit funktioniert die Verschaltung, CRC16-Checksum habe ich individuell berechnet, das ist auch notwendig, sonst reagiert das Gerät nicht.
Wenn ich per Script und sml(1 3 xxxx) die Sequenz sende (mit und ohne CRC), passiert nichts. Wie kann ich überprüfen, ob die Sequenz überhaupt an UART raus geht?
"sensor53 d1" liefert einigermaßen plausible Daten.
Werden beim Decoder die Check-Summen automatisch berrechnet und angehängt?
>M 1
+1,3,m,0,9600,DC,1,2,010300000002, ...
Vorab, vielen Dank!
Omega13 (Freitag, 14 Juni 2024 19:09)
Hi JuRo,
der Eintrag in der configuration.yaml, muss so aussehen.:
homeassistant:
customize: !include customize.yaml
Das wäre der Eintrag bei einer angelegten customize.yaml.
Ich vermute du hast das "homassistant:" vergessen, oder die Einrückung nicht berücksichtigt.
In der "customize.yaml" sollte es dann ungefähr so aussehen.:
## Stromzähler Haushalt Kaifa MB310##
sensor.tasmota_mb310_power_curr:
unit_of_measurement: "W"
device_class: "power"
state_class: "measurement"
sensor.tasmota_mb310_total_in:
unit_of_measurement: "kWh"
device_class: "energy"
state_class: "total_increasing"
sensor.tasmota_mb310_total_out:
unit_of_measurement: "kWh"
device_class: "energy"
state_class: "total_increasing"
JuRo (Freitag, 14 Juni 2024 13:07)
Hi zusammen,
ich habe mir den bitshake wlan Lesekopf bestellt, den ich gestern in Betrieb genommen habe. Ich scheitere leider aktuell an Punkt 4h 6 dieser super Anleitung. Ich bekomme diese Fehlermeldung:
Konfigurationswarnungen
Integration error: customize - Integration 'customize' not found.
Was kann ich tun?
Sowohl direkt in der configuration.yaml als auch in einer ausgelagerten customize.yaml bekomme ich die Meldung. Ich bin noch sehr neu unterwegs im Home assistant....
Danke und Gruß
JuRo
Eckehard (Donnerstag, 13 Juni 2024 12:39)
Hallo Zusammen,
ich nutze als Board ein WT32-ETH01 V1.4 das ausschließlich per LAN angebunden ist.
Gestört hat mich die lausige Performance der Tasmota GUI, wenn man nur über LAN verbunden ist (wifi 0)
Hierzu hat mir folgender Tipp sehr geholfen:
https://github.com/arendst/Tasmota/discussions/19803
Nach Absetzen des Befehls "EthClockMode 0" ist die GUI gewohnt schnell!
Grüße an Alle
Eckehard
ottelo (Freitag, 07 Juni 2024 16:18)
@Anna
1. Frage: Schaue nochmal ins Kapitel 10 und gehe da alle Schritte durch. Bei mir sieht es so aus (Code weiter unten). Ich habe aber keine Tageswerte sondern nur die gefilterte LEistung.
2. Frage: Du musst im Energy Panel einfach nur dein Stromzählerwert-Entity (Einheit kWh) angeben. Also z.B. Total_in (wenn du die Variable so im Script genannt hast). Die Werte, die direkt vom Zähler kommen und im Script in der >M Sektion stehen, werden automatisch in HA hinzugefügt (aber ohne Einheit). Diese muss man noch über customize anpassen, damit die Einheiten stimmen. Siehe Kapitel 4h.
{
"name": "Stromzähler Leistung (gefiltert)",
"uniq_id": "mt175_mt175_power2",
"dev_cla": "power",
"stat_t": "stat/tasmota_1AFAD3/RESULT",
"unit_of_meas": "W",
"val_tpl": "{{value_json.script.power2}}",
"sug_dsp_prc": "0",
"dev": {
"connections": [
[
"mac",
"xxxxxxMACxxxxx"
]
]
}
}
@Omega13
Ich habe mir nun ein SML-Simulator zusammengestellt (Kann man mit dem ext. Script Editor Tool machen). Ich könnte jetzt mal die neuste Tasmota Version langzeit testen.
Anna (Dienstag, 04 Juni 2024 13:43)
@ottelo
Danke! In der Anleitung habe ich nur nichts dazu gefunden, dass man das Script sichern muss bzw. es nicht mehr ändern kann. Aber das scheint ja nun egal zu sein :)
Danke auch für den Hinweis bzgl. der publish Zeilen. Ich habe das Script nun geändert und bekomme im MQTT Explorer auch alle vier Werte angezeigt. Wenn ich dann ein neues Topic erstelle, wird mir das ebenfalls in der Tasmota-Integration angezeigt. Nur steht als Wert leider "Unbekannt" drin.
Angepasst habe ich diese Zeile hier:
stat/tasmota_1AFAD3/script/consday in stat/Name-meines-Stromzählers_1XXXX3/script/consday
Dazu noch die MAC-Adresse angepasst.
Muss ich noch was anderes machen oder beachten?
Eine zweite Frage noch: Ich hätte in Home Assistant eigentlich gerne den Tagesverbrauch als Diagramm dargestellt. Dazu kann man im Energy-Panel ja den "Netzverbrauch" angeben. Hier finde ich den neu hinzugefügten Sensor für den Tagesverbrauch aber nicht. Müsste man hier noch was anders machen? Bzw ist das dann damit überhaupt möglich, sich mit diesem Tagesverbrauch den stündlichen Verbrauch im Energypanel anzusehen? Quasi genau so wie im Google Chart auf Tasmota, wo man ja auch den gesamten Tagesverbrauch sieht aber im Google Chart eben auch die letzten 24h Verbrauch sieht.
Sorry für die vielen Fragen. Das Script von dir ist wirklich fantastatisch, ich brauche nur Zeit, mich da einzufinden!
ottelo (Dienstag, 04 Juni 2024 13:04)
@Anna
Das steht in der Anleitung Kapitel 4f: https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/#4f
Ich habe es aber eben mal auf meinem ESP8266 getestet. Es scheint tatsächlich zu funktionieren. Man kann über den internen Web Editor das Script nachträglich ändern. Das muss also irgendwann mal mit Tasmota Version xyz gefixt wurden sein. Finde ich echt gut, dann kann ich meine Anleitung direkt mal aktualisieren!
Bzgl. dein Thema:
Lade dir mal mein neustes Script herunter und öffne es mit einem Texteditor. Scrolle bis ca. in die Mitte wo die Sektion >S los geht. Dort habe ich die =>publish Zeilen eingefügt. Genau dort musst du auch deine Zeilen einfügen. Das sollte dann klappen. Falls Leerzeichen vor den Befehlen sind musst du diese entfernen.
Anna (Dienstag, 04 Juni 2024 12:06)
@ottelo oh, okay. Danke für den Hinweis! Vielleicht wäre das noch ein Punkt für die FAQ. Ich habe das Script leider nicht mehr und nutze einen ESP8266.
Ich kann unter "Edit Script" allerdings was einfügen bzw. mir wird dort das gesamte Script angezeigt? Geht es dann vielleicht doch über Tasmota? Ich habe mich an dem Kommentar von Karsten gehalten und das hier eingefügt
>T
=>publish stat/%topic%/RESULT {"Tagesverbrauch":%2(EnFrGrid-dval)%}
=>publish stat/%topic%/RESULT {"Monatsverbrauch":%2(EnFrGrid-mval)%}
=>publish stat/%topic%/RESULT {"Tageseinspeisung":%2(EnToGrid-dval2)%}
=>publish stat/%topic%/RESULT {"Monatseinspeisung":%2(EnToGrid-mval2)%}
=>publish stat/%topic%/RESULT {"Gesamteinspeisung":%2(EnToGrid)%}
Das steht jetzt auch drin, wenn ich mir das Script unter Tasmota anschaue. Aber es kommt in HA nichts an. Liegt das dann daran, dass die Zeilen im Script eigentlich gar nicht aktiv sind und ich daher eigentlich auch nichts geändert habe? Oder ist die Änderung schon aktiv, ich muss aber noch mehr machen, um die Daten in HA über MQTT empfangen zu können? Sorry, für mich ist das Thema irgendwie noch etwas undurchsichtig.
Vielen Dank!
ottelo (Dienstag, 04 Juni 2024 11:57)
@Anna
Dein Script, das du an den ESP gesendet hast, solltest du dir immer irgendwo auf dem PC (MAC) sichern. Wenn du Änderungen vornehmen willst, dann an dem Script auf deinem PC (MAC). Danach sendest du es wieder an den ESP. Wenn du ein ESP8266 verwendest, kommst du nicht mehr ans Script, also kannst es nicht auslesen (nach meinem Kenntnisstand). Wenn du aber ein ESP32 verwendest, kannst du das Script via Tasmota downloaden und bearbeiten. Alle Kommentare sind dann aber futsch.
Anna (Dienstag, 04 Juni 2024 11:49)
@otteolo vielen Dank! Ich würde das gerne ausprobieren, scheitere aber schon daran, mein aktuelles Script zu ändern. Ich kann ja nur über den ScriptEditor das Script anpassen - aber wie komme ich an das aktuelle Script ran, um es über den ScriptEditor wieder auf Tasmota zu flashen? Unter "Edit Script" auf Tasmota wird mir ja nicht das ganze Script angezeigt, oder?
ottelo (Dienstag, 04 Juni 2024 08:07)
Hi Anna. Siehe Kapitel 10
Anna (Montag, 03 Juni 2024 20:43)
Integration von Tagesverbräuchen, Tageseinweisung usw in home assistant: so ganz verstehe ich das noch nicht.
Ich habe das Google Chart Script erfolgreich am laufen. Nun möchte ich die aggregierten Verbräuche nach home assistant senden und dort nutzen. Ich hatte gehofft, dass es reicht, wenn ich dazu den Strichpunkt vor Publish I'm script entferne und dann kann ich die Informationen genauso nutzen wie die schon gesendeten Entitäten (bspw aktueller Verbrauch oder Gesamtverbrauch). Verstehe ich das aber richtig, dass ich danach noch den mqtt explorer brauche und Dinge in der configuration.yaml anpassen muss, um die Werte anzeigen zu lassen?
Danke!b
ottelo (Mittwoch, 29 Mai 2024 08:25)
@Herbert Reiners
Ja das ist relativ einfach möglich:
Bearbeite dein Script. Ganz unten in der >W Sektion kannst du das 4h und 24h Chart nach Belieben anpassen.
folgende Zeile:
$vAxis:{format:'# W'},
ändern in (6000 musst du anpassen):
$vAxis:{format:'# W',maxValue:6000,viewWindow:{max: 6000}},
oder mit min und max Angabe:
$vAxis:{format:'# W',minValue:0,maxValue:6000,viewWindow:{min:0,max:6000}},
Info:
https://developers.google.com/chart/interactive/docs/gallery/linechart?hl=de
Witzigerweise hatte da jemand genau die gleiche Frage wie du und hat hier nachgefragt (sieht aus wie mein Script):
https://stackoverflow.com/questions/77862155/google-chart-vaxis-max-value
Herbert Reiners (Dienstag, 28 Mai 2024 19:59)
vielleicht habe ich ja Glück, und der / die Autoren erhören mich .....
.....das mit dem "Zähler auslesen" und den Grafiken ( ich nehme an Google Chart Skript) funktioniert jetzt schon eine ganze Weile sehr gut, Übersichtlich und informativ. Wobei, bei "Übersichtlich" habe ich das Problem, dass es nur einen Verbraucher im Haus gibt mit einer sehr hohen Leistung, sprich Durchlauferhitzer, so mit ca. 18kW. Der wird nur (für´s Duschen) wenige Minuten am Tag verwendet, und in der Grafik wird halt der, der Leistung entsprechende Graf mit aufgenommen. Das geht aber zu ungunsten der Übersichtlichkeit der "kleinen" Leistungen", was zur Folge hat, im 24 Stunden Chart gibt es ein, zwei hohe peaks und alles andere ist (fast) nur eine gerade, horizontale Linie.
Meine Frage, könnte das scipt nich so engepasst werden, dass nur Leistungen (sagen wir bis 5000W) als kurve angezeigt werden, und höherer Leistungen (in der Grafik) "beschnitten" werden, ggf mit einem Symbol oder sonstigem Hinweis, zB. P<5kW ?
Ich hoffe ich konnte mich verständlich ausdrücken, einen screen-shot kann man ja (scheinbar) nicht anfügen?
Wie gesagt, vielleicht habe ich ja Glück.
ottelo (Dienstag, 28 Mai 2024 15:05)
@Omega13
Ich würde es bei mir auch gerne mal testen, aber ich nutze den ESP zur Nulleinspeiseregelung opendtu-onbattery. Wenn da was durchdreht, dreht die Regelung durch ;)
@Andreas M.
Die Seite hatte ich bereits oben unter 1 A) bei v2 Hichi vorgestern hinzugefügt ;)
Andreas M. (Dienstag, 28 Mai 2024 14:30)
Hallo @ottelo
jetzt habe ich zu dem Hichi v2 Lesekopf auch eine zweite Webseite gefunden:
https://sites.google.com/view/hichi-lesekopf/wifi-v2
Omega13 (Montag, 27 Mai 2024 20:35)
Hallo @ottelo.
Hier, wie in #1087, versprochen noch meine Erfahrungen mit der 14.0.0.
Mit einem ESP8266 macht auch Diese Probleme. Hatte alle zwei Tage reboots und mehrmals täglich keine Werte bzw. "0".
Der Lesekopf mit dem ESP32 läuft seit über 12Tagen stabil. Vermute fast, die ESP82xx kommen langsam an ihre Grenzen. Vielleicht mache ich auch irgendetwas falsch. Die 13.3.0 läuft aber ohne Probleme auf dem 8266.
killamilla (Samstag, 25 Mai 2024 18:06)
#1097 ist gelöst: es war der Telemetry Eintrag, stand auf 300, kein Wunder, dass man dann denkt, es kämen keine Datenm wenn nur alle 5 Minuten ein Datensatz eintröpfelt. Hab ihn auf 10 geändert und nun ist alles gut, wobei ich nicht erinnern kann, dass anfangs mal eingestellt zu haben, aber kann mich auch irren.
killamilla (Samstag, 25 Mai 2024 15:12)
Hallo zusammen
Bin am Verzweifeln und hoffe ihr konnt mir helfen, in aller Kürze das setup:
- EDL300 Zähler der über ein Tasmota 13.2.0 auf einem WT32-ETH01 ESP32 board abegfragt wird
- das Ganez lief wochenlang stabil, dann immer wieder kamen Aussetzer, zum Schluss habe alles nochmal neu aufgesetzt und die Einstellungen in Tasmota aus dem früheren Backup wiederhergestellt
- Status nun ist: die Zählerwerte werden übers Web-Ui angezeigt aber MQTT läuft nicht
- im MQTT Explorer sehe ich, dass einmailig beim Start des ESP ein Datensatz ankommt, danach passiert nichts mehr, keine Daten mehr über MQTT
Bin ratlos und weiss nicht mehr wo ich noch suchen soll: wenn ewtas im Skript nicht richtig wäre, würden doch keine Werte im Web-UI ankommen ? Und mehr als MQTT einschalten und das richtige Topic einstellen kann man doch nicht in Tasmota ?
Wo kann ich hier noch ansetzen ?
Schönen Dank im voraus für eure Hilfe.
Andreas M. (Donnerstag, 23 Mai 2024 15:10)
Hallo @Ottello,
sowie ich gerade gelesen habe gibt es jetzt von Hichi auch eine neuere Version2 seines SLM Lesekopfes mit esp32.
Wenn ich das richtig sehe schon bei ebay zu kaufen 34,95€, mal ein Beispiellink:
https://www.ebay.de/itm/315375748332?_trkparms=amclksrc%3DITM%26aid%3D1110006%26algo%3DHOMESPLICE.SIM%26ao%3D1%26asc%3D265907%2C265705%26meid%3De479317d4ee04c31b177174542e4a366%26pid%3D101875%26rk%3D3%26rkt%3D4%26sd%3D315073362947%26itm%3D315375748332%26pmt%3D1%26noa%3D0%26pg%3D4429486%26algv%3DSimplAMLv11WebTrimmedV3MskuWithLambda85KnnRecallV1V2V4ItemNrtInQueryAndCassiniVisualRankerAndBertRecallWithVMEV3EmbeddedAuctionsCPCAutoWithCassiniEmbRecallManual&_trksid=p4429486.c101875.m1851&itmprp=cksum%3A315375748332e479317d4ee04c31b177174542e4a366%7Cenc%3AAQAJAAABgP9d%252BMZSXlztIfYFu3kI%252B7ft0VcQix7rTrUVdiJwc2upzwLfM%252B2UEqu0ZqdXqu2qWe6up6s9MSEY%252BWikIwEh4xLkizL%252BG%252Fyhg6cdW4xfkbb75erVQBYYISNxGN1au%252BE0eJ778JYYSAyLJRupNiZky3B2UHpMsaEp7JRgW9fuueOszPlG9eCPE4mSzJx4EejjZE0v1xx3s4HgKujjhEB3s6lNnpWUmrhVJmqoRMdyN82DPE3NTBBrzvwPJTBMy6le6izio5ixIu0p1rZw%252BNltoEwPoCPbH76kSSornYsA7YAu%252FNv3%252BpeJ4t6Zci%252BwWZ9NFA8xcexIZj%252BeqMrsMNdkl%252BDRjImbNxLsgQtWHwq0%252FkvKRQ0wCMdFV8mfphN7JrTvrD%252FnDqP%252Bp6OeHIrZid0ZK7KnTA%252Fmme9V%252BokG1gFvlpVO9Vik%252BwJ5RE0by9UNCds2H14hoL3a3bFmGm2etMkBw4CSXm%252FMgEt%252FzVZcC9WaIEeIgN%252BA8ykDFC7DabHZws5QuQ%253D%253D%7Campid%3APL_CLK%7Cclp%3A4429486&itmmeta=01HYJRS50J1FXVNTZGFYZG6GP8
Gruß
Andreas
ottelo (Montag, 20 Mai 2024 11:42)
@gonso
Danke für den Tipp.
gonso (Montag, 20 Mai 2024 11:02)
Ich nutze im Jahresskript nicht nur blau grün und rot sondern die unten angegebenen Farben. So lassen sich die Einspeisung und Bezug besser auseinanderhalten.
{
wcs ['%is[tmp]%',%mcon[tmp]%,'green'],
wcs ['%is[tmp]% (PV)',%mcon[tmp+12]%,'orange'],
}
if (tmp==month)
{
wcs ['%is[tmp]%',%mcon[tmp]%,'red'],
wcs ['%is[tmp]% (PV)',%mcon[tmp+12]%,'red'],
}
if (tmp>month)
{
wcs ['%is[tmp]%',%mcon[tmp]%,'blue'],
wcs ['%is[tmp]% (PV)',%mcon[tmp+12]%,'gold'],
}
ottelo (Samstag, 18 Mai 2024 10:49)
@HaselNuss
Achso, dann musst du es wie folgt in die Console Eingeben:
Script >EnToGrid=0