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 für gängige Stromzähler
(4d) SML Scripterklärung (Descriptor)
(4e) Wichtig! TESTEN OB DATEN ANKOMMEN
(4f) Tasmota Google Chart Script (Liniendiagramm/Graph)
(4g) Tasmota Einstellungen - Sende- und Abrufintervall, Zeitzone und Home Assistant
(4h) Home Assistant Einstellungen (+ Energy Dashboard) für Tasmota
(5) Tasmota von extern erreichen (VPN Wireguard)
(6) Tasmota Firmware selbst erstellen (GitPod)
(7) Tasmota Firmware Flashen/Updaten
(8) Stromzähler Daten an eine ext. Datenbank/Seite senden (clever-pv, thingspeak)
(9) Bei PV-Stromüberschuss Verbraucher einschalten (via WLAN Tasmota Steckdose)
(10) Tasmota Script Variable (z.B. Tageseinspeisung) an Home Assistant senden
(11) Nützliche Sachen für Home Assistant
(12) Tasmota via LAN/Ethernet (ESP32)
-- 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). Oder ihr sucht euch einen ESP Board mit extern anschließbarer Antenne. Die könnt ihr dann rausführen.
A) WiFi / WLAN - Lesekopf mit integriertem ESP
Welchen ESP soll ich nehmen?
Da die Preise für ESP32 Module stark gesunken sind und deshalb die Leseköpfe mit ESP32 fast genau soviel kosten wie die mit ESP8266, würde ich definitiv die ESP32-Leseköpfe empfehlen. Ich habe die ESP8266 Leseköpfe aber trotzdem noch auf meiner Seite gelassen. Bei der Stromaufnahme ist der ESP8266 allerdings deutlich genügsamer als der ESP32., das könnte für einige auch ein Entscheidungskriterium sein.
Ich habe mal die Leistungsaufnahme gemessen:
Hichi Lesekopf v1 mit ESP8266 (ESP01s) = 0,05W (Idle), 0,25-0,35W (Stromzähler sendet Daten)
Hichi Lesekopf v2 mit ESP32 C3 mini = 0,4W (Idle), 0,4W (Stromzähler sendet Daten)
Wifi v2 Lesekopf EHZ Volkszähler Hichi Smartmeter (ESP32-C3-Mini-1) [eBay Werbung]
Auf dem ESP ist bereits Tasmota mit SML "vorinstalliert". Wenn ihr aber mein Google Chart Script verwenden wollt, dann müsst ihr mein angepasstes ESP32 Image (ESP32-C3) via WLAN übertragen. Mit dem Hichi Lesekopf könnt ihr sogar noch weitere IR-Leseköpfe anschließen, wenn ihr mehrere Stromzähler auslesen möchtet. Mehr dazu findet ihr auf der Seite.
Rx = GPIO3, Tx = GPIO1. SML Deskriptor Beispiel +1,3,s,0,9600,MT681,1
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
Andere ESP32 Leseköpfe:
Es gibt natürlich noch andere fertige Leseköpfe mit integriertem ESP32. I.d.R. bekommt ihr dann vom Händler Infos, welche Pins ihr verwenden müsst. D.h. an welchen GPIOs der Hersteller die Sende und Empfangsdiode angeschlossen hat. Der ESP32-C3 hat 2 UARTs (UART0 und UART1 = RX/TX), die via Multiplex auf fast jeden GPIO-Pin gelegt werden können (das macht die Firmware im Hintergrund).
Empfehlung:
ESP32-C6 (Datasheet ESP32-C6, ESP32-C6-Zero Pinout)
Rx = GPIO3, Tx = GPIO1. SML Deskriptor Beispiel +1,3,s,0,9600,MT681,1
ESP32-C3 (Datasheet ESP32-C3 Chip, ESP32-C3 Super Mini Pinout)
Rx = GPIO3, Tx = GPIO1. SML Deskriptor Beispiel +1,3,s,0,9600,MT681,1
ESP8266: All-in-One WiFi Lesekopf von Hichi (ESP01s) [eBay Werbung]
Hichi bietet bei eBay komplett fertige WiFi Leseköpfe an. Diese beinhalten bereits den ESP8266 (ESP01s Modul) und muss nur über die Mikro USB Buchse mit 5V versorgt werden. Mit einem USB-Netzteil/Ladegerät[eBay Werbung] oder ihr baut euch ein 5V Hutschienen Netzteil[eBay Werbung] ein. Allerdings müsst ihr dafür guten WLAN Empfang in eurem Sicherungskasten haben, der aus Metall ist. Aber dies ist wirklich eine sehr einfache Lösung und kostet weniger als 40€. Auf dem ESP ist bereits Tasmota "vorinstalliert". Deshalb könnt ihr direkt mein fertiges Image via WLAN übertragen ohne TTL Adapter.
Rx = GPIO3, Tx = GPIO1. SML Deskriptor Beispiel: +1,3,s,0,9600,MT681,1
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. -Aktuell (12.2024) nicht mehr verfügbar- Selbstbaulösung siehe unten.
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 <- Ist das mit 14.4.1 noch so?
Spätere Firmware Upgrades müssen immer über das WLAN und nicht über LAN gemacht werden!
Optionen:
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 -> 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:
Generell immer in Englisch mit SML (Script), Home Assistant, Google Chart Support. Externer Link zu Google Drive.
ESP32 (S2, S3, C3, C6, SOLO-1 ):
+ Ethernet (LAN), Modbus TCP, TCP-Server Support. Welche Features ich genau aktiviert habe findet ihr in der Beschreibung des entsprechenden Release auf github.
----------------------------------------------
ESP8266/8285 1M (z.B. ESP01s Hichi) / 4M+ Flash (z.B. D1 mini) / SonOff POW(R2) / Gosund EP-2:
Ich habe alle unnötigen Tasmota Features/Treiber aus dem Image entfernt, damit das Google Chart Skript richtig läuft und auch Firmwareupdates ohne den Umweg über die minimal möglich ist. Die deaktivierten Features findet ihr Punkt 6.4 bzw. hier oder im github Release. Wenn euch etwas fehlen sollte, dann könnt ihr euch eine eigene Version bauen (siehe Punkt 6). Oder fragt in den Kommentaren.
Tasmota 14.2.0 (17.09.2024) GDrive
+extra Images mit serial/rs232, global-var, domoticz Support
Achtung: Vor einem Upgrade unbedingt eure Daten sichern (siehe FAQ)
Hinweise:
----------------------------------------------
Tasmota Google Chart Script:
Visuelle Anzeige eures Verbrauchs (Tages, Monats, Jahresansicht) via Google Charts und optional (+PV Script) mit Anzeige der Netzeinspeisung (Monatsansicht). Dabei handelt es sich um ein großes Tasmota Skript, das ihr noch zusätzlich via TasmotaScriptEditor (oder ohne Kommentare in den Web Script Editor einfügen) 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.
- Im Skript sind optionale Inhalte deaktiviert (auskommentiert mit ";" am Anfang der Zeile). Zum Aktivieren das Semikolon entfernen. Es gibt folgende Optionen:
> Werte (Leistung) im 4h/24h-Diagramm begrenzen. Optional auch über ein Schieberegler. Sucht im Skript nach "vn" um die Stellen zu finden, die aktiviert werden müssen.
> Seite automatisch aktualisieren. Sucht nach "Auto reload" im Skript.
> Schalte einen 2. ESP (Verbraucher) bei Netzeinspeisung. Suche nach "swesp" im Skript.
> Tages, Monats, Jahreswerte via MQTT übertragen. Suche nach "publish" im Skript.
> Einfacher Säulenchart darstellen. Suche nach "Saeulenchart" im Skript.
----------------------------------------------
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:
Empfohlen: Tasmota Web Installer (ihr müsst keine Software installieren)
Dort die zuvor von meiner Seite heruntergeladene tasmota.factory Firmware hochladen und dann via Connect mit dem ESP verbinden und flashen (Haken bei Erase setzen). Nachdem das Image erfolgreich übertragen wurde könnt ihr anschließend über den Button "CONNECT TO WI-FI" den ESP mit eurem WLAN verbinden (im Menü auswählbar). Wenn ihr diese Option nicht auswählen könnt (z.B. beim ESP32-C3, C6), dann könnt ihr euch auch über die Console verbinden (LOGS & CONSOLE). Gibt in die Console zuerst wifiscan 1 ein, anschließend (nachdem APs gefunden wurden) wifitest SSID+Passwort (das + dazwischen ist wichtig). Hat's geklappt, steht in der Console "Connected - IP Address xxx". Die IP merken. Weiter geht's bei 4 bzw. 7.
Andere Software:
Tasmota ist nun auf eurem ESP. USB-Kabel vom PC und ESP trennen und weiter zum nächsten Schritt.
4. USB-Ladegerät/Netzteil mit dem ESP verbinden ... ESP8266/32 müsste nun starten und evtl. blinken
5. via Handy auf den vom ESP erstellten Tasmota Hotspot verbinden und dort das WLAN einrichten
6. Nun über einen Webbrowser auf den ESP zugreifen, der sich ja jetzt in eurem WLAN Netz befinden sollte. Die neue IP sollte auf der Tasmota Seite auf eurem Handy erscheinen. Adresse könnte lauten http://192.168.178.31.
7. Habt ihr das geschafft, klickt ihr als nächstes auf Configuration -> Module und wählt ein Modul aus. Beim ESP8266 "Generic (0)". Bei den verschiedenen ESP32 Boards je nachdem welches ihr habt euer Modul z.B. ESP32C3. Findet ihr nicht euren ESP in der Liste, dann einfach Generic (0).
8. Jetzt wechselt ihr zur Hauptseite und dann Consoles -> Edit Script und setzt den Haken bei "Script enable".
9. Stromversorgung des ESPs trennen und den IR-Lesekopf mit dem ESP verdrahten, falls ihr keinen All-In Lesekopf gekauft habt (welchen GPIO? Siehe ESP8266, ESP32. Hier gibt es noch eine Infoseite). Den Schritt könnt ihr aber auch später machen, nachdem ihr das Script übertragen habt. Ich würde aber nun alles verbinden und den Lesekopf an den Zähler anbringen. Habt ihr den fertigen Hichi Lesekopf, dann braucht ihr diesen ja nur an den Zähler heften, mit Strom versorgen und das Script (das sind die nächsten Schritte) übertragen/eingeben. Später im Script müsst ihr die verwendeten GPIOs eingeben. Siehe Kapitel 4d zur Erklärung welche GPIO Pins ihr nehmen könnt/dürft.
Falls ihr kein 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 -> MQTT (die Tasmota HA Integration nutzt auch MQTT!):
Main Menu -> Console:
(4c) Tasmota SML Script Beispiele für ein paar gängige Stromzähler (ohne Google Charts)
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)!
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 Reset SML Treiber
->sensor53 l2 Optional: LED an GPIO2 blinken lassen, wenn Stromzähler sendet. Hichi z.B. hat eine blaue LED im Lesekopf an GPIO2.
>M 1 = Declare >M section with the number of connected meters, in this case only 1
+1,3,s,16,9600,MT175,1
1 = 1. Zähler (Smartmeter) Meter Definition
3 = GPIO 3 . Hier könnt ihr den Pin (GPIO) ändern, an dem ihr das RX Signal des Lesekopfes (Empfangsdiode) angeschlossen habt. Je nachdem ob ihr einen fertigen Lesekopf inkl. ESP verwendet oder euch selbst etwas baut müsst ihr darauf achten, den korrekten Pin zu verwenden. Die Hersteller der fertigen Leseköpfe geben immer mit an, welche Pins ihr verwenden müsst. Wenn ihr euch das ganze aber selbst zusammen baut, dann könnt frei entscheiden. Je nach verwendeten ESP gibt es 1-3 UARTs, die verwendet und auf fast jeden beliebigen GPIO gelegt (via multiplex) werden können. Beim ESP8266 solltet ihr es vermeiden 0, 2 oder 15 zu verwenden. Beim ESP32 müsst ihr unbedingt nach eurem verwendeten Board (z.B. ESP32-C3 Super Mini Pinout) suchen. Unter Tasmota -> Configuration -> Module gewählten GPIO auf None stellen (ist Standard). Configuration -> Logging -> Serial log level (Info) = 0 None. Wenn ihr die Pins ändert, müsst ihr ggf. neustarten. Je ESP gibt es folgende Anzahl an UARTs:
- ESP8266 hat 1 verwendbaren UART
- ESP32 hat 3 verwendbare UARTs
- ESP32-C3, C6 hat 2 verwendbare UARTs
Sind diese aber belegt oder ihr wollt noch mehr Leseköpfe anschließen, könnt ihr auch Software Serial verwenden (nicht unbedingt empfehlenswert, es geht nur RX, siehe auch Link). Dafür muss das Tasmota Image mitUSE_ESP32_SW_SERIAL kompiliert werden (bei mir ab 14.4.1) und vor dem Pin muss ein "-" Zeichen hinzugefügt werden (siehe auch tasmota SML Seite).
s = SML binary coding
16 = 16 = Werte werden Median gefiltert = geglättet. Könnt ihr auch auf 0 ändern
9600 = Baudrate eures Stromzählers. Beim MT175 ist dieser auf 9600baud eingestellt
MT175 = Name des Stromzählers. Wird später in HA angezeigt (nur 6 Zeichen!)
1 = GPIO 1 - Sendediode, wenn ihr eine habt. Wenn nicht kann ",1" entfallen. ! Wenn euer Lesekopf eine hat und diese an ein Pin geht, solltet ihr den GPIO angeben (siehe Kapitel 2). Verwendet hier auch generell nur Hardware TX-Pins. Siehe Hinweis (1).
# = Put at the end to terminate M section of the script
; = Use to comment lines in the script
+<M>,<rxGPIO>,<type>,<flag>,<parameter>,<jsonPrefix>{,<txGPIO>,<txPeriod>,<cmdTelegram>}
<M>,<decoder>@<scale><offs>,<label>,<UoM>,<var>,<precision>
<precision> = number of decimal places. Add 16 to transmit the data immediately. Otherwise it is transmitted on TelePeriod only.
Mit Hilfe dieser sehr nützlichen Seite könnt ihr das SML Skript (Desriptor) an euren Zähler anpassen!
(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. Other Configuration -> Other:
2. Sende/Abruf Intervall einstellen Configuration -> Logging
4. Main Menu -> Console:
(4h) Home Assistant Einstellungen (und Energy Dashboard) für Tasmota
-- Ihr braucht für die Tasmota Integration auch immer den MQTT broker! --
1. Für MQTT einen neuen User hinzufügen: Configuration -> People -> Users -> Add User: user = mqtt, password = mqtt (oder wählt einen anderen)
2. Mosquitto broker Addon hinzufügen. Danach die Mosquitto broker Integration hinzufügen.
3. Tasmota Integration hinzufügen
4. Nun müsste automatisch ein neues Device unter der Integration auftauchen, unter dem Namen, den ihr in Tasmota vergeben habt. Bei mir MT175. (siehe Bilder unten)
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. Den Neustart danach nicht vergessen! Wichtig: Achtet auf auf die richtige Einrückung (2 Leerzeichen)
#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 (siehe auch nächstes Kapitel):
Wenn ihr eueren Stromzähler-Wert (kWh) da immer noch nicht auswählen könnt, dann müsst ihr einmal die bisherige Aufzeichnung des Wertes (Rekorder) löschen/purgen, da HA diesen Wert eine zeitlang "einheitenlos" aufgezeichnet hat und das Energy Panel damit Probleme hat. Dazu geht ihr auf Developer Tools -> Statistics -> sucht den Wert. Da sollte dann schon ein Hinweis/Problem stehen. Klickt auf Problem lösen und setzt die Statistik zurück. Danach könnt ihr den Wert im Energy Dashboard auswählen
Danach habt ihr solch eine schöne Anzeige (ich habe auch eine PV-Anlage):
Optional: Wenn ihr eine extra Tages, Wochen, Monats, Jahresverbrauchsanzeige benötigt (und das nicht über das Energy Panel ablesen wollt):
utility_meter:
mt175_daily_energy:
source: sensor.mt175_mt175_total_in
cycle: daily
mt175_weekly_energy:
source: sensor.mt175_mt175_total_in
cycle: weekly
mt175_monthly_energy:
source: sensor.mt175_mt175_total_in
cycle: monthly
mt175_yearly_energy:
source: sensor.mt175_mt175_total_in
cycle: yearly
(5) Zugriff auf Tasmota von Außen / Extern via Handy - VPN/WireGuard
Externe Anleitung von AVM (FRITZ!Box). Habt ihr den VPN Zugang auf dem Router und auf eurem Handy eingerichtet, müsst ihr nur noch die lokale IP-Adresse von Tasmota (eurem Lesekopf bzw. dem ESP) eingeben.
(6) Tasmota Firmware selbst erstellen (TasmoCompiler/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
Mit diesen #defines (Treiber/Features) kompiliere ich via Visual Studio Code oder Gitpod die hier angebotenen Images:
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) Stromzähler Daten an eine ext. Datenbank/Seite senden
Falls ihr euren aktuellen Verbrauch (Momentanleistung) auch von unterwegs aus anschauen möchtet oder die Daten auch zusätzlich extern sichern wollt, zeige ich euch hier eine sehr einfache und kostenlose Lösung. Es gibt mehrere Anbieter (Auswahl): clever-pv.com, zaehlerfreunde.de, thingspeak.com
Hinweis: Der Befehl WebQuery benötigt bis zu 1s und blockt solange die Ausführung des Scriptes. Wenn ihr diese Lösung in mein Google Chart Script einfügt, dann werden die Tages-, Monats- und Jahreswerte nicht korrekt berechnet, da in der >S Sektion der "alle-60s-Block" (upsecs%60==0) nicht immer ausgeführt wird. Ich arbeite an einer Lösung. Wenn ihr nur die >M Sektion habt (also mein Script nicht verwendet), dann spielt das alles natürlich keine Rolle!
clever-pv:
thingspeak:
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
Anpassungen im Script:
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"
]
]
}
}
Beispiel2:
Variable "power2" (gefilterte aktuelle Leistung vom Stromzähler) aus meinem Script via MQTT an Home Assistant übertragen. Hier im Beispiel für den Stromzähler MT175. Orange Textstellen sind frei wählbar, blaue Textstellen müsst ihr an euer Gerät anpassen, siehe Beschreibung oben.
{
"name": "Stromzähler Leistung gemittelt",
"uniq_id": "mt175_power2",
"dev_cla": "power",
"stat_t": "stat/tasmota_31F8D4/script/power2",
"unit_of_meas": "W",
"sug_dsp_prc": "0",
"dev": {
"connections": [
[
"mac",
"84FCE631F8D4"
]
]
}
}
Hier findet ihr nochmal alles etwas detaillierter und in Englisch.
(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. Das Image findet ihr im ESP32 Downloadbereich. Eine Anleitung wie ihr das WT32-ETH01 Modul korrekt mit eurem Programmer verbindet findet ihr z.B. hier. Habt ihr alles verbunden könnt ihr der Anleitung im Kapitel 4a) 3. folgen um das Factory Image zu flashen. Danach den Jumper entfernen und die Stromversorgung des ESPs neu verbinden. Dann normal über den Tasmota Hotspot verbinden und dann mit eurem WLAN verbinden lassen.
Achtung: Auf den neueren Modulen (ESP32-D0WD v1.1 laut Tasmota Info) ist ein ESP32-S1 Single Core verbaut! Da benötigt ihr das Image tasmota32solo1.bin / tasmota32solo1.factory.bin, das ihr ebenfalls im ESP32 Download Ordner findet (erst ab 14.3.0). Habt ihr den ESP32-WROOM könnt ihr das normale ESP32 Image verwenden.
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-> 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-> Other ganz oben im Feld dann die Konfiguration für eure Hardware, die ihr auf der Tasmota Seite von eurem ESP32 Board findet, eingeben. Es ist ein langer String mit Zahlen usw. Nach dem Einfügen, Activate anhaken und dann auf Save klicken. Folgt einfach der Anleitung. Ihr könnt dann das eben importierte Template für eure Hardware unter Modules auswählen.
12d) LAN Verbindung prüfen
Im Hauptmenü unter Information könnt ihr nun sehen, ob ihr korrekt verbunden seid. Wenn ihr das WLAN nicht mehr benötigt könnt ihr es abschalten via Wifi 0 über die Console.
12e) Optional: LAN Settings (für Olimex oder wESP32-PoE)
Wenn ihr den ET32-ETH01 verwendet, müsst ihr nichts mehr tun und einfach mit meiner normalen Anleitung oben weitermachen (Kapitel 4).
Falls das LAN nicht funktioniert oder ihr ein anderes Modul habt dann müsst ihr evtl. noch das LAN Modul aktivieren. Tippt dazu folgenden Befehl in die Tasmota Console ein:
Ethernet 1
Je nach verbauten Ethernet Chip (Olimex oder wESP32 Modul) müssen noch andere Sachen evtl. angepasst werden. Siehe dazu die Tasmota Wiki.
Es kann sein, dass ihr noch Wifi 0 eintippen müsst, damit LAN funktioniert. Dadurch schaltet sich WLAN ab und der ESP32 sollte über LAN erreichbar sein! Jetzt könnt ihr hier wieder nach oben scrollen und mit meiner normalen Anleitung weitermachen. Sucht euch einen freien GPIO Pin für den IR-Sensor, verdrahtet alles usw!
Achtung! Bei Verwendung eines LAN-ESPs ist die Performance der Tasmota GUI sehr langsam, wenn man nur über LAN verbunden ist (wifi 0). Hier gibt es aber ein Workaround:
Befehl "EthClockMode 0" in die Console eingeben. Quelle https://github.com/arendst/Tasmota/discussions/19803
(13) 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
Quellen/Nützliche Links (externe Links)
Lesekopf und SML Protokoll
https://meinzaehler.com/whitelist.html Infos über einige Stromzähler
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/ SML Decoder Parser
https://www.youtube.com/watch?v=dyZANt2bvi4 CC2 Video über Tasmota mit SML
ESP8266 Firmware Tasmota - Anleitung
https://tasmota.github.io/docs/Smart-Meter-Interface/
Tasmota "status" (z.B. status 4) Output dekodieren -> welche Tasmota Features sind im Image enthalten?
https://github.com/tasmota/decode-status
Tasmota Skriptbeispiel für MT175
Home Assistant - MQTT
https://www.home-assistant.io/integrations/mqtt/
ottelo (Donnerstag, 24 April 2025 10:28)
Ja korrekt. Du brauchst eine smarte Energiemess-Steckdose and dem Ausgang deines Wechselrichters. Manche kann man mit Tasmota flashen und dann kannst du dir die Leistung deines Balkonkraftwerks an deinen ESP am Stromzähler senden (via globale Variablen) und dort dann auch anzeigen lassen. Oder natürlich in Home Assistant anzeigen lassen, so mache ich es.
Manche Wechselrichter haben aber WLAN oder eine andere Schnittstelle, über die Home Assistant die Daten abgreifen kann ohne das du eine Steckdose brauchst. Da gibt es auch noch andere Projekte: https://github.com/tbnobody/OpenDTU
Hier habe ich ein Link zu ebay mit Steckdosen mit Tasmota.
https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/#9
Lucky0077 (Donnerstag, 24 April 2025 10:21)
Ottelo,
Danke für die Rückmeldung.
Die Leistung Des Balkonkraftwerk kann ich nur über Homeassistent und smart Steckdose anzeigen lassen oder?
Würde ja über den zähler nicht funktionieren wenn der strom im Netz schon bei mir verbraucht wird richtig?
Sorry für die ganzen Fragen.
Habe gestern endlich wieder mein wemos d1 neu aufgesetzt usw. War längere Zeit kaputt.
Muss mich da erst wieder rein lesen.
Vielen Dank für deine Geduld und für deine Zeit die du in dieses Projekt steckst.
Weiter so...
ottelo (Mittwoch, 23 April 2025 18:57)
Lucky:
Steht oben: 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
oder hier:
https://github.com/ottelo9/tasmota-sml-script/blob/main/2_Tasmota_SML_Script_Chart_PV.tas
; Optional: gemittelte Leistung fuer opendtu-onbattery DPL: http://192.168.178.31/cm?user=admin&password=joke&cmnd=script?power2
power2=(0.9*power2)+((1-0.9)*power)
Das ist einfach nur die aktuelle Leistung des Zählers (negativ/positiv) in Watt, aber stark gemittelt, also schwankt nicht so stark.
Lucky0077 (Mittwoch, 23 April 2025 18:44)
Warum steht da gefiltert Leistung und warum ist die anders wie die normale Leistung?
Kann ich daran tagsüber sehen wieviel die Balkon pv einspeist? An dem Unterschied? Oder wie sehe ich das ...
SaschaMike (Mittwoch, 23 April 2025 17:09)
@Ottelo
Super, danke. Habe jetzt nen neuen ESP8266 bestellt bei dem die Pins bereits gelötet sind. Beim bisherigen hab ich die Dupont Kabel nur gesteckt, was eine wackelige Angelegenheit ist.
Hawe (Dienstag, 22 April 2025 22:33)
Ich wollte mal erster sein... ;-) Ne im Ernst ich hatte mich mit der Sicherung der Daten und Backup beschäftigt und da kam eins zum anderen. Aber irgendwie will mir das mit der Sicherung bzw die wiederherstellung nicht ganz gelingen
ottelo (Dienstag, 22 April 2025 22:25)
Danke für deine Mühe.
Habe die 14.6.0 Images auch zufällig vorhin erstellt. Lade ich morgen hoch. Ethernet Support für Solo1, Generic und S3.
Hawe (Dienstag, 22 April 2025 20:03)
Ich hab mir jetzt endlich mal ne neue ESP32 Solo1 Version der 14.6.0.1 erstellt WT32Eth01 S1 und auch ne ESP32 Version zb für den WT32Eth01
https://1drv.ms/f/c/c4b1ddd478eb26a6/EhtvCiJxZ4tBoWsjGfpDH20BWwvecEeUGt35eOiuCFifwA?e=VUqU1s
Wer sie testen möchte kann sich diese hier laden. Aber ohne jede Garantie alles auf eigene gefahr versteht sich
Gruß
ottelo (Dienstag, 22 April 2025 07:43)
@Marcus & Roland
Ja, die globalen Variablen sind aktiv. Siehe auch Feature Liste (3): https://github.com/ottelo9/tasmota-sml-images/releases/tag/V14.4.1_250223
@SaschaMike
Der Script Entwickler gemu2015 hat das Script um mehrere DeepSleep Funktionen erweitert, nachdem ich ihm von meinem Vorhaben (Wasser Leckage Sensor) erzählt habe. Netterweise hat er es sofort eingebaut und auf einem C6-Zero getestet. Ich teste es gerade auf einem C3. Er hat die Änderung auf seiner github Repo veröffentlicht. Diese wird er aber nicht mehr mit der Tasmota Repo mergen! Ich habe seine Version aber in meinem neusten Image 14.6.0 eingebaut und werde die Images bald hier veröffentlichen. Ich teste aktuell noch die DeepSleep Funktionen.
https://github.com/gemu2015/Sonoff-Tasmota/commit/4aad9f3c5b89e8ad3e0cd8e1f55b3ca49a443ae9
Hier die Beschreibung der neuen Funktionen:
ds(-1) zeigt den Status des letzen Wakeups.
ds(x) geht für x Sekunden in Deepsleep
ds(x pin level) wenn x = 0 dann nur pin level
Pin = RTC Pin 0-7
level = 1 pullup verlässt mit LOW den deepsleep
level = 0 pulldown verlässt mit HIGH den deepsleep
Ein Scriptbeispiel werde ich dann auch veröffentlichen (extra Blogseite).
Marcus (Sonntag, 20 April 2025 13:28)
@Roland
Du könntest die global vars verwenden.
Da wird UDP verwendet
Bei ottelos bin’s sind die Global Vars glaube ich noch aktiviert.
Erklärung hier: https://tasmota.github.io/docs/Scripting-Language/#features
Dort nach g:vname suchen.
Frohe Ostern
Roland (Donnerstag, 17 April 2025 15:55)
Hallo
wie kann ich von einem anderen Tasmota Device via Script die aktuelle Leistung abfragen und dann einer Variablen zurordnen, aber nicht via MQTT, also via HTTP. Ich möchte auf einen MQTT Broker verzichten,
Gruß Roland
ottelo (Dienstag, 15 April 2025 22:37)
Ahh das Script sieht gut aus. Was alles so machbar ist :). Werde ich definitiv hier mit aufnehmen.
Ich spiele aktuell auch mit Deep Sleep und einem ESP32-C6-Zero rum. Aber ich will damit einen Wasser Leckage-Sensor bauen, Batteriebetrieben. Anders als in der Tasmota Deep Sleep Beschreibung muss man beim ESP32 übrigens anscheinend nicht den Reset PIN mit GPIO16 verbinden. Schlafen legen nach Zeit klappt und frisst kaum Strom. Habe das Board dafür mit 3,3V versorgt. Wenn man 5V verwendet, dann wird um einiges mehr gebraucht (0,5mA), bedingt durch den LDO.
Ich brauche allerdings das Aufwachen via GPIO PIN. Das ist leider noch nicht in Tasmota. Aber via Berry und ULP dann doch möglich. Ich frag mich ob man das auch ins Scripting einbauen kann.
SaschaMike (Dienstag, 15 April 2025 19:06)
Werde mal das Skript hier probieren, um Sonnenaufgang / -untergang als Auslöser für DeepSleep einzubinden: https://github.com/arendst/Tasmota/discussions/22183
Roland (Sonntag, 13 April 2025 16:55)
@Ottelo,
Ich habe noch eine gute Ergänzung zu Kapitel 9 gefunden und zwar von Arno.
https://akkudoktor.net/t/wattgenaue-leistungssteuerung-von-heizern-mit-esp32-tasmota-iobroker/25554/4
Er steuert mittels SSR stufenlos und wattgenau einen Heizstab um den erzeugten PV Überschuss zu verwenden. Vielleicht ist das ein Ansatz um da in deinem Script zu implementieren. Sein Script ist hier https://github.com/ArnoNym1234/Heater-Control
Gruß Roland
SaschaMike (Samstag, 12 April 2025 11:21)
Merci!
ottelo (Samstag, 12 April 2025 10:39)
@SaschaMike
Hier hat jemand genau das gleiche vor:
https://forum.iobroker.net/topic/74770/tasmota-deepsleep-nur-%C3%BCber-nacht-mit-einem-script
ottelo (Freitag, 11 April 2025 10:55)
@mike
Ich habe heute meinen S2 bekommen. Wenn ich noch was testen/fixen soll sag Bescheid.
ottelo (Donnerstag, 10 April 2025 14:52)
Rules sind nicht verwendbar/aus dem Image entfernt, da Scripting verwendet wird für SML.
Via Script könnte man was versuchen:
slp(time) = sleep time in seconds, pos values => light sleep, neg values => deep sleep
sunrise = sunrise minutes since midnight
sunset = sunset minutes since midnight
Quelle:
https://tasmota.github.io/docs/Scripting-Language/
SaschaMike (Donnerstag, 10 April 2025 14:41)
https://tasmota.github.io/docs/DeepSleep/#deepsleep-wakeup-based-on-timer-events
Wie bau ich das ein?
Rule2
on time#minute==%sunset% do rule1 5 endon
SaschaMike (Donnerstag, 10 April 2025 14:38)
Hallo, habe jetzt vom ESP32 auf den ESP8266 umgestellt. Kann man den Energieverbrauch noch weiter reduzieren? Zum Beispiel nur dann den Stromzähler auslesen, wenn die Sonne scheint? (aber mit einer Lösung die intelligenter ist als eine Zeitschaltuhe). Würde nicht mal deep sleep angesprochen?
mike (Sonntag, 06 April 2025 22:21)
Hi,
WEBQUERY mit clever-pv funktioniert jetzt, hatte es mit mehreren Zeitintervallen 5s, 30s 1m versucht, alles erfolglos, heute mit 10s und auf Anhieb mit Erfolg!
Danke für das Feedback und Hilfe!!!
franc (Mittwoch, 02 April 2025 15:38)
@Marcus
Danke, aber das hat mein Zähler offenbar nicht. Also weder 2.8.0 noch 16.7.0, die Ausgabe bleibt dann bei 0.000, der gibt ja noch nicht mal die Zählernummer aus, da hab ich mir auch schon die Zähne dran ausgebissen. Ich muss wohl warten bis der Netzbetreiber mir einen neuen Zähler montiert, aber die antworten ja noch nicht mal und wenn, dann nach Wochen erst.
ottelo (Mittwoch, 02 April 2025 14:08)
@Thorsten
Hier meine Antworten, aber wie immer ohne Gewähr ;):
was kann die neue SW besser und sind ggf. Sicherheitslücken behoben, was mit am Wichtigsten ist
=> https://github.com/arendst/Tasmota/releases <- dort kannst du bei jedem Release nachlesen, was sich geändert hat. Was die Sicherheit betrifft, die Geräte hängen bei dir hinter deiner Firewall des Routers und sind somit geschützt. Tasmota sollte auch nicht via Portfreigabe aus dem Internet erreichbar gemacht werden! Jedenfalls ist das mein aktueller Kenntnisstand. Die Frage ist, was man eigentlich mit dem Lesekopf/Tasmota sonst noch alles so machen will. Möchte man ein neues Feature haben, was erst ab Tasmota 14.x enthalten ist, sollte man natürlich upgraden. Ich aktualisiere mein Lesekopf regelmäßig, weil ich natürlich meine Images Langzeit testen will. Ansonsten lohnt es sich für die meisten nicht, zu aktualisieren!
Kann ich auf Deine neueste Version updaten?
=> ja
Kann ich ggf. zurück auf die Tasmota 13.1.0 , falls es Probleme gibt?
=> ja
Wird die ganze Partition dann neu geflasht oder geht ggf. das Downgrade nicht, weil nur in eine Richtung geflashed werden kann?
=> nein, es wird nur die Firmware Partition geflasht. Die Safeboot Partition wird nur beim Flashen via Kabel und dem Image tasmotaxx_factory.bin aktualisiert. Die ESP32 Partitionen haben sich bei Tasmota v12 geändert. Siehe auch https://tasmota.github.io/docs/Safeboot/. Wenn via OTA was fehl schlägt, dann landest du "eigentlich" immer bei der vorherigen Tasmota Version. Ansonsten überträgst du notfalls via Kabel neu.
Grundsätzlich: Was ist der Unterschied zwischen "Deiner" Version
=> In erster Linie ist bei mir SML und Script Support enthalten (und noch Google Chart usw). Das ist bei der Standard Tasmota Version nämlich nicht drin! Und das brauchst du zum Auslesen deines Zählers. Was ich alles aktiviert habe, siehst du hier: https://github.com/ottelo9/tasmota-sml-images/releases/tag/V14.4.1_250223
Thorsten (Mittwoch, 02 April 2025 09:32)
Hallo ottelo,
danke für diese tolle Seite, ich habe schon einige neue Anregungen mitnehmen können!
Folgende Frage:
Ich habe den Lesekopf von SolarZero.org erworben (Lesekopf Pro 3 mit Tasmota). Dort ist die Version Tasmota 13.1.0 by Theo Arends installiert.
In der Anleitung steht, man solle auf keinen Fall eine neue "Firmware" installieren. Es wäre bereits die neueste SW installiert.
Grundsätzlich geht der Kopf auch, aber ich als langjähriger IT-ler fragt sich natürlich, was kann die neue SW besser und sind ggf. Sicherheitslücken behoben, was mit am Wichtigsten ist.
Kann ich auf Deine neueste Version updaten? Kann ich ggf. zurück auf die Tasmota 13.1.0 , falls es Probleme gibt? Wird die ganze Partition dann neu geflasht oder geht ggf. das Downgrade nicht, weil nur in eine Richtung geflashed werden kann? Habe auch Herrn Förster angeschrieben, kriege aber leider keine Antwort.
Grundsätzlich: Was ist der Unterschied zwischen "Deiner" Version
https://github.com/ottelo9/tasmota-sml-images/releases
und der
https://github.com/arendst/Tasmota/releases/tag/v14.5.0
?
Im Coding bin ich leider nicht der Experte, daher die Fragen.
Danke schön für Deine Hilfe!
Thorsten
Marcus (Dienstag, 01 April 2025 09:09)
@ottelo,
ja, stimmt. Hatte da wohl länger nicht mehr reingesehen.
Du gibst Dir da echt viel Mühe mit der Dokumentation.
Gruß
Marcus
ottelo (Montag, 31 März 2025 13:06)
@Marcus / franc
So stehts auch in meinem Scriptbeispiel für den MT174 :)
https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/#4c
Marcus (Montag, 31 März 2025 10:02)
@franc
gerade das:
>D
>B
->sensor53 r
>M 1
+1,3,o,0,300,STROM,1,100,2F3F210D0A
1,1-0:1.8.0*255(@1,Total Consumed,KWh,Total_in,3
1,1-0:2.8.0*255(@1,Total Delivered,KWh,Total_out,3
1,1-0:16.7.0*255(@1,Current Consumption,KWh,Power_cur,3
1,0-0:C.1.0*255(@#),Meter Number,,Meter_number,0
#
hier gefunden:
https://github.com/arendst/Tasmota/discussions/18725#discussioncomment-6011242
Vielleicht hilft es ja
Marcus (Montag, 31 März 2025 09:56)
@franc
Wie sieht denn dein Script (der >M Abschnitt) aus?
Hast Du mal probiert ob du die OBIS Kennzahl 16.7.0 (Summe Momentan Wirkenergie) vom Zähler geliefert bekommst?
Scheint aber davon abhängig zu sein wie dein Zähler konfiguriert wurde.
Wenn ich die Anleitung richtig interpretiere ist die 1.7.0 nur die positive, die 2.7.0 die negative und die 16.7.0 die Summe Momentan Wirkenergie.
https://www.manualslib.de/manual/417563/Iskraemeco-Mt174.html?page=47#manual
Gruß
Marcus
ottelo (Sonntag, 30 März 2025 13:11)
@franc
Das ist ja nicht so schön. Vielleicht bist du mit deiner Frage im photovoltaikforum besser aufgehoben. Z.b.:
https://www.photovoltaikforum.com/thread/116587-habe-ich-den-richtigen-z%C3%A4hler-iskra-mt174/
franc (Samstag, 29 März 2025 19:42)
Ich hab gerade versucht, per Skript meinen tatsächlichen, aktuellen Verbrauch (mit eingerechnetem PV-Ertrag) zu errechnen, damit ich OpenDTU-OnBattery verwenden kann.
Ich hab nämlich einen alten Iskra MT174 Zähler, der im aktuellen Verbrauch (1.7.0) nicht über die Phasen hinweg saldiert, nur der Gesamtverbrauch (1.8.0) stimmt wieder und 2.8.0 hat der Zähler ja nicht.
Also hab ich im 3 Sek. Loop den vorigen sml[2] Wert vom akt. sml[2] Wert abgezogen und mit 1200 multipliziert (also hochgerechnet von 3 Sek. auf eine Stunde), aber das ist bei weitem zu ungenau, kommt meist 0.000 raus oder ganz viel, ist also nicht zu verwenden.
Ich speise in L3 ein, aber 1.7.0 zeigt immer nur den Verbrauch von L1 + L2 + (Betrag von (Verbrauch von L3 - PV-Ertrag)). Auf Deutsch: der PV-Ertrag wird nur auf einer Phase von deren Verbrauch abgezogen, aber was darüber geht wird nicht mit dem Verbrauch der anderen Phasen verrechnet, sondern verpufft scheinbar. Aber in der Gesamtverbrauchsansicht (sml[2]) stimmt es wieder.
Gibt es da vielleicht irgendeinen Trick, dass man in so einem Zähler die tatsächlich saldierten Werte alle Phasen kriegen kann?
Ghina (Samstag, 29 März 2025 19:12)
Jetzt funktioniert es :-) Es muss heißen:
>S
if (sml[8]<-200) {
=>WebSend [192.168.178.77]/relay/0?turn=on
}
if (sml[8]>-50) {
=>WebSend [192.168.178.77]/relay/0?turn=off
}
Ghina (Samstag, 29 März 2025 16:34)
Hallo,
ich versuche meine neue Shelly plus plug S über den Tasmota IR Lesekopf zu schalten.
Ich habe das Script vom Lesekopf erweitert - funktioniert aber nicht. Hab schon einige Stunden damit verbracht.
Also wenn mehr als 200 W eingespeist werden, soll die Shelly anschalten; Unter 50 W Einspeisung wieder ausschalten.
Geht das? Wo steckt der Fehler?
Über die Konsole vom Lesekopf kann ich die Steckdose über webSend schalten.
Ich hänge mal das script an.
Vielen Dank für die Hilfe!
>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,SML
1,77070100010801ff@1000,Verbrauch_Tarif_1,kWh,Verbrauch_T1,7
1,77070100010802ff@1000,Verbrauch_Tarif_2,kWh,Verbrauch_T2,7
1,77070100010800ff@1000,Verbrauch_Summe,kWh,Verbrauch_Summe,7
1,77070100020800ff@1000,Einspeisung,kWh,Einspeisung,7
1,=h--
1,77070100240700ff@1,Leistung_L1,W,Watt_L1,2
1,77070100380700ff@1,Leistung_L2,W,Watt_L2,2
1,770701004c0700ff@1,Leistung_L3,W,Watt_L3,2
1,77070100100700ff@1,Leistung_Summe,W,Watt_Summe,2
1,=h--
1,77070100200700ff@1,Spannung_L1,V,Volt_L1,1
1,77070100340700ff@1,Spannung_L2,V,Volt_L2,1
1,77070100480700ff@1,Spannung_L3,V,Volt_L3,1
>A
if SML#Watt_Summe < -200
then WebSend [192.168.178.77] /relay/0?turn=on
endif
if SML#Watt_Summe > -50
then WebSend [192.168.178.77] /relay/0?turn=off
endif
Jan (Freitag, 28 März 2025 10:25)
Vilen Dank für die schnelle Antwort das Pobiere ich das gleich mal aus.
ottelo (Freitag, 28 März 2025 10:07)
Hi Jan,
alle Scripte sind so geschrieben, dass sie auch auf dem ESP8266 laufen, wenn man sie mit dem externen Script Editor überträgt.
Script nur mit Tages und Monat gibts es schon:
https://github.com/ottelo9/tasmota-sml-script/blob/main/4_Tasmota_SML_Script_Chart_PV_ohne_4h24h_Diagramme.tas
Jan (Freitag, 28 März 2025 09:10)
Vielen Dank für den ganzen Aufwand :D sehr HIlfreich :D
ich wollte mal fragen ob der ESP8266 es schaffen würde mit einem Chart script das nur Tages und Monatsverbrauch anzeigt?
Wenn ja wie müsste ich es anpassen das es nur das Anzeigt?
Vielen Dank
Ralf Schenk (Montag, 24 März 2025 22:25)
Ich möchte mich einfach für die gut zusammengestellten Informationen auf dieser Website bedanken. Sie haben mir mit Ihren aktuellen Tasmota Images sehr geholfen, auf Basis eines winzigen ESP32 SuperMini CE den Gaszähler unserer Ferienwohnung in Jurmala, Bucht von Riga in Lettland zu überwachen. Es hilft mir sehr als Baustein, die Energieeffizienz dieser aussergewöhnlichen Wohnung mit 2 Turmzimmern in aufwändigen einer denkmalkonformen Rekonstruktion des Holzhauses von 1904 zu steigern und ebenso die hier in Lettland üblichen monatlichen Meldungen des aktuellen Zählerstandes überhaupt zu realisieren ohne ständig auf eine Ablesung in Präsenz angewiesen zu sein. Die gesamte Heizungssteuerung wurde mit einer Vielzahl Sensoren, Thermostaten und dem phantastischen OpenTherm 3 https://diyless.com/product/opentherm-thermostat3 eines ukrainischen Entwicklers eingebunden in HomeAssistant optimiert.
Vielen Dank, Ralf Schenk aus Köln, rsATaix.de
ottelo (Montag, 24 März 2025 09:45)
Bei mir kommt wohl MQT, da ich MQTT bzw. HomeAssistant Support aktiviert habe.
Ich habe leider (noch) kein S2, von daher kann ich das selbst nicht testen. Wie gesagt habe ich das aktuelle Image auf meinem C3 und da läufts 1A mit https.
Hast du den Befehl auch mal im Script eingefügt oder immer nur in der Console getestet?
mike (Sonntag, 23 März 2025 21:53)
Bi mir kommt:
21:50:16.010 RSL: RESULT = {"WebQuery":"Done"}
ottelo (Sonntag, 23 März 2025 20:10)
@mike
Wenn ich den Websend Befehl (ohne ->) in die Console eingebe, bekomme ich "20:07:53.826 MQT: stat/tasmota_31F8D4/RESULT = {"WebQuery":"Done"}". Dauert bisschen, wird dann aber bei clever-pv angezeigt.
mike (Sonntag, 23 März 2025 18:28)
Ich habe einen ESP32-S2 mit folgendem Image Tasmota 14.4.1 (ottelo.jimdo.de)
In der ESP Konsole kommt folgender output ($$$$ = meine Daten):
18:25:40.871 CMD: Grp 0, Cmd 'WEBQUERY', Idx 1, Len 213, Pld -99, Data 'https://push.clever-pv.com/api/v1/$$$$ POST [Content-Type:application/json] {"watt": 0}'
18:25:41.906 RSL: RESULT = {"WebQuery":"Done"}
Danke für die Hilfe!!!
ottelo (Sonntag, 23 März 2025 16:41)
@mike
Bei mir funktioniert es hervorragend auf meinem ESP32C3 mit https. Welches Image verwendest du denn?
So muss das aussehen:
->WebQuery https://push.clever-pv.com/api/v1/xxxxxxxxxxxxxx/electricMeters/xxxxxxxxxxxxxxx?code=xxxxxxxxxxxxx POST [Content-Type:application/json] {"watt": %0power%}
mike (Sonntag, 23 März 2025 16:22)
Hallo, das senden der Stromzähler Daten an www.clever-pv.com funktioniert leider nicht. Der ESP32 schickt nur bei http und nicht bei https JSON Daten raus, dies konnte ich in Wireshark sehen. Dummer weise akzeptiert www.clever-pv.com kein http... Hast du dazu eine Lösung?
Gruß Mike
franc (Dienstag, 04 März 2025 16:45)
Vielen Dank für das Reparieren des Reboot-Bugs :)
Ich habe die neue Firmware erst gestern entdeckt und heute morgen gleich ohne Probleme OTA aufgespielt (die esp32c3), scheint bisher anstandslos zu funktionieren, kein Reboot bisher, danke!
Simon Grimm (Montag, 24 Februar 2025 10:19)
@Marcus,
das Kabel zwischen ESp und dem Zähler ist ca 50cm lang. Der Fototransistor war in einem 3D-Druck gehäuse. es fehlte halt noch ein ESP32 und das Kabel.
Habe dann unter 11 den Punkt für Home-Assistant gemacht mit der "glättung" der Werte und den Fototransistor um 180° gedreht.
Seit 3 Tagen habe ich keine Probleme mehr, wie eine Rückspeisung von 120.000 kWh am Tag, toi toi toi
Gru Simon
ottelo (Sonntag, 23 Februar 2025 19:18)
Im Kapitel 4c findest du auch noch ein Beispielscript für verschlüsselte Stromzähler (Landis). Kommt von einem Leser hier aus den Kommentaren.
ottelo (Sonntag, 23 Februar 2025 19:13)
@s.pieler
Vielleicht hilft dir das hier weiter:
https://github.com/arendst/Tasmota/discussions/14610
Hast du die Zeilen aus der Console mal hier eingegeben?
https://tasmota-sml-parser.dicp.net/
s.pieler (Sonntag, 23 Februar 2025 18:48)
Hallo,
kennt jemand evtl. ein Script für Tasmota und einen Landis+Gyr E450 Smartmeter?
Ich bin in Österreich beim Netz Burgenland, hier sind die Daten verschlüsselt.
Den Key habe ich eingetragen, jedoch werden keine Werte gesendet, diese bleiben auf 0.
Da ich nicht selbst kompilieren kann habe ich mir von ottelo.jimdo.de die bin Version geholt und eingespielt.
Version: Tasmota 14.4.1 (ESP32-C3 ottelo.jimdo.de) by Theo Arends
Läuft auf einem ESP32 C3 (habe ich auch fertig gekauft).
Mein Script:
>D
>B
smlj=0
=>sensor53 r
>R
smlj=0
>S
if upsecs>22
then
smlj|=1
endif
>M 1
+1,3,r,0,9600,Home,1
1,=so3,512
1,=so4,MEIN KEY
1,=so5,MEIN Authentication Key
1,pm(1.8.0)@1000,kWh_IN,kWh,kWh_IN,3;Wirkenergie Lieferung (+A)
1,pm(1.7.0)@1000,kW_IN,kW,kW_IN,3;Momentane Wirkleistung Lieferung (+A)
1,pm(2.8.0)@1000,kWh_OUT,kWh,kWh_OUT,3;Wirkenergie Bezug (-A)
1,pm(.2.7.0)@1000,kW_OUT,kW,kW_OUT,3;Momentane Wirkleistung Bezug (-A)
1,pm(3.8.0)@1000,kvarh_IN,kvarh,kvarh_IN,3;Blindenergie Lieferung (+R)
1,pm(.3.7.0)@1000,kvar_IN,kvar,kvar_IN,3;Momentane Blindleistung Lieferung (+R)
1,pm(4.8.0)@1000,kvarh_OUT,kvarh,kvarh_OUT,3;Blindenergie Bezug (-R)
1,pm(.4.7.0)@1000,kvar_OUT,kvar,kvar_OUT,3;Momentane Blindleistung Bezug (-R)
#
Das Ergebnis lt. Console:
20:46:39.155 SML: decrypted block: 50 bytes
20:46:39.157 :>02 0b 12 00 e7 12 00 e8 12 00 e4 12 01 8a 12 01
20:46:39.158 :>36 12 03 ec 06 00 00 0d c2 06 00 00 00 00 06 02
20:46:39.160 :>65 0c 08 06 00 00 00 00 09 08 33 30 30 35 32 30
20:46:39.161 :>30 32
20:46:39.204 :>30 32
20:46:44.106 SML: decrypted block: 50 bytes
20:46:44.107 :>02 0b 12 00 e7 12 00 e8 12 00 e4 12 01 9a 12 01
20:46:44.109 :>34 12 03 e6 06 00 00 0d d9 06 00 00 00 00 06 02
20:46:44.110 :>65 0c 0d 06 00 00 00 00 09 08 33 30 30 35 32 30
20:46:44.112 :>30 32
20:46:44.155 :>30 32
20:46:48.000 SML: decrypted block: 50 bytes
20:46:49.002 :>02 0b 12 00 e6 12 00 e8 12 00 e6 12 01 95 12 01
20:46:49.003 :>23 12 00 ef 06 00 00 06 31 06 00 00 00 00 06 02
20:46:49.005 :>65 0c 10 06 00 00 00 00 09 08 33 30 30 35 32 30
20:46:49.006 :>30 32
20:46:49.049 :>30 32
was läuft hier schief?
Ich möchte die Werte via MQTT an ioBroker senden und weitervearbeiten.
Kann mir jemand helfen?
Dirk (Freitag, 21 Februar 2025 20:10)
@Marcus
vielen Dank, es sind die Zeilen die damit ausgelesen werden.
Da der Tages- und Wochenzähler sowieso nicht funktionieren lasse ich mir nur den aktuellen Wert anzeigen und lese ihn somit mit sml[1-4] aus .
Für die Web-Anzeige reicht mir das aus, ich muss nicht mehr in den Keller und ich sehe ob alles läuft. Der Rest wird sowieso im IO-Brocker berechnet und angezeigt.
Eure Hilfe hat mir sehr weiter geholfen und ich verabschiede mich erst ein Mal.
Gruß Dirk
Marcus (Freitag, 21 Februar 2025 16:23)
@otello
Gelesen, gleich kopiert, getestet, perfekt. So wollte ich das haben.
Danke Dir
Schönes Wochenende
Marcus
ottelo (Freitag, 21 Februar 2025 16:00)
@Marcus
Das alte Script hatte beide Daten auf eine Y-Achse bezogen. Das findest du bequem vor dem Release vom 17.12 hier:
https://github.com/ottelo9/tasmota-sml-script/blob/11.11.2024 <- Release vom 11.11.2024:
Zeile im Script:
https://github.com/ottelo9/tasmota-sml-script/blob/f92b4d7bc5d2a79ff2255c41fdbfbe7467e1859f/Tasmota%20SML%20Script%20%2B%20Chart%20%2B%20PV.txt#L150
Die subroutine "#monthsub" geht von Zeile 150 - 178, die kopierst du und überschreibst es in deinem Script. Oder