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 (+ Energy Dashboard) für Tasmota
(5) Tasmota von extern erreichen (VPN Wireguard)
(6) Tasmota Firmware selbst erstellen (GitPod)
(7) Tasmota Firmware Flashen/Updaten
(8) -
(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]
Der kleine ESP8266 Hichi (weiter unten) mit seinem ESP01s reicht eigentlich für alles aus (auch für das Google Chart Script). Allerdings würde ich bei dem fast gleichen Preis 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
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
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
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 -> 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. Externer Link zu Google Drive.
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. Trotzdem biete ich speziell angepasste Images zusätzlich an. Ich habe diese in extra Ordner gepackt. Wenn euch etwas fehlen sollte, dann könnt ihr euch eine eigene Version bauen (siehe Punkt 6). Oder fragt in den Kommentaren.
ältere
----------------------------------------------
ESP32 (S1, S2, S3, C3 ):
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 (+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:
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 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 -> 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)!
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. Generell sollte man einen echten Hardware RX-Pin verwenden, da es bei einem anderen Probleme geben könnte (z.B. wird dann nur noch 8N1 Serial Format unterstützt). Siehe Hinweis (1) zu Software Serial Support. Dann müsst ihr nachschauen, welche Pins bei eurem ESP Modul heraus geführt werden: 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. Wenn ihr auch den TX Pin benötigt, um euren Stromzähler z.B. vorher aufzuwecken, dann solltet ihr echte TX/RX Pins verwenden. Unter Tasmota -> Configuration -> Configure Module muss dann der GPIO None eingestellt sein (ist Standard). Wenn ihr die Pins ändert, müsst ihr ggf. neustarten. Ihr dürft alle GPIOs verwenden, die euer ESP Board anbietet.
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
(1) Falls ihr keine Hardware RX/TX-Pins auf eurem ESP32 zur Verfügung habt, dann könnt ihr auch andere GPIOs verwenden. Dazu muss die Firmware aber mit "USE_ESP32_SW_SERIAL" kompiliert werden und vor dem Pin muss ein "-" (siehe auch tasmota SML Seite). Meine erstellten Firmwares hier haben ich ohne kompiliert. Ich werde aber in Zukunft immer mit SW_SERIAL Support kompilieren.
+<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. Configure other (Configuration -> Configure Other):
2. Sende/Abruf Intervall einstellen (Configuration -> Configure 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 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) Platzhalter
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"
]
]
}
}
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 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.
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-> 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
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
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/
ottelo (Dienstag, 24 Dezember 2024 14:57)
Mhhh ich hatte zu Modbus Slave (oder Server) nichts in der Tasmota Doku gefunden. Die Aussage von ChatGPT hatte mich jetzt echt umgehauen. Aber wenn ich nach den ganzen Sachen suche, finde ich nichts darüber.
z.B. tasmota-modbus.bin -> finde ich im aktuellen release nicht
Genau so die Commands existieren nicht (finde ich jedenfalls nicht):
ModbusEnable oder ModbusMode
Dann das Beispiel Tasmota Script. Dort wird # als Kommentar verwendet anstatt ;
Und "ModbusSend" gibt es nicht.
Man sollte der KI nicht immer alles glauben ;) Vielleicht hat sich die KI das irgendwie verwechselt.
- Frohe Weihnachten -
Andreas (Dienstag, 24 Dezember 2024 13:14)
@ottello
Zunächst herzlichen Dank für das freundliche Angebot und die Rückmeldung.
Das von Dir geschilderte ist eigentlich auch mein Kenntnisstand.
Werde das demnächst mal bei Gelegenheit mit einem esp32 mit Bosch bme680 (Tasmota Sensors) testen...
Wenn das klappt komme ich dann nochmal auf dein Angebot zurück.
Frohe Weihnachten und ein paar ruhige und besinnliche Tage.
Allerdings laut chatgpt :
Ja, Tasmota kann als Modbus Slave agieren, was genau das richtige Szenario für dein Setup ist, da das CMI von Technische Alternative als Modbus Master arbeitet. Somit ist die Kombination kompatibel. Hier sind die relevanten Details:
---
1. Tasmota als Modbus Slave
Tasmota unterstützt die Modbus-Slave-Funktionalität sowohl für Modbus RTU (RS485) als auch Modbus TCP (Netzwerk). Als Slave stellt Tasmota Werte in Modbus-Registers bereit, die von einem Master (in deinem Fall das CMI) abgefragt werden können.
---
2. Voraussetzungen
1. Tasmota-Firmware:
Stelle sicher, dass du eine Firmware mit Modbus-Unterstützung installiert hast, z. B.:
tasmota-sensors.bin (für Sensoren und Modbus).
tasmota-modbus.bin (speziell für Modbus).
Falls du dir nicht sicher bist, prüfe die Firmware über die Konsole:
Status 0
2. CMI-Konfiguration:
Das CMI muss als Modbus Master agieren und die IP-Adresse (bei TCP) oder die physische Verbindung (bei RTU) zu deinem Tasmota-Gerät kennen.
---
3. Modbus TCP in Tasmota aktivieren
Um Tasmota als Modbus TCP Slave einzurichten, folge diesen Schritten:
1. Modbus aktivieren:
ModbusEnable 1
2. TCP-Modus aktivieren:
ModbusMode 0
3. Slave-ID festlegen (z. B. ID 1):
ModbusId 1
4. TCP-Port konfigurieren (Standard: 502):
ModbusTCPPort 502
5. Überprüfen, ob Modbus aktiviert ist: Gib den Befehl ein:
Status 0
Stelle sicher, dass die Konfiguration übernommen wurde.
---
4. Modbus-Register beschreiben
Du kannst mit einem Tasmota-Skript oder einem Berry-Skript Werte auslesen (z. B. Zählerstände) und in Modbus-Register schreiben. Ein Beispiel für ein Tasmota-Skript:
Beispielskript für Zählerstand:
Angenommen, der Zählerstand wird im SML-Skript unter var1 gespeichert:
>D
M1 # Modbus aktivieren
>B
# Modbus-TCP aktivieren
TasmotaConfig["ModbusMode"]=0
>S
# SML-Daten verarbeiten und in Modbus-Register schreiben
if var1 != 0
ModbusSend 0x06, 10, var1 # Schreibe Zählerstand in Register 10
endif
Erklärung:
ModbusSend 0x06: Schreibt einen Wert in ein Modbus-Register.
10: Modbus-Register-Adresse (frei wählbar).
var1: Wert, der in das Register geschrieben wird (z. B. Zählerstand).
---
5. CMI als Master konfigurieren
Im CMI richtest du den Modbus Master wie folgt ein:
1. Modbus TCP hinzufügen:
Gib die IP-Adresse deines Tasmota-Geräts ein.
Stelle den Port auf 502.
2. Register abfragen:
Füge die gewünschten Modbus-Register hinzu (z. B. Register 10 für den Zählerstand).
Wähle das Datenformat, das zu deinem Tasmota-Skript passt (z. B. 32-bit Integer oder Float).
3. Abfrage testen:
Lass das CMI die Register regelmäßig abfragen (z. B. alle 10 Sekunden) und überprüfe die empfangenen Daten.
---
6. Test der Modbus-Verbindung
Tasmota testen:
Gib in der Konsole ein:
ModbusDump
Dadurch siehst du, welche Modbus-Register beschrieben oder abgefragt werden.
CMI testen:
Überprüfe, ob die Werte im CMI angezeigt werden. Falls nicht:
Stelle sicher, dass die Registeradressen übereinstimmen.
Überprüfe, ob die Modbus-ID korrekt ist.
---
Fazit
Tasmota kann problemlos als Modbus Slave agieren, was die Voraussetzung ist, damit das CMI als Modbus Master die Daten abfragen kann. Wenn du weitere Details oder Beispiele für dein spezifisches Setup benötigst, lass es mich wissen!
ottelo (Dienstag, 24 Dezember 2024)
Jetzt verstehe ich erst was du vorhast. Das geht leider nicht. Tasmota kann (noch) nicht als Modbus Slave eingestellt werden. Nur aktiv als Modbus Master andere Slaves abfragen. Jedenfalls ist das mein Kenntnissstand. Hier hatte jemand genau das gleiche vor:
https://github.com/arendst/Tasmota/issues/8841
Trotzdem Frohe Weihnachten :)
Andreas (Dienstag, 24 Dezember 2024 06:16)
@ottello
Ich habe mich wohl auch etwas von chatgpt in die Irre führen lassen.
SetOption142 hat wohl etwas mit dem WLAN und fritzbox zu tun.
Unabhängig davon ist ja modbus nicht drin.
Ich habe bisher keinerlei Erfahrung mit Modbus.
Das TA cmi kann wohl nur als Master fungieren und würde die Werte aktiv abfragen.
https://help.ta.co.at/DE/CMIHELP/modbus_1.htm
Wenn das kein Problem ist wäre das ganz toll wenn du mir mal bei Gelegenheit ein Image (Esp8266 1M, richtig) erstellen würdest.
Mach dir da bitte keinen Stress mit...
ottelo (Montag, 23 Dezember 2024 23:08)
@Andreas
Modbus TCP (USE_SML_TCP) ist nicht im ESP8266 Image enthalten, korrekt, außer ich habe es mal für jemand extra inkludiert, da müsstest du mal im Download Ordner suchen.
Ansonsten könnte ich dir das Image erstellen. Vielleicht schaffe ich es morgen. Für 1M Flash ESP?
Andreas (Montag, 23 Dezember 2024 22:53)
Hallo,
ich würde gerne die Zählerstände und den aktuellen Verbrauch von einem Technische Alternative CMI per Modbus TCP abfragen und in die per Can Bus verbundene UVR16X2 übernehmen.
Modbus kann ich wohl mit SetOption142 mit 1 einschalten.
Ich kann allerdings den Modus nicht mit ModbusMode 0 auf TCP oder die id mit ModbusId 15 einstellen.
Sind die dazu benötigten Funktionen nicht im bereitgestellten Image (esp8266 1m) nicht verfügbar?
Für Hinweise und Tipps zur Umsetzung besten Dank.
Thomas (Sonntag, 22 Dezember 2024 15:18)
@Marcus Die ganzen Einträge unten über den MT174 habe ich schon alle gelesen und mit dem anderen User hatte ich schon im Photovoltaikforum Kontakt. Mein Zähler will nicht mit mir reden.
Thomas (Sonntag, 22 Dezember 2024 14:42)
@Marcus Das mit dem 7e1 habe ich schon gelesen in der Anleitung. Aber ich hatte Kontakt mit dem Support von KDK Dornscheidt. Und der hat mit das hier gemailt.
die Parität des MT174 für den Großhandel ist standardmäßig auf „None“ eingestellt – das sollten Sie in dem Terminalprogramm berücksichtigen.
Ich weiß jetzt nichts mehr der Zähler sendet mir keine Werte.
Marcus (Sonntag, 22 Dezember 2024 12:02)
@Thomas
Welche GPIOs verwendest du? Hast du bei logging: serial logging auf none gestellt? Nicht das ESP auf GPIO 1 logging Daten sendet und dein Zähler dann nicht das bekommt, was er erwartet.
Wenn du ganz unten in den Kommentaren auf alle Anzeigen gehst und nach den MT174 suchst, gibt es noch ältere Einträge zu dem Zähler.
Ich bin jedenfalls mit meinen Ideen am Ende.
Viel Erfolg und poste bitte wie es geklappt hat, falls es klappt.
Marcus (Sonntag, 22 Dezember 2024 10:40)
@
Thomas
Hier steht jetzt 7E1.
https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/iskraemeco_mt174
Marcus (Sonntag, 22 Dezember 2024 10:30)
@Thomas,
Ich bin hab da selbst ich viel Ahnung davon. Hatte nur noch im Hinterkopf das das ein Konsolenbefehl war.
https://tasmota.github.io/docs/Commands/#serial-bridge
Das 7n1 die 2 ist hatte ich durch testen rausbekommen.
Ich hoffe es hilft dir weiter.
Gruß
Marcus
Thomas (Samstag, 21 Dezember 2024 20:49)
@Marcus wo findet man denn die Einstellungen von diesem Befehl Serialconfig. Ich finde bei Google dazu leider nichts.
Ich hatte auch schon mit dem Hersteller des Zählers Kontakt. 7n1 und 300 baud ist die richtige Konfig. Das mit dem /?! CR LF steht ja so im Script drin, aber der Zähler sendet nichts. So langsam glaube ich echt dass die optische Schnittstelle an dem Zähler defekt ist.
Thomas (Samstag, 21 Dezember 2024 20:35)
@Marcus
Okay, Serialconfig 2 hab ich gemacht auch das Script kopiert. Lesekopf neu gestartet. Jetzt kommt in der Console bei Serialconfig das 7n1 aber es kommen weiterhin keine Werte vom Zähler. Egal wie ich den Lesekopf drehe.
Auch mit sensor53 d1 kommt nur die Unterste Zeile.
Sobald ich den Lesekopf an meinen MT631 ran mache und das Script von dem Zähler verwende kommen sofort Daten. Es liegt also nicht am Lesekopf.
576 MQT: stat/tasmota_20D1F7/RESULT = {"Time":"2024-12-21T20:29:22","Uptime":"0T00:00:43","UptimeSec":43,"Heap":19,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":31,"MqttCount":1,"POWER":"OFF","Wifi":{"AP":1,"SSId":"xxxxxxxxxxxx","BSSId":"0C:72:74:3F:6C:C8","Channel":11,"Mode":"11n","RSSI":50,"Signal":-75,"LinkCount":2,"Downtime":"0T00:00:28"}}
20:29:22.625 MQT: stat/tasmota_20D1F7/STATUS1 = {"StatusPRM":{"Baudrate":300,"SerialConfig":"7N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota/release/tasmota.bin.gz","RestartReason":"External System","Uptime":"0T00:00:43","StartupUTC":"2024-12-21T19:28:39","Sleep":50,"CfgHolder":4617,"BootCount":114,"BCResetTime":"2024-12-06T18:50:38","SaveCount":118,"SaveAddress":"F6000"}}
20:29:22.677 MQT: stat/tasmota_20D1F7/STATUS11 = {"StatusSTS":{"Time":"2024-12-21T20:29:22","Uptime":"0T00:00:43","UptimeSec":43,"Heap":15,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":30,"MqttCount":1,"POWER":"OFF","Wifi":{"AP":1,"SSId":"ZengerHomeWLAN","BSSId":"0C:72:74:3F:6C:C8","Channel":11,"Mode":"11n","RSSI":50,"Signal":-75,"LinkCount":2,"Downtime":"0T00:00:28"}}}
20:29:22.725 MQT: stat/tasmota_20D1F7/STATUS10 = {"StatusSNS":{"Time":"2024-12-21T20:29:22","STROM":{"Total_in":0.000,"Total_out":0.000,"Power_cur":0.000,"Meter_number":""}}}
20:29:25.083 MQT: tele/tasmota_20D1F7/STATE = {"Time":"2024-12-21T20:29:25","Uptime":"0T00:00:46","UptimeSec":46,"Heap":18,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":31,"MqttCount":1,"POWER":"OFF","Wifi":{"AP":1,"SSId":"ZengerHomeWLAN","BSSId":"0C:72:74:3F:6C:C8","Channel":11,"Mode":"11n","RSSI":46,"Signal":-77,"LinkCount":2,"Downtime":"0T00:00:28"}}
20:29:25.088 MQT: tele/tasmota_20D1F7/SENSOR = {"Time":"2024-12-21T20:29:25","STROM":{"Total_in":0.000,"Total_out":0.000,"Power_cur":0.000,"Meter_number":""}}
20:29:40.933 CMD: Sensor53 d1
20:29:40.939 MQT: stat/tasmota_20D1F7/RESULT = {"Time":"2024-12-21T20:29:40","SML":{"CMD":"dump: 1"}}
Marcus (Samstag, 21 Dezember 2024 18:28)
@Thomas
In der Konsole : serialconfig 2
Marcus (Samstag, 21 Dezember 2024 13:19)
@Thomas
Probier mal dieses aus.
Gpio's musst du eventuell noch anpassen. Hatte ich mir mal für einen Freund rausgesucht, der jetzt aber doch einen anderen Zähler bekommen hat.
Vielleicht geht es ja damit bei Dir.
>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
#
Thomas (Freitag, 20 Dezember 2024 12:30)
Hallo, ich habe einen MT174 und versuche seit einigen Tagen mit dem Hichi Lesekopf den Zähler auszulesen. Aber es funktioniert mit dem Tasmota Script für den MT174 einfach nicht. Hatte auch schon Kontakt mit dem Hersteller KDK Dornscheidt des Zählers. Der Zähler benötigt wohl in der seriellen Konfig 7n1 und eine Baudrater von 300. Wenn ich den Lesekopf neu boote sehe ich in der Konsole bei serial config immer 8n1 stehen.
stat/tasmota_20D1F7/STATUS1 = {"StatusPRM":{"Baudrate":300,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":
Wo lässt sich das denn umstellen auf 7n1? Im Photovoltaikforum hat einer geschrieben man muss unter Config Module Generic (18) einstellen. Da stand bisher Sonoff Basic (1). Okay, und dann? Unter Generic (18) gibts die GPIO1-17 Einstellungen mit widerum 20 verschiedenen Parametern zum anklicken. Im Moment sthet da alles auf none. Welchen muss man da ja jetzt anklicken damit der Lesekopf mit 300 baud und 7n1 sendet.
franc (Dienstag, 17 Dezember 2024 11:02)
OK, danke :)
Habs sogleich eingebaut.
Scheint zu funktionieren, weil vorher wäre der ESP längst schon neu gestartet, wenn ich in der WebUI unterwegs war.
ottelo (Montag, 16 Dezember 2024 13:27)
Einfach bei den subs (#daysub, #monthsub #dayprod) folgende of abfrage einbauen:
if wm>0 {
….
}
Ansonsten werden die Diagramme sehr häufig neu geladen.
franc (Montag, 16 Dezember 2024 13:17)
Hallo ottelo,
du schreibst: "Der Rebootfix via Skript ist aber noch nicht die finale Lösung. Der ESP rebootet trotzdem ab und zu mal, wenn man auf der Weboberfläche bleibt...."
Was hattest du denn da konkret geändert? Ich hab vielleicht noch ein älteres Script (ca. Oktober 24) im Einsatz (aber schon ziemlich angepasst, daher ist der Vergleich mit dem aktuellen schwierig geworden), da kommt noch ein Reboot sobald ich die WebUI aufrufe und dann zB was anklicke (zB Console).
Sonst lauft es völlig ohne Reboot.
Oder gibt es mittlerweile eine dauerhafte Korrektur, also dass auch nicht nur gelegentlich Reboots kommen?
Danke!
Jens H (Montag, 16 Dezember 2024 11:06)
... und schon ist der Blutdruck wieder da, wo er hingehört :-)
Danke!
ottelo (Sonntag, 15 Dezember 2024 20:37)
Ja das hab ich auch. Das passiert wenn die Werte sehr klein sind. Dann wird keine Skala angezeigt. Das ist jedenfalls aktuell meine Vermutung.
Jens H (Sonntag, 15 Dezember 2024 18:51)
Hi ottelo,
tut mir wirklich leid, dass ich nochmal stören muss: Im Diagramm "Tageseinspeisung Monatsansicht" fehlt die Beschriftung/Skalierung der y-Achse. An deinem Skript ist (außer SML) nichts verändert.
Was mache ich falsch?
-Jens
Jens H (Mittwoch, 11 Dezember 2024 14:15)
@ottelo
Uff, mit so schneller Antwort habe ich nicht gerechnet - so wie in deiner rechtsseitigen Fassung sah es bei mir auch aus, und jetzt wollte ich gerade schreiben, dass schon nach dem (gefühlt) 57. Neustart die Statistik-Prüfung gemerkt hat, dass "die Maßeinheit geändert" wurde. Nach "berichtigen" war dann endlich alles fein.
ottelo (Mittwoch, 11 Dezember 2024 13:18)
@Jens
Danke für das viele Lob :) Die Anleitung wird stets noch weiter ausgebaut und verbessert. Ich hatte das nur einfach schnell runtergeschrieben, wie es oft mal so ist und dann über die Jahre an vielen Stellen verbessert.
Mir fällt gerade auf, dass der Inhalt/Formatierung in den grauen Boxen hier teilweise zerstückelt ist. Liegt wohl wieder an jimdo.
Hier mal die customize.yaml und configuration.yaml von mir als Vergleich. Evtl. hilft es dir weiter:
https://imgur.com/a/jWhfmaN
Jens H (Mittwoch, 11 Dezember 2024 10:10)
Moin Ottelo!
Erstmal auch von mir das Riesen-Kompliment, dass das die bei weitem beste Anleitung ist, die ich bisher gesehen habe (und mein erster Kontakt zu Computern, eine IBM 1401, war 1969). Kann man dir ein Kilo Kaffee zukommen lassen? :-)
Mein Problem:
Übernehme ich die Einträge für die configuration.yaml so, wie sie hier beschrieben sind, beschwert sich schon FileEdit über "bad indentation".
Schreibe ich es so:
"homeassistant:
customize:
sensor.1isk0078612909_z1_power_curr:
device_class: power
unit_of_measurement: 'W'
sensor.1isk0078612909_z1_total_in:
device_class: energy
unit_of_measurement: 'kWh'
state_class: total_increasing
sensor.1isk0078612909_z1_total_out:
device_class: energy
unit_of_measurement: 'kWh'
state_class: total_increasing"
ist der FileEditor einverstanden, aber "Konfiguration prüfen" in den Entwicklerwerkzeugen reklamiert "Integration error: customize - Integration 'customize' not found."
Entwicklerwerkzeuge-Statistik zeigt in beiden Fällen die drei Statistiken und findet keine Fehler.
Aber ich kann unter Dashboards-Energie nichts einbinden, weil es angeblich keine Statistiken gibt. Was mache ich falsch? Das Tasmota-Interface zeigt perfekt die Grafiken an.
Das mit dem Kaffee war ernst gemeint, du verdienst mehr als ein geschriebenes "Danke"
-Jens
Klaus (Dienstag, 10 Dezember 2024 19:47)
Ich hab einen DWS DZG20 Zähler hier hängen, daher habe ich die Version mit Fehlerbeseitigung für negative Werte genutzt, allerdings tritt der Fehler trotzdem auf. Was kann ich da tun?
Kannst du evtl. nochmal die Syntax hinter deinem Bugfix erklären?
ottelo (Dienstag, 10 Dezember 2024 17:55)
Er meint das fertige Kit, ESP und externen Lesekopf, das ist aktuell nicht mehr verfügbar (oder meintest du was anderes?)
Siehe Kapitel 1A) Ready2Use Lesekopf + ESP außerhalb vom Sicherungskasten
Natürlich kannst du auch jeden X-beliebigen ESP nehmen und da ein TTL Lesekopf anschließen. Das habe ich auch unter 1)Was braucht ihr, beschrieben.
Marcus (Dienstag, 10 Dezember 2024 16:25)
@ Stephan:
meinst Du die Variante?
https://www.ebay.de/itm/314349991664?itmmeta=01JERJQ7F5SDCEKH3BNGKJ3M22&hash=item4930b836f0:g:jPkAAOSwTGtj0hia
ottelo (Dienstag, 10 Dezember 2024)
Wenn du damit aus deinem Zähler(Metall)Kasten raus kommst könnte es klappen. Die Stabantenne bringen schon einiges aber nur ein Test wird zeigen ob’s klappt. Aber wenn du mit deinem Handy dort Empfang hast wird es bestimmt klappen.
Stephan (Dienstag, 10 Dezember 2024 13:17)
Würde so einer ESP32-WROOM-32U mit WiFi 2.4 GHz Antenne
funktionieren?
Das Problem ist, dass ich 2 Beton decken dazwischen habe.
Meine Kamera in meinem Keller raum hat empfang, aber ohne externe Antenne sehe ich da schwarz.
ottelo (Dienstag, 10 Dezember 2024 11:05)
Mhh stimmt, das Angebot ist nicht mehr vorhanden. Ich habe auch nichts vergleichbares gefunden. Scheint eine Marktlücke zu sein :). Dann bleibt dir leider aktuell nur der Selbstbau (direkt unter dem Link oben).
Stephan (Dienstag, 10 Dezember 2024 08:23)
Gibt es noch eine Quelle, für die Variante mit externem ESP als Fertiggerät? Bei dem Ebay link bekomme ich nichts passendes angezeigt.
Sascha Mike (Sonntag, 08 Dezember 2024 18:26)
@Lucky
Ich habe den WROOM, Du kannst unten in den Kommentaren mal schauen über was ich so gestolpert bin.
Kannst ja mal Dein Skript posten. Tx und Rx konnte ich auch nicht verwenden, aber 18/19. Man muss dann die GPIOs im Skript auf 18/19 einstellen. (18 für die Übertragung der Daten des Stromzählers und 19 damit der nicht sendet)
ottelo (Sonntag, 08 Dezember 2024 17:33)
@Stephan
Ich glaub in einer Firmware Version ging das nicht mit der Abfrage. Script ist egal. Versuch mal zu updaten.
Was man hinter Status anhängt wird hier erklärt:
https://tasmota.github.io/docs/Commands/#status
%20 = Leerzeichen
10 = show connected sensor information (replaces 'Status 8')
@Max
Ich nutze auch ein rpi für Home Assistant. Wäre eine gute Idee. Vielen reicht aber die Anzeige auf dem ESP mit Google Charts. Muss aber jeder selbst wissen :)
@Lucky
Beim ESP32 kann man eigentlich nichts falsch machen. Dein Wroom ist ein gängiger Typ. Versuche mal meine neue Firmware mit swserial (im Dateinamen). Um Software Serial mit einem PIN zu verwenden wie gesagt ein Minus - vor den PIN einfügen im Script. Wenn du die Sendediode nicht brauchst, dann auch nicht an den ESP (TX Pin) anschließen. Sparst du dir Pins und ärger.
Max (Sonntag, 08 Dezember 2024)
Hallo,
ich bin durch meine Recherche auf Deine sehr informative Seite zum Thema Zähler auslesen gekommen.
Ich habe seit gestern einen bitshake air in Betrieb, der soweit auch funktioniert. Allerdings bekomme ich derzeit den WLAN-Empfang auf einem etwas umständlichen Weg zustande.
D.h. die Anbindung an meine Fritzbox läuft derzeit über Devolo Powerline Verbindung in den Keller und dort über einen Netzgear WLAN Repeater zum Bitshake Smartreader.
Kannst Du mir bitte einen Tipp geben, wie das einfacher zu gestalten wäre ?
Meine Idee wäre, an das im Keller vorhandene LAN-Kabel einen Switch zu hängen und daran zB einen Raspberry PI. Hätte den Vorteil, die ausgelesenen Werte auch grafisch zB über Home Assistent darstellen zu können.
Liege ich da richtig ?
Vielen Dank !
Dennis (Sonntag, 08 Dezember 2024 11:17)
@ottelo
Genial! Firmware upgrade durchgeführt und es kamen direkt die korrekten Werte für alle drei Zähler an. Via MQTT sind diese auch sofort in Home Assistant verfügbar.
Vielen, vielen Dank für das schnelle Update.
Lucky0077 (Sonntag, 08 Dezember 2024 11:13)
Vielen Dank,
Ich melde mich zurück wenn es läuft.
@Ottelo ist das esp32 Teil von mir nicht so gut gewählt worden?
Der wemos d1 mini hat sich leider verabschiedet, ich kann ihn nicht mehr flashen, immer Fehler.. hab schon alles versucht. Daher jetzt der esp32
Du bist der beste. Vielen Dank für deine Hilfe
ottelo (Sonntag, 08 Dezember 2024 10:00)
@Dennis
Ich habe tasmota32c3 mit SW Serial kompiliert und hochgeladen. Ich habe nun auch meine Beschreibung angepasst, siehe Kapitel 4d. Vor dem Pin muss dann ein - eingefügt werden, damit der SML-Treiber Software Serial verwendet. Zu beachten ist, dass dann nur noch 8N1 (8 Datenbits, kein Paritätsbit, ein Stoppbit) unterstützt wird (Tasmota SML Seite Hinweis "Software serial only supports 8N1 serial format. Must use hardware serial for e.g. 8E1!").
Stephan (Sonntag, 08 Dezember 2024 00:18)
Hi ottelo,
hat leider nicht funktioniert...bekomme auch wie gesagt wenn ich " http://-meine-IP-/cm?cmnd=status%2010 " im Browser eintippe lediglich
{"StatusSNS":{"Time":"2024-12-07T17:26:27"}} das als Antwort. Benutze aktuell noch Tasmota 12.2.x und eine ältere Version deines Skripts - kann es ggf. liegen?
Wie gesagt in der Weboberfläche erscheint alles einwandfrei mit richtigen Graphen usw....
Lucky0077 (Samstag, 07 Dezember 2024 20:12)
Vielen Dank Ottelo, sag mir bitte bescheid wenn du es gemacht hast. Ich bin dir sehr dankbar
ottelo (Samstag, 07 Dezember 2024 17:44)
Bei mir ist das opendtu so eingestellt:
Stromzähler:
URL Get (json + http)
http://192.168.178.31/cm?cmnd=status%208
mit Uswrname und Passwort
Json Pfad bei mir
StatusSNS/MT175/Power_curr
Ich nutze das +PV Skript 1:1 so wie ich das zum Download hier anbiete.
Stephan (Samstag, 07 Dezember 2024 17:39)
Hi ottelo,
besten Dank für deine Arbeit nutze den Tasmota schon seit fast 2 Jahren zur Visualisierung meines Stromverbrauchs (inklusive Google Charts) - funktioniert auch wunderbar; allerdings will ich nun das Projekt mit OpenDTU on Battery erwitern um einen Akku bzw. Wechselrichter des Balkonkraftwerks dynamisch zu steuern.
Aktuell scheitere ich aber noch an der Eingabe des JSON-Pfads... wenn ich (wie du in FAQ unter Frage 9 beschrieben hast) den entsprechenden Request im Browser eingebe, erscheint lediglich
{"StatusSNS":{"Time":"2024-12-07T17:26:27"}}
dies. Wo liegt der Haken? Ggf am Skript? Nutze einen ESP32 mit 4 MB Flash. Die Anzeige über Tasmota im Browser funktioniert einwandfrei....
Über Tipps oder Anregungen würde ich mich freuen ;)
ottelo (Samstag, 07 Dezember 2024 14:19)
Ich gucke nachher mal und erstelle dir ggf. eine angepasste Version.
Dennis (Samstag, 07 Dezember 2024 14:11)
Hi ottelo,
erst mal großes Lob für die sehr informative Website und die ganzen Firmwares. Allerdings bekomme ich bei meinem ESP32C3 mit deiner 14.3.0 Firmware den 3. Stromleser nicht zum laufen. Ich habe schon gelesen, dass der ESP32C3 nur zwei UARTS hat und man einen SW_SERIAL verwenden muss.
Mein Skript sieht (gekürzt) gerade so aus:
+1,3,s,16,9600,Z1,1
+2,7,s,16,9600,Z2,6
+3,-21,s,16,9600,Z3
GPIO21 für den Zähler Nummer 3 stimmt auf jeden Fall und funktioniert auch wenn ich bspw. Zähler 2 wie folgt ersetze:
+2,21,s,16,9600,Z3,20
Brauche ich für den SW_SERIAL eine angepasste Firmware oder sollte das mit deiner 14.3.0 für den ESP32 funktionieren?
Haris (Donnerstag, 05 Dezember 2024 18:14)
Hat deine Esp32 wroom Devkit rx pin nicht auf gpio 3!?
Warum 18/19
https://lastminuteengineers.com/esp32-pinout-reference/
ottelo (Donnerstag, 05 Dezember 2024 08:28)
Sensor d1 zeigt nur was an, wenn auch wirklich Daten reinkommen. Sonst wird nichts angezeigt.
Lucky0077 (Donnerstag, 05 Dezember 2024 00:37)
Hey,
Ich hatte es an GPIO16 und 17
18 und 19
5 und 4
Alles probiert und immer cmod 1
Der muss doch zum test wenn ich sensor53 d1 eingebe was anzeigen ohne das er auf dem Stromzähler sitzt der lesekopf richtig?
Ja der Zähler funktioniert, hatte vorher den ESP8266 wemos d1 mini und das lief. Aber mit dem großen Board habe ich jetzt so meine Probleme. Oder ich hab einen Denkfehler?
In der config unter Configure Module habe ich nicht Generic (0). Sondern devkit 1 und 0 und irgendwas anderes. Heißt das dann bei dem von mit devkit 0 anstatt Generic (0).
Ich war gestern echt am verzweifeln. Ich hab bestimmt 10x umgelötet und nichts tat sich.
Ich hätte das ganze ja gerne für unseren Verein, damit man Gas, Strom und Wasser ablesen kann im Vereinsheim. Daher teste ich jetzt den großen ob der noch besser läuft als der ESP8266
Danke ottelo für deine Hilfe
Sorry wenn ich euch so nerve.
ottelo (Mittwoch, 04 Dezember 2024 08:07)
@Lucky0077
Welchen GPIO du frei verwenden kannst findest du hier:
https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
Du brauchst nicht unbedingt die Hardware RX/TX GPIOs verwenden, nur so als Hinweis. Möglicherweise ist an diesen Pins ja der USB-Controller dran. Deshalb einmal auf die Seite schauen.
Sendet dein Stromzähler denn überhaupt? Kann man mit Laptopkamera gut sehen. Lesekopf richtig herum dran?
Lucky0077 (Dienstag, 03 Dezember 2024 23:53)
Mein esp32 devkit habe ich rx und tx an 18 und 19 , usw alles probiert und immer dump1
Was macht ich falsch? Habe ich die rx und tx an den falschen Pins? Ich verzweifel seit Tagen...
Lucky0077 (Dienstag, 03 Dezember 2024 21:42)
Guten abend, ich habe den ESP 32 wroom 32 esp32 devkit, ist da der falsche? Ich wollte nachdem der wemos d1 abgeraucht ist ein besseren benutzen. Aber irgendwie weiß ich nicht wie und wo ich rx und tx anschließen soll, ich hab die rx und tx Pins schon probiert aber läuft nichts. Wenn das dass falsche Board ist welches ist das richtige?