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
Ankündigung
Einklappen
Keine Ankündigung bisher.
Smartmeter Plugin - Tester gesucht
Einklappen
X
-
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
Einen Kommentar schreiben:
-
ich hatte den selben Fehler: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.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 ichgemacht 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 gepostetCode:apt-get remove python3-serial apt-get remove python-serial apt-get install python3 serial
Ich hoffe es hilft.Code:NOW IT WORKS! 1.) Renamed it! serial.py is a bad name! 2.) Deleted all of these .pyc files! 3.) Installed pyserial3!
Einen Kommentar schreiben:
-
Ok, Minimalversuch auf der Konsole als normaler Benutzer
dannCode:python3
Gibt das schon eine Fehlermeldung?Code:import serial
Getestet auf meinem aktuellen Beaglebone-Image - funktioniert.
Einen Kommentar schreiben:
-
Weiterhin der Fehler "Import Error: No Module named pyserial"
auch
sagt nur das die neueste Version bereits installiert ist.Code:apt-get install python-pyserial
Einen Kommentar schreiben:
-
Wenig Zeit ...
nimm dieses Plugin: https://github.com/mknx/smarthome/tr...p/plugins/dlms
Das ist eigentlich das Ergebnis aus diesem Thread. Ist auch auf Python3 ausgelegt. Im Zweifel noch ein: apt-get install python-pyserial
Versuche einfach mal mit dem sleep in Zeile #95 zu spielen. Ich denke 0.75 oder 1.0 sollte für den Zähler passen.
...noch weniger Zeit
Einen Kommentar schreiben:
-
Ich führe mal meine Alleinunterhaltung fort.
Ich bekomme jetzt auch den Fehler:
installiert habe ich es.. aber selber Fehler. Ich vermute mal es will auf einen alten Pfad zurückgreifen. Wie und vor allem Wo kann ich diesen anpassen? ich habe die alte python Version 2.7 drauf und die neue 3.4 irgendwas beisst sich da noch. Auch einCode:ImportError: No module named serial
bringt keinen ErfolgCode:sudo apt-get install python3-serial
Grüße NicoZuletzt geändert von 2Fast4You78; 10.12.2015, 08:46.
Einen Kommentar schreiben:
-
Keiner der mir da ansatzweise helfen kann?....
Ok, bin gerade ermahnt worden im Chat... Betrachtet diesen Post als nicht vorhanden!
Zuletzt geändert von 2Fast4You78; 09.12.2015, 20:12.
Einen Kommentar schreiben:
-
Ich habe jetzt den Serial Port des IBB-Capes genommen um das Plugin zu testen mit meinem Landis Gyr,
bekomme allerdings nur ne blöde Antwort
Mein Zähler will so angequatscht werden..Code:2015-12-09 00:25:18,406 WARNING DLMS dlms: index out of range -- __init__.py:_update_values:83 2015-12-09 00:25:18,422 WARNING DLMS dlms: malformed response to init seq=b'' -- __init__.py:_update_values:86
Landis & Gyr E350
Serielle Einstellungen: 300bd, 7E1
Befehl 1 (/?!) in hex: 2F 3F 21 (plus CR LF von hterm)\ Befehl 2 (-000) in hex: 06 30 30 30 (plus CR LF von hterm)
/?!\\ /LGZ4ZMF100AC.M23
000
F.F(00)
C.1.0(12314330) 0.0(00188123 )
C.1.1( )
1.8.1(001234.120*kWh)
1.8.0(001234.120*kWh)
2.8.0(000000.000*kWh)
15.8.0(001234.120*kWh)
C.7.0(0005)
32.7(229*V)
52.7(230*V)
72.7(230*V)
31.7(000.03*A)
51.7(000.04*A)
71.7(000.09*A)
C.5.0(0400)
0.2.0(M23)
16.7(000.00*kW)
In LGZ4ZMF100AC.M23 steckt die Aussage, dass der LandisGyr E350 mit 4= max. 4800baud kommunizieren kann.
Ohne die Baudrate zu wechseln liefert der Zähler erst nach dem folgenden ACK die eigentlichen Daten.
In Antwort 06 30 30 30 steckt also ACK (06 30), (30) 0 = 300baud und (30) 0 = Data Mode
Ohne eine korrekte Bestätigung der Zählerantwort auf Befehl1 werden keine Daten gesendet.
Habt ihr da was im Petto? Oder eine Idee wie ich da weiter komme?Zuletzt geändert von 2Fast4You78; 09.12.2015, 00:39.
Einen Kommentar schreiben:
-
Hallo,
ich auch nochmal...
ich wollte nun meine Landis&Gyr e350 abfragen mit dem DLMS Plugin. Allerdings kommen die Daten übers Netzwerk. Mit dem Volkszähler funktioniert die Abfrage der Daten. Wie kann ich dieses Plugin dazu bewegen nicht den Serial Port abzufragen sondern die Daten vom Host/Port zu holen? Ist das gleiche wie mit dem SML-Plugin. Dort funktioniert die Abfrage bereits, da jemand für das Comet-Smart-Metering-Teil schon die Möglichkeit eingebaut hat..
Grüße Nico
Einen Kommentar schreiben:
-
Hallo nochmal,Zitat von freetzmaster Beitrag anzeigenich denke dir fehlt das pyserial.
das dachte ich mir auch, aber ich bin da der total Nixblicker. Was mich ein bisschen stutzig macht, ist die Tatsache, dass ich das Plugin aus (https://knx-user-forum.de/smarthome-...kra-mt681.html ) zum Laufen bekommen habe und da auch import serial verwendet wird.
Letztendlich hat sich die Sache für mich gelöst, da ich mit dem Iskra-Plugin alle benötigten Daten auslesen kann.
Danke und noch eine erfolgreiche Woche
Sven
Einen Kommentar schreiben:


Einen Kommentar schreiben: