NEWS
Stromzähler per Sonoff ESP8266 auslesen
-
die wechselt bei mir zwischen 1.8 und 2.8
Zeigt also abwechselnd Bezug und Einspeisung anHab mein BKW aber auch offiziell angemeldet und es wurde explizit ein 2-Richtungszähler dann eingebaut (und aktiviert .. )
Ich denke das deiner kein 2-Richtungszähler ist, wenn er nur 1.8.0 anzeigt, bin ich mir da sogar sehr sicher -
Moin,
ich habe aktuell den SmartMeter-Adapter im Einsatz. Da ist der IR-Sensor via USB am Raspi. Da sowieso ein NodeMCU in der Nähe ist, würde ich es bevorzugen, dass ich den Sensor einfach an den NodeMCU bastel udn das ganze via MQTT übertrage. Da spar ich mir einen Adpter und ne Fehlerquelle.
Wie muss ich den USB anklemmen?
5V ist klar, GND auch. WO aber D- und D+ ranklemen bzw. wie in Tasmota eintragen? -
@oberfragger
ich nutze einen ESP32hatte mich hier durchgehangelt
https://forum.creationx.de/forum/index.php?thread%2F1095-d0-zähler-sml-auslesen-mit-tasmota%2F=&pageNo=1rx an rx und tx (oder eben andersrum) war eben pin 3 wie im Script angegeben
-
hey also meins schaut aktuell so aus.
Ich bin nur auch am verzweifeln den die variablen p: außer vom Tag bleiben einfach nicht dauerhaft gespeichert.
Vermute das liegt evtl. daran das es zu viele wahrscheinlich sind.
>D rssi=0 s1="Tagesverbrauch: {m}<b><span style=>" v2=0 v3=0 sec=0 hr=0 md=0 yr=0 p:sm=0 sd=0 p:sme=0 sde=0 p:sma=0 p:smb=0 smn=0 smo=0 p:sya=0 p:syb=0 syn=0 syo=0 sspr=0.2599 ssps=0.078 yspr=0 ysps=0 yspt=0 ysgp=150.00 ysfak=0.4109 getag=0 ystag=0 yetag=0 >T v2=SML#Total_in v3=SML#Total_out rssi=Wifi#RSSI >B ->sensor53 r >S ;Tagesverbrauch hr=hours if chg[hr]>0 and hr==0 then sm=v2 sme=v3 svars endif if upsecs%tper==0 then sd=v2-sm sde=v3-sme endif ;Monatsverbrauch md=day if chg[md]>0 and hr==0 and md==1 then sma=v2 smb=v3 svars endif if upsecs%tper==0 then smn=v2-sma smo=v3-smb endif ;Jahresverbrauch yr=year if chg[yr]>0 and hr==0 and md==1 then sya=v2 syb=v3 svars endif if upsecs%tper==0 then syn=v2-sya syo=v3-syb endif ;Kosten ystag=sd*sspr+ysfak yetag=sde*ssps getag=ystag-yetag yspr=syn*sspr+ysgp ysps=syo*ssps yspt=yspr-ysps endif >J ,"Verbrauch Tag":"%sd%" ,"Einspeisung Tag":"%sde%" ,"Verbrauch Monat":"%smn%" ,"Einspeisung Monat":"%smo%" ,"Verbrauch Jahr":"%syn%" ,"Kosten pro Tag":"%2getag%" >W WLAN Empfang: {m}%rssi% ============== Tagesverbrauch: {m} %2sd% KWh Tageskosten: {m} %2getag% € TagesverbrauchEins: {m} %2sde% KWh Monatsverbrauch: {m} %2smn% KWh MonatsverbrauchEins: {m} %2smo% KWh Jahresverbrauch: {m} %2syn% KWh JahresverbrauchEins: {m} %2syo% KWh ============== Strom Preis/kWh: {m} %4sspr% € Strom Grundpreis: {m} %2ysgp% € -------------- Strom Bezug lfd. Jahr:{m} %2yspr% € Strom Einspeisung lfd. Jahr:{m} %2ysps% € Strom Gesamtkosten lfd. Jahr:{m} %2yspt% € ============== Strom Zählerstände: aktuell: {m} %2v2% KWh 0:00 Uhr: {m} %2sm% KWh 0:00 UhrEins: {m} %2sme% KWh Monatsanfang: {m} %2sma% KWh MonatsanfangEins: {m} %2smb% KWh Jahresanfang: {m} %2sya% KWh ============== >M 1 +1,13,s,1,9600,SML 1,77070100010800ff@1000,Zählerstand,KWh,Total_in,2 1,77070100020800ff@1000,Einspeisung,KWh,Total_out,2 1,77070100100700ff@1,Stromverbrauch,W,Power_curr,0 1,77070100100700ff@1000,Aktuell,kW,Actual_pow,3 1,7707010060320101@#,Meter Nr,,Meter_number,0 #
-
Moin zusammen,
ich habe meinen ESP8266 erfolgreich mit den nötigen Parametern geflasht und einen Fototransistor mit Pullup an D7 (GPIO13) angeschlossen.
Mein Script:>D >B ->sensor53 r tper=10 >M +1,13,s,1,9600,SML 1,77070100010800ff@1000,Arbeit,kWh,Arbeit,1 1,77070100100700ff@1000,Leistung,W,Leistung,1 1,7707010002080061@1000,Woche,kWh,Woche,1 #
liefert mir auch den Gesamtverbrauch, jedoch nicht den momentanen Wert der aktiven Leistung (oder auch andere Werte).
Output sensor53 d1:
Hat jemand eine Idee, woran das liegen könnte?Den Pin habe ich eingegeben und sehe auch über das Display vom Zähler (NORAX3D) alle Werte.
-
@bluetnt
geht das denn bei irgendwem sonst mit dem Zähler?
denn mein emh liefert diese Daten auch, nur nicht über die optische Schnittstelle raus -
@euro Meiner schon, das ganze läuft mit Tasmota 8.1.0.4
Bei dir steht da "@1000" und bei mir "@1" Eventuell ist das der Grund?!Es ist allerdings auch so, dass nicht jeder Energieversorger alle Parameter freischaltet.
-
@ralfth
Danke für den Input
meiner liefert die aktuelle Leistung auch, nur keine Details wie Tages/Wochen Stände
meinte das mit meinem Post. Wenn die aktuelle Leistung nicht geht ist natürlich Mist, geht ja meist drum diese Info zu bekommenkonnte Danke ioBroker diese Werte vom Zähler an meine Wallbox übergeben, die dadurch dynamisches Solarladen umsetzen kann (Leistung regelt zw 6 und 16A) . Klasse Sache
-
@ralfth , die @1000 ist nur der Devisor. Ändere ich den auf z.B.1 ist der angezeige Wert nur um 3 Nullen länger...
https://tasmota.github.io/docs/Smart-Meter-Interface/#meter-metrics
Ich werde meinen Energieversorger mal anschreiben. Jedoch wäre es schon verwunderlich, da ich ja über das Display alle Werte sehen kann nachdem ich initial den Pin eingegeben hatte. -
Hey ich bin neu hier und wollte mir auch einen smarten Stromzähler mit einem ESP8266 Bauen.
Leider bin ich noch nicht ganz fündig geworden ob mein vorhandener Stromzähler kompatibel ist.
Es handelt sich dabei um einen dzg dws7412.1.
Hat den jemand von euch schon zum laufen gebracht und gibt es dann dabei was zu beachten?
Mit freundlichen Grüßen
Christian
-
such mal hier im Thread und schau dir Beitrag 187 an
-
Hallo zusammen - super Arbeit mit dem Script.
Ich bekomme aber das Tasmota-Projekt im Atom im Bezug auf
USE_SCRIPT_WEB_DISPLAY etc. nicht richtig konfiguriert.
Daher meine Frage, könnte jemand eine BIN hier veröffentlichen?Danke schon mal.
-
@chaot said in Stromzähler per Sonoff ESP8266 auslesen:
@bobofet
Das Script:>D rssi=0 s1="Tagesverbrauch: {m}<b><span style=>" v2=0 hr=0 md=0 yr=0 ;Strom p:sm=0 sd=0 p:sma=0 smn=0 p:sya=0 syn=0 sspr=0.304 yspr=0 ysgp=120 y€=0 >T v2=SML#Total_in rssi=Wifi#RSSI >B ->sensor53 r >S ;Tagesverbrauch hr=hours if chg[hr]>0 and hr==0 and v2>0 then sm=v2 svars endif if upsecs%tper==0 then sd=v2-sm ;Monatsverbrauch md=day if chg[md]>0 and hr==0 and md==1 and v2>0 then sma=v2 svars endif if upsecs%tper==0 then smn=v2-sma endif ;Jahresverbrauch yr=year if chg[yr]>0 and hr==0 and md==1 and v2>0 then sya=v2 svars endif if upsecs%tper==0 then syn=v2-sya ;Kosten yspr=syn*sspr+ysgp endif >J ,"Verbrauch Tag":"%sd%" ,"Verbrauch Monat":"%smn%" ,"Verbrauch Jahr":"%syn%" ,"Zählerstand 0:00Uhr":"%2sm%" ,"Zählerstand Monatsanfang":"%2sma%" ,"Zählerstand Jahrenanfang":"%2sya%" ,"Kosten dieses Jahr":"%2yspr%" >W WLAN Empfang: {m}%rssi% dBµV =============== Tagesverbrauch: {m} %2sd% kWh Monatsverbrauch: {m} %2smn% kWh Jahresverbrauch: {m} %2syn% kWh =============== Strom Preis/kWh: {m} %4sspr% € Strom Grundpreis: {m} %2ysgp% € --------------- Strom kosten lfd. Jahr:{m} %2yspr% € =============== Strom Zählerstände: aktuell: {m} %2v2% kWh 0:00 Uhr: {m} %2sm% kWh Monatsanfang: {m} %2sma% kWh Jahresanfang: {m} %2sya% kWh =============== >M 1 +1,12,s,1,9600,SML 1,77070100010800ff@1000,Zählerstand,kWh,Total_in,2 ;1,77070100020800ff@1000,Einspeisung,kWh,Total_out,2 1,77070100100700ff@1,Stromverbrauch,W,Power_curr,0 1,77070100100700ff@1000,Aktuell,kW,Actual_pow,3 1,=h===============| 1,77070100200700ff@1,Spannung L1,V,Volt_p1,1 1,77070100340700ff@1,Spannung L2,V,Volt_p2,1 1,77070100480700ff@1,Spannung L3,V,Volt_p3,1 1,=h===============| 1,770701001f0700ff@1,Strom L1,A,Ampere_p1,1 1,77070100330700ff@1,Strom L2,A,Ampere_p2,1 1,77070100470700ff@1,Strom L3,A,Ampere_p3,1 1,=h===============| 1,770701000e0700ff@1,Netzfrquenz,Hz,Freq,1 1,=h===============| #
Sieht dann so aus:
Servus,
Ist es möglich die Berechnung der Zählerständer (00:00Uhr ,Monatsanfang usw.) für 2 Zähler zu berechnen.
Wenn ja, was müsste ich anpassen dass er das für 2 Zähler macht?Gruß
sangandi -
@sangandi Ich verstehe die Frage nicht.
Der ESP liest einen einzelnen Zähler aus mit einem Lesekopf. Willst du zwei Zähler mit einem ESP auslesen? -
Ja genau, das ist mein Plan. Aktuell kann ich schon 2 Zähler mit einem esp auslesen.
Nur hätte ich gern für beide Zähler die Zählerstände:
00:00Uhr
Monatsanfang
Jahresanfang
Tagesverbrauch
Wochenverbrauch
MonatsverbrauchIst das möglich?
Gruß
Sangandi -
@sangandi Das ist möglich. Ich habe das im ioBroker mit einem Skript gelöst. Natürlich kannst du das auch in einem Skript auf dem ESP lösen, da bin ich allerdings überfragt, wie du die zwei Zähler trennst.
Ich finde es im ioBroker eleganter gelöst, da du alle Skripte an einem Platz hast. Die entsprechenden Datenpunkte habe ich mir als Objekte in 0_userdata angelegt.
-
Ich habe noch einmal ins Handbuch geschaut. Im Menü des Zählers gibt es den Eintrag "InF OFF (On)" "...kann der Datensatz an der INFO Schnittstelle Ein (On) oder aus (OFF) geschaltet werden."
Nun werden die meisten Daten auch übermittelt. Tagesverbrauch jedoch immer noch nicht, aber Hauptsache ich bekomme die aktuelle Lesitung
-
@sangandi Das müsste theoretisch möglich sein. Über den Parameter M stellst du den Zähler bzw. die Anzahl der Zähler ein.
Aber wie genau da bin ich ehrlich gesagt überfragt. So tief bin ich in das Script nie eingestiegen. Da wäre es sinnvoll mal im Discord Channel bei Tasmota nachzufragen. Dort sitzt der Entwickler des Scripts. -
Ich habe es soweit geschafft.
Zähler wird ausgelesen
im ESP32 zeigt Tasmota die Werte an und sendet an IOBroker.im Objekt SENSOR erhalte ich jedoch dass:
{
"Time": "2022-07-08T14:57:20",
"SML": {
"Total_in": 68055.5349,
"Power_curr": 854
},
"ESP32": {
"Temperature": 74.4
},
"TempUnit": "C"
}Was muss ich ändern, damit ich den aktuellen Bezug (Power_curr) und den Gesamtbezug (Total_in) einfach nur als Wert bekomme?
Oder muss ich in einem Skript den Inhalt zerlegen und "auswerten"? -
Ich habe den "Sensor" aus dem MQTT - Adapter genommen und nutze jetzt den
Sonoff - Adapter. Dort wird er korrekt dargestellt.