[vz-users] Peaks im Frontend

Jakob Hirsch jh at plonk.de
Wed Oct 1 01:24:41 CEST 2014


On 04.09.2014 21:31, Oliver Koch wrote:
> Ich habe jetzt das Problem, dass ich  Peaks im Fronend sehe.
> Insbesondere im Gesamtverbrauch (schwarz) und beim  Generatorzähler
> (blau). Da ich ein 5kW WR habe, kann keine Leistung von mehr als 5000W
> entstehen.  Woher kommen diese? Wie errechnet das Frontend aus den
> Zählerstämenden (Arbeit) die Leistung?

Die Berechnung erfolgt in der Middleware, im CounterInterpreter:
($delta_val / $this->resolution) * 3.6e9 / $delta_ts

> Differenz der Zählerstände durch tDiff?
> Ist das allein durch die grobe Ausgabe von 0,1 kWh zu erklären?

Nein, das ist durch die grobe zeitliche Auflösung bzw. das langsame
Auslesen zu erklären.

Bei meinem Zähler dauert ein Auslesevorgang (mit 300 bps) ca. 7s. Da man
aber nicht weiß, wann genau während des Auslesens (bzw. zwischen zwei
Auslese-Vorgängen) sich der Zählerstand geändert hat, muß man einen
festen Zeitstempel innerhalb des Auslesevorgangs (praktikablerweise
Anfang oder Ende, spielt aber keine Rolle). Der tatsächliche Zeitpunkt
der Zählerstandänderung liegt (gleichverteilt) irgendwo im Intervall
zwischen zwei angenommenen Zeitpunkten.

Beispiel:
Änderung um 0,1kWh, Leistung ca. 5,5kW
Das wäre dann eine Änderung alle 65s. Durch die zeitliche Unschärfe
bekommt man die Änderung aber zwischen 61,5s und 68,5s mit. Die daraus
berechnete Leistung schwankt ungefähr zwischen 5,85kW und 5,35kW.

> Da das Script keine doppelten Zählerstände abspeichert, kann niemals 0W
> Leistung angezeigt werden, oder?

Ja.

> In der VZ-Datenbank sehen die Zählerstände alle plausibel aus. Leider
> weiss ich nicht, wie ich die timestamp in Datum/Uhrzeit dekodieren kann.
> Anbei ein kleiner Ausschnitt aus der DB:*
> **
> Id       channel    timestamp      value*
> 6451    3    1409843720082    14928.8

Das ist der Unix-Timestamp in ms. Umrechnen kann man das so:
$ date -d @$[1409843720082/1000]
Thu Sep  4 17:15:20 CEST 2014

Oder direkt in mysql:
> > select id, channel_id, from_unixtime(timestamp/1000), value from
data limit 10;
+----+------------+-------------------------------+-------+
| id | channel_id | from_unixtime(timestamp/1000) | value |
+----+------------+-------------------------------+-------+
|  1 |          1 | 2011-02-09 01:16:22           |     1 |
...


HTH
Jakob


More information about the volkszaehler-users mailing list