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

    #31
    Danke, habe es nochmal geprüft.
    Das nimmt er jetzt, habe aber parameter s 9600 übergeben müssen. Leider hängt er dann am Obis Code:
    Code:
    sudo python3 dlms.py /dev/ttyUSB0 -c -v -l -t 10 -s 9600
    2021-03-29 17:20:09,274 - __main__ - INFO - This is DLMS Plugin running in standalone mode @ 469
    2021-03-29 17:20:09,275 - __main__ - INFO - ============================================== @ 470
    2021-03-29 17:20:09,276 - __main__ - DEBUG - Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 9600, 'timeout': 10.0, 'onlylisten': True, 'use_checksum': False}' @ 158
    2021-03-29 17:20:09,280 - __main__ - DEBUG - Time to open serial port /dev/ttyUSB0: 3.68 ms @ 208
    2021-03-29 17:20:09,517 - __main__ - DEBUG - Identification Message is b'/EMH5----eHZ-E0018E\r\n' @ 253
    2021-03-29 17:20:09,518 - __main__ - DEBUG - The manufacturer for EMH is unknown (out of 0 given manufacturers) @ 271
    2021-03-29 17:20:09,519 - __main__ - DEBUG - Baudrate id is '5' thus Protocol Mode is C and max Baudrate available is 9600 Bd @ 307
    2021-03-29 17:20:09,519 - __main__ - DEBUG - Can not change Baudrate in listening only mode @ 324
    2021-03-29 17:20:09,520 - __main__ - DEBUG - Reading OBIS data from smartmeter @ 359
    Warum kann ich die Excel Tabelle nicht lesen?
    Code:
    /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")
    [B]Error 'int' object has no attribute 'upper' occurred[/B]
    Zuletzt geändert von bmx; 02.04.2021, 08:26.

    Kommentar


      #32
      Kommt nach
      Code:
      2021-03-29 17:20:09,520 - __main__ - DEBUG - Reading OBIS data from smartmeter @ 359
      nichts mehr?

      Welche Python Version hast Du im Einsatz? python3 -V

      Ich habe den gist aktualisiert, es wäre gut beide Dateien gegen die neuen Varianten zu ersetzen.
      Zuletzt geändert von bmx; 29.03.2021, 19:59.

      Kommentar


        #33
        Hallo,
        Python 3.7.3
        jetzt geht es einen Schritt weiter:
        Code:
        sudo python3 dlms.py /dev/ttyUSB0 -c -v -l -t 10 -s 9600
        2021-03-30 21:59:40,820 - __main__ - INFO - This is DLMS Plugin running in standalone mode @ 473
        2021-03-30 21:59:40,821 - __main__ - INFO - ============================================== @ 474
        2021-03-30 21:59:40,822 - __main__ - DEBUG - Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 9600, 'timeout': 10.0, 'onlylisten': True, 'use_checksum': False}' @ 160
        2021-03-30 21:59:40,825 - __main__ - DEBUG - Time to open serial port /dev/ttyUSB0: 3.57 ms @ 210
        2021-03-30 21:59:40,826 - __main__ - DEBUG - start to read data from serial device @ 113
        2021-03-30 21:59:42,003 - __main__ - DEBUG - finished reading data from serial device after 21 bytes @ 129
        2021-03-30 21:59:42,004 - __main__ - DEBUG - Identification Message is b'/EMH5----eHZ-E0018E\r\n' @ 255
        2021-03-30 21:59:42,005 - __main__ - DEBUG - The manufacturer for EMH is unknown (out of 0 given manufacturers) @ 273
        2021-03-30 21:59:42,006 - __main__ - DEBUG - Baudrate id is '5' thus Protocol Mode is C and max Baudrate available is 9600 Bd @ 309
        2021-03-30 21:59:42,007 - __main__ - DEBUG - Can not change Baudrate in listening only mode @ 328
        2021-03-30 21:59:42,007 - __main__ - DEBUG - Reading OBIS data from smartmeter @ 363
        2021-03-30 21:59:42,008 - __main__ - DEBUG - start to read data from serial device @ 113
        Zuletzt geändert von bmx; 02.04.2021, 08:25.

        Kommentar


          #34
          Ok, wir sind jetzt an dem Punkt wo von der seriellen Schnittstelle gelesen wird. Nur wird keine Abbruchbedingung erfüllt. Das sollte eigentlich ein Timeout sein. Das findet aber nicht statt und es wird endlos gelesen.
          Ich habe den Code mal angepasst zu das nun bis zum DLMS Terminator gelesen werden sollte. Probier das mal aus, ich habe den gist aktualisiert.

          Kommentar


            #35
            Schau:
            Code:
            sudo python3 dlms.py /dev/ttyUSB0 -c -v -l -t 10 -s 9600
            2021-03-31 19:46:17,296 - __main__ - INFO - This is DLMS Plugin running in standalone mode @ 477
            2021-03-31 19:46:17,297 - __main__ - INFO - ============================================== @ 478
            2021-03-31 19:46:17,298 - __main__ - DEBUG - Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'speed': 9600, 'timeout': 10.0, 'onlylisten': True, 'use_checksum': False}' @ 160
            2021-03-31 19:46:17,301 - __main__ - DEBUG - Time to open serial port /dev/ttyUSB0: 3.74 ms @ 210
            2021-03-31 19:46:17,302 - __main__ - DEBUG - start to read data from serial device @ 113
            2021-03-31 19:46:18,953 - __main__ - DEBUG - finished reading data from serial device after 21 bytes @ 129
            2021-03-31 19:46:18,954 - __main__ - DEBUG - Identification Message is b'/EMH5----eHZ-E0018E\r\n' @ 255
            2021-03-31 19:46:18,955 - __main__ - DEBUG - The manufacturer for EMH is unknown (out of 0 given manufacturers) @ 273
            2021-03-31 19:46:18,955 - __main__ - DEBUG - Baudrate id is '5' thus Protocol Mode is C and max Baudrate available is 9600 Bd @ 309
            2021-03-31 19:46:18,956 - __main__ - DEBUG - Can not change Baudrate in listening only mode @ 328
            2021-03-31 19:46:18,957 - __main__ - DEBUG - Reading OBIS data from smartmeter @ 363
            2021-03-31 19:46:18,958 - __main__ - DEBUG - start to read data from serial device @ 113
            2021-03-31 19:46:19,072 - __main__ - DEBUG - finished reading data from serial device after 110 bytes @ 129
            2021-03-31 19:46:19,082 - __main__ - DEBUG - Time for reading OBIS data: 1.78 s @ 371
            2021-03-31 19:46:19,083 - __main__ - DEBUG - Whole communication with smartmeter took 1.79 s @ 376
            2021-03-31 19:46:19,083 - __main__ - DEBUG - Acknowledge echoed from smartmeter @ 379
            2021-03-31 19:46:19,084 - __main__ - DEBUG - checksum calculation skipped @ 415
            2021-03-31 19:46:19,085 - __main__ - DEBUG - parsing OBIS codes took 1.97 ms @ 419
            2021-03-31 19:46:19,085 - __main__ - DEBUG - the whole query took 1.79 s, suggested cycle thus is at least 11.79 s @ 425
            2021-03-31 19:46:19,086 - __main__ - INFO - These are the results of the query @ 486
            2021-03-31 19:46:19,086 - __main__ - INFO - ============================================== @ 487
            2021-03-31 19:46:19,087 - __main__ - INFO -
            1-0:0.0.0*255(100005391999)
            1-0:1.8.1*255(051614.4403)
            1-0:96.5.5*255(80)
            0-0:96.1.255*255(0000708333 @ 488
            2021-03-31 19:46:19,089 - __main__ - INFO - ============================================== @ 489
            Das sieht doch mal nicht schlecht aus.
            Zuletzt geändert von bmx; 02.04.2021, 08:25.

            Kommentar


              #36
              Ich habe in den develop branch von SmartHomeNG ein aktualisiertes DLMS Plugin gepusht. Schau mal, ob das so für Dich passt.
              Zuletzt geändert von bmx; 01.04.2021, 15:13.

              Kommentar


                #37
                Hallo,
                also wenn das Plugin nicht aktiv ist funktioniert alles wie oben. Ich habe das ständig lesen flag gesetzt.
                Mache ich in den items was falsch:

                Code:
                Energie:
                    type: num
                    sqlite: true
                    dlms_obis_code:
                        - '1-0:1.8.1*255'
                        - 0
                        - 'Value'
                        - 'num'
                
                Nummer:
                    type: str
                    dlms_obis_code:
                        - '1-0:0.0.0*255'
                        - 0
                        - 'Value'
                        - 'str'
                
                Kunde:
                    type: str
                    dlms_obis_code:
                        - '0-0:96.1.255*255'
                        - 0
                        - 'Value'
                        - 'str'
                
                #Reminder - Ausgelesene Werte:
                #Nummer 1-0:0.0.0*255(100005391999)
                #Energie 1-0:1.8.1*255(051630.3719)
                # ?? 1-0:96.5.5*255(80)
                #Kunde 0-0:96.1.255*255(0000708333)
                Fehlermeldung im Log:
                Code:
                lib.metadata plugin 'dlms': definition = 'dlms_obis_code': Invalid subtype ' str' specified, using 'foo' instead
                2021-04-01 22:46:24 ERROR lib.metadata plugin 'dlms': definition = 'dlms_obis_code': Invalid subtype ' int' specified, using 'foo' instead
                2021-04-01 22:46:24 ERROR lib.metadata plugin 'dlms': definition = 'dlms_obis_code': Invalid subtype ' str' specified, using 'foo' instead
                2021-04-01 22:46:24 ERROR lib.metadata plugin 'dlms': definition = 'dlms_obis_code': Invalid subtype ' str' specified, using 'foo' instead
                Und dann:
                Code:
                plugins.dlms update is alrady running, maybe it really takes very long or you should use longer query interval time
                Zuletzt geändert von bmx; 02.04.2021, 08:25. Grund: Einrückungen angepasst damit es lesbar wird

                Kommentar


                  #38
                  Es wäre schon schön wenn Du die Items auch richtig posten würdest, also mit korrekten Einrückungen. Es gibt da extra einen angepinnten Thread dazu ...

                  Interessant wäre zunächst ob ein Item mit dem Attribut dlms_obis_readout bei Dir befüllt wird.

                  Welche SHNG Version nutzt Du? Die Fehler oben kenne ich eigentlich aus einer Version vor 1.8.2. Du kannst temporär das lösen in dem Du in der plugins/dlms/plugin.yaml die Zeile 96 änderst von list(4, str, int, str, str) in list(4,str,int,str,str)

                  Kommentar


                    #39
                    Sorry, ich dachte zu weit.
                    Ich habe die Version 1.8.1

                    SmartHomeNG Version:1.8.1.master (84873f74) in /usr/local/smarthome (tags/v1.8.1)
                    SmartHomeNG Plugins Version:1.8.1.master (5295e19f) in /usr/local/smarthome/plugins (heads/master)
                    Python Version:3.7.3 final (/usr/bin/python3)

                    Item:
                    Code:
                    Strom:[INDENT]Haus:[/INDENT][INDENT=2]Auslesung:[/INDENT][INDENT=3]type: str[/INDENT][INDENT=3]dlms_obis_readout: yes[/INDENT][INDENT=2]
                    Energie:[/INDENT][INDENT=3]type: num[/INDENT][INDENT=3]sqlite: true
                    dlms_obis_code:
                    - '1-0:1.8.1*255'
                    - 0
                    - 'Value'
                    - 'num'[/INDENT][INDENT=2]
                    Nummer:[/INDENT][INDENT=3]type: str
                    dlms_obis_code:
                    - '1-0:0.0.0*255'
                    - 0
                    - 'Value'
                    - 'str'[/INDENT][INDENT=2]
                    Kunde:[/INDENT][INDENT=3]type: str
                    dlms_obis_code:
                    - '0-0:96.1.255*255'
                    - 0
                    - 'Value'
                    - 'str'[/INDENT]
                    Plugin.yaml:
                    Code:
                    dlms:
                        plugin_name: dlms
                        serialport: /dev/ttyUSB0
                        baudrate: '9600'
                        timeout: '500'
                        use_checksum: false
                        device_address: /EMH5----eHZ-E0018E
                        only_listen: true
                    Aktuell kommt keine grundsätzliche Fehlermeldung, nur nach dem Timeout meldet er sich.
                    Code:
                    WARNING plugins.dlms update is alrady running, maybe it really takes very long or you should use longer query interval time
                    Übrigens: Frohe Ostern!
                    Zuletzt geändert von bmx; 02.04.2021, 11:28. Grund: NOCHMAL DIE BITTE DIE EINRÜCKUNGEN ZU BERÜCKSICHTIGEN!!!

                    Kommentar


                      #40
                      Ok. Du solltest auf SHNG 1.8.2 aktualisieren weil da bekannte Fehler gefixt werden.

                      In der plugin.yaml benötigst Du device_address: /EMH5----eHZ-E0018E nicht, schmeiß das mal raus. Und Timeout kannst Du bitte herabsetzen. Du brauchst nicht 500 Sekunden für eine Abfrage...
                      Wenn das Smartmeter eh' alle paar Sekunden was schickt, dann kannst Du eine Zeitspanne wählen, die kleiner ist als der Wiederholungsabstand der Sendungen vom Smartmeter

                      Es gibt auch im develop branch eine neue Version vom dlms Plugin. Das solltest Du Dir mal runterladen und einbauen. Bitte auch das Unterverzeichnis webif berücksichtigen. Ich habe das Webinterface ein wenig aufgebohrt. Du kannst nun Deine definierten dlms_obis_codes im Webinterface sehen.

                      Außerdem ist eine zusätzliche Seiten mit oft genutzten Codes dazugekommen und man kann in beiden Übersichten auch in den Tabellen suchen

                      Kommentar


                        #41
                        Hallo,
                        vielen Dank für den Tipp, aber das update scheint Zeit zu beanspruchen, da es nicht so einfach ist.
                        Hier die Ausgabe vom Logbuch und dem Webinterface.
                        Es scheint nicht zu funktionieren. Wenn ich es in der Kommandozeile ausführe gibt er mir die Werte aber brav aus.



                        Kann man das sehen?

                        Kommentar


                          #42
                          Was neues im Logbuch:

                          WARNING root identification message 'b'R\x07O_rR\x07O/rR\x07O/rR\x07O/rR\x07O_rR\x07O_rR\x07O_rR\x07O_rR\x07O\x1frR\x07O _rR\x07O\x0frR\x07O/rR\x07O_rR\x07O_rR\x07O\x1frR\x07O/rR\x07O_rR\x07O_rR\x07O\x0frR\x07O/rR\x07O/rR\x07O/rR\x07O\x0frR\x07O\x0frR\x07O/rR\x07O/rR\x07O/rR\x07O/rR\x07O_rR\x07O_rR\x07O_rR\x07O_rR\x07O\x0frR\x07O \x0frR\x07O/rR\x07O/rR\x07O\x0frR\x07O\x0frR\x07O_rR\x07O_rR\x07O\x0fr R\x07O\x0frR\x07O_rR\x07O\x0frR\x07O\x0frR\x07O_rR \x07O/rR\x07O_rR\x07O\x0frR\x07O\x0frR\x07O_rR\x07O\x0fr R\x07O\x0frR\x07O/rR\x07O_rR\x07O_rR\x07O/rR\x07O/rR\x07O\x0frR\x07O_rR\x07O_rR\x07O\x0frR\x07O/rR\x07O/rR\x07O\x0frR\x07O\x0frR\x07O\x0frR\x07O\x1frR\x07 O\x0frR\x07O_rR\x07O\x0frR\x07O\x1frR\x07O\x0frR\x 07O\x0frR\x07O\x0frR\x07O\x1frR\x07O\x0frR\x07O\x0 frR\x07O\x0frR\x07O/rR\x07O_rR\x07O\x0frR\x07O/rR\x07O\x0frR\x07O_rR\x07O/rR\x07O/rR\x07O_rR\x07O\x1frR\x07O/rR\x07O/rR\x07O_rR\x07O\x1frR\x07O_rR\x07O\x0frR\x07O_r'' does not start with '/',abort query

                          2021-04-02 20:20:19 ERROR plugins.dlms no results from smartmeter query received

                          Irgendwie kommt es mir vor, dass er auf eine niedrigere Baudrate zurückfällt.

                          Kommentar


                            #43
                            Setze doch mal via Admin Interface die Baudrate auf 9600, ich vermute das hast Du noch nicht gemacht...

                            Kommentar


                              #44
                              Hallo,
                              ich weiß nicht wie Du das meinst - udev regel?
                              Ich habe mit:
                              sudo stty -F /dev/ttyUSB0 9600 -parodd cs7 -cstopb parenb -ixoff -crtscts -hupcl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echoctl -echoke
                              die Schnittstelle parametriert.
                              Mit Minicom kann ich die Schnittstelle auslesen.
                              Aber wenn ich nun im SmarthomeNG das Webinterface von DLMS aufrufe passiert folgendes:
                              Bildschirmfoto von 2021-04-03 17-41-24.png
                              Wenn ich dann im Minicom die Parameter nur speichere geht es wieder munter weiter.
                              Das hatte ich schon mal im Plugin vermutet. Kann man das nicht abschalten, dass die Parameter geändert werden?

                              Kommentar


                                #45
                                Während Du das Plugin nutzen willst kannst Du weder mit Minicom noch mit de Standalone Version arbeiten. Aber Du musst dem Plugin entweder über das Admin interface oder über die etc/plugin.yaml schon mitteilen welche Baudrate er anfänglich nutzen soll. Die ist per default auf 300 gesetzt und die muss entsprechend konfiguriert werden

                                Kommentar

                                Lädt...
                                X