Nun habe ich schon einige Male gelesen, dass das Auslesen der aktuellen Leistungsaufnahme mit dem HM-ES-TX-WM über ES-LED z.B. über die XML-API nicht trivial ist. Der von Kanal 1 gelieferte Messwert POWER ist nur dann gültig, wenn Energie bezogen wird. Fließt kein Strom, wird ein Phantasiewert angezeigt. Dieser wird im WebUI Diagramm auch entsprechend angezeigt.
Lässt man im WebUI Diagramm den Wert „Energiezähler” anzeigen, werden plausiblere Werte geplottet, wenn man die aktuelle Leistungsaufnahme erwartet und nicht die Summe der bezogenen Leistung, wie der Name des Messwertes suggeriert. Angezeigt wird ( E(tx) - E(tx-1) ) / ( tx - tx-1 ) * 3600 wobei E der Messwert ENERGY_COUNTER ist und tx der Zeitstempel zum Zeitpunkt x in Sekunden.
Durch die Berechnung generiert man sich einen Fehler, der für eine qualitative Analyse vielleicht akzeptabel ist. Violett ist der ausgelesene Wert POWER, grün der berechnete Wert:
Die WebUI-Diagramme zeigen ein ähnliches Bild. Dazu kommt dann noch der Überlauf bei 838 kWh, den es bei der Bildung der Differenzen zu berücksichtigen gilt.
Damit kann ich leben und arbeiten. Doch ich wunder' mich. Und frage mich: Was soll der Sch***? Gab es mal eine Verlautbarung, warum zum Geier der Messwert POWER so grandios unbrauchbar ist?
Zählersensor HM-ES-TX-WM mit ES-LED
Moderator: Co-Administratoren
-
- Beiträge: 36
- Registriert: 27.08.2019, 12:14
- Hat sich bedankt: 18 Mal
-
- Beiträge: 36
- Registriert: 27.08.2019, 12:14
- Hat sich bedankt: 18 Mal
Re: Zählersensor HM-ES-TX-WM mit ES-LED
Nun habe ich die berechneten Werte genauer unter die Lupe genommen. Mein einziger Verbraucher ist eine Erdwärmepumpe.
Herausfinden wollte ich, welcher Wert denn nun am besten beschreibt, welche elektrische Leistung gerade bezogen wird (gemittelt über das letzte Abtastintervall) und warum die aus ENERGY_COUNTER berechneten Werte so schwanken. Dafür habe ich mir ein Intervall gegriffen, in dem die Pumpe fast eine Stunde durchgehend lief. Ich nehme an, dass die Pumpe eher gleich läuft und keine kurzzeitigen Schwankungen bei der Leistungsaufnahme vorliegen.
Das Ergebnis ist hier zu sehen:
Was lernen wir daraus?
Herausfinden wollte ich, welcher Wert denn nun am besten beschreibt, welche elektrische Leistung gerade bezogen wird (gemittelt über das letzte Abtastintervall) und warum die aus ENERGY_COUNTER berechneten Werte so schwanken. Dafür habe ich mir ein Intervall gegriffen, in dem die Pumpe fast eine Stunde durchgehend lief. Ich nehme an, dass die Pumpe eher gleich läuft und keine kurzzeitigen Schwankungen bei der Leistungsaufnahme vorliegen.
Das Ergebnis ist hier zu sehen:
Was lernen wir daraus?
- Die Leistungsaufnahme des letzten Abtastintervalls durch Bildung der ENERGY_COUNTER-Differenzen zu bilden (dunkelblaue Kurve), ist nicht die beste Idee. Unter der Voraussetzung, dass meine Wärmepumpe nicht seeeeehr langsam anläuft (das tut sie wohl eher nicht, denn größere Modelle haben extra einen Anlaufstrombegrenzer, der die Leistungsaufnahme auf 6kW begrenzt), ist der erste Wert erwartungskonform nicht korrekt, denn er bildet ja den Durchschnitt des letzten Abtastintervalls. Hier scheint der Messwert POWER (rote Kurve) besser, denn er geht instantan auf 1125W, was recht gut in den Verlauf der Kurve passt.
- Die WebUI-Kurve „Energiezähler”, die ja eigentlich recht brauchbar erscheint, hat das gleiche Problem und arbeitet ebenfalls als Tiefpass, der Änderungen von Abstastpunkt zu Abtastpunkt wegbügelt. Erst der 3. Messwert nach der Änderung (!) ist annähernd korrekt.
- Die WebUI-Kurve „Leistung” scheint wirklich den Messwert POWER darzustellen.
- Will man einen Wert, der auf schnelle Änderungen besser reagiert, so kann man in diesem besonderen Fall (Verbraucher ist entweder an oder aus) besser den Messwert POWER verwenden, falls sich der aktuelle Messwert von vorherigen unterscheidet. Sind beide gleich, ist der Verbraucher aus und man verwendet eine Null.
- Warum gibt EQ-3 ein Gerät mit solch kaputten Werten ausliefert und das über Jahre nicht fixt.
- Warum die berechneten Werte der aktuellen Leistung so schwanken. Rundungsfehler des ENERGY_COUNTER sind es nicht allein. Der erste Ausreißer um 5:03 Uhr ist 2,5W zu hoch. Verzögerungen bei der Telegrammübermittlung sollten es auch nicht sein, denn dann wären die Werte unterhalb des tatsächlichen Wertes, nicht darüber. Wäre das Telegramm 5:03 Uhr 8 Sekunden später gekommen, hätte es gepasst.
- Warum die Leistungsaufnahme der Pumpe im Laufe der Stunde zunimmt. Monoton steigend und sich einem Grenzwert annähernd.
-
- Beiträge: 36
- Registriert: 27.08.2019, 12:14
- Hat sich bedankt: 18 Mal
Re: Zählersensor HM-ES-TX-WM mit ES-LED
Zu guter Letzt noch das passende WebUI Programm, das den „richtigeren” POWER-Wert bereitstellt:
Bedingung: Wenn Geräteauswahl: HM-ES-TX-WM:1 bei Leistung im Wertebereich größer oder gleich 0.00W bei Aktualisierung auslösen
Aktivität: Dann Skript ... sofort
Das Skript schreibt den korrekten POWER-Wert in die vorher anzulegende Systemvariable „Heizung_Leistungsaufnahme” (Zahl, 0 bis 65000, Einheit „W”). Auskommentiert sind die Anweisungen, die in eine auf dem RPI unter /mnt gemountete Datei via CUxD loggen, die Geräte-ID ist natürlich anzupassen:
Bedingung: Wenn Geräteauswahl: HM-ES-TX-WM:1 bei Leistung im Wertebereich größer oder gleich 0.00W bei Aktualisierung auslösen
Aktivität: Dann Skript ... sofort
Das Skript schreibt den korrekten POWER-Wert in die vorher anzulegende Systemvariable „Heizung_Leistungsaufnahme” (Zahl, 0 bis 65000, Einheit „W”). Auskommentiert sind die Anweisungen, die in eine auf dem RPI unter /mnt gemountete Datei via CUxD loggen, die Geräte-ID ist natürlich anzupassen:
Code: Alles auswählen
! string thisName = "Heizung Strom";
! string now = system.Date("%F %X").ToString();
! var exec = dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC");
! var logfile = "/mnt/default.log";
! Wert aus BidCos-Gerät "HM-ES-TX-WM" lesen
real powerAltVal = dom.GetObject("BidCos-RF.NEQ0863739:1.POWER").LastValue();
real powerNeuVal = dom.GetObject("BidCos-RF.NEQ0863739:1.POWER").Value();
! exec.State("echo \"" + now + " " + thisName + " : powerAltVal=" + powerAltVal.ToString() + " powerNeuVal=" + powerNeuVal.ToString() + "\" >> " + logfile);
real diffPower = powerNeuVal - powerAltVal;
real newPower = powerAltVal;
! exec.State("echo \"" + now + " " + thisName + " : diffPower=" + diffPower.ToString() + "\" >> " + logfile);
if (diffPower != 0) {
newPower = powerNeuVal;
! exec.State("echo \"" + now + " " + thisName + " : Heizung läuft. newPower=" + newPower.ToString() + "\" >> " + logfile);
} else {
! exec.State("echo \"" + now + " " + thisName + " : Heizung ist aus.\" >> " + logfile);
}
! das Ziel des eigentlichen Strebens speichern
dom.GetObject("Heizung_Leistungsaufnahme").State(newPower);
Re: Zählersensor HM-ES-TX-WM mit ES-LED
naja, für die Leisungsaufnahme einer Pumpe gibt es ja auch noch andere Kriterien als rein elektrische ... Vordruck, Nachdruck, Fördermenge, etc ... da kann sich durchaus die Leistung während des Betriebes ändern. Warum bist Du Dir bei diesem minimalen Bereich so sicher, daß es am Zähler liegt?Warum die Leistungsaufnahme der Pumpe im Laufe der Stunde zunimmt. Monoton steigend und sich einem Grenzwert annähernd.
Re: Zählersensor HM-ES-TX-WM mit ES-LED
Nur zur Info für am Strommessen über Homematic interessierte: Dies ist auch Stand 10/2020 weiterhin der Fall. Im Falle von geringem oder keinem Energieverbrauch ist die Anzeige dieser Homematic Lösung nicht zu gebrauchen. Es wird ein (zu hoher) Fantasiewert angezeigt für den aktuellen Verbrauch wenn tatsächlich aktuell kein oder wenig Verbrauch stattfindet.TinkyWinky hat geschrieben: ↑13.02.2020, 22:02Der von Kanal 1 gelieferte Messwert POWER ist nur dann gültig, wenn Energie bezogen wird. Fließt kein Strom, wird ein Phantasiewert angezeigt.
Für Stromzähler bei denen nicht immer durchgehend ein gewisser Mindestverbrauch von sagen wir mal geschätzt ~100W vorhanden ist, kann man die HM-ES-TX-WM Lösung damit leider komplett vergessen Ich werde meine mühsam verlegte (Kabel zwischen Funkmodus und Sensor verlängert über 3 Stockwerke) damit nun abbauen. Schade.
Re: Zählersensor HM-ES-TX-WM mit ES-LED
Hallo zusammen,
ich habe das gleiche Problem bei der Überwachung der Stromerzeugung meiner (Mini-)Solaranlage. Das werden mir auch die ganze Nacht über z.B. 5 W angezeigt obwohl da nichts erzeugt wird.
Aus meiner Sicht ist die Ursache klar:
Irgendwann kommt der letzte Blinkimpuls des Tages, daraus wird dann die Leistung berechnet (ergibt sich aus der Zählerkonstante -- z.B. 1000imp/kWh -- und der Zeit seit dem vorletzten Blinkimpuls. Kommt nun kein weiterer Impuls, wird einfach weiterhin der gleiche Leistungswert ausgegeben.
Was hier aus meiner Sicht in der Firmware fehlt, ist eine ganz einfache Abfrage, welche die gemeldete Leistung auf 0 W setzt, wenn eine gewisse Zeit lang kein Impuls mehr kommt. Da müsste man wohl einen Grenzwert festlegen und dann basierend auf der eingestellten Zählerkonstante diese Zeit bestimmen.
In meinem Fall wäre es aus meiner Sicht sinnvoll, die Anzeige auf 0 W zu setzen, wenn die gemessene Leistung unter 1 W sinkt.
Deckt sich diese Erklärung mit euren Fehlerbildern?
Viele Grüße,
Flo.
ich habe das gleiche Problem bei der Überwachung der Stromerzeugung meiner (Mini-)Solaranlage. Das werden mir auch die ganze Nacht über z.B. 5 W angezeigt obwohl da nichts erzeugt wird.
Aus meiner Sicht ist die Ursache klar:
Irgendwann kommt der letzte Blinkimpuls des Tages, daraus wird dann die Leistung berechnet (ergibt sich aus der Zählerkonstante -- z.B. 1000imp/kWh -- und der Zeit seit dem vorletzten Blinkimpuls. Kommt nun kein weiterer Impuls, wird einfach weiterhin der gleiche Leistungswert ausgegeben.
Was hier aus meiner Sicht in der Firmware fehlt, ist eine ganz einfache Abfrage, welche die gemeldete Leistung auf 0 W setzt, wenn eine gewisse Zeit lang kein Impuls mehr kommt. Da müsste man wohl einen Grenzwert festlegen und dann basierend auf der eingestellten Zählerkonstante diese Zeit bestimmen.
In meinem Fall wäre es aus meiner Sicht sinnvoll, die Anzeige auf 0 W zu setzen, wenn die gemessene Leistung unter 1 W sinkt.
Deckt sich diese Erklärung mit euren Fehlerbildern?
Viele Grüße,
Flo.
-
- Beiträge: 14085
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 580 Mal
- Danksagung erhalten: 1492 Mal
Re: Zählersensor HM-ES-TX-WM mit ES-LED
Grau ist alle Theorie. Das würde nur funktionieren, wenn die Leistung langsam absinkt und nicht "plötzlich" abgeschaltet wird. Nehmen wir an, es ist noch ein Verbraucher mit 5 W in Betrieb und wird zwischen zwei Blinksignalen abgeschaltet... Im jetzigen Zustand wird die Leistung von 5 W dauerhaft bis zum Eintreffen des nächsten Blinksignals (oder Durchlauf der Ferrarisscheibe) angezeigt. Man könnte nur den Bezug auf 0 setzen, wenn rechnerisch die Leistung unter 1W abgesunken ist (also die Zeit abgelaufen ist). Für die skizzierten Anwendungsfälle ist der Zähler einfach ungeeignet. Wer es genauer benötigt, muss eine andere Lösung einsetzen. Der Zählersensor ist für normale Haushalte vorgesehen und da hat man selten mal gar keinen Leistungsbezug. Irgendein Standbybezug ist immer an (und wenn es nur die Versorgungsspannung für Schaltaktoren ist).
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch