Hauptmenü

Stromzähler ablesen in Fhem

Begonnen von Tommy82, 27 Februar 2019, 20:58:18

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Stephan27 am 01 Juni 2022, 11:53:03
Kleines Update:

Der Tipp von Sany war wirklich gut.
Ich habe jetzt auf Basis des ESP32 Generic und Tasmota-DE 11.1.0 einfach die vier (Un)Define gesetzt und kompiliert und dann über die WEBUI vom STOCK Tasmota via WLAN geflasht und jetzt habe ich zumindest die Skripting-Funktionen drin. Jetzt müsste ich den Aufbau mal löten und testen.

Vielen Dank.

Edit:

Zwei Fragen habe ich noch:
- Zeigt mir die Konsole an, wenn ich die IR-Diode an die Schnittstelle halte, was Sie empfängt bzw. die OBIS-Kennzahlen? Oder Anders, wo bekomme ich die Infos was mein Zähler alles ausgibt, außer von den privaten Seiten der Bastler?
- Der Zähler hat mehrere optische Schnittstellen. Eine ist groß mit Info-DSS beschriftet, die Andere ist oben auf dem Zähler (mit D0 beschriftet). Im Netz habe ich für das Tasmota-Projekt bereits beide Varianten gesehen, dass der Lesekopf dort angebracht ist. Wo sollte der Lesekopf am Ende dran?

Der Skript den ich eingetragen habe, liefert im Hauptmenü soweit die Anzeige zu den gewünschten Werten. Ich muss es jetzt wie gesagt mal löten und anschließen.

Mit einem Handy kannst du über das Kameraobjektiv sehen, welche Diode sendet - erkennbar am violetten Licht. Wenn die Signale im Modul ankommen und korrekt ausgewertet werden, dann sollte man im Hauptmenü die aktuellen Werte sehen. Die Daten kommen bei mir im Sekundentakt. Bei mir hat es mit den richtigen Konfigurationseinträgen für meinen Zähler auf Anhieb funktioniert. Da ich aber zwischendurch mal Aussetzer hatte, habe ich die Position der Diode (maximaler Ausschlag) mit einem Oszilloskop ausgerichtet, aber das ist schon Luxus, den nicht jeder hat und dafür nicht unbedingt braucht.

Zuvor hatte ich einen IR-Kopf über eine serielle Schnittstelle betrieben. Den konnte ich damals mit einem Terminalprogramm ausgelesen, um zu schauen, was da kommt.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stephan27

#121
So jetzt geht der Spaß richtig los.
Also am Zähler das violette Licht bekomme ich bei der Info-DSS Schnittstelle, die obere D0 die im Handbuch beschrieben ist klebt bei mir ein EasyMeter-Siegel drüber.

Jetzt aber die Frage, wie kann ich sehen ob meine Löterei und die IR-Diode funktioniert?
Ich habs mal ganz stümpferhaft zusammengebraten (wie im Schaltplan Widerstand gegen 3v3; Diode (lang) gegen GND; Widerstand+Diode (kurz) gegen RXD (sollte der Richtige sein, da der GPIO3 sein soll, den Tasmota als RX meldet, ich hab noch RX2 am ESP32) und an die INFO-DSS dran gehalten, aber sehe erstmal keine Werte im Tasmota. Telnet auf die IP + Port 23 kommt "Refused".

Siehe hier:
https://circuits4you.com/2018/12/31/esp32-devkit-esp32-wroom-gpio-pinout/

Ich habe jetzt mal ne TV-Fernbedienung genommen und mir die Konsole angesehen. (sollte ja auch ein IR-Signal sein?)
Wenn ich dort z.B. Lautstärke +/- sende in Richtung Diode kommt auf der Konsole auch nix. (war erstmal leichter als im Sicherungskasten zu fummeln)

Ansonsten macht er jetzt jede Sekunde das hier:
16:20:27.712 RSL: STATE = {"Time":"2022-06-01T16:20:27","Uptime":"0T00:11:41","UptimeSec":701,"Heap":155,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Berry":{"HeapUsed":2,"Objects":31},"Wifi":{"AP":1,"SSId":"xxx","BSSId":"xxx","Channel":1,"Mode":"11n","RSSI":52,"Signal":-74,"LinkCount":1,"Downtime":"0T00:00:05"}}

16:20:27.725 RSL: SENSOR = {"Time":"2022-06-01T16:20:27","SML":{"Power_in":0.0,"Power_out":0.0,"Power_act":0.0,"Power_p1":0.0,"Power_p2":0.0,"Power_p3":0.0},"ESP32":{"Temperature":29.4},"TempUnit":"C"}

EDIT:
Müsste ich eventuell hier Anpassungen vornehmen:
+1,13,s,1,9600,SML
wie folgt:
+1,3,s,1,9600,SML

Lt. dem Link oben ist RXD (bzw. RX) bei mir GPIO03


EDIT:
Zumindest Tasmota und Firmware-seitig scheint alles iO.
MQTT läuft auch, denn die Readings vom Tasmota-Device landen alle vernünftig im FHEM und in meiner MariaDB.
Jetzt muss nur mein Gebrutzel noch der Schwachpunkt sein, warum nix rein kommt. XD

Stephan27

Zitat von: Damian am 20 Mai 2022, 18:18:40

Tasmota-Einstellungen für deinen Zähler von hier:

https://edv.mueggelland.de/smarter-stromzaehler/


Was wären denn für den Skript richtig?

im Link gibt es die Zeile
->Sensor53 r

Hier steht aber
=>Sensor53 r

https://tasmota.github.io/docs/Smart-Meter-Interface/#descriptor-syntax

Damian

Bei mir sieht das Skript so aus:

>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,MT681
1,77070100010800ff@1000,Total Consumed,KWh,Total_in,3
1,77070100100700ff@1,Current Consumption,W,Power_cur,0
1,77070100020800ff@1000,Total Delivered,KWh,Total_out,3
1,77070100000009ff@#,Service ID,,Meter_id,0|
#
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Hiernach:
https://www.easymeter.com/downloads/products/zaehler/Q3M/EDL11/BA_Easymeter_Q3M_2016-11-14.pdf

muss deine IR-Diode an die Info-DDS Stelle, dafür ist ja wohl das Stück Blech um das Loch für den Magneten.

Wenn du kein Oszilloskop hast, dann wirst du wohl hoffentlich einen Multimeter haben (sonst brauchst du mit solchen Projekten erst gar nicht anfangen :) ). Dann müsstest du an deiner angeschlossenen Diode Spannung erkennen, wenn du sie gegen das Licht einer Taschenlampe hältst.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stephan27

Zitat von: Damian am 01 Juni 2022, 21:26:12
Wenn du kein Oszilloskop hast, dann wirst du wohl hoffentlich einen Multimeter haben (sonst brauchst du mit solchen Projekten erst gar nicht anfangen :) ). Dann müsstest du an deiner angeschlossenen Diode Spannung erkennen, wenn du sie gegen das Licht einer Taschenlampe hältst.

Multimeter habe ich ansich, aber gerade nicht zur Hand. Hab den Fehler nach Diskussion mit den Kollegen aber glaub gefunden.

Im verlinkten Schaltplan ist die Beschreibung der Diode falsch. Dort wird gesagt, dass der lange Pin der Diode an Ground gehört, was ja aber die Anode der Diode ist und da ich gestern nicht weiter darüber nachgedacht habe und strikt nach den Vorgaben gelötet habe, kann es folglich nicht funktionieren. Werde heute Abend die Diode drehen und dann sollte es laufen.

Damian

Zitat von: Stephan27 am 02 Juni 2022, 10:06:22
Multimeter habe ich ansich, aber gerade nicht zur Hand. Hab den Fehler nach Diskussion mit den Kollegen aber glaub gefunden.

Im verlinkten Schaltplan ist die Beschreibung der Diode falsch. Dort wird gesagt, dass der lange Pin der Diode an Ground gehört, was ja aber die Anode der Diode ist und da ich gestern nicht weiter darüber nachgedacht habe und strikt nach den Vorgaben gelötet habe, kann es folglich nicht funktionieren. Werde heute Abend die Diode drehen und dann sollte es laufen.

Also, ich habe es im angeschlossenen Zustand getestet, indem ich das Oszilloskop an die beiden Leitungen GND und RX angeschlossen habe. Du könntest mit einem Multimeter GND und RX messen. Dann sollte dort eine Spannung über 2 Volt anliegen. Wenn die Diode durch Licht (z. B. Taschenlampe) leitet, dann zieht sie die Spannung gegen Null. Das muss messbar sein. Die schnelle Impulsabfolge, wenn die Diode tatsächlich Daten empfängt, wirst du mit einem Multimeter nicht gut sehen können.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stephan27

Ich werde wie gesagt später erstmal die Diode drehen, das kann so rum nicht stimmen.
Mit dem Multi schaue ich mal, falls das nicht funktioniert.

Stephan27

#128
Zitat von: Damian am 01 Juni 2022, 21:10:50
Bei mir sieht das Skript so aus:

>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,MT681
1,77070100010800ff@1000,Total Consumed,KWh,Total_in,3
1,77070100100700ff@1,Current Consumption,W,Power_cur,0
1,77070100020800ff@1000,Total Delivered,KWh,Total_out,3
1,77070100000009ff@#,Service ID,,Meter_id,0|
#


Dazu hätte ich noch eine Frage.
Ich habe heute den zweiten, fertigen Hichi, sowie meine PINs vom MSB bekommen. Nach 5 Minuten hatte ich die Werte in Tasmota und FHEM.
Jetzt eben habe ich die PIN eingegeben und sehe am Zähler im Display nun auch den Momentanverbrauch, im Tasmota landet aber weiter nur der Gesamtzählerstand.
Auf der Console vom Tasmota sehe ich keine Auffälligkeiten.

Liegt das jetzt an meinen SML-Statements, sitzt der Reader schlecht oder übermittelt die INFO-DSS einfach nicht mehr und ich muss an die D0/ MSB-Schnittstelle?

Zitat von: Damian am 01 Juni 2022, 21:26:12
Hiernach:
https://www.easymeter.com/downloads/products/zaehler/Q3M/EDL11/BA_Easymeter_Q3M_2016-11-14.pdf

muss deine IR-Diode an die Info-DDS Stelle, dafür ist ja wohl das Stück Blech um das Loch für den Magneten.

Nach dem Handbuch scheint mir die MSB/ D0 (liegt bei mir frei, aber ohne Magnet) da mehr zu liefern... allerdings weiß ich nicht wie ich erstmal die OBIS-Kennzahlen bekomme, um dann die SML-Statements zu bauen?

Damian

Zitat1,77070100010800ff@1000,Verbrauch,KWh,Power_in,1
1,77070100020800ff@1000,Einspeisung,KWh,Power_out,1
1,77070100100700ff@1,Akt. Verbrauch,W,Power_act,1
1,77070100240700ff@1,Wirkleistung L1,W,Power_p1,1
1,77070100380700ff@1,Wirkleistung L2,W,Power_p2,1
1,770701004c0700ff@1,Wirkleistung L3,W,Power_p3,1

hiernach sollte auch die aktuelle Leistung bei deinem Zähler angezeigt werden.

In FHEM verzichte ich bewusst auf diesen Wert, denn das Übertragungsintervall der Werte habe ich auf 60 Sekunden gestellt. Dann ist ein momentaner Bezug bzw. Einspeisung ggf. nach einigen Sekunden nicht mehr aktuell, daher errechne ich lieber in FHEM die durchschnittliche Leistung des Bezugs/Einspeisung der letzten Minute aus den Zählerständen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stephan27

#130
Zitat von: Damian am 02 Juni 2022, 21:07:17
hiernach sollte auch die aktuelle Leistung bei deinem Zähler angezeigt werden.

In FHEM verzichte ich bewusst auf diesen Wert, denn das Übertragungsintervall der Werte habe ich auf 60 Sekunden gestellt. Dann ist ein momentaner Bezug bzw. Einspeisung ggf. nach einigen Sekunden nicht mehr aktuell, daher errechne ich lieber in FHEM die durchschnittliche Leistung des Bezugs/Einspeisung der letzten Minute aus den Zählerständen.

Also ich habe jetzt zwei Tasmota laufen.
1x Hichi - Fertigprodukt (Haus)
1x ESP32 - Eigenbau (Wärmepumpe)

Beide zeigen mir jetzt Verbrauch (also Gesamtzählerwert) und aktuellen Verbrauch (jede Sekunde) an.
Heißt der SML in Zeile 1 und in Zeile 3 liefert Werte.

Die Anzeige nach L1, L2, L3 macht leider keiner der Beiden, obwohl es bei EasyMeter beschrieben steht.

Um FHEM und die Readings kümmere ich mich später, mir war erstmal wichtig dass die Devices laufen und Werte liefern.
Da hattest du ja auch deinen Wiki-Eintrag verlinkt? Ich muss dann nur wieder schauen, da ich mit MariaDB anstelle eines FileLOG und aktuell auch meine FHEM-Diagramme auf Grafana umziehe. (mit Grafana und SQL habe ich einfach mehr Erfahrung als mit SVG und den Plots in FHEM)

Würde mich trotzdem interessieren, warum er mir die Phasenleistung nicht anzeigt.
Wie bekomme ich eigentlich angezeigt, was der ESP alles empfängt... also wenn kein Skript laufen würde? (Konsole, Telnet?)

Damian

Die Anzeige nach L1, L2, L3 macht leider keiner der Beiden, obwohl es bei EasyMeter beschrieben steht

Es muss nicht alles freigeschaltet sein, was beschrieben ist. Ob Tasmota da mehr Einsicht bietet, weiß ich nicht.

Meiner liefert z. B. nicht die einzelnen Phasen, obwohl es dokumentiert ist. Über die serielle Schnittstelle konnte ich zuvor alles loggen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stephan27

Zitat von: Damian am 02 Juni 2022, 21:55:09
Die Anzeige nach L1, L2, L3 macht leider keiner der Beiden, obwohl es bei EasyMeter beschrieben steht

Es muss nicht alles freigeschaltet sein, was beschrieben ist. Ob Tasmota da mehr Einsicht bietet, weiß ich nicht.

Meiner liefert z. B. nicht die einzelnen Phasen, obwohl es dokumentiert ist. Über die serielle Schnittstelle konnte ich zuvor alles loggen.

Macht es da einen Unterschied ob ich Oben an D0 oder vorn an die INFO-DSS gehe?
Bzw. wenn er Werte liefert, kann ich dann davon ausgehen dass er Alles empfängt oder kann er wenn die Diode blöd sitzt auch nur einen Teil empfangen?

Damian

Zitat von: Stephan27 am 02 Juni 2022, 21:58:00
Macht es da einen Unterschied ob ich Oben an D0 oder vorn an die INFO-DSS gehe?
Bzw. wenn er Werte liefert, kann ich dann davon ausgehen dass er Alles empfängt oder kann er wenn die Diode blöd sitzt auch nur einen Teil empfangen?

Du kannst beide Schnittstellen ausprobieren.

Ich würde ausschließen, dass deine Diode nur einen Teil ausliest und den Rest nicht. Wenn sie nicht richtig sitzen würde, dann hättest du Aussetzer oder irgendwelche unplausiblen Werte.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stephan27

#134
Ich glaub ich habe die Rohdaten gefunden:

Zitat21:06:07.847 : 77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 53 59 01
21:06:07.852 : 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 45 53 59 11 03 9e 81 fa 01
21:06:07.856 : 77 07 01 00 01 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 20 a0 c5 33 bc 01
21:06:07.861 : 77 07 01 00 02 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 00 00 1b 6d 0f 01
21:06:07.866 : 77 07 01 00 01 08 01 ff 01 01 62 1e 52 fc 59 00 00 00 20 a0 a4 1a ab 01
21:06:07.947 : 77 07 01 00 01 08 02 ff 01 01 62 1e 52 fc 59 00 00 00 00 00 21 19 10 01
21:06:08.718 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 fe 59 00 00 00 00 00 00 05 f7 01 01 01 63 ab bb 00 76 0b 45 53 59 4d 81 fa 18 c1
21:06:08.723 : 77 01 0b 09 01 45 53 59 11 03 9e 81 fa 08 01 00 62 0a ff ff 00 72 62 01 65 08 40 99 59
21:06:08.727 : 77
21:06:08.815 : 77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 53 59 01
21:06:08.819 : 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 45 53 59 11 03 9e 81 fa 01
21:06:08.824 : 77 07 01 00 01 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 20 a0 c5 33 e6 01
21:06:08.829 : 77 07 01 00 02 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 00 00 1b 6d 0f 01
21:06:08.833 : 77 07 01 00 01 08 01 ff 01 01 62 1e 52 fc 59 00 00 00 20 a0 a4 1a d5 01
21:06:08.915 : 77 07 01 00 01 08 02 ff 01 01 62 1e 52 fc 59 00 00 00 00 00 21 19 10 01
21:06:09.718 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 fe 59 00 00 00 00 00 00 05 ef 01 01 01 63 06 7b 00 76 0b 45 53 59 4d 81 fa 18 c1
21:06:09.723 : 77 01 0b 09 01 45 53 59 11 03 9e 81 fa 08 01 00 62 0a ff ff 00 72 62 01 65 08 40 99 5a
21:06:09.727 : 77

Wären die drei/ vier, die ich aktuell nicht auslese:
1,77078181c78203ff
1,77070100000009ff
1,77070100010801ff
1,77070100010802ff