Zählersensor HM-ES-TX-WM mit ES-LED

Kabellose und kabelgebundene Sender und Empfänger der Serie Homematic "classic"

Moderator: Co-Administratoren

Antworten
TinkyWinky
Beiträge: 17
Registriert: 27.08.2019, 12:14
Hat sich bedankt: 3 Mal

Zählersensor HM-ES-TX-WM mit ES-LED

Beitrag von TinkyWinky » 13.02.2020, 22:02

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:
diff1.jpg
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?

TinkyWinky
Beiträge: 17
Registriert: 27.08.2019, 12:14
Hat sich bedankt: 3 Mal

Re: Zählersensor HM-ES-TX-WM mit ES-LED

Beitrag von TinkyWinky » 14.02.2020, 13:46

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:
diagramm.png
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.
Was lernen wir nicht daraus?
  • 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.
Naja, was soll's. Bis hier wird wohl eh keiner lesen. :wink:

TinkyWinky
Beiträge: 17
Registriert: 27.08.2019, 12:14
Hat sich bedankt: 3 Mal

Re: Zählersensor HM-ES-TX-WM mit ES-LED

Beitrag von TinkyWinky » 15.02.2020, 13:20

Zu guter Letzt noch das passende WebUI Programm, das den „richtigeren” POWER-Wert bereitstellt:
Programm.png
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);

bauli_che
Beiträge: 23
Registriert: 15.01.2020, 14:46

Re: Zählersensor HM-ES-TX-WM mit ES-LED

Beitrag von bauli_che » 15.02.2020, 15:37

Warum die Leistungsaufnahme der Pumpe im Laufe der Stunde zunimmt. Monoton steigend und sich einem Grenzwert annähernd.
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?

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren“