Am 21.05.13 08:15, schrieb Thorben Thuermer:
habe nun vzlogger von peter evertz über git installiert
meine vzlogger.conf hab eich wie folgt angepasst:
[...]
"meters" : [{
         "enabled" : true,
         "device" : "/dev/ttyS0",
         "protocol" : "d0",
         "baudrate" : 300,
         "parity" : "7N1",
         "pullseq" : " /?!<0D><0A>", // HEX Darstellung der Pullsequenz
         "interval" : 61, // Wartezeit bis zum nächsten Pull
     }]
}
[...]
  sudo strace -f -s 9999 vzlogger --config /etc/vzlogger.conf -v 20 >
vzlogger.trace

  write(3, "[May 20 10:35:23][mtr0] Config.local: 0\n", 40) = 40
[pid 10271] read(4, "", 1)              = 0
[pid 10271] stat("/etc/localtime", {st_mode=S_IFREG|0644,
st_size=1892, ...}) = 0
[pid 10271] getppid()                   = 10269
[pid 10271] write(2, "[May 20 10:35:27][d0]   ", 24[May 20
10:35:27][d0]   ) = 24
[pid 10271] write(2, "Something unexpected happened: read:306!",
40Something unexpected happened: read:306!) = 40
[pid 10271] write(2, "\n", 1
)           = 1
das ist ungekuerzt?
das ein read mal nichts liefert ist eigentlich kein problem,
ich wuerde vermuten die meldung entsteht durch weiter oben
gelesene daten...
es ist einfach sch***, dass da soeine unspezifische meldung
ausgegeben wird... ich hatte das schonmal gepatcht, aber das ist
irgendwann wieder untergegagen...
Da war doch mal ein Patch im alten C vzlogger. Der hatte bei mir damals geholfen. Ich glaube das Problem war, dass der Zähler ein zeichen (Zahl oder Buchstabe) im Output
sendet mit dem der vzlogger an der Stelle nicht rechnet und dann abkackt.

Glaub Thorben oder Udo hatte damals den Patch für den C vzlogger gemacht.

Bei mir läuft auch heut noch der C logger weil die C++ Version einfach nicht klappt (angefangen bei den 300 baud wie Peter Kreuzer gesehen hat
und eben beim Parsen des Outputs vom d0 Zähler.

die lesekopf scheint also was leeres zu schicken.
Muss ich den Eintrag noch in HEX umrechnen?
"pullseq" : " /?!<0D><0A>", // HEX Darstellung der Pullsequenz
wenn ich das richtig sehe, in dem beispeiel, dann besteht die pullseq
NUR aus hex-ziffern, OHNE plaintext und OHNE <>-marker.
das war nur die pseudo-syntax die ich in der email benutzt hatte.
das beispiel in peter's beispielconfig aus seiner mail
enthaelt ohnehin schon den korrektten string!
(wenn der code das nicht korrekt behandelt (bzw, keinen fehler meldet),
  dann sollte das behoben werden.)
wie gehabt:
"pullseq" : "4060200D0A", // HEX Darstellung der Pullsequenz
http://volkszaehler.org/pipermail/volkszaehler-dev/2013-April/002671.html


Grüße
M

Antwort per Email an