Ankündigung

Einklappen
Keine Ankündigung bisher.

Smartmeter Plugin - Tester gesucht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hab ich auch schon versucht... Immer noch dasselbe
    www.knx-Hausblog.de

    Kommentar


      Ok, Minimalversuch auf der Konsole als normaler Benutzer
      Code:
      python3
      dann
      Code:
      import serial
      Gibt das schon eine Fehlermeldung?

      Getestet auf meinem aktuellen Beaglebone-Image - funktioniert.

      Kommentar


        ich hatte den selben Fehler:
        Code:
        Import Error: No Module named pyserial
        und bin seit 4 Tagen auf der Suche nach einer Lösung. Ich habe meinen Debianserver komplett neu aufgesetzt weil ich bei meiner damaligen Installation experimentelle Repositorien genutzt habe und jetzt ein sicheres stabiles System haben wollte. Außerdem habe ich auf Jessie upgedatet um knxd zu installieren. Smarthome habe ich nach dem wiki Eintrag installiert. Im Prinzip hätte mein System "sauber" sein müssen. Ich habe zusätzlich die plugins Sml und easymeter ausprobiert, nichts funktionierte. Ich habe den seriellen Port für alle user freigegeben und verschiedenste Einträge in der rules.d ausprobiert.
        Die Lösung bei mir war ich habe in
        /usr/local/lib/python3.4/dist-packages
        alle Einträge gelöscht in denen etwas mit serial stand. Danach habe ich
        Code:
        apt-get remove python3-serial
        apt-get remove python-serial
        apt-get install python3 serial
        gemacht und es funktioniert. Die Werte werden ausgelesen, im debug mode läuft alles wie vorher. Gefunden habe ich die Lösung im Raspberry-Pi forum, dort hatte jemand ein ähnliches Problem und folgendes als Lösung gepostet
        Code:
        NOW IT WORKS!
        
        1.) Renamed it! serial.py is a bad name!
        2.) Deleted all of these .pyc files!
        3.) Installed pyserial3!
        Ich hoffe es hilft.

        Kommentar


          Hi,

          ich bin gerade dabei das DLMS Plugin auch für Callidomus zum Laufen zu bringen. Bis jetzt läuft es meist recht gut. Bis auf ein paar Zeilen wo bits verschoben werden hab ich eigentlich auch alles recht gut verstanden was da passiert. (Glaube ich mal)

          Bei mir Läuft das Plugin mit einem Elster AS1440 Zähler. Der mit 300 Baud mit ~45s ausgelesen wird und mit 9600 Baud mit etwa ~5.5s.

          Im Normalfall Startet immer mit 300 Baud und über die Erkennung Baud=Auto wird 9600 erkannt und dann ausgelesen.

          Manchmal habe ich aber beim restart von dem Plugin ein Problem das es nicht tut. Nicht tut bedeutet das nur Schrott übertragen wird. Wenn ich in so einem Fall Baud Erkennung auf AUTO gestellt hatte sehe ich das mal 600, 1200, 2400 erkannt wurden. Das aber nicht wirklich funktionier. Es kommt danach nur Schrott an. MEsit werden nur nullen übertragen.

          Meine Hypotese ist der der Zähler noch auf 9600 Baud ist da auch eine Weile bleibt und dann nach erst nach einer gewissen Zeit (Schätze nach 10-30s) auf 300 Baud zurückfällt.

          Hat einer eine Idee was man da machen kann? Mir würde nur einfallen verzögert zu starten.

          Eine WEiter Frage noch es ist zur Zeit nur pserial Version 2.7 installiert (Versionsausgabe kommt vom pip -list Kommando). Laut PSerial Webseite ist diese Version an manchen stellen nicht für Python 3.5 angepasst. So das ich eigentlich updaten müsste. In der Doku steht das manche Funktionen jetzt depricatet sind. z.b. flushInput() -> reset_input_buffer()

          und das drainOutput() habe ich gar nicht mehr in pSerial gefunden. Weis jemand für was das gut war(ist)?

          Viele Grüsse
          Jürgen

          Kommentar


            Hi,
            also wenn man pyserial auf die aktuelle Version updated muss man was am Plugin machen.

            eigenlich sollte es so heisen.

            self._serial.flush() #self._serial.drainOutput()
            self._serial.reset_input_buffer() #self._serial.flushInput()

            aber da flushInput() noch in 3.1.1 gibt ist es wohl besser so wenn man das so schreibt das funktioniert dann für 2.7 bis 3.1.1 funktionieren.

            self._serial.flush() # outdated in 3.1.1. self._serial.drainOutput()
            self._serial.flushInput() # maybe in Future call self._serial.reset_input_buffer() because flushInput() is deprecated.

            Kann das jemand so einpflegen?

            Viele Grüsse
            Jürgen

            Kommentar

            Lädt...
            X