[vz-dev] vzlogger - advanced Konfig

Rainer Gauweiler volkszaehler at moppl.inka.de
Wed Mar 19 10:33:25 CET 2014


Hallo,

Am 18.03.2014 19:40, schrieb Thorben Thuermer:

> das betrifft den code fuer den custom format-string,
> der scheint fehlerhaft zu sein.
> einfach  den format-string weglassen, schon funktioniert es
> mit dem temp-file.

Ok, danke fürs Nachgucken. Hab es unter 
https://github.com/volkszaehler/vzlogger/issues/24 erfasst.

Es tut zwar besser aber noch nicht ausreichend:

[Mar 19 10:07:28][mtr1] Got 1 new readings from meter:
[Mar 19 10:07:28][mtr1] Reading: id=/StringItentifier: value=32552.00 
ts=1395220048.127
[Mar 19 10:07:28][chn1] Buffer dump (size=0 keep=30): {}
[Mar 19 10:07:28][mtr1] Next reading in 20 seconds
[Mar 19 10:07:28][chn1] ==> number of tuples: 0
[Mar 19 10:07:28][chn1] JSON request body is null. Nothing to send now.

-> er überträgt es nicht zur Middleware

Mir ist auch nicht so klar, wie man sich von den Möglichkeiten die scanf 
bietet auf den String schließt. Ist da nur die Position innerhalb eines 
Strings möglich, oder auch die Formatieroptionen wie %2d die scanf kann?

Und kann man da auch noch einfache Berechnungen machen? Ich müsste ja 
eigentlich 39553 in 39.552 umrechnen. Würde ich das dann über die 
Auflösung machen, oder geht das gleich in dem String? Und geht es 
überhaupt über die Auflösung?

Ich kann das alles natürlich trivial in bash/php lösen, versuche aber 
gerade die Möglichkeiten vom vzlogger auszuloten.

>> Im Wiki (http://wiki.volkszaehler.org/software/controller/vzlogger)
>> steht das Protocol file als Beispiel um den Load zu erfassen. Was nimmt
>> man denn in der Middleware als Kanaltyp dazu?
>
> wie erwaehnt, einen beliebige sensorinterpreter-basierten typ.
> (oder einen passenden selbst definieren, ich denke aber temperature

ok, ich habe Temperatur genommen, und habe das Beispiel um einen 
entsprechenden channel-Eintrag ergänzt.
Das Ergebnis ist auch hier:

[Mar 19 10:18:58][]     MeterFile::read: 32, 32
[Mar 19 10:18:58][mtr2] Got 1 new readings from meter:
[Mar 19 10:18:58][mtr2] Reading: id=/StringItentifier: value=0.13 
ts=1395220738.833
[Mar 19 10:18:58][chn2] ==> number of tuples: 0
[Mar 19 10:18:58][chn2] JSON request body is null. Nothing to send now.
[Mar 19 10:18:58][chn2] Buffer dump (size=0 keep=60): {}
[Mar 19 10:18:58][mtr2] Next reading in 10 seconds

-> wieder kein Eintrag. Kaputt?

Ich habe auch noch ein bisschen mit aggtime/mode rumgespielt um zu sehen 
ob es das inzwischen braucht. Hat aber auch kein wesentlicher 
Unterschied - da läuft es dann einfach nur durch

Wer die Konfig braucht:

        {
         "enabled" : true,
         "protocol" : "file",
         "path" : "/proc/loadavg",
//      "format" : "$i $v $t",  /* a format string for parsing complex 
logfiles */
                                 /* arbitrary text and whitespaces are 
allowed, see 'scanf()' */
                                 /* at least $v has to be used */
                                 /* $i => identifier, $v => value, $t => 
timestamp */
         "rewind" : true,        /* reset file pointer each interval to 
the beginning of the file */
         "interval" : 10,        /* of ommitted, we will try to listen 
on changes with inotify */
         "aggtime" : 300,        /* aggregate all signals and give one 
update to middleware every 'aggtime' seconds */
         "aggfixedinterval" : true, /* round all timestamps to 
middleware to nearest aggtime */
         "channel" : {
                 "uuid" : "6b935420-af46-11e3-aea7-f7bf03375759",
                 "middleware" : "http://localhost/middleware.php",
                 "aggmode" : "MAX" /* add all s0 intervals in the 
aggregation. Possible Modes: SUM, AVG, MAX  and NONE */
                 } // channel
         } // meter

Ich würde erwarten dass da nach 10 Sekunden eine Änderung im log ist - 
ich sehe aber keine. Sieht so aus als wäre die Aggregation dafür 
eventuell auch nicht in Ordnung.

Gruss
      Rainer



More information about the volkszaehler-dev mailing list