Re: [vz-dev] Falsche Darstellung von Stromzählerwerten

2013-11-20 Diskussionsfäden Daniel Lauckner
Am Dienstag, 19. November 2013 um 16:35 schrieb Jürgen Müller:
 Wird dann wieder Strom bezogen zeigt mir der Graph immer eine
 ansteigende Rampe, statt eines Pulses nach einer langen Flatline 
 Ist hier schon ein Fehler bekannt?
Ja, ein Konfigurationsfehler.

Du kannst bei den Graphen als Style line oder steps wählen.
Bei dir ist mit Sicherheit noch line aktiv, das wäre für Temperaturen
passend. Bei Leistungen ist die Darstellung mit steps dann korrekt.


mfg Daniel



---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz 
ist aktiv.
http://www.avast.com



[vz-dev] Middleware, Data, Rows und Anzahl der Rows und Tuples

2013-11-20 Diskussionsfäden René Hézser
Hi,
wenn ich auf meinem Pi diese Anfrage stelle: 
http://raspberrypi/middleware.php/data/14d37a00-34f4-11e3-91b6-3f631c60f726.json?from=now
Dann bekomme ich diese Antwort:
{version:0.3,data:{uuid:14d37a00-34f4-11e3-91b6-3f631c60f726,from:1384965305505,to:1384969505309,min:[1384966205759,429],max:[1384969505309,1277],average:723.585,consumption:844.143,rows:14,tuples:[[1384965905543,492,1],[1384966205759,429,1],[1384966505900,433,1],[1384966805009,444,1],[1384967105212,450,1],[1384967405732,490,1],[1384967705873,550,1],[1384968005193,487,1],[1384968305450,1117,1],[1384968605668,1100,1],[1384968905893,1123,1],[1384969205557,1246,1],[1384969505309,1277,1]]}}

Rows sind 14. Es werden jedoch nur 13 Tuples zurückgegeben. Ist das richtig so?

Im Wiki steht:
Die Antwort wird in Form eines JSON-Arrays zurück geliefert. z.B.:
[[123456789, 100, 1], [1234567891000, 98, 1], ... [123456790, 116, 1]]
Es besteht aus:
einem Zeitstempel
einem Messwert (keine Pulse!)
und die Anzahl der Messwerte/Pulse die für die Berechnung des Messwertes 
genutzt wurden

Ist mit den Anzahl der Messwerten Rows gemeint? Dann würde es nicht passen. 
Jedenfalls bei mir.



smime.p7s
Description: S/MIME cryptographic signature


Re: [vz-dev] Falsche Darstellung von Stromzählerwerten

2013-11-20 Diskussionsfäden Daniel Lauckner
Am Mittwoch, 20. November 2013 um 19:37 schrieb Jürgen Müller:
 Der Zähler hat nur eine Auflösung von 0.01 kWh, weshalb nicht bei
 jeder Messung eine Änderung erfolgt.
 Die Summe die unten Angezeigt wird (360 Wh) stimmt. Der Graph entspricht dem 
 aber nicht.

 Hast du hier auch einen Vorschlag?
Mit vzlogger auslesen und aggregieren lassen. Wird das zwar
nicht genauer aber richtiger.
Wenn du im frontend weiter rausgehst siehts besser aus?


mfg Daniel



---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz 
ist aktiv.
http://www.avast.com



Re: [vz-dev] Falsche Darstellung von Stromzählerwerten

2013-11-20 Diskussionsfäden Thorben Thuermer
On Wed, 20 Nov 2013 19:37:25 +0100 Jürgen Müller juergen4.muel...@gmail.com 
wrote:
 Ich habe die Einstellung jetzt auf steps geändert. Die Darstellung ändert 
 sich da auch.
 Leider ist sie immer noch falsch.
 Der Zähler hat nur eine Auflösung von 0.01 kWh, weshalb nicht bei jeder 
 Messung eine Änderung erfolgt.
 Die Summe die unten Angezeigt wird (360 Wh) stimmt. Der Graph entspricht dem 
 aber nicht.
 
 Hast du hier auch einen Vorschlag?

das problem ist ja recht klar:
der zaehler liefert zwar immer den gleichen wert,
aber intern werden halt die nicht angegeben nachkommastellen hochgezaehlt,
die dann erst beim ueberlauf in die 2. nachkommastelle auftauchen.

wenn der meterinterpreter aus den werten die leistung berechnet,
ermittelt dieser (korrekt!), dass die leistung null sein muss,
wenn zwei aufeinanderfolgende arbeitswerte gleich sind,
und erzeugt entsprechend dort wo die aenderung stattfindet einen kurzen
leistungs-peak.

du koenntest nach daniel's vorschlag die werte ueber laengere
zeitraeume aggregieren, dann wahre unwahrscheinlicher, dass
aufeinanderfolgende gleiche werte geloggt werden,
allerdings wird auch die ohnehin schon geringe aufloesung des
zaehlers dann noch schlechter.

was aber sinnvoller erscheint, waehre, die identischen werte nicht
zu speichern, bzw keinen neuen wert, wenn keine aenderung stattgefunden
hat, dann sollte der interpreter den verbrauch korrekt auf den
gesamten zeitraum zwischen den aenderungen verteilen.

dafuer gibt es wohl bisher keine methode.

ich denke man koennte dafuer die delta-aggregation die jemand implementiert
hatte verwenden?
http://demo.volkszaehler.org/pipermail/volkszaehler-dev/2013-November/003182.html

damit koenntest du dann einen recht langen aggregations-zeitraum waehlen,
aber die aufloesung wuerde nicht schlechter werden, da trotzdem jede
aenderung geloggt wird.
(aber scheinbar auch nicht optimal, da, wie er schreibt, der erste wert immer
 geloggt wird, auch wenn er keine veraenderung darstellt,
 du haettest also weiterhin zwischendurch nulllinien.)

alternativ muesste man das ganze verwerfen identischer werte irgendwie
in vzlogger oder die middleware reinbekommen,
notfalls vlt. ein script (anpassung von vzcompress?) das die werte nachtraeglich
aus der db entfernt.

 Mit freundlichen Grüßen
 Jürgen Müller
 juergen4.muel...@gmail.com

- Thorben

 Am 20.11.2013 um 17:27 schrieb Daniel Lauckner mail...@jahp.de:
 
  Am Dienstag, 19. November 2013 um 16:35 schrieb Jürgen Müller:
  Wird dann wieder Strom bezogen zeigt mir der Graph immer eine
  ansteigende Rampe, statt eines Pulses nach einer langen Flatline 
  Ist hier schon ein Fehler bekannt?
  Ja, ein Konfigurationsfehler.
  
  Du kannst bei den Graphen als Style line oder steps wählen.
  Bei dir ist mit Sicherheit noch line aktiv, das wäre für Temperaturen
  passend. Bei Leistungen ist die Darstellung mit steps dann korrekt.
  
  
  mfg Daniel
  
  
  
  ---
  Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus 
  Schutz ist aktiv.
  http://www.avast.com
  
 


[vz-dev] vzlogger MeterD0.cpp Master branch parity

2013-11-20 Diskussionsfäden Reinhard Wilzeck

Hallo,
erfreulicherweise kann man nun für das Protokoll D0 parity und baud rate 
über die vzlogger.conf konfigurieren.

(Nötig z.B. für Landis+Gyr E350 EDL21 .)
...
 protocol : d0, /* see 'vzlogger -h' for list of available 
protocols */

device : /dev/ttyUSB0,
enabled: true,
parity: 7e1,
baudrate:300,
...
Leider hat sich ein Fehler beim Setzen der einzelnen bits eingeschlichen.
(Ich weiss nicht, ob es schon jemand gesehen hat)
Dadurch wird unbeabsichtigt u.a. CRTSCTS gesetzt.
Damit sendet Udos USB IR Schreiblesekopf nicht.  (macht er richtig, denn 
ohne den vzlogger arbeitet er einwandfrei.)


falsch ist z.B.
...
case parity_7e1:
tio.c_cflag |= ~ PARENB;
...
Damit werden alle bits gesetzt (außer PARENB)
Richtig ist:
switch(_parity) {
case parity_8n1:
tio.c_cflag = ~ PARENB;
tio.c_cflag = ~ PARODD;
tio.c_cflag = ~ CSTOPB;
tio.c_cflag = ~ CSIZE;
tio.c_cflag |= CS8;
break;
case parity_7n1:
tio.c_cflag = ~ PARENB;
tio.c_cflag = ~ PARODD;
tio.c_cflag = ~ CSTOPB;
tio.c_cflag = ~ CSIZE;
tio.c_cflag |= CS7;
break;
case parity_7e1:
tio.c_cflag = ~CRTSCTS;  // für paranoide, aber nicht 
allgemein gültig.

tio.c_cflag |=  PARENB;
tio.c_cflag = ~ PARODD;
tio.c_cflag = ~ CSTOPB;
tio.c_cflag = ~ CSIZE;
tio.c_cflag |= CS7;
break;
case parity_7o1:
tio.c_cflag = ~ PARENB;
tio.c_cflag |=  PARODD;
tio.c_cflag = ~ CSTOPB;
tio.c_cflag = ~ CSIZE;
tio.c_cflag |= CS7;
break;
}

Dann klappt es auch mit dem Senden  (geprüft mit Digitalkamera) und dem 
Empfang (geprüft mit IR Fernbedienung vom Fernseher)


An dem Acknowledge, das der Zähler braucht arbeite ich noch. Außerdem 
kann man die Schnittstelle auch mit einem Timeout versehen, so das der

read nicht für immer hängen bleibt.
/* Set return rules for read to prevent endless waiting*/
 tio.c_cc[VTIME]= 50; /* inter-character timer 50*0.1s*/
 tio.c_cc[VMIN] = 0; /* VTIME is timeout counter */
Der praktische Beweis der Funktion steht aber noch aus.

Gruß
Reinhard


Re: [vz-dev] vzlogger MeterD0.cpp Master branch parity

2013-11-20 Diskussionsfäden Thorben Thuermer
On Wed, 20 Nov 2013 23:36:13 +0100
Reinhard Wilzeck reinh...@wilzeck.de wrote:
 erfreulicherweise kann man nun für das Protokoll D0 parity und baud rate 
 über die vzlogger.conf konfigurieren.
 (Nötig z.B. für Landis+Gyr E350 EDL21 .)
   protocol : d0, 
  parity: 7e1,
  baudrate:300,
 Leider hat sich ein Fehler beim Setzen der einzelnen bits eingeschlichen.
 (Ich weiss nicht, ob es schon jemand gesehen hat)
 Dadurch wird unbeabsichtigt u.a. CRTSCTS gesetzt.
 Damit sendet Udos USB IR Schreiblesekopf nicht.  (macht er richtig, denn 
 ohne den vzlogger arbeitet er einwandfrei.)
 
 falsch ist z.B.
  case parity_7e1:
  tio.c_cflag |= ~ PARENB;
 Damit werden alle bits gesetzt (außer PARENB)
 Richtig ist:
  switch(_parity) {
  case parity_8n1:
  tio.c_cflag = ~ PARENB;

das koennte die probleme erklaeren die andere user schon mit porteinstellungen
bei vzlogger hatten...
(finde den thread gerade nicht)

 An dem Acknowledge, das der Zähler braucht arbeite ich noch. Außerdem 
 kann man die Schnittstelle auch mit einem Timeout versehen, so das der
 read nicht für immer hängen bleibt.
 /* Set return rules for read to prevent endless waiting*/
   tio.c_cc[VTIME]= 50; /* inter-character timer 50*0.1s*/
   tio.c_cc[VMIN] = 0; /* VTIME is timeout counter */

 Der praktische Beweis der Funktion steht aber noch aus.

ich kann das leider mangels zaehlern wenig testen.
schickst du uns einen patch, sobald du eine version hast die laeuft?
danke!

 Gruß
  Reinhard

- Thorben