[vz-dev] libsml & vzlogger

M. Hagedorn mic01 at uni-muenster.de
Tue Oct 25 15:57:33 CEST 2011


Hi.
Ok, nach diversen Anläufen (mit Nachhilfe von Justin -> Danke!) habe ich es 
nun *fast* hinbekommen. Es sieht momentan so aus: Mein AVR Net-IO ist mit 
einem AtMega644p bestückt, der bekanntlich 2 UARTs hat. Um die *beide* nutzen 
zu können, habe ich das yport-Protokoll dupliziert (wie im Wiki beschrieben). 
Nun bekomme ich über 
nc <ip> 7970 den Zählerstand des einen und über 
nc <ip> 7971 entsprechend den Zählerstand des anderen Easymeters (Q3D) [1].  
Das Ganze ist fehlerfrei und ohne "verschlucken" von Zeichen. Soweit so gut! 

Die Daten sollen natürlich jetzt per vzlogger in den volkszaehler. Dazu habe 
ich momentan folgende vzlogger.conf, die *fast* funktioniert:

--------------
/**
 * vzlogger configuration
 *
 * use proper encoded JSON with javascript comments
 *
 * take a look at the wiki for detailed information:
 * http://wiki.volkszaehler.org/software/controller/vzlogger#configuration
*/

{
"retry" : 30,  /* how long to sleep between failed requests, in seconds */
"daemon": false,   /* run periodically; Achtung: SEHR HOHE Prozesslast!! */
"foreground" : true,    /* dont run in background (prevents forking) */
"verbosity" : 10,       /* between 0 and 15 (highest) */
"log" : "/var/log/vzlogger.log", /* path to logfile, optional */
"local" : {
    "enabled" : false,  /* should we start the local HTTPd for serving live 
readings? */
    "port" : 8081,      /* the TCP port for the local HTTPd */
    "index" : true,     /* should we provide a index listing of available 
channels? */
    "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" : [{
            "enabled" : true,   /* disabled meters will be ignored */
            "protocol" : "d0",  /* Haushaltsstromzaehler I */
            "connection" : "192.168.178.35:7970",
            "channels": [{"uuid" : "e8135490-fe74-11e0-bb3b-bfa8fcf82552",
            "middleware" : "http://192.168.178.25/middleware.php",
            "identifier" : "power"
                        }]
            },{
            "enabled" : true,   /* disabled meters will be ignored */
            "protocol" : "d0",  /* Waermepumpenstromzaehler II */
            "connection" : "192.168.178.35:7971",
            "channels": [{"uuid" : "6427a650-fee7-11e4-9eef-bd23769c78f4",
            "middleware" : "http://192.168.178.25/middleware.php",
            "identifier" : "power"
                        }]
            }
            ]
}
---------------------------------------------------
Wenn ich damit vzlogger anwerfe, erhalte ich:
root at virt-ubuntu:~# vzlogger

[Oct 25 15:46:23][mtr0] New meter initialized (protocol=d0, 
connection=192.168.178.35:7970, interval=0)
[Oct 25 15:46:23][ch0]  New channel initialized (uuid=...f82553 
middleware=http://192.168.178.25/middleware.php obis=1-0:1.7.ff*ff)
[Oct 25 15:46:23][mtr1] New meter initialized (protocol=d0, 
connection=192.168.178.35:7971, interval=0)
[Oct 25 15:46:23][ch1]  New channel initialized (uuid=...9c78f8 
middleware=http://192.168.178.25/middleware.php obis=1-0:1.7.ff*ff)
[Oct 25 15:46:23]       Opened logfile /var/log/vzlogger.log
[Oct 25 15:46:23][mtr0] Meter connected
[Oct 25 15:46:23][mtr0] Meter thread started
[Oct 25 15:46:23][ch0]  Logging thread started
[Oct 25 15:46:23][mtr1] Meter connected
[Oct 25 15:46:23][mtr1] Meter thread started
[Oct 25 15:46:23][ch1]  Logging thread started
[Oct 25 15:46:23][ch1]  New reading (value=-0.00 
ts=61075167443337453699341460165618559225707340766740471943997724049365884721333440514844636004420844493059802586156430512029559131451169403898488280430747878964203589795572795105499369225163028921037701140325597184.000000)
[Oct 25 15:46:23][ch1]  Buffer dump: |!123.24| (size=1, keep=0)
[Oct 25 15:46:23][ch0]  New reading (value=-2.00 
ts=62421905423730807969687851052264161831375798289626249903605016058414025011868272746895314769296679412450915724665115569418291085689189452134508302955595470171528915545234289265405557943488981757719677223475085312.000000)
[Oct 25 15:46:23][ch0]  Buffer dump: |!122.34| (size=1, keep=0)
[Oct 25 15:46:23][ch0]  JSON request body: [ [ 1319550383620.843018, 
122.339096 ] ]
[Oct 25 15:46:23][ch1]  JSON request body: [ [ 1319550383612.842041, 
123.238251 ] ]
[Oct 25 15:46:23][ch1]  Request succeeded with code: 200
[Oct 25 15:46:23][ch0]  Request succeeded with code: 200
----
Sieht zunächst alles richtig aus, oder? Wenn ich jetzt allerdings im frontend 
nachsehe, sehen beide Zählerstände *identisch* aus und liegen direkt 
übereinander. Da stimmt also etwas noch nicht ganz -- nur was?
Justin meinte gestern, dass OBIS noch nicht ganz fertig ist. Hat das damit zu 
tun oder stimmt ganz einfach an der Syntax in meiner .conf etwas nicht?
Danke.
Michael

[1] Die zusätzliche Schwierigkeit mit der (unglücklichen/ungewöhnlichen) 
7n1 at 9600 Baud-Einstellung wurde hier ja auch schon behandelt ... vgl.
ethersex/core/usart.h (Zeile 112)


More information about the volkszaehler-dev mailing list