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

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

    Hallo,

    ich habe einen alten Zähler von EMH (eHZ EW8E2A).
    Folgendes kann ich mit Minicom an der USB Schnittstelle mit den Parametern 9600 7E1 lesen:
    Code:
    /EMH5----eHZ-E0018E
    1-0:0.0.0*255(100005391999)
    1-0:1.8.1*255(051461.1908)
    1-0:96.5.5*255(80)
    0-0:96.1.255*255(0000708333)
    !
    Meine items sind:
    Code:
    Strom:[INDENT]Haus:[/INDENT][INDENT=2]Total:
        type: num
        sml_obis: 1-0:1.8.1*255
        sqlite: yes[/INDENT][INDENT=2]Nummer:
        type: num
        sml_obis: 1-0:0.0.0*255[/INDENT][INDENT=2]Kunde:
        type: num
        sml_obis: 0-0:96.1.255*255[/INDENT]
    Mehr geht halt nicht.
    Leider werden die Werte nicht gelesen.
    Ist das sml plugin ist zu komplex für diese einfache Aufgabe?
    Kann es an den Schnittstellenparametern liegen?
    Mit freundlichem Gruß

    Michael
    Zuletzt geändert von bmx; 22.03.2021, 13:42.

    #2
    Ja, im Plugin sind andere Wert Hardgecoded:
    plugins/sml/__init__.py

    ...
    self.serialport, 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, timeout=0)
    ...

    Das musst Du anpassen...

    Kommentar


      #3
      Zitat von Postmichel Beitrag anzeigen
      ich habe einen alten Zähler von EMH (eHZ EW8E2A).
      Folgendes kann ich mit Minicom an der USB Schnittstelle mit den Parametern 9600 7E1 lesen:
      Code:
      /EMH5----eHZ-E0018E
      1-0:0.0.0*255(100005391999)
      1-0:1.8.1*255(051461.1908)
      1-0:96.5.5*255(80)
      0-0:96.1.255*255(0000708333)
      !
      Falsches Plugin. Du benötigst das DLMS Plugin.

      Kommentar


        #4
        Hallo,
        ja, ich habe mittlerweile das DLMS Plugin gefunden. DANKE!
        Ich hänge noch an der richtigen Konfiguration. Insbesondere hängt es an den Parametern für die serielle Schnittstelle.
        Wenn jemand eine Beispielkonfiguration hat wäre ich dankbar.
        Gruß

        Michael

        Kommentar


          #5
          Hast Du das Plugin über die Admin Gui eingebunden und einfach mal ohne alles ausprobiert? Gibt es eine Rückmeldung zur letzten Auslesung über das Webinterface?

          Kommentar


            #6
            Ups, sorry. War beim falschen Plugin ist bei mir schon eine Weile her das ich das eingerichtet habe. Ich nutze das easymeter Plugin mit na musste dort die Schnittstellen Parameter ändern.

            Kommentar


              #7
              Zuletzt hatte ich einfach mal die Vorgabe aus der Plugin.yaml auskommentiert.
              Jetzt habe ich es über die gui mal gemacht. Die plugin.yaml sagt (enabled musste ich aber erst auf true setzen?):

              Code:
              dlms:[INDENT]plugin_name: dlms
              plugin_enabled: true
              serialport: /dev/ttyUSB0
              baudrate: '9600'
              timeout: '10'
              use_checksum: false[/INDENT]
              Fehlermeldung:
              Code:
              2021-03-21 17:22:50 ERROR plugins.dlms no results from smartmeter query received
              Item:
              Code:
              Strom:[INDENT]Haus:[/INDENT][INDENT=2]Energie:[/INDENT][INDENT=3]type: num
              sqlite: true
              dlms_obis_code:
                  - '1-0:1.8.1*255'
                  - 0
                  - 'Value'
                  - 'num'[/INDENT]
              Zuletzt geändert von bmx; 22.03.2021, 11:53.

              Kommentar


                #8
                Im Normalfall sollte die Baudrate auf 300 voreingestellt sein. Das Plugin versucht dann mit 300 Baud eine Verbindung aufzubauen. In dieser Geschwindigkeit wird dann die erste Zeile gelesen und nach Spezifikation dann umgeschaltet.
                Geh' doch mal auf eine Kommandozeile, wechsel in /usr/local/smarthome/plugins/dlms und starte dann

                Code:
                python3 dlms.py /dev/dlms0
                bzw. statt /dev/dlms0 deine serielle Schnittstelle

                Kommentar


                  #9
                  Hallo,
                  Danke für den Vorschlag:

                  Code:
                  This is DLMS Plugin running in standalone mode
                  ==============================================
                  Time to open serial port /dev/ttyUSB0: 1.33 ms
                  Writing request message b'/?!\r\n' to serial port '/dev/ttyUSB0'
                  Time to send first request to smartmeter: 895.98 µs
                  Leider hängt er dann..

                  Was beim EasyMeter komisch ist. Es taucht in der GUI in der Konfiguration auf, aber nicht in der Liste der Plugins.
                  Zuletzt geändert von bmx; 02.04.2021, 08:28.

                  Kommentar


                    #10
                    Hi,

                    jetzt bin ich mal am Rechner und konnte nachsehen wie es bei mir läuft.
                    Ich musste im Plugin die Parameter für die Serielle Schnittstelle anpassen:
                    Code:
                    parity=serial.PARITY_NONE --> PARITY_EVEN
                    plugins/easymeter/__init__.py

                    Code:
                    [COLOR=#d4d4d4]ser = serial.Serial([/COLOR]
                    [COLOR=#9cdcfe]port[/COLOR][COLOR=#d4d4d4]=curr_port,[/COLOR]
                    [COLOR=#9cdcfe]timeout[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#b5cea8]2[/COLOR][COLOR=#d4d4d4],[/COLOR]
                    [COLOR=#9cdcfe]baudrate[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#b5cea8]9600[/COLOR][COLOR=#d4d4d4],[/COLOR]
                    [COLOR=#9cdcfe]bytesize[/COLOR][COLOR=#d4d4d4]=serial.SEVENBITS,[/COLOR]
                    [COLOR=#9cdcfe]parity[/COLOR][COLOR=#d4d4d4]=serial.[MARKIEREN][B]PARITY_EVEN[/B][/MARKIEREN],[/COLOR]
                    [COLOR=#9cdcfe]stopbits[/COLOR][COLOR=#d4d4d4]=serial.STOPBITS_ONE)[/COLOR]

                    plugin.yaml
                    Code:
                    easymeter:
                        class_name: easymeter
                        class_path: plugins.easymeter

                    Dann noch ein passendes Item anlegen:

                    Code:
                    Strom:
                          Zaehler:
                               name: Stromzählerstand
                               type: num
                               easymeter_code: 1-0:1.8.1*255
                               device: /dev/ttyUSB0
                    Gruß
                    JayKay
                    Zuletzt geändert von bmx; 22.03.2021, 08:37. Grund: Tippfehler korrigiert und [CODE] ... [/CODE] gesetzt statt [PHP]

                    Kommentar


                      #11
                      Wenn Du etwas in der GUI umkonfiguriert hast, mußt Du SHNG schon neu starten, sonst geht da nichts.

                      Schau mal was sich ergibt, wenn Du
                      Code:
                      python3 dlms.py -s 9600 /dev/dlms0
                      auf der Kommandozeile eingibst

                      Kommentar


                        #12
                        Zitat von Postmichel Beitrag anzeigen
                        Was beim EasyMeter komisch ist. Es taucht in der GUI in der Konfiguration auf, aber nicht in der Liste der Plugins.
                        Möglicherweise gibt es einen Fehler beim Laden. Hast du mal ins Logfile geschaut?

                        Kommentar


                          #13
                          Hallo...
                          ja...
                          Code:
                          2021-03-21 18:59:53 ERROR lib.plugin Plugin 'easymeter' class name 'easymeter' defined in metadata, but not found in plugin code
                          2021-03-21 18:59:53 ERROR lib.plugin Plugin 'easymeter' initialization failed, plugin not loaded
                          dabei steht in der plugin.yaml:
                          Code:
                          easymeter:
                              plugin_name: easymeter
                          Zuletzt geändert von bmx; 02.04.2021, 08:28.

                          Kommentar


                            #14
                            but not found in plugin code
                            Das mag ja sein. Das Plugin weiß aber nicht, dass es easymeter heißt...

                            Kommentar


                              #15
                              Ich stehe vor einem Rätsel und komme nicht drauf. Wie sage ich es ihm?

                              Das easymeter plugin ist auch veraltet. Ich habe mich bei dlms mal umgesehen, Die Schnittstelle wird laut code richtig geöffnet:
                              Code:
                              dlms_serial = serial.Serial(SerialPort,[INDENT=3]InitialBaudrate,
                              bytesize=serial.SEVENBITS,
                              parity=serial.PARITY_EVEN,
                              stopbits=serial.STOPBITS_ONE,
                              timeout=timeout)[/INDENT]
                              Mal drüber schlafen....
                              Zuletzt geändert von bmx; 22.03.2021, 08:33.

                              Kommentar

                              Lädt...
                              X