[vz-dev] MAX 1800Watt

Justin Otherguy justin at justinotherguy.org
Mon Dec 27 13:03:19 CET 2010


Moin,

Am 27.12.2010 um 11:19 schrieb Steffen Vogel:

> On Sun, 26 Dec 2010 20:18:57 +0100, Harald Koenig
> <koenig at tat.physik.uni-tuebingen.de> wrote:
>> On Dec 23, Jens Wilmer wrote:
>> 
>>> Das ist ja Fehler im Backend, aber man kann ihn auf der Ethersex
>>> Seite umgehen, indem man es mit "Sumarize Events" compiliert. In
>> 
>> es gibt aber nicht nur ethersex. ein allgemeiner fix im backend sowie
>> ein frontend welches mit solchen mehrfachen eintraegen umgehen kann,
>> koennte auch anderen "datenquellen" mit aehnlichen timestamp-problemen 
>> helfen...
> 
> ich habe bereits die Datenbank so angepasst, dass sie mit doppelten
> Timestamps nun umgehen kann.
> Das Backend bedarf auch noch einer kleinen Anpassung, die jetzt bald
> folgt.
> 
> Im Prinzip haben wir dann die "summarize" Funktion sowohl in etheersex,
> als auch nochmal mit Backend.
> Wir gehn also im Prinzip nochmal auf Nummer sicher..

Ich glaube, dass wir mit "unique" timestamps richtig unterwegs sind. 

Warum?
wir können die Leistung auf 2 Arten berechnen:
- sofern die Anzahl der Impuls für das Intervall (Obacht - nicht "Fensterbreite", sondern "1 Pixel") groß genug ist, können wir die Impulse zählen und zusammen mit dem Intervall die Leistung bestimmen
- anderenfalls bestimmen wir die Zeit zwischen 2 Impulsen -> wenn die timestamps nun nicht unique sind, ist die dann 0

Ich schlage daher eine weitere kleine Änderung vor:
- sollte der timestamp, der in die db eingetragen werden soll, bereits vorhanden sein (Kollision), legen wir nicht einen zweiten Eintrag mit dem gleichen timestamp an, sondern erhöhen den "value" um eins

Das gleicht m.E. auch noch mehr der summarize-Funktion in ethersex.

Für die Implementierung fallen mir 2 Lösungen ein:
- vor dem Eintragen eines Impulses könnten wir nach dem timestamp suchen; nur wenn dieser noch nicht vorhanden ist, tragen wir einen neuen ein; anderenfalls erhöhen wir "value" (das ist vermutlich aber Blödsinn)
- wir tragen ein (wie derzeit) und falls das SQL-Statement mit einem Fehler endet (...schon vorhanden...) fragen wir den value ab und inkrementieren diesen


Gruss, J.



More information about the volkszaehler-dev mailing list