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

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Antworten
TinkyWinky
Beiträge: 36
Registriert: 27.08.2019, 12:14
Hat sich bedankt: 18 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: 36
Registriert: 27.08.2019, 12:14
Hat sich bedankt: 18 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: 36
Registriert: 27.08.2019, 12:14
Hat sich bedankt: 18 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?

AnybodyM
Beiträge: 4
Registriert: 29.09.2019, 17:21

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

Beitrag von AnybodyM » 28.10.2020, 18:35

TinkyWinky hat geschrieben:
13.02.2020, 22:02
Der von Kanal 1 gelieferte Messwert POWER ist nur dann gültig, wenn Energie bezogen wird. Fließt kein Strom, wird ein Phantasiewert angezeigt.
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.

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.

Overflo
Beiträge: 1
Registriert: 04.12.2021, 22:01
System: Alternative CCU (auf Basis OCCU)

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

Beitrag von Overflo » 04.12.2021, 22:15

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.

Xel66
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

Beitrag von Xel66 » 04.12.2021, 23:33

Overflo hat geschrieben:
04.12.2021, 22:15
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.
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

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“