Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Support Thread für DLMS Plugin

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

    #76
    Wenn du die daten mitm datenbank plugin abspeicherst, kannst das später auswerten

    Kommentar


      #77
      Zitat von bmx Beitrag anzeigen
      Ich fürchte das das Easymeter hier etwas vom Pfad abweicht und stumpf Protokoll Mode D nutzt mit 9600 Baud Da muß ich wohl noch was ändern am Plugin.

      Du kannst aber das alte Plugin weiternutzen und mußt nicht umstellen.
      Ich habe jetzt auf SmartHomeNG 1.8.2 migriert und habe ebenfalls einen easymeter Zähler, der sich mit dem easymeter plugin problemlos auslesen lies.

      Das easymeter Plugin funktioniert nicht mehr und das DLMS Plugin hört hier auf zu lesen:

      Code:
      /usr/local/smarthome/plugins/dlms# python3 dlms.py -s 9600 /dev/ttyUSB0
      This is DLMS Plugin running in standalone mode
      ==============================================
      Time to open serial port /dev/ttyUSB0: 3.56 ms
      Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0'
      Time to send first request to smartmeter: 356.20 µs
      Time to receive an answer: 6.64 ms
      Request Message was echoed, need to read the identification message
      Time to get first identification message from smartmeter: 1.69 s
      Identification Message is b'/ESY5Q3DA1004 V3.04\r\n'
      The manufacturer for ESY is EasyMeter GmbH (out of 1300 given manufacturers)
      Baudrate id is '5' thus Protocol Mode is C and max Baudrate available is 9600 Bd
      Using protocol mode C, send acknowledge b'\x06050\r\n' and tell smartmeter to switch to 9600 Baud
      Reading OBIS data from smartmeter
      Was muss ich machen? Gibt es dafür vielleicht einen Fix im Develop Branch?

      Danke und Gruß

      Kommentar


        #78
        bmx Ich habe es gerade noch mal mit dem aktuellen develop Stand des plugins getestet, damit sieht es wie folgt aus:

        Code:
        /usr/local/smarthome/plugins/dlms# python3 dlms.py -s 9600 /dev/ttyUSB0
        This is DLMS Plugin running in standalone mode
        ==============================================
        Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 9600, 'timeout': 3.0, 'onlylisten': False, 'use_checksum': True}'
        Time to open serial port /dev/ttyUSB0: 3.28 ms
        Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0'
        Time to send first request to smartmeter: 371.93 µs
        start to read data from serial device
        finished reading data from serial device after 2 bytes
        Time to receive an answer: 8.75 ms
        Request Message was not equal to response, treating as identification message
        Time to get first identification message from smartmeter: 132.08 µs
        Identification Message is b'j\n'
        malformed identification message: 'b'j\n'', abort query
        No results from query, maybe a problem with the serial port '/dev/ttyUSB0' given
        ==============================================
        Gruß,
        Henning

        Kommentar


          #79
          Das Gerät arbeitet im "rückwirkungsfreien Betrieb, da nur sendend"

          Es nützt also nix da was hinzusenden. Probiere mal zusätzlich den Parameter '-l' dazu zu nehmen. Dadurch hört das Plugin nur was das Gerät so von sich gibt.

          Siehe Datenblatt zum Q3D
          Zuletzt geändert von bmx; 10.12.2021, 21:08. Grund: Datenblatt ergänzt, Zitat zum Rückwirkungsfreien Betrieb

          Kommentar


            #80
            bmx Anbei das Ergebnis vom Test mit dem zusätzlichen Parameter "-l":

            Code:
            /usr/local/smarthome/plugins/dlms# python3 dlms.py -l -s 9600 /dev/ttyUSB0
            This is DLMS Plugin running in standalone mode
            ==============================================
            Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 9600, 'timeout': 3.0, 'onlylisten': True, 'use_checksum': True}'
            Time to open serial port /dev/ttyUSB0: 68.43 ms
            start to read data from serial device
            finished reading data from serial device after 21 bytes
            Identification Message is b'/ESY5Q3DA1004 V3.04\r\n'
            The manufacturer for ESY is unknown (out of 0 given manufacturers)
            Baudrate id is '5' thus Protocol Mode is C and max Baudrate available is 9600 Bd
            Can not change Baudrate in listening only mode
            Reading OBIS data from smartmeter
            start to read data from serial device
            finished reading data from serial device after 233 bytes
            Time for reading OBIS data: 1.37 s
            Whole communication with smartmeter took 1.44 s
            Acknowledge echoed from smartmeter
            trying now to calculate a checksum
            STX not found in response='0xd 0xa 0x31 0x2d 0x30 0x3a 0x30 0x2e 0x30 0x2e...'
            Traceback (most recent call last):
            File "dlms.py", line 480, in <module>
            result = query(config)
            File "dlms.py", line 397, in query
            logger.warning("ETX not found in response='...{}'".format(' '.join(hex(i) for i in response[-11])))
            TypeError: 'int' object is not iterable
            PS: Ich habe in der Zwischenzeit erstmal das easymeter Plugin wieder für SmartHomeNG 1.8.2 lauffähig gemacht, damit ich die Werte wieder in der Datenbank habe, das ging relativ schnell. Schöner wäre es natürlich nur noch ein Plugin zu haben, von daher können wir hier gerne weiter nach einer Lösung suchen.

            Gruß,
            Henning

            Kommentar


              #81
              Sorry für OT.

              Lässt sich mit diesem Plugin unter Verwendung eines

              https://mysmartshop.de/products/usb-...hreib-lesekopf

              ein solcher Stromzähler

              https://shop.voltaris.de/530-thickbo...lh00d5a5q2.jpg

              auslesen?

              Kommentar


                #82
                Theoretisch ja, wenn die obis daten implementiert sind davon, der übertragungsweg über den optischen lesekopf ist eigentlich bei allen gleich , ich glaube es ist nur der unterschied, ob der zähler von sich aus reden oder getriggert werden muss..

                Kommentar


                  #83
                  Bin mir nicht sicher ob das weiterhilft.

                  Der Stromzähler zeigt im Wechsel den Zählerstand sowie die aktuelle Leistung an. Wird die "Schnittstelle" mit einer Taschenlampe beleuchtet, werden die verschiedenen Werte im Display angezeigt.

                  Kommentar


                    #84
                    Naja du müsstest das modell rausfinden, dann kann man anhand des datenblatts das nachlesen .

                    Kommentar


                      #85
                      Im Datenblatt eHZ Generation K findet sich:
                      Der Zähler verfügt über 2 optische Datenschnittstellen, die in Anlehnung
                      an die IEC 62056-21 ausgeführt sind.
                      Auf der Vorderseite befindet sich eine unidirektionale Schnittstelle
                      (INFO-Schnittstelle), die dem Endkunden zugänglich ist und per Konfi-
                      guration freigegeben
                      wird.
                      Auf der Rückseite befindet sich eine bidirektionale D0-Schnittstelle, die
                      durch eine Betriebsplombe schützbar ist und dem MSB als Kommunika-
                      tionsschnittstelle dient.
                      Auf beiden Schnittstellen wird ein identischer Datensatz ausgegeben,
                      der durch den MSB konfigurierbar ist.
                      Als Kommunikationsprotokoll wird SML verwendet. Die Baudrate
                      beträgt 9600 Baud fest....
                      Also probier's mal mit dem SML Plugin.

                      Wenn's bei Dir dann funktioniert dann bitte ich um ein Posting in diesem Thread hier

                      Kommentar


                        #86
                        Danke
                        Zitat von bmx Beitrag anzeigen
                        eHZ Generation K
                        Könnte hinkommen... ehz-kw8e2a5l0eq2p

                        Der oder ein ähnlicher Lesekopf ist aber der richtige?

                        Kommentar


                          #87
                          Ja, sollte passen

                          Kommentar


                            #88
                            Hallo,

                            ich kämpfe auch mit dem Plugin.
                            Mein Zähler sendet zyklisch daten welche ich auch mit
                            Code:
                            python3 dlms.py /dev/ttyUSB0 -c -l -s 9600
                            Ergebnis:
                            Code:
                            $ python3 dlms.py /dev/ttyUSB0 -c -l -s 9600
                            This is DLMS Plugin running in standalone mode
                            ==============================================
                            Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 9600, 'baudrate_fix': True, 'timeout': 3.0, 'onlylisten': True, 'use_checksum': False}'
                            Time to open serial port /dev/ttyUSB0: 6.45 ms
                            start to read data from serial device
                            finished reading data from serial device after 674 bytes
                            The manufacturer for LOG is unknown (out of 0 given manufacturers)
                            Time for reading OBIS data: 2.00 s
                            Whole communication with smartmeter took 2.01 s
                            Acknowledge echoed from smartmeter
                            checksum calculation skipped
                            parsing OBIS codes took 865.70 µs
                            the whole query took 2.01 s, suggested cycle thus is at least 12.01 s
                            These are the results of the query
                            ==============================================
                            LOG5LK13BE803039
                            
                            1-0:96.1.0*255(001LOG0065267445)
                            1-0:1.8.0*255(009337.7198*kWh)
                            1-0:2.8.0*255(000000.0000*kWh)
                            1-0:16.7.0*255(000668*W)
                            1-0:32.7.0*255(234.3*V)
                            1-0:52.7.0*255(235.0*V)
                            1-0:72.7.0*255(234.8*V)
                            1-0:31.7.0*255(001.96*A)
                            1-0:51.7.0*255(000.68*A)
                            1-0:71.7.0*255(000.99*A)
                            1-0:81.7.1*255(119*deg)
                            1-0:81.7.2*255(238*deg)
                            1-0:81.7.4*255(035*deg)
                            1-0:81.7.15*255(040*deg)
                            1-0:81.7.26*255(042*deg)
                            1-0:14.7.0*255(50.0*Hz)
                            1-0:1.8.0*96(00018.2*kWh)
                            1-0:1.8.0*97(00146.5*kWh)
                            1-0:1.8.0*98(00527.2*kWh)
                            1-0:1.8.0*99(05024.0*kWh)
                            1-0:1.8.0*100(09337.7*kWh)
                            1-0:0.2.0*255(ver.03,432F,20170504)
                            1-0:96.90.2*255(0F66)
                            1-0:97.97.0*255(00000000
                            ==============================================
                            auslesen lassen. das funktioniert ohne Probleme jedoch liest das Plugin mit folgenden einestellungen
                            Code:
                            dlms:
                                plugin_name: dlms
                                serialport: /dev/ttyUSB0
                                baudrate: '9600'
                                instance: '1'
                                only_listen: true
                                baudrate_fix: true
                                use_checksum: false
                            nur kauderwelsch a la: Wj~5lJ2ah~ 's.l`OKKEVl(39h|Cc L' Q6WF'J Wg%QU CdLm9U"q 3|<)tAWWvr\X,L"

                            hat jemand eine Idee wo der Fehler liegen soll?

                            Grüße und vielen Dank vorab
                            Zuletzt geändert von bmx; 19.01.2022, 10:53.

                            Kommentar


                              #89
                              Nein, keine Ahnung warum Du da Kauderwelsch hast. Woher hast Du das Kauderwelsch?
                              Und kann es sein, das die Schnittstelle noch durch irgendwas anderes gleichzeitig abgefragt wird?

                              Kommentar


                                #90
                                Hallo,

                                Danke für die schnelle Rückmeldung. Den/das Kauderwelsch finde ich auf der DLMS seite der Instanz in SmarthomeNG.
                                Parallel greift nichts auf die Schnittstelle zu.

                                Meine Erwartungshaltung war dahingehend das das was in der Konsole ausgegeben wird ein zu eins dem Entspricht was dann im Webfrontend auftaucht. kannst du das bestätigen oder liege ich da schon falsch?
                                Zuletzt geändert von Tiffi; 18.01.2022, 17:28.

                                Kommentar

                                Lädt...
                                X