[vz-dev] Messungenauigkeit

Jens Wilmer volkszaehler at jenswilmer.de
Thu Dec 2 01:23:36 CET 2010


Hallo zusammen,

Am 01.12.2010 15:29, schrieb Harald Koenig:
> On Dec 01, Justin Otherguy wrote:
>> M.E. gibt es 2 Lösungen (an der Stelle haben wir schon so ein paar Runden gedreht, gelle Jens? (c; ):
>> - den Zeitstempel des Servers verwenden - der hat ja ms und mehr
>>
>> Dadurch kommt die Latenz im Netz ins Spiel- allerdings halte ich die für vernachlässigbar. Insbesondere bei unserem (inzwischen zum Standard gewordenen) Ansatz des lokalen Backends.
> IMHO eine ganz schlechte idee, damit ist der zentrale dienst im interent zum stromdaten abwerfen/halten voellig unbrauchbar.
Das ist so nicht ganz richtig, nur für die Zeit eines Netzausfalls 
verlieren die gepufferten Daten ein wenig ihrer zeitlichen Genauigkeit, 
wenn sie in der Summe noch stimmen, kann man trotzdem noch sehr viel mit 
ihnen anfangen.
> ohne eine db auf volkszaehler.org ist der aufwand fuer den einzelnen *wesentlich* groesser in das projekt ueberhaupt einzusteigen.
>
> "geeignete" hardware fuer einen lokalen server zu finden mag fuer bastler wie uns ja machbar und gar interessant sein,
> fuer "die oma neben" an einfach nur ein weiteres K.O.-kriterium...
Ja.
> und wenn man lokal die zu puffernden daten (IMHO eine grundvoraussetzung fuer stabilen netzbetrieb, zumind. optional)
> lokal nur mit 1-sec-timestamps versehen kann, dann kann man die pufferung auch mehr oder minder vergessen...
Das stimmt nun wieder überhaupt nicht. Die Auflösung von einer Sekunde 
ist mehr als ausreichend ...
> IMHO fuehrt kein weg daran vorbei, dass der controller eine vernuenftige und hochaufgeloeste zeitbasis hat!
siehe unten...
> gibts mit jedem linux-system als controller-hw quasi kostenlos dazu, also warum nicht WRT54GL/DockStar/TL-MR3420/...
> ab ~30 EUR incl. netzteil ...
Das stimmt so wieder nicht, obwohl hier nichts Falsches steht :) Die 
Zeitbasis ist hoch aufgelöst. Allerdings ist es schwer an den 
entsprechenden Controllern noch einen freien interruptfähigen Pin zu 
finden und diesen dann im selbst gebastelten RT Linux auszuwerten.
Wenn man die interne Serielle Schnittstelle per Linux-Device anspricht, 
kann man wahrscheinlich auf den eher kleinen Rechnern durchgehend auf 
eine Genauigkeit von 100ms kommen, wenn sonst nichts passiert vielleicht 
auch mal 10 ms, wozu noch ein ungefähr konstanter Bedarf für das Bündeln 
zu ein Byte Paketen und Durchreichen bis zum Programm kommt. Wenn man 
USB-Serial Wandler nimmt, kommt man wahrscheinlich ohne sonstige 
Aktivitäten wahrscheinlich noch auf einen Wert um 50 ms,  sonst 
entsprechend schlechter.

Genauer zu werden ist nicht so einfach, wie es hier immer dargestellt 
wird. Allerdings ist es auch völlig unnötig.
Die Genauigkeit von einer Sekunde mehr als ausreichend, weil ...
Mir würde eigentlich auch ein Messwert pro Minute reichen. Na gut, 
deswegen nicht, obwohl es so ist. Was zur Zeit an den Mikrocontrollern 
und sonstigen Rechnern hängt sind meistens Hutschienenzähler mit S0 
Schaltausgang. Die meisten Leute hier haben anscheinend noch nicht 
mitbekommen, dass es sich hierbei um Energiemessgeräte handelt. Die 
gebräuchlichsten Geräte liefern ungefähr 1000 Impulse / kWh, Der 
Nennstrom beträgt 5 A, das entspricht einer Nennleistung von etwas über 
1000 Watt, je nach Spannung, nominal 230 V, bei mir sind es selten mehr 
als 222 V. Bei diesem Strom haben sie in der besten Genauigkeitsklasse 
eine Genauigkeit von +/- 1%, das heißt an der genauesten Stelle liegen 
zwei Impulse zwischen 3,099 und 3,162 Sekunden auseinander.  Immerhin 
schon 60 ms Unterschied.
Außerdem liegen die einzelnen Messpunkte 3 Sekunden auseinander und die 
der Zwischenzeit aufgenommene Leistung hat eine Energie von 1 Wh 
verbraucht. Das kann bedeuten, das der Staubsauger die 3 Sekunden mit 
einem kW lief, oder dass der Herd eine Sekunde mit 3 kW geheizt hat und 
zwei Sekunden lang nicht. Was passiert ist, weiß man nicht, da es nicht 
gemessen wird. Wenn man jetzt (so wie Justin es mir immer zu verkaufen 
versucht :) ) Bei einem Impuls in drei Stunden eine hübsche Linie bei 
0,3 W zieht, sieht das hübsch gerade aus, hat aber wahrscheinlich nichts 
mit der Realität zu tun, da der Impuls von "Ich mit Licht auf dem Klo" 
und nicht von "in der Steckdose vergessenes Ladegerät" kam. (Dazu kommt 
auch noch, dass die alte Software dies auf die falsche Weise tut und 
falsche Werte anzeigt.) Ein Energie-Impuls am Ende der 2 Stunden käme 
dem wahren Verbrauch in diesem Fall schon viel näher und ist auch die 
richtigere Darstellung, weil es das, was gemessen wurde besser 
darstellt: Im vergangenen Zeitraum wurde eine bestimmte Menge Energie 
verbraucht und zum Zeitpunkt des Impulses wurde auf jeden Fall Energie 
verbraucht, was davor war, oder wie viel zu welchem Zeitpunkt verbraucht 
wurde, weiß man nicht.
Der 3 Watt Dockstar bekommt in dieser Darstellung dann keine 3 Watt 
Linie, sondern alle 20 Minuten einen 3600 Watt Peak über eine Sekunde. 
Aber das ist auch genau das was wir messen. Schaut man sich das dann mit 
einer Genauigkeit von 2 Sekunden an, bekommt er alle 20 Minuten einen 
1800 Watt Peak von 2 Sekunden Dauer. Schaut man es sich mit einer 
Genauigkeit von 20 Minuten an, gibt es viele Messwerte mit 3 Watt und 
hin und wieder mal einen mit 6 Watt gefolgt von einem mit 0 Watt oder 
umgekehrt. Schaut man sich die Messwerte pro Stunde an, gibt es viele 
Messwerte mit 3 W, mal einen mit 4 W gefolgt von einem mit 2 W.
Genau die Darstellung wünsche ich mir, da ich mir dann endlich mal 
ansehen kann, welchen Verbrauch ich gemessen habe.
Den Energieverbrauch einer Leistungsaufnahme von 3 W kann man auch in 
Sekundenschritten messen. Aber nicht mit einer Auflösung von 1 Wh. Dafür 
braucht man halt einen Zähler mit 3.000.000 Impulsen / Wh. Der ist dann 
allerdings mit S0 Schnittstelle für meinen Herd wieder ungünstig.

Jetzt zurück zu den Millisekunden-Fetischisten:
Man kann die Durchschnittsleistung zwischen zwei Impulsen genauer 
messen, wenn man den Abstand zwischen zwei Impulsen genauer misst.
Bekommt man das mit einem Standard-Linux auf einem WRT54GL hin?
Ein Bisschen, aber nicht so wie es sich viele hier anscheinend denken. 
(Siehe oben)
Entspricht die errechnete Leistung der Leistung, die zwischen den beiden 
Impulse verbraucht wurde?
Nein. [1]
Hat die höhere Auflösung irgendeine Relevanz?
Ja. Man kann damit auch den Verbrauch höher als eine Sekunde auflösen. 
Wenn ich also wissen möchte ob mein Herd mit 12 kW auf einer Phase in 
der ersten halben Sekunde nach dem Einschaltens mehr Strom verbraucht 
hat als in der zweiten halben Sekunde, könnte ich es so vielleicht noch 
herausfinden (wenn der WRT54GL den ersten Impuls nicht gerade in seine 
Mysql-Datenbank auf der SD Karte speichert, die dafür eine SD-Karten 
Speicherseite liest, die 5 Byte Daten hinein bastelt, die Speicherseite 
löscht und wieder neu beschreibt, bevor sie auch den Logeintrag annimmt 
und den Interrupt wieder freigibt, wodurch der zweite Impuls leider um 
300 ms nach hinten geschoben wird und ich genau das Gegenteil zu messe 
meine.)
Interessiert mich das?
Nein.

Aber wie messe ich dann den ständigen Verbrauch von 3 Watt?
Guck die Messwerte in einer passend gemittelten Skala an, vielleicht 
findest Du ihn, wenn er nicht von den Schwankungen der anderen 
Verbraucher überlagert wird.

Aber wie messe ich dann den ständigen Verbrauch von 3 Watt ohne andere 
Verbraucher?
Guck Dir die stündlichen oder täglichen Messwerte an.

Aber wie messe ich den Verbrauch von 3 Watt während der 20 Minuten in 
denen die restlichen Verbraucher ausgeschaltet sind?
Kauf Dir ein Leistungsmessgerät. Am Verbrauch kann man nicht 
feststellen, ob in den 20 Minuten "Sendepause" durchgehend 3 Watt 
verbraucht wurden, oder ob ein großer Verbraucher erst zwei Sekunden 
nach dem vorherigen Impuls ausgeschaltet wurde und nur noch 0,1 W 
verbraucht wurde, oder ob ein großer Verbraucher vielleicht 3 Sekunden 
früher eingeschaltet wurde, oder ob nach zwanzig Minuten die 
Toilettenbeleuchtung oder der automatische Lüfter der Katzentoilette 
eingeschaltet wurden.

Aber wie messe ich dann den genau zwanzig Minuten dauernden Verbrauch 
von 3 Watt?
Kauf Dir ein Leistungsmessgerät. Siehe oben.

Wie bekomme ich den Momentanverbrauch in dieser Sekunde?
Kauf Dir ein Leistungsmessgerät.

Wie bekomme ich meine 10 Leistungsmesswerte pro Sekunde?
Kauf Dir ein Leistungsmessgerät.

Und für Udo:
Wieso irritiert mich an Steffens Bild, dass pro Zeitabschnitt von 5 
Minuten nur 24 Messwerte bei einem Verbrauch von ca. 140 W dargestellt 
werden?
Kauf Steffen ein Leistungsmessgerät. [2]

Warum kann ich die Leistung nicht am Abstand der Impulse in 
Millisekunden ausrechnen:
Weil es kein Leistungsmessgerät ist und nicht die Leistung misst.

Aber wenn ich dauernd 6 kW verbrauche, könnte ich mit einer höheren 
Auflösung des Mikrocontrollers mehr Messwerte als einen pro Sekunde 
speichern, warum muss mir die Ungenauigkeit des Mikrocontrollers diesen 
einzigen Einsatzzweck den ich für den Aufbau hatte auch noch kaputt machen?
Wenn Du die Leistung messen möchtest: Kauf Dir ein Leistungsmessgerät.
Wenn Du den Verbrauch genauer messen möchtest, würde es nur Sinn machen, 
die Anzahl der Impulse nicht mehr nur eine Sekunde, sondern einer Hälfte 
einer Sekunde zuzuordnen..
Aber meiner Meinung nach macht das alles keinen Sinn. Wenn ich mein 6, 
10, 100 kW Gerät betreibe, möchte ich eher wissen, was es pro Stunde, 
pro Tag, pro Monat verbraucht. Oder was es verbraucht, wenn ich es 
einmal benutze. Oder was es pro Aufheizphase verbraucht. In welcher 
Hälfte einer Sekunde es den Strom verbraucht hat, interessiert mich 
nicht, wenn doch, nehme ich mein Leistungsmessgerät.

Wenn ich die Leistung nicht messen kann ist das ganze Projekt ja 
sinnlos, was bringt es mir dann?
Wenn Du die Leistung messen willst: Einen groben Schätzwert.
Einige hier wollen aber den Stromverbrauch messen, und den misst es 
ziemlich gut. So als wäre es dafür gebaut worden.
Und zwar in einer Auflösung von 2, 1, oder sogar 0,5 Wh. Allerdings 
völlig unabhängig von der Zeit, in der diese Energie verbraucht wird. Es 
kann immer nur Bescheid sagen, wenn ein solches Paket verbraucht wurde.

Mal angenommen, die "richtige Linie" von Steffen (siehe unten, 2 mal 5 
Sekunden 0 W, 5 Sekunden 360 W, 3 mal 5 Sekunden 0 W, 5 Sekunden 360 W) 
ist einem zu krakelig und nicht das was verbraucht wurde, dann kann ich 
das akzeptieren. Es ist halt nur das, was gemessen wurde. Ich kann die 
Linie glatt bei 140 W zeichnen, wenn ich weiß, dass ich einen konstanten 
Verbraucher mit 140 W habe. Dafür kann ich aber auch die Messung 
weglassen. Wenn ich eine glattere Linie im 5 Sekunden Rhythmus bei 140 W 
messen möchte, muss ich mir eben einen Zähler mit 30.000 Impulsen / kWh 
kaufen. Oder wenn ich die Leistung messen will, muss ich eben ein 
Leistungsmessgerät kaufen. Um die Energie zu messen muss man dann nur 
noch ein paar tausend Leistungsmessungen pro Sekunde machen und die 
Werte aufsummieren. So wie es die netten S0-Zähler für uns auch machen.

Mir reichen meine S0 Zähler. Die Auflösung meiner Zähler beträgt 0,5 Wh, 
dass ich damit keine Leistung messen kann weiß ich, es steht ja drauf. 
Und wenn ich die Leistung von Steffens 140 W halt nur im Stundentakt 
fast völlig glatt sehe, weiß ich warum, und es reicht mir völlig aus. 
Dafür weiß ich sehr genau, wie viel insgesamt verbraucht wurde, 
wahrscheinlich genauer als jemand mit einem Leistungsmesser (Falls der 
Verbrauch vielleicht doch nicht so konstant ist.)

Ein Leistungsmessgerät zu nehmen und den Verbrauch daraus zu errechnen 
dürfte vom Aufwand her eher uninteressant sein, wenn man die Genauigkeit 
der S0 Zähler erreichen möchte. Und mir geht es primär um den Verbrauch, 
daher käme für mich eigentlich nur die zusätzliche Leistungsmessung in 
Frage.
Was die mir bringt, ist der Momentanverbrauch, der mich nicht genug 
interessiert, um den entsprechenden Aufwand dafür zu treiben; da er nur 
für den aktuellen Moment interessant ist. (Und warum die anderen Leute 
hier unbedingt zwei Messwerte pro Millisekunde messen, und wie sie die 
Daten in Echtzeit transportiert und angezeigt bekommen wollen ist mir 
immer noch schleierhaft.)
Wenn man die Leistungsdaten einfach so dazu bekommt, kann man sie ja 
gerne nehmen. Aber ich würde wahrscheinlich auch nur den Verbrauch 
speichern und die Leistung wirklich nur momentan für Anzeigen benutzen 
oder Auswertungen benutzen (z.B. Verbraucheridentifikation). Das bietet 
der eHZ. Und das ist das Gerät, mit dem der Volkszähler betrieben werden 
wird, und mit dem er zum Volkszähler werden wird.
Die Gründe liegen klar auf der Hand:
Er wird überall verfügbar sein.
Er stellt kein zusätzliches "Sicherheitsrisiko" dar.
Jeder kann ihn ohne spezielle Kenntnisse bekommen
und es wird die günstigste Lösung sein, wenn man ihn schon hat, was in 
absehbarer Zeit bei allen entfernt am Smartmetering Interessierten so 
sein wird, falls sich die anderen überhaupt noch dagegen wehren können.

Wer einen für mich hat, immer zuschicken! Falls zu viele kommen, baue 
ich vor jede Steckdose einen :o)

[1]: Im Durchschnitt schon, interessant wird es aber nur, wenn die 
Impulse weit auseinander liegen, da dann die "Verbrauch dem 
Impulszeitpunkt zuweisen" Methode "unglatter" wird. Aber gerade da ist 
es unwahrscheinlicher, dass der wahre Verbrauch wirklich "glatt" ist. 
(Es sei denn, man misst den Verbrauch einer geeichten 3 Watt Dummy-Load 
unter Laborbedingungen, aber da kann man auch gleich 3 Watt dran 
schreiben. Mir geht es um den Verbrauch in meinem Haushalt und der 
ändert sich ständig und ich habe kaum Verbraucher mit völlig konstantem 
Stromverbrauch.)

[2]: Wie Justin schon vorrechnete:
Mit den eher genauen 2000 Imp/kWh Zählern: bei 140 W ca. 12 Sekunden pro 
Impuls, macht 21.4 Messwerte in 5 Minuten.
Und wie es aussieht malt auch das neue Frontend die gleichen falschen 
Kurven wie das alte und verbindet die Punkte an den Stellen: 
(Impulseintreffzeit, 1800Ws / letzte Differenz der der 
Impulseintreffzeiten) Das ist und bleibt falsch, aber auf mich hört ja 
keiner, vielleicht muss ich mir mein Frontend mit Anzeige richtiger 
Daten doch irgendwann selbst schreiben, da außer mir niemand an 
richtigen Daten interessiert ist. (Am richtigsten wäre eine vorgegebene 
Auflösung, z.B. 5 Sekunden, dann eine Linie bei null und alle 2 - 3 
Anzeigepunkte ein Ausschlag auf 360 W. Wenn man eine glattere Linie 
haben möchte, muss man die Zeiten pro Anzeigepunkt verlängern und damit 
über mehr Impulse mitteln.)

So, schon wieder mächtig überzogen (wollte eigentlich um 21 Uhr ins 
Bett, dachte aber, die eine E-Mail kann ich ja noch schreiben.)

Gute Nacht!
  Jens Wilmer



More information about the volkszaehler-dev mailing list