Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für DLMS Plugin

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

    hallo,

    so der scheduler läuft jetzt korrekt.
    Nun gibt es nur doch das Item Problem.

    Blöde frage, habe nur ich die Probleme mit dem Scheduler? hab keine Forenbeiträge dazu finden können..

    Grüße und ein schönes Wochenende.

    Kommentar


      Nein, sie treten vermutlich nur bei Dir auf weil das dlms Plugin etwas benutzt, was sonst IMHO noch kein Plugin verwendet.

      Kommentar


        Ah ok, das ergibt Sinn. Aber das sich das dann auch auf logiken etc auswirkt hätte ich nicht erwartet.

        Kannst du mir ggf noch kurz bzgl der items unter die Arme greifen? Dort hänge ich leider fest.

        Grüße und ein schönes Wochenende

        Kommentar


          Ich habe noch einen Fix für die leere Zeile eingebaut die dazu geführt hatte das das Parsing abbricht bei nur Lese Zählern.
          Bitte noch mal aus dem develop vom dlms Plugin die __init__.py und die plugin.yaml austauschen.

          Aktuell funktioniert bei mir mit Deinen Daten von oben

          Code:
          # tiffy.yaml
          
          Stromzaehler:
              version:
                  type: str
                  dlms_obis_code:
                      - 1-0:0.2.0*255
                      - 0
                      - Value
                      - str
              details:
                  type: str
                  dlms_obis_code:
                      - 1-0:96.1.0*255
                      - 0
                      - Value
                      - str
          
              zaehlerstand1:
                  type: foo
                  dlms_obis_code:
                      - '1-0:1.8.0*255'
                      - '0'
                      - Value
                      - float
          
              zaehlerstand2:
                  type: num
                  dlms_obis_code:
                      - '1-0:1.8.0*255'
                      - '0'
                      - Value
                      - float
          
              zaehlerstand3:
                  # kann nicht funktionieren, der obis code ist unvollständig
                  type: str
                  dlms_obis_code:
                  - '1.8.0*255'
                  - '0'
                  - Value
                  - str
          
              zaehlerstand4:
                  # kann nicht funktionieren, der obis code ist unvollständig
                  type: num
                  dlms_obis_code:
                      - '1.8.0*255'
                      - '0'
                      - Value
                      - float
          
              zaehlerstand5:
                  type: num
                  dlms_obis_code:
                      - '1-0:1.8.0*255'
                      - '0'
                      - Value
                      - str
          die Auslesung. 3+4 ausgenommen, weil da der code falsch angegeben ist.
          Zuletzt geändert von bmx; 23.01.2022, 12:24.

          Kommentar


            Hallo,

            vielen Dank, es funktioniert. Ich hatte die Vermutung das es an der leeren Zeile liegt (steht ja auch so im Log) hab zur Sicherheit einfach ein paar Varianten ausprobiert nicht das es heißt ich habe nicht richtig probiert.

            Bleiben die fixe jetzt drin und kommen in die nächste Hauptversion? Ich kann mir gar nicht vorstellen das ich der einzige mit den Problemen war. Gut man kann auch in der Logik nen script schreiben welches einem den Zähler ausliest aber wenn es ein Plugin gibt welches das unterstützt nutze ich lieber das Plugin.

            Grüße und vielen Dank für deine Arbeit.
            Wenn ich explizit was testen soll kann ich das gern tun.

            Kommentar


              Die Unterstützung für nur-lese-Smartmeter ist erst um die Weihnachtszeit eingebaut worden. Und ich kenne aktuell nur zwei User die einen solchen Smartmeter haben. Da ich selbst so ein Gerät nicht im Einsatz habe und meine Zeit sehr begrenzt ist, kann ich viel auch nur raten. Da es keine Tests gibt muß ich mit Änderungen extrem vorsichtig sein sonst läuft es woanders nicht mehr.

              Kommentar


                Dann ist die Funktion ja quasi beta .
                Wenn ich was testen soll was das Plugin angeht einfach bescheid geben. Werd ja beim nächsten Update spätestens dann merken was nicht geklappt hat.
                Hab auf jeden Fall Dank für die schnelle Hilfe und Anpassung.

                Kommentar


                  Gegeben ist bei mir:
                  SHNG 1.9.2 / dlms 1.9.4 / USB-Lesekopf: bayha electronics SA 00013 / smartmeter EMH ED300L -> also ein „nur-lese“ Smartmeter.

                  Ich kann den Smartreader über das dlms-Plugin leider nicht einlesen. Über ein eigenes Python-Skript kann ich „etwas“ einlesen, ich vermute auch, dass es sinnvolle Daten sind und die Kette an sich funktioniert (s.u.).

                  Beim debuggen bin ich in ein paar edge cases gelaufen – möglicherweise läuft es deswegen nicht durch?
                  Code:
                  pi@raspberryknx:/usr/local/smarthome/plugins/dlms $ python3 dlms.py /dev/ttyUSB0 -l -b 9600
                  This is DLMS Plugin running in standalone mode
                  ==============================================
                  Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'baudrate': 9600, 'baudrate_fix': True, 'timeout': 3.0, 'onlylisten': True, 'use_checksum': True}'
                  Time to open serial port /dev/ttyUSB0: 3.90 ms
                  start to read data from serial device
                  finished reading data from serial device after 339 bytes
                  The manufacturer for is unknown (out of 0 given manufacturers)
                  Time for reading OBIS data: 26.67 s
                  Whole communication with smartmeter took 26.68 s
                  trying now to calculate a checksum
                  STX not found in response='0x2f 0x1b 0x1b 0x1b 0x1b 0x1 0x1 0x1 0x1 0x76...'
                  Traceback (most recent call last):
                    File "dlms.py", line 498, in <module>
                      result = query(config)
                    File "dlms.py", line 410, in query
                      logger.warning(f"ETX not found in response='...{' '.join(hex(i) for i in response[-11])}'")
                  TypeError: 'int' object is not iterable
                  
                  pi@raspberryknx:/usr/local/smarthome/plugins/dlms $ python3 dlms.py /dev/ttyUSB0 -l -c -v -b 9600
                  2023-11-26 11:08:05,186 - __main__ - INFO - This is DLMS Plugin running in standalone mode  @ 495
                  2023-11-26 11:08:05,186 - __main__ - INFO - ==============================================  @ 496
                  2023-11-26 11:08:05,186 - __main__ - DEBUG - Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'baudrate': 9600, 'baudrate_fix': True, 'timeout': 3.0, 'onlylisten': True, 'use_checksum': False}'  @ 177
                  2023-11-26 11:08:05,190 - __main__ - DEBUG - Time to open serial port /dev/ttyUSB0: 3.11 ms  @ 227
                  2023-11-26 11:08:05,190 - __main__ - DEBUG - start to read data from serial device  @ 115
                  2023-11-26 11:08:08,194 - __main__ - DEBUG - finished reading data from serial device after 0 bytes  @ 145
                  Traceback (most recent call last):
                    File "dlms.py", line 498, in <module>
                      result = query(config)
                    File "dlms.py", line 376, in query
                      Identification_Message = str(response,'utf-8').splitlines()[0]
                  IndexError: list index out of range
                  Mit dlms.py lässt sich auch etwas auslesen, nur das dekodieren funktioniert leider nicht:
                  Code:
                  pi@raspberryknx:/usr/local/smarthome/plugins/dlms $ python3 dlms.py /dev/ttyUSB0 -l -c -v -b 9600
                  2023-11-26 11:08:59,554 - __main__ - INFO - This is DLMS Plugin running in standalone mode  @ 495
                  2023-11-26 11:08:59,554 - __main__ - INFO - ==============================================  @ 496
                  2023-11-26 11:08:59,555 - __main__ - DEBUG - Config='{'serialport': '/dev/ttyUSB0', 'device': '', 'querycode': '?', 'baudrate': 9600, 'baudrate_fix': True, 'timeout': 3.0, 'onlylisten': True, 'use_checksum': False}'  @ 177
                  2023-11-26 11:08:59,558 - __main__ - DEBUG - Time to open serial port /dev/ttyUSB0: 3.05 ms  @ 227
                  2023-11-26 11:08:59,558 - __main__ - DEBUG - start to read data from serial device  @ 115
                  2023-11-26 11:09:20,916 - __main__ - DEBUG - finished reading data from serial device after 280 bytes  @ 145
                  2023-11-26 11:09:20,917 - __main__ - DEBUG - The manufacturer for bb is unknown (out of 0 given manufacturers)  @ 380
                  2023-11-26 11:09:20,918 - __main__ - DEBUG - Time for reading OBIS data: 21.36 s  @ 384
                  2023-11-26 11:09:20,919 - __main__ - DEBUG - Whole communication with smartmeter took 21.36 s  @ 388
                  2023-11-26 11:09:20,919 - __main__ - DEBUG - checksum calculation skipped  @ 428
                  2023-11-26 11:09:20,920 - __main__ - DEBUG - the whole query took 21.36 s, suggested cycle thus is at least 31.36 s  @ 441
                  2023-11-26 11:09:20,920 - __main__ - INFO - These are the results of the query  @ 504
                  2023-11-26 11:09:20,920 - __main__ - INFO - ==============================================  @ 505
                  2023-11-26 11:09:20,921 - __main__ - INFO - /bbrcw
                                                                    EMHiWb
                  rbe
                  i:`zwGEMHw    
                  bRVwbUwwGrbeVbRV0wpbRV"bRV
                  i:`"g+-0rm*12X'''R[-L@fQ!  @ 506
                  2023-11-26 11:09:20,921 - __main__ - INFO - ==============================================  @ 507​
                  Ich habe mit der python-Bibliothek "serial" einige Daten /dev/ttyUSB0/ ausgelesen und in eine .txt Datei umgeleitet. Vielleicht helfen die Rohdaten beim dekodieren (siehe angehängte Text Datei).​

                  Vielen Dank & Grüße,
                  ubiwan
                  Angehängte Dateien

                  Kommentar


                    Das sieht mir nicht wie DLMS aus. Probier doch mal das SML Plugin und poste ggf. deine exakte Zählerbezeichnung

                    Kommentar


                      Danke für den Hinweis - da war ich in der falschen Spurrille unterwegs. Mit dem plugin "smlx" bekomme ich sinnvolle Werte! Der Zähler "EMH ED300L" steht beim SML Plugin auch ganz oben in der Liste.

                      Eine Klippe hatte ich noch zu überwinden, das SHNG Log zeigte folgende Fehler (für beide Plugins DLMS und SLMX):
                      Code:
                      2023-11-29  00:11:15 ERROR    plugins.dlms.dlms   Serial port '/dev/ttyUSB0' does not exist, please check the spelling
                      2023-11-29  00:11:15 ERROR    plugins.dlms        no results from smartmeter query received​
                      (...)
                      2023-11-29  20:03:50 ERROR    plugins.smlx        SML: Could not connect to serial:///dev/ttyUSB0: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Keine Berechtigung: '/dev/ttyUSB0'
                      2023-11-29  20:03:50 ERROR    plugins.smlx        Not connected, no query possible
                      Lösung: den user "smarthome" der Gruppe "dialout" hinzufügen, dann klappt es auch mit dem USB-Zugriff...
                      Code:
                      sudo gpasswd --add smarthome dialout

                      Kommentar


                        Hallo @ubiwan,

                        schön das es bei Dir funktioniert. Vielleicht sollte man den Abschnitt
                        Notwendige Software
                        [...] Benutzer berichten davon, das es unter Linux notwendig ist den User smarthome den Gruppen dialout und tty hinzuzufügen. Weiterhin kann es notwendig sein eine Regel zur automatischen Zuordnung der Schnittstelle zu einem festen Port einzurichten. Die Vorgehensweise ist beim DLMS Plugin beschrieben
                        aus der Dokumentation des Plugins noch überarbeiten?

                        Kommentar


                          Hallo zusammen, ich hatte vor einiger Zeit ja schon mal Probleme wegen meines Zählers (der sendet stumpf). Da ich meine Umgebung neu machen musste habe ich jetzt die aktuelle Version des Plugins und bekomme seit dem regelmäßig keine Werte sondern:

                          Code:
                          2024-11-15  17:54:25 WARNING  plugins.dlms        update is alrady running, maybe it really takes very long or you should use longer query interval time
                          Hat jemand eine Idee? Ich habe Update_Cycle mit verschiedensten Werten getestet.

                          Viele Grüße!

                          Kommentar


                            Heißt neu machen das Du alles neu konfigurieren musstest und deine alten Settings vergessen hast?

                            In der plugin.yaml hast Du "only_listen" auf True gesetzt?

                            Kommentar


                              Moin, neu machen hieß das mir meine alte SD Karte abgeraucht ist. nun mit nvme SSD etc. Settings seitig ist aber alles wie vorher. Du hattest mir mal eine develop Version geschickt das hat auch prima funktioniert (Seite 7 des Threads). ein mauelles starten aus dem Plugin Ordner gibt mir auch ergebnisse mit entsprechenden Befehlen aus der Dokumentation aber im smarthomeNG bekomme ich oben genannten Fehler. Timeout lesen steht auf 3sekunden die Frequenz mit der gesendet wird ist aber deutlich höher.

                              Kommentar


                                Hallo, ich glaube ich habe den Fehler gefunden. Sowie im Schaltschrank die Abdeckung drauf ist, schickt der Lesekopf kauderwelsch. Das ist mir beim testen so nicht aufgefallen, dummerweise habe ich immer wenn es funktioniert habe wieder auf smarthomeNG gestellt und die Abdeckung angebracht. es ist also ein Problem mit dem Kabel oder der Chint der neu verbaut ist stört die USB Signale.

                                Kommentar

                                Lädt...
                                X