Hallo Leute,

mein neuer Vzlogger:

root@raspberrypi:~# vzlogger --version
0.3.6

macht einen Segmentation Fault beim parsen der OID's.

Meine Config:
{
"retry" : 30,                      /* how long to sleep between failed
requests, in seconds */
"daemon": false,                    /* run periodically */
"foreground" : true,              /* run in background */
"verbosity" : 9999,                   /* between 0 and 9999, je höher
desto mehr Infos */
"log" : "/var/log/vzlogger.log",   /* path to logfile, optional */

"local" : {
        "enabled" : false,      /* local HTTPd for serving live
readings, 'false' für Daten an die middleware !!! */
        "port" : 80,            /* the TCP port for the local HTTPd */
        "index" : true,         /* should we provide a index listing of
available channels if no UUID was requested? */
        "timeout" : 30,         /* timeout for long polling comet
requests, 0 disables comet, in seconds */
        "buffer" : 600          /* how long to buffer readings for the
local interface, in seconds */
          },

"meters" : [{                           /* Beispiel-Meter */
        "enabled" : true,               /* disabled meters will be
ignored (default) */
        "protocol" : "d0",              /* see 'vzlogger -h' for list of
available protocols */
        "device" : "/dev/ttyUSB0",
        "parity" : "7E1",               /* oder 8N1  */
        "baudrate" : 300,              /* oder 300  */
        "pullseq" : "2f3f210d0a",
        "interval" : 500,
          "interval": 6,                                   /* Wartezeit
in Sekunden bis neue Werte in die middleware übertragen werden */
           "channel": {                                   /*
Beispiel-channel */
                                 "uuid" :
"a02ea060-1e18-11e4-a178-5be9227ad291",
                                 "middleware" :
"http://127.0.0.1/middleware.php";,
                                 "identifier" : "1-0:1.8.1" /* alias for
'1-0:1.8.1', see 'vzlogger -h' for list of available aliases */
                              }
                   }]
}

der Output vom vzlogger:
[Sep 01 12:35:41][mtr0] Creating new meter with protocol d0.
[Sep 01 12:35:41][d0]   pullseq len:5 found
[Sep 01 12:35:41][mtr0] Meter configured. enabled
[Sep 01 12:35:41]       New meter initialized (protocol=d0)
[Sep 01 12:35:41]       Configure channel.
[Sep 01 12:35:41][chn0] New channel initialized (uuid=...7ad291
protocol=volkszaehler id=1-0:1.8.1)
[Sep 01 12:35:41]       Have 1 meters.
[Sep 01 12:35:41][main] foreground=1, daemon=0, local=0
[Sep 01 12:35:41]       NOT Daemonize process...
[Sep 01 12:35:41]       Opened logfile /var/log/vzlogger.log
[Sep 01 12:35:41][]     ===> Start meters.
[Sep 01 12:35:41][mtr0] Meter connection established
[Sep 01 12:35:41][mtr0] Meter thread started
[Sep 01 12:35:41][mtr0] meter is opened. Start channels.
[Sep 01 12:35:41][chn0] Logging thread started
[Sep 01 12:35:41][]     Startup done.
[Sep 01 12:35:41][chn0] Start logging thread for volkszaehler-api.
Running as daemon: no
[Sep 01 12:35:41][chn0] Using default api:
[Sep 01 12:35:41][mtr0] Number of readers: 32
[Sep 01 12:35:41][mtr0] Config.daemon: 0
[Sep 01 12:35:41][mtr0] Config.local: 0
[Sep 01 12:35:41][d0]   sending pullsequenz send (len:5 is:5).
[Sep 01 12:35:42][d0]   Pull answer (vendor=LGZ, baudrate=5,
identification=\2ZMD3102400.B14)
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte ^B hex= 2
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte F hex= 46
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte F hex= 46
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Sep 01 12:35:44][d0]   Parsed reading (OBIS code=F.F, value=02000000,
unit=)
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte
 hex= A
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Sep 01 12:35:44][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Sep 01 12:35:45][d0]   Parsed reading (OBIS code=0.0.0, value=11111111,
unit=)
[Sep 01 12:35:45][d0]   DEBUG OBIS_CODE byte
 hex= A

[....]

[Sep 01 12:36:14][d0]   DEBUG OBIS_CODE byte 2 hex= 32
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 8 hex= 38
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 1 hex= 31
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte * hex= 2A
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 1 hex= 31
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Sep 01 12:36:15][d0]   Parsed reading (OBIS code=2.8.1*10,
value=000000.0, unit=)
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte
 hex= A
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 2 hex= 32
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 8 hex= 38
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 1 hex= 31
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte * hex= 2A
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte 9 hex= 39
[Sep 01 12:36:15][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Sep 01 12:36:16][d0]   Parsed reading (OBIS code=2.8.1*09,
value=000000.0, unit=)
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte
 hex= A
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte 2 hex= 32
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte 8 hex= 38
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte . hex= 2E
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte 1 hex= 31
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte * hex= 2A
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte 0 hex= 30
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte 2 hex= 32
[Sep 01 12:36:16][d0]   DEBUG OBIS_CODE byte ( hex= 28
[Sep 01 12:36:16][d0]   Parsed reading (OBIS code=2.8.1*02,
value=000000.0, unit=)
[Sep 01 12:36:17][d0]   DEBUG OBIS_CODE byte
 hex= A
Segmentation fault

Es scheint der Zähler nach dem Obis CODE: 2.8.1*02 irgendein Zeichen zu
senden, dass den Parser abstürzen lässt.

Hat jemand von euch das Problem auch schonmal gehabt?

danke
Michael

Antwort per Email an