[vz-dev] vzlogger mit Landis&Gyr ehz

Michael Wulz michael.wulz at gmail.com
Tue Jan 22 11:53:03 CET 2013


Am 22.01.13 09:52, schrieb Thorben Thuermer:
> On Mon, 21 Jan 2013 21:38:56 +0100
> Michael Wulz <michael.wulz at gmail.com> wrote:
>> Ich habe einen Landis & Gyr EHZ (ZMD3 Serie).
>>
>> Ich habe von Udo den IR-Lesekopf mit USB, dieser hängt am Raspberry mit
>> neustem Raspbian Image.
>> Dieser wird auch korrekt erkannt und als /dev/ttyUSB0 gesetzt.
>>
>> Wenn ich mit dem Test-Script von:
>> http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/siemens_td3511
>>
>> Den Zähler auslese, bekomme ich folgende Daten:
>> 6 Bytes written
>>
>> /?!
>> /LGZ5\2ZMD3124.B14
> [...]
>> 1.8.1(23.1*kWh)
>> 1.8.1*1(23.1)
> [...]
>> .9.1(7:42:7)
>> .9.2(-1-18)
>> .2.(B14)
>> .2.1(TEST)
>> .2.2(999)
>> C.2.1(-1-1 :)
>> C.9.1(AAAAAAA)
> [...]
>> Was mir aber unklar ist ob der Zähler nun d0 oder sml spricht?
> d0.
Auf das war ich dann später auch noch gekommen. Da ein "# cat < 
/dev/ttyUSB0" mir definitiv cleartext Daten sendet.
>
>> Ich hab dann den vzlogger mit libsml wie beschrieben compiliert und
>> insttalliert (letzer clone vom git).
> libsml haettest du dir sparen koennen.
> welches git? ;)
Gut, dann kann ich beim späteren Build das libsml draussen lassen ;-)
Das folgende git:

https://github.com/volkszaehler/vzlogger.git

>
>> Buildprozess hat auch ohne Probleme funktioniert.
>> Nun meine vzlogger.conf:
> [...]
>> "meters" : [{
>>      "protocol" : "d0",    /* see 'vzlogger -h' for list of available
>> protocols */
>>      "device" : "/dev/ttyUSB0",
> [...]
>> Wenn ich nun den vzlogger starte, kommt nach 10 Sekunden zirka ein
>> Segmentation Fault:
> [...]
>> [Jan 21 21:37:06][meter_Segmentation fault
>>
>> An was kann das ganze liegen?
> oben ist schon zu sehen, dass die ausgabe von deinem zaehler etwas
> ungewoehnlich aussieht,
> ich vermute damit kommt der d0-parser in vzlogger (der leider recht primitiv ist)
> nicht klar.
Denke auch, dass der Parser da den Segfault auslöst. Die OIDS sind 
nämlich hier auch anders,
ohne "1-0:" am Anfang.
>
> ich wuerde mir das nachher mal anschauen,
> waehre gut wenn du die ausgabe des zaehlers einmal direkt wegspeichern
> und als attachment schicken koenntest (damit enthaltene binaerdaten
> erhalten bleiben),
> dann kann ich das zum testen nehmen.
Die Daten vom Zähler im Attachment "zaehlerdaten.txt"
mit folgendem Befehl getriggert:
# echo $'\x2f\x3f\x21\x0d\x0a' > /dev/ttyUSB0
>
> noch besser waehre wenn du auch selber vzlogger mit configure --enable-debug
> kompilierst, in gdb startest, und ein 'bt full' postest...
hier der Output:

root at raspberrypi:/usr/local/etc# gdb vzlogger
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/bin/vzlogger...done.
(gdb) run
Starting program: /usr/local/bin/vzlogger
[Thread debugging using libthread_db enabled]
Using host libthread_db library 
"/lib/arm-linux-gnueabihf/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0xb6b0f4c0 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
(gdb) bt full
#0  0xb6b0f4c0 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
No symbol table info available.
Cannot access memory at address 0x0
#1  0xb6b0bee4 in OPENSSL_cpuid_setup () from 
/usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
No symbol table info available.
#2  0xb6fe8250 in ?? () from /lib/ld-linux-armhf.so.3
No symbol table info available.
#3  0xbefffe40 in ?? ()
No symbol table info available.
#4  0xbefffe40 in ?? ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)

Ich kann da aber jetzt nix von einem Segfault sehen.
ohne gdb wieder wie gehabt:

root at raspberrypi:/usr/local/etc# vzlogger
[Jan 22 11:46:43][mtr0] New meter initialized (protocol=d0)
[Jan 22 11:46:43][ch0]  New channel initialized (uuid=...23c67c 
middleware=http://localhost/middleware.php id=1-0:1.8.1)
[Jan 22 11:46:43][mtr0] Meter connection established
[Jan 22 11:46:43][mtr0] Meter thread started
[Jan 22 11:46:43][ch0]  Logging thread started
[Jan 22 11:46:49][meter_Segmentation fault

>> Ich habe schon die vzlogger.conf zig mal durchgekaut ob eventuell ein
>> Tippfehler ist, kann aber nichts finden.
> fehler in der config werden als solche gemeldet, alles andere ist ein bug.
>
>> Wenn ich in der VZLogger Config dann "sml" als Protokoll mal auswähle und
>> den vzlogger starte passiert nichts.
> der zaehler sendet halt kein sml...
>
>> Irgendwie komisch?
>> Vielleicht kann mir einer von euch da helfen. Danke
>
Danke im Vorraus
M
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://volkszaehler.org/pipermail/volkszaehler-dev/attachments/20130122/ec183acd/attachment.html>
-------------- next part --------------
/?!

/LGZ5\2ZMD3102400.B14
F.F(02000000)
0.0.0(11111111)
0.1.0(01)
0.1.0*01(00-01-01 00:10)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
0.1.0*00(00-00-00 00:00)
1.8.1(000023.1*kWh)
1.8.1*01(000023.1)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
1.8.1*00(000000.0)
2.8.1(000000.0*kWh)
2.8.1*01(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
2.8.1*00(000000.0)
0.9.1(22:07:28)
0.9.2(00-01-18)
0.2.0(B14)
0.2.1(TEST)
0.2.2(999)
C.2.1(00-01-01 00:00)
C.90.1(AAAAAAA)
!
1


More information about the volkszaehler-dev mailing list