Ankündigung

Einklappen
Keine Ankündigung bisher.

Welches Plugin für EMH (eHZ EW8E2A): SML/SMLx/DLMS/Easymeter?

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

    #16
    Wenn ich die EInträge bei easymeter sehe, solltest du das eher nicht mehr benutzen.

    DLMS hatte dir doch Bernd oben schon empfohlen, ging das nicht?

    Probier es nochmal systematisch mit DLMS, bei Änderungen an der Plugin-Konfig oder Items immer shng neu starten, und immer schön die Logs auf Fehler prüfen.

    Kommentar


      #17
      Ja, das dacht ich mir auch und habe gestern einfach nochmal DLMS probiert. Warum es nicht geht ist mir auch ein Rätsel. Ich habe als User Smarthome mit Minicom alles auslesen können. Also liegt es nicht an den Rechten. Ich habe das Gefühl Smarthome greift nicht auf die Schnittstelle zu.
      Ich starte sehr oft neu, das ist nicht das Problem.
      Ich probiere es heute Abend nochmal aus.

      Kommentar


        #18
        An Deiner Stelle würde ich mal mit dem Hersteller Kontakt aufnehmen und nach einer Spezifikation fragen. Vielleicht haben die auch wieder so eine Sonderlocke. Es könnte durchaus auch sein, das die Schnittstelle von sich aus einfach drauflos plappert und durcheinanderkommt, wenn man gemäß Spezifikation für DLMS erstmal ein Hallo, wer bist du? dahin schreibt.
        Es gibt da schon abenteuerliche Implementationen und ich frage mich immer wer bei den Versorgern nicht genau hinschaut was die sich da unterjubeln lassen...

        Kommentar


          #19
          OT: da die Versorger nach meiner Erfahrung bei eHZ (sind ja keine Smartmeter) die Schnittstelle nicht nutzen, dürfte ihnen völlig egal sein, was da passiert oder auch nicht.

          Manche haben die Programmierschnittstelle auf der Rückseite, die muss funktionieren.

          Kommentar


            #20
            Hallo,
            es ist ein Hichi IR USB und ja er brabbelt einfach vor sich hin. Alle zwei/drei Sekunden die Sequenz. Laut Internet ist dieser Lesekopf aber schon öfter im Zusammenhang mit Abfragen aufgetaucht.
            Spielt das eine Rolle für das Plugin? Angenommen man sendet eine Anfrage, steht ja ein Antwort zur Verfügung. Der Puffer läuft halt voll und zeitlich stimmt es nicht überein.
            Der Zähler ist von 2007 und hat laut meinem Datenblatt eine Schnittstelle hinten. Ich möchte jetzt aber nicht alles ausbauen wollen.

            Also ich habe mir das Plugin angesehen. Er wartet auf eine "Welcome" Message:

            Code:
            This is DLMS Plugin running in standalone mode
            ==============================================
            Time to open serial port /dev/ttyUSB0: 1.94 ms
            Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0'
            Time to send first request to smartmeter: 962.97 µs
            Time to receive an answer: 2.72 ms
            Request Message was not equal to response, treating as identification message
            Time to get first identification message from smartmeter: 524.76 µs
            Identification Message is b'55(0000708333)\r\n'
            identification message 'b'55(0000708333)\r\n'' does not start with '/',abort query
            No results from query, maybe a problem with the serial port '/dev/ttyUSB0' given
            ==============================================
            Das kann ich mir im Plugin einfach zusammenbasteln, da es ja immer folgendes ist:
            Code:
            /EMH5----eHZ-E0018E
            Mal sehen...
            Zuletzt geändert von bmx; 02.04.2021, 08:27.

            Kommentar


              #21
              Ja, das mit der Welcome Message ist so vorgesehen. Der USB Kopf gibt ja nur weiter, was die IR im Zähler von sich gibt.
              Das Plugin müßte da einfach nur lauschen (sich dumm stellen) und die Items befüllen. Dafür ist es aktuell aber nicht gestrickt. Mit einem zusätzlichen Parameter könnte man das Plugin darüber informieren, das es nur zuhören muß und auch die Protokollabsprachen ignoriert.
              Mache ich mir am Wochenende mal einen Gedanken zu wie ich das umsetzen kann.

              Kommentar


                #22
                Mal so gestartet, weil er immer maud 300 starten wollte, trotz aller werteänderungen: sudo python3 dlms.py -s 9600 /dev/ttyUSB0
                Bekomme ich ab und zu folgendes:

                Code:
                This is DLMS Plugin running in standalone mode
                ==============================================
                Time to open serial port /dev/ttyUSB0: 1.90 ms
                Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0'
                Time to send first request to smartmeter: 768.90 µs
                Nachricht von Sam
                b'/EMH5----eHZ-E0018E\r\n'
                Time to receive an answer: 276.15 ms
                Request Message was not equal to response, treating as identification message
                Time to get first identification message from smartmeter: 685.93 µs
                Identification Message is b'/EMH5----eHZ-E0018E\r\n'
                The manufacturer for EMH is unknown (out of 0 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
                Die Nachricht von Sam ist von mir, damit ich weiß wo ich im Code bin.
                Manufacturer EMH unknown? Das muss sich ändern ;-)
                Und es muss auch eine Zeitangabe dazu irgendwie.
                Zuletzt geändert von bmx; 02.04.2021, 08:27.

                Kommentar


                  #23
                  Zitat von Postmichel Beitrag anzeigen
                  Der Zähler ist von 2007 und hat laut meinem Datenblatt eine Schnittstelle hinten. Ich möchte jetzt aber nicht alles ausbauen wollen.
                  Der hintere Port ist auch nicht für Benutzer gedacht, und braucht teilweise ein Passwort. Zum Ausbauen müsstest du die Verplombung lösen, das wäre nicht so gut. Aus dem Grund ist der Port ja auch hinten

                  Kommentar


                    #24
                    Soweit so schlecht:
                    Code:
                    This is DLMS Plugin running in standalone mode
                    ==============================================
                    Time to open serial port /dev/ttyUSB0: 3.71 ms
                    Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0'
                    Time to send first request to smartmeter: 695.71 µs
                    Time to receive an answer: 276.47 ms
                    Request Message was not equal to response, treating as identification message
                    Time to get first identification message from smartmeter: 668.76 µs
                    Identification Message is b'/EMH5----eHZ-E0018E\r\n'
                    The manufacturer for EMH is unknown (out of 0 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
                    Nachricht von Sam
                    [B]b'\x02!\r\n'[/B]
                    Time for reading OBIS data: 815.97 ms
                    Whole communication with smartmeter took 1.10 s
                    checksum calculation
                    Sorry response did not contain enough data for OBIS decode
                    the whole query took 1.10 s, suggested cycle thus is at least 11.10 s
                    No results from query, maybe a problem with the serial port '/dev/ttyUSB0' given
                    ==============================================
                    Zerstückelt man die Nachricht von Sam, so scheint ein x02 anzukommen. Was macht das dlms_serial ? Da hänge ich gerade.
                    Zuletzt geändert von bmx; 02.04.2021, 08:26.

                    Kommentar


                      #25
                      Postmichel Du kannst mal versuchen die dlms.py und die get_manufacturer_ids.py aus diesem gist im dlms plugin Verzeichnis zu ersetzen.

                      Dann poste mal was python3 dlms.py /dev/ttyUSB0 -c -v -l -t 10 -s 9600
                      ergibt.

                      Um zu wissen, was der manufacturer Code aussagt, mußt Du die Liste der Hersteller erst runterladen mit python3 get_manufacturer_ids.py
                      Zuletzt geändert von bmx; 29.03.2021, 09:18.

                      Kommentar


                        #26
                        Hallo,
                        vielen Dank für die Hilfe. Irgendwie hänge ich:
                        Code:
                        sudo python3 get_manufacturer_ids.py
                        Read manufacturer IDs from URL: 'https://www.dlms.com/srv/lib/Export_Flagids.php'
                        Starting new HTTPS connection (1): [URL="http://www.dlms.com:443"]www.dlms.com:443[/URL]
                        [URL]https://www.dlms.com:443[/URL] "GET /srv/lib/Export_Flagids.php HTTP/1.1" 200 None
                        sheetnames ["Flag Id's"]
                        sheet <Worksheet "Flag Id's">
                        rows [1 ..1263]
                        columns [1 ..4]
                        /usr/lib/python3/dist-packages/openpyxl/worksheet/worksheet.py:303: UserWarning: Using a coordinate with ws.cell is deprecated. Use ws[coordinate] instead
                        warn("Using a coordinate with ws.cell is deprecated. Use ws[coordinate] instead")
                        Error 'int' object has no attribute 'upper' occurred
                        Und beim dlms hänge ich mit den Parametern c und l..
                        Code:
                        sudo python3 dlms2.py /dev/ttyUSB0 -v -t 10
                        2021-03-28 20:29:48,669 - __main__ - INFO - This is DLMS Plugin running in standalone mode @ 469
                        2021-03-28 20:29:48,670 - __main__ - INFO - ============================================== @ 470
                        2021-03-28 20:29:48,670 - __main__ - DEBUG - Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 300, 'timeout': 10.0, 'onlylisten': False, 'use_checksum': True}' @ 158
                        2021-03-28 20:29:48,674 - __main__ - DEBUG - Time to open serial port /dev/ttyUSB0: 3.86 ms @ 208
                        2021-03-28 20:29:48,675 - __main__ - DEBUG - Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0' @ 217
                        2021-03-28 20:29:48,676 - __main__ - DEBUG - Time to send first request to smartmeter: 747.68 µs @ 225
                        Aber wenn ich mir die EXCEL Tabelle ansehe steht zwar ein Hersteller drin, aber was sagt mir das?
                        FLAG ID Manufacturer Country World Region
                        EMH EMH metering GmbH & Co. KG (formerly EMH Elektrizitatszahler GmbH & CO KG)
                        Zuletzt geändert von bmx; 02.04.2021, 08:26.

                        Kommentar


                          #27
                          Hast Du die dlms.py vom gist geladen? Was heißt Du hängst an den Parameter c und l ?

                          Und das Kürzel EMH in der Identification Message wird über die Excel Tabelle ermittelt. Du hattest in Post #22 gefragt und gesagt, das sich das ändern müsse. Schön, das Du das jetzt weißt. Das hat hier speziell nur kosmetischen Charakter.

                          Ich kann mich da an Deinen Zähler nur rantasten weil ich so ein Ding hier nicht hängen habe.
                          Zuletzt geändert von bmx; 29.03.2021, 09:21.

                          Kommentar


                            #28
                            Hallo,
                            j die habe ich geladen, aber wenn ich diese ausführe sagt er mir, dass er den Parameter c und l nicht kennt :-(
                            Dann habe ich es ohne probiert und er hängt dann wie oben bei:
                            2021-03-28 20:29:48,676 - __main__ - DEBUG - Time to send first request to smartmeter: 747.68 µs @ 225

                            Ich kann aber auch die Herstellerdatei nicht laden mit get_manufacturer_ids.py.

                            Es wundert mich, dass er beim weiteren lesen am Port das liest: b'\x06050\r\n'
                            Das sieht mir aus also ob er dies mit einer anderen Baudrate liest. Dieser "Text" kommt so in der normalen Ausgabe nicht vor. Deswegen würde mich interessieren was dlms_serial macht.
                            Ach war das in Pascal früher so schön, als man alles im Einzelschritt debuggen konnte :-)
                            Das fuchst mich jetzt so lange bis alles verstellt ist :-)

                            Kommentar


                              #29
                              Mit der richtigen Python-IDE geht das auch heute noch...

                              Kommentar


                                #30
                                Ich glaube dann ist da was falschgelaufen bei Deinem Download.

                                Schau mal ob in dlms.py
                                Code:
                                    parser.add_argument('-l', '--onlylisten', help='Only listen to serial, no active query', action='store_true' )
                                    parser.add_argument('-c', '--nochecksum', help='use a checksum', action='store_false' )
                                fehlen. Wenn ja, dann ist das nicht die richtige Datei die Du ausführst. Vielleicht ist der Download sonstwo hingelaufen ...

                                Kommentar

                                Lädt...
                                X