Pafal 20ec3gr auslesen

  • Hallo,


    ich habe den Zweirichtungszähler von Pafal und möchte diesen gerne mit dem Volkszähler.org auslesen.
    Dazu habe ich mir einen IR-Lesekopf von Udo besorgt und auf meinem alten Laptop mit MintLinux die notwendige Software installiert - soweit so gut.


    Mit hterm habe ich auch meinen Stromzähler zum Reden gebracht. Er sendet mit die aktuellen Zählerstände nach der d0-Spezifikation wenn ich folgendes tue:
    - "/?!" nächste Zeile nach spätestens 1,5s
    - "<ACK> 0 0 0"
    Das ganze funktioniert bei mir nur wenn ich die Anweisungen als "HEX" schicke.
    Auf die Anweisung "<ACK> 0 5 1" reagiert der Stromzähler gar nicht.


    Nun würde ich gerne mit vzlogger die Daten auch in die Datenbank schicken.
    Wenn ich also das das Testscript von dieser Seite http://wiki.volkszaehler.org/howto/emh_pv-anlage ausprobiere, bleibt er bei der Zeite:
    " [mtr0] Got 0 new readings from meter:"
    stehen. Der Lesekopf wird erkannt und die Verbindung aufgebaut.
    Ist ja auch logisch, weil ich keinen SML protokoll bekomme.


    Wenn ich aber nun das Script ändere:
    " "protocol" : "d0", /* use 'vzlogger -h' for list of available protocols */"
    ändere und ausführe kommt sofort die Fehlermeldung, dass keine Daten empfangen werden.


    Was mache ich falsch, und wie muss ich dne vzlogger ändern, dass er automatisch den Zähler ausliest und die Daten ausgibt?


    Grüße
    Tobi

  • Abend,


    ein allgemeiner Hinweis: geordnete Fehlersuche ist dringend zu empfehlen http://wiki.volkszaehler.org/howto/debug


    Zitat von twanka

    Mit hterm habe ich auch meinen Stromzähler zum Reden gebracht.


    Und die Antwort?


    Zitat von twanka

    Wenn ich also das das Testscript von dieser Seite http://wiki.volkszaehler.org/howto/emh_pv-anlage ausprobiere,


    Auf der Seite gibt es kein Testscript.


    Zitat von twanka

    Was mache ich falsch, und wie muss ich dne vzlogger ändern, dass er automatisch den Zähler ausliest und die Daten ausgibt?


    Wenn dein Zähler angestoßen werden muss ist das mit dem vzlogger derzeit nicht möglich. Dann müsstest du ein Script schreiben das den Zähler anspricht und z.B. per cronjob aufrufen.


    Mir ist weitestgehend klar was du gemacht hast, um dir aber wirklich helfen zu können brauchen wir detailliertere Beschreibungen deines Vorgehens. Incl. Logs, Mitschnitten, Scripten oder Konfigurationen.



    mfg JAU

    No Shift - No Service

  • Hallo JAU,


    vielen Dank für Deine Antwort.


    Bei mir ist die optische Schnittstelle nicht wirklich "stabil". Wenn der Lesekopf nicht direkt über den Dioden ist, kommt keine Kommunikation zusammen.
    Aber mit hterm klappt das schon ganz gut.



    Nun muss also mein Stromzähler von sich aus Daten senden, oder ich brauche ein Script, dass den Stromzähler zum reden bringt. Soweit habe ich das nun schon verstanden.
    Für ersteres habe ich bei dem Hersteller angefragt, ob es für eine Anleitung oder Spezifikation gibt. Die Hoffnung stirbt zuletzt.


    Die Scripte im Netz haben alle nicht funktioniert, also habe ich zur Fehlersuche eines auf das Nötigste reduziert um zu prüfen, ob ich den Stromzähler per Script ansprechen kann:


    #!/bin/bash
    #
    #default
    stty -F /dev/ttyUSB0 sane
    #mode einstellen
    stty -F /dev/ttyUSB0 300 parenb -parodd cs7 -cstopb raw
    # init senden
    cat < /dev/ttyUSB0 &
    echo $'\x2F\x3F\x21\x0D\x0A' > /dev/ttyUSB0
    echo $'\x2F\x3F\x21\x0D\x0A'


    Ich würde erwarten, dass ich die Kennung des Stromzählers angezeigt bekomme. Es passiert aber nichts:



    Was mache ich falsch?


    Grüße
    Tobi

  • Zitat von twanka

    Was mache ich falsch?


    Ich würde sagen das cat passt so nicht. Dazu kommt ja das du das echo doppelt hast, einmal an tty0, einmal an die Console. D.h. das was du da siehst ist einfach nur das Script, keine Antwort.


    Lösung aus meiner Sicht:
    Mach ein zweites Terminal auf. Beobachte auf dem einen die Antwort des Zählers (per cat oder hterm) und auf dem anderen schickst du die Anfrage raus.


    Dann brauchst du in deinem Script auch nicht jedes mal die Schnittstelle setzen, das genügt ein einziges Mal (bzw. kann später vzlogger für dich übernehmen). Und das cat brauchst du auch nicht. Im Grund sollte es genügen die Anforderung zu schicken (z.B. als cronjob) und das Ergebnis von vzlogger auswerten zu lassen.


    d0 stimmt auch soweit, die Antwort des Zählers ist ja in ASCII.



    mfg JAU

    No Shift - No Service

  • Hallo JAU,
    die erste Hürde ist genommen. Nun sieht mein Script so aus:
    #!/bin/bash
    #default
    stty -F /dev/ttyUSB0 sane
    #mode einstellen
    stty -F /dev/ttyUSB0 300 parenb -parodd cs7 -cstopb raw hupcl 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 tab1 bs0 vt0 ff1 -isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
    # init senden
    cat < /dev/ttyUSB0 &
    echo $'\x2f\x3f\x21\x0d' > /dev/ttyUSB0
    echo $'\x2f\x3f\x21\x0d'


    sleep 2
    cat < /dev/ttyUSB0 &
    echo $'\x06\x30\x30\x30\x0d' > /dev/ttyUSB0
    echo $'\x06\x30\x30\x30\x0d'


    und erzeugt folgende Ausgabe:



    nun muss ich noch von vzlogger davon überzeugen, dass er die Daten verarbeitet


    Grüße
    Tobi

  • Zitat von twanka

    cat < /dev/ttyUSB0 &


    Was genau machst du da eigentlich?


    Weil: cat öffnet Dateien und gibt sie aus. /dev/ttyUSB0 ist eine "Datei" und das < daher unnötig.


    Zitat von twanka

    und erzeugt folgende Ausgabe:


    Äh, ja. :)



    mfg JAU

    No Shift - No Service

  • Hallo,
    sorry, da ist etwas schiefgegangen...
    Die Ausgabe soll natürlich so aussehen.



    Als ich dann die Zeile mit dem vzlogger eingeführt habe hat er mit einer Fehlermeldung quittiert: "Speicherzuordnungsfehler", oder so ähnlich.
    Ich bin davon ausgegangen, dass es an den Sonderzeichen liegt, die in "alteren" Distributionen nicht angezeigt werden. Also ältere Distripution drauf und ausprobiert. Das war aber ein Fehler, weil die auf meinem alten Laptop nur instabil laufen.
    Also sind auch die Screenshots des Fehlers weg. :cry:


    Nun brauche ich wieder den vzlogger...
    Hast Du da einen Tip, wo ich den herbekomme, ohne dass ich einige Stunden nach einem funktionierendem Repository suchen muss. Am besten eine .deb Datei zum runterladen und einzeln Installieren.


    Grüße
    Tobi

  • Zitat von twanka

    Als ich dann die Zeile mit dem vzlogger eingeführt habe hat er mit einer Fehlermeldung quittiert: "Speicherzuordnungsfehler", oder so ähnlich.


    Vzlogger sollte eigentlich als Demon laufen. Wenn du den in deinem Script aufrufst wird das nicht funktionieren.
    Außerdem haben wir die Beobachtung gemacht das bei gleichzeitigem cat auf der selben Schnittstelle der vzlogger abstürzt.


    Zitat

    Hast Du da einen Tip, wo ich den herbekomme, ohne dass ich einige Stunden nach einem funktionierendem Repository suchen muss. Am besten eine .deb Datei zum runterladen und einzeln Installieren.


    Es gibt eine, die ist aber nur für ARM-Prozessoren.


    Ich verwende noch immer dieses hier: http://volkszaehler.org/piperm…rs/2013-April/002168.html
    Installation (incl. kompilieren) nach Anleitung im Wiki. Wobei in der Version die Schnittstelle von vzlogger gesetzt wird. Je nachdem wie speziell deine Parameter sind könnte das ein Problem werden.



    Wenn die Auflösung deiner Aufzeichnung eher gering sein soll und kleine Abweichungen beim timestamp für dich kein Problem darstellen: Mit dem vzclient kann man per Script Werte an die Middleware übergeben.



    mfg JAU

    No Shift - No Service

  • Hallo JAU,


    Danke für Deine Hilfe und deine Hartnäckigkeit... ich wollte schon fast aufgeben.


    Den Link mit dem Schlüssel hat nicht funktioniert, also habe ich den Schlüssel manuell zugefügt.
    Aber dann schlägt der Zugriff auf das Repository fehl:



    Warum macht Ihr nicht einfach eine .deb - Datei draus? Ist doch viel einfacher und es funktioniert!


    Ich werd mich also dann weiter durchkämpfen, bis ich den vzlogger wieder drauf hab.


    Grüße
    Tobi

  • Hallo allerseits,


    Ich hab mir (mit Hilfe im bei Ubuntuusers.de) ein Script geschrieben, dass mit einem Cronjob versehen mir alle 5 Minuten die Daten des Pafal 20ec3gr in ein Log-File schreibt. Vielleicht kann es ja jemand brauchen:


    Grüße
    Tobi