Kommunikation RPi mit seriellem IR Lesekopf

  • Hallo zusammen,


    ich habe einen Raspberry Pi B schon lange erfolgreich mit dem Volkszähler im Zusammenspiel mit der Erweiterung mit Schaltausgängen V1 und dem TTL-IR-Kopf von Udo betrieben und war sehr zufrieden. Dann habe ich die SD-Karte gewechselt und dann lief nichts mehr, war wohl nicht kompatibel. Nach vielen Versuchen, das alte Backupimage wiederherzustellen, habe ich die Nerven verloren und das neueste Image heruntergeladen, um bei Null anzufangen.
    Nun klappt aber leider die Kommunikation mit dem Zähler Landis & Gyr E350 beim vzlogger nicht mehr. Wenn ich allerdings die Kommunikation mit dem Skript aus dem Wiki für einen anderen Landis & Gyr probiere, dann klappt es. Beim vzlogger leuchtet die IR-Diode nicht einmal, beim Skript blinkt die brav. Meine vzlogger.conf sieht so aus:


    Die beiden S0-Sensoren habe ich deaktiviert, um das Logfile nicht zu fluten.
    Logfile sieht so aus:


    und dump file so:


    Wo liegt mein Fehler? Was habe ich nicht beachtet? Kann mir jemand einen entscheidenden Tipp geben?


    Danke und viele Grüße,


    Henning

  • Code
    "read_timeout": 10,


    Höher stellen. Bei 300 baud ist das viel zu kurz, der vzlogger bricht die Kommunikation ab bevor der Zähler fertig ist.
    Du kannst da ruhig auf 60-100s gehen.


    Code
    "interval": 3,


    Ist auch sehr niedrig.



    mfg JAU

    No Shift - No Service

  • Ich habe das Script hier http://wiki.volkszaehler.org/d…rs/power/edl-ehz/zmd120ap etwas modifiziert damit der ACK gesendet wird:


    Ergebnis ist:


    Viele Grüße,


    Henning

  • Hm.


    Um auf deine ursprüngliche Aussage mit der IR-Diode zurück zukommen: Mit vzlogger müsste die am Lesekopf, bei originaler vzlogger.conf, ja alle 13sec kurz geflackert haben. War da wirklich garnix?


    Ev. gibt es ein Problem beim Setzen der Kommunikationsparameter auf /dev/ttyAMA0, da wäre interessant was nach dem Aufruf des vzloggers bei

    Code
    stty -a < /dev/ttyAMA0


    raus kommt.



    mfg JAU

    No Shift - No Service

  • Nein, da tut sich leider gar nichts, auch wenn im Log fröhlich Verbindungsversuche angezeigt werden. Interessanter Weise werden auch nur bei Daemon=true mehrere Versuche unternommen. Ansonsten steht vzlogger nach dem ersten Senden der Pullsequenz einfach.


    Ausgabe von stty:

    Code
    pi@raspberrypi:~ $ stty -a < /dev/ttyAMA0
    speed 300 baud; rows 0; columns 0; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;
    start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 16;
    parenb -parodd -cmspar cs7 hupcl -cstopb cread clocal -crtscts
    ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel
    -iutf8
    -opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    -isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke


    Viele Grüße,


    Henning

  • Sieht eigentlich gut aus.
    Das letzte was mir dazu noch einfällt wäre nach dem vzlogger das Script mit auskommentierter stty-Zeile zu testen.


    Zitat von Henning81

    Interessanter Weise werden auch nur bei Daemon=true mehrere Versuche unternommen.


    Weil bei deamon=false der vzlogger nur einmal durchlaufen soll. :wink:



    mfg JAU

    No Shift - No Service

  • Also vzlogger scheint die Parameter nicht zu setzen. Wenn ich nach einem Neustart stty nochmal bei laufendem vzlogger aufrufe, kommt das hier:

    Code
    pi@raspberrypi:~ $ stty -a < /dev/ttyAMA0
    speed 9600 baud; rows 0; columns 0; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;
    start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
    -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
    -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel
    -iutf8
    opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke


    Dementsprechend bekomme ich mit dem Skript auch keine Ergebnisse mehr.


    Mit den GPIOs habe ich auch nicht mehr Glück. Ich habe ja die Erweiterung von Udo, wo die S0-Ports 0 und 1 noch auf 17 und 18 sind. Dafür müsste meine Einstellung doch auch richtig sein, oder?



    Viele Grüße,


    Henning

  • Stell doch bitte mal verbositiy auf 15 und zeig das log nochmal.
    Wäre auch interessant zu Wissen ob du vzlogger mit sudo aufrufst.


    GPIO 17 und 18 stimmen.



    mfg JAU

    No Shift - No Service