Smart Meter - ESPEasy

Begonnen von Grobschlacht, 07 Oktober 2020, 16:07:48

Vorheriges Thema - Nächstes Thema

Grobschlacht

Hallo zusammen!
Ich versuche nun seit einigen Tagen, Daten von meinem Smart Meter nach FHEM zu bekommen.
Das ganze muss über einen ESP8266 laufen, auf dem ESPEasy installiert ist und an dem noch ein paar DS18B20 hängen.
ESPEasy ist mit platform.ini selbst gebaut aus dem aktuellen Repo (zu Versuchszwecken habe ich die letzten Tage auch die precompiled releases genützt, ändert aber nichts an meinem Problem).
Um nun die Daten aus dem Stromzähler zu bekommen, habe ich nach dieser Anleitung einen Fototransistor angebracht. Die Verkabelung und Funktion der Schaltung habe ich mit einer IR-Fernbedienung und dem ESPEasy-Plugin Pulse Counter überprüft - da kommt was an.
Wie im Artikel vorgeschlagen, wollte ich die BPW40 an den RX-Pin des ESP anschließen, da kommen aber weder am ESP in der Logfile noch in einem entfernten Terminal mit nc <ip> <port> | hexdump -C etwas an. (Die im Forum vorgeschlagenen Einstellungen im ESP, das serielle Logging zu deaktivieren, die serielle Schnittstelle zu aktivieren/deaktivieren habe ich durchprobiert)
Vermutlich sind die beiden RX-TX-Pins blockiert, weil der ESP seinen Strom über USB bekommt (das kann im Moment auch nicht geändert werden). Zu bereits angesprochenen Testzwecken konnte ich das IR-Receive-Plugin dazu bringen, den Pin GPIO-12 (D6), an dem ich den Frototransistor angebracht habe, auszulesen. Im Log tauchen auch Daten auf, jedoch mit der Fehlermeldung, dass die Daten zu groß für den Buffer sind. Deswegen habe ich den Pin GPIO-12 (D6) mit dem PulseCounter ausgelesen; es kommen Daten sowohl im ESP an als auch im per autocreate angelegten Device in FHEM - ich kann die Daten aber nicht interpretieren und denke - da mein Landis-Gyr E200 SML spricht -, dass die gezählten Pulse eine Auskunft über den momentanen Stromverbrauch liefern. Die Funktionsfreischaltung im Stromzähler per Pin vom Stromanbieter ist natürlich erfolgt und momentan wird am Zähler selbst auch der aktuelle Verbrauch angezeigt.
Ich bin also auf die Suche nach einer Anbindung via SoftwareSerial gegangen. In der neuesten Git-Version von ESPEasy ist diese sogar mit konfigurierbaren Pins implementiert. Es gibt einige Plugins, bei denen man die softwareserielle Übertragung und die Pins übertragen kann, aber ich finde kein Plugin, das mir eine Funktion bereitstellt, quasi nur Daten vom Pin D6 seriell zu übertragen, dass ich diese in FHEM empfangen kann.
Nach vielem Lesen sowohl hier im Forum als auch in GitHub und bei letscontrolit bin ich irgendwie mit meinem Latein am Ende - ich weiß momentan nicht, was ich noch probieren soll, um
Stromzähler -> ESPEasy -> FHEM Obis
zum Laufen zu kriegen. Es ist gut möglich, dass ich den Wald vor lauter Bäumen nicht mehr sehe, vielleicht hat jemand von Euch den entscheidenden Hinweis. Falls ich noch irgendwelche Angaben vergessen habe reiche ich diese gerne nach.

Vielen Dank schonmal für's Lesen!


sash.sc

#1
Pulsecounter von espeasy ist schon der richtige Weg. Da gibt es auch in Forum was dazu. Du musst die pulse und die Zeit dann umrechnen in Verbindung mit deinen Zähler.
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

capo

#2
ich bin gerade auch analog hier vorgegangen: https://mwinkler.jimdo.com/smarthome/aktoren-sensoren/stromz%C3%A4hler-digital/
als Sensor habe ich einen TEKT5400s genommen, ansonsten Schaltung analog link.
An ESPEASY hab ich nichts selbst gebaut, auf dem nodemcu läuft (Binary Filename:⋄   ESP_Easy_mega_20200913_normal_ESP8266_4M1M)
Das Device ist wie im Link beschrieben (Communication - Serial Server), auch die Einstellungen habe ich so 1:1 übernommen.
Unter Advanced Settings habe ich noch die Baudrate auf 9600 gesetzt (keine Ahnung, ob das irgendwelche Auswirkungen hat).
Nach Freischaltung des Stromzählers und Umstellung auf "mehr Infos" und etwas Justierung des Sensors vor dem Sender: schwubs waren die 2 Readings "power" und "total_consumption" in fhem. (fhem-Device auch nach link angelegt)

Grobschlacht

Hallo zusammen,
leider war ich die letzten Tage außerplanmäßig nicht am Rechner...
Vielen Dank für Eure Antworten!
@sash.sc: Per Pulsecounter kommen Daten in FHEM an, aber eben unabhängig vom aktuellen Stromverbrauch, den mir der Smart Meter nach Pin-Freischaltung anzeigt, immer den gleichen Wert über Tage hinweg (die Einstellungen in ESPEasy hänge ich unten an, ich habe sie verschiedenen Foreneinträgen folgend gewählt). Mein Fototransistor empfängt also etwas, was in FHEM nicht von OBIS-Seiten ausgewerten werden kann, da ein Pulsecounter aber kein serial-Signal ankommt. Ich stehe auf dem Schlauch...
@capo: Danke für Deine Hinweise, auch mit der Binary und der Baudrate, aber leider kann ich RX und TX bei ESPEasy nicht benutzen und finde sonst keine Möglichkeit, per Softwareserial Daten zu übertragen... Da liegt vielleicht ein Hund begraben...

Was also geht: Fototransistor -> Pulsecounter -> FHEM (hier wird in meinem Fall immer 1080 als Count angezeigt) (ich habe auch nochmal probiert, die Info-Funktion im Stromzähler wieder auf 'off' zu schalten, um zu sehen, ob dann entsprechend 1000 Pulsen/kWh übertragen werden, Pulsecounter hat aber weiterhin 1080 übertragen...)

Was nicht geht: Fototransistor -> [Funktion im ESP] -> FHEM Obis-Modul zur Auswertung der Informationen des Smart Meters...
Vielleicht könnt ihr, kann mir jemand mit noch mehr Tipps weiterhelfen. Ohne alle auflisten zu wollen, aber die Foreneinträge im FHEM-Forum zum Thema Pulsecounter, S0 und OBIS V2 habe ich soweit gelesen, auch wenn Beiträge die Anbindung des TTL- oder USB-IR-Transceivers betrafen. Auch durch letscontrolit oder creatonix und photovoltaikforum, soweit man auf diese weitergeleitet wird, habe ich durch...

Vielen Dank!

Nobbynews

Zitat von: Grobschlacht am 17 Oktober 2020, 21:26:45
FHEM (hier wird in meinem Fall immer 1080 als Count angezeigt) (ich habe auch nochmal probiert, die Info-Funktion im Stromzähler wieder auf 'off' zu schalten, um zu sehen, ob dann entsprechend 1000 Pulsen/kWh übertragen werden, Pulsecounter hat aber weiterhin 1080 übertragen.
Wundert mich nicht. Durch das Übertragungsintervall von 10s wird Count dementsprechend wieder auf 0 gesetzt.
Das heißt also nicht anderes, dass da immer 3 Impulse in 10s gezählt werden.
Btw: Wozu die Formeln im ESP??
Count = Delta wird mit 360 multipliziert
Total = Summation aller Count wird durch 10000 dividiert. Bei Nachkommastellen 0 ändert sich der Wert also so schnell nicht.

Grobschlacht

#5
Ich habe die Eisntellungen im ESPEasy (Intervall auf 10 Sekunden und die Formeln) nach dieser Anleitung gewählt; das ist ja Standardmäßig auf 60 Sekunden eingestellt. Die Einstellungen und insbesondere die Formeln schienen mir eingängig, da ich so einen Mittelwert aus den gelesenen pulses errechnen könnte. Ohne Formeln und mit Standardintervall bekomme ich in FHEM jetzt 180 als Wert.
Irgendwie weiß ich mit keinem der Werte, die ich überhaupt vom ESPEasy übermittelt bekommen habe, etwas anzufangen; durch das viele Forenlesen hat sich bei mir wohl eine Blindheit eingestellt und ich sollte wirklich nochmal ganz von vorne anfangen. Kann mir denn jemand seine Einstellungen, die mit Pulse Counter und Auswertung durch das OBIS-Modul funktionieren mal zeigen? Vielleicht kann ich mir dann ein Bild machen aus den Fragezeichen, die mir im Kopf schwirren...

Edit: Der Wert vom Pulse Counter auf der ESPEasy-Ansicht unterscheidet sich auch vom Wert, der in FHEM angezeigt wird...

Nobbynews

Das Beispiel ist doch selbsterklärend.
Die Formeln sind auch nachvollziehbar und es werden die Werte für Leistung (Watt) und Verbrauch (kWh) seit Start des ESP ermittelt. Daher auch das Übertragungsintervall von 10s. Funktioniert aber so nur bei 1000 Impulsen pro kWh bzw. 1Wh pro Impuls.
Mit diesen Daten kann man aber nicht dasOBIS-Modul füttern. Siehe commandref.

Grobschlacht

Freilich ist das Beispiel selbsterklärend - ich hab es auch angepasst auf meinen 10000 Impulse pro kWh angepasst (deswegen im Post oben auch die 10000 bei den Counts - das Vermischen von 1000 und 10000 war nur im Post zu sehen und noch bei Screenshotaufnahme noch nicht eingepflegt). Meine Fragerei bezieht sich eher darauf, dass egal ob und was ich für Formeln angebe in ESPEasy, ich immer die jeweils konstant gleichen Werte bekomme, egal, was die aktuelle Verbrauchsanzeige auf dem Stromzähler anzeigt. Deshalb nehme ich an, dass mein Stromzähler nach PIN-Freischaltung nun nicht mehr Impulse/kWh ausgibt, sondern SML-Codes; damit kann ich mit dem Pulse Counter aber nichts mehr anfangen. Sehe ich das richtig?
Meine eingangs gestellte Frage bezog sich darauf, wie ich diese Daten nach FHEM bekomme um dort irgendwie meinen aktuellen Verbrauch angezeigt zu bekommen. Dass das OBIS-Modul mit den Pulse-Counter-Informationen nichts anfangen kann, war mir bereits klar, aber danke nochmal für den Hinweis.

Nobbynews

#8
Bei 10000 Impulsn pro kWh bedeutet das dann aber auch 0.1 Wh pro Impuls. Also muss die erste Formel auch noch angepasst werden.
Ist Fhem als Controler FHEM HTTP definiert?
Meinen ESP für den Stromzähler habe ich über das Modul ESPEasy eingebunden:
defmod ESPEasy_ESP_05_Strom ESPEasy 192.168.2.224 80 ESP ESP_05_Strom 

Zuvor aber noch des ESP Bridge installieren:
defmod ESP ESPEasy bridge

Sobald die Readings reinkommen, wird ein entsprechendes device angelegt.

Edit 1:  Ob über die normale LED etwas anderes als Zählimpulse ausgegeben wird, kann ich nichts zu sagen.

Edit 2: wenn ich die Beschreibung richtig verstehe, dann kommt SML nur über dir optische Schnittstelle. Die Impuls-LED mittig über dem Display bleibt davon unberührt.

Grobschlacht

Ah, ok! Der zweite Edit ändert natürlich einiges - ich habe wohl die Impuls-LED übersehen und fleißig versucht, die optische Schnittstelle auszulesen... Ich habe zwar ein bisschen damit gerechnet, aber es tut mir trotzdem aufrichtig Leid, dass ich Euch und Dich @Nobbynews mit einer solchen Banalität beschäftigt habe...
Gleich morgen früh platziere ich den Transistor vielleicht mal vor den richtigen Ausgang... Ich war so begeistert, dass die optische Schnittstelle etwas ausgegeben hat, dass ich die Impuls-LED übersehen habe.
Das angelegte Device mit ESPEasy Bridge habe ich angelegt wie Du, @Nobbynews, da kommt aber eben auch nur immer die gleiche Impulszahl an.

Ich entschuldige mich, dass ich so etwas übersehen konnte...