Hab ich auch schon versucht... Immer noch dasselbe
Ankündigung
Einklappen
Keine Ankündigung bisher.
Smartmeter Plugin - Tester gesucht
Einklappen
X
-
ich hatte den selben Fehler:Code:Import Error: No Module named pyserial
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 ichCode:apt-get remove python3-serial apt-get remove python-serial apt-get install python3 serial
Code:NOW IT WORKS! 1.) Renamed it! serial.py is a bad name! 2.) Deleted all of these .pyc files! 3.) Installed pyserial3!
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
Kommentar