Neues Plugin: Smartmeter - Stromzähler auslesen

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

    #331
    wie ich es in Erinnerung hatte.
    Wert 16.7 ermittelt aber nicht in den Daten
    Angehängte Dateien

    Kommentar

    • blacksun
      MS Profi
      • 20.01.2016
      • 575

      #332
      Bist du sicher, das du das hier schon eingefügt/geändert hast?

      Code:
      ### Energy consumption: Power  (OBIS mixture - no standard?)
              ($power1) = $dumpbuffer =~ /[\n|\r|:]1\.7\.0[\*255|\*00]*\(([-\d\.]+)/;
              ($power2) = $dumpbuffer =~ /[\n|\r|:]2\.7\.0[\*255|\*00]*\(([-\d\.]+)/;
              ($power3) = $dumpbuffer =~ /[\n|\r|:]15\.7\.0[\*255|\*00]*\(([-\d\.]+)/;
              ($power4) = $dumpbuffer =~ /[\n|\r|:]16\.7\.0[\*255|\*00]*\(([-\d\.]+)/;
      Es kommt auf das Minuszeichen, vorallem im $power4 an. Wenn ich bei mir das Minus wieder wegmache, steht nämlich auch nichts drin.

      Also schau bitte nochmal in die Datei sm_logger.pl ab Zeile 892 nach und kontrolliere, ob das "-" da ist.

      Kommentar

      • Gast

        #333
        sorry 27 mal geprüft und übersehen.
        jetzt ist es OK.

        dann nehme ich besser diesen Wert als die kalkulierten.

        Kommentar

        • blacksun
          MS Profi
          • 20.01.2016
          • 575

          #334
          Super! Dann sind wir am Ziel.

          D. h. die Änderungen in der sm_logger.pl müssen auch noch übernommen werden. Zusätzlich jetzt noch die LEN=6 Abfrage für den EMH Zähler und zusätzlich, das 16.7.0 auch negativ Werte annehmen kann. Ebenso Watt Umrechnung mit Beachtung, ob Skalierfaktor übertragen wird und die OBIS 2.8.0 ins Array.




          Zuletzt geändert von blacksun; 23.08.2019, 11:54.

          Kommentar

          • Gast

            #335
            ja, super Job

            danke Wil

            Kommentar

            • blacksun
              MS Profi
              • 20.01.2016
              • 575

              #336
              Gast , habe jetzt einen Pullrequest auf Github erstellt. Mal sehen, ob der Autor mit den Änderungen einverstanden ist.

              Wörsty , Prof.Mobilux Ich habe auf Github einen PullRequest erstellt mit meinen vorgeschlagenen Änderungen. Heute hatte ich einen Lauf. Sogar den Fehler mit der SML_TIME konnte ich lösen ;-) Können die Änderungen übernommen werden?
              Zuletzt geändert von blacksun; 24.08.2019, 21:08.

              Kommentar

              • blacksun
                MS Profi
                • 20.01.2016
                • 575

                #337
                Gast


                Hallo, ich habe eine Frage zu den signed Integerwerte. Laut Spezifikation sind signed Integerwerte nur zulässig mit folgenden Längen.
                52 = Länge 2, 8 Bit
                53 = Länge 3, 16 Bit
                55 = Länge 5, 32 Bit
                59 = Länge 9 64 Bit

                Hier ein Auszug eines Telegramms des EMH ED300L Zählers.

                Wie kann es sein, das überwiegend signed Integerwerte übertragen werden mit Länge 6. Was soll das für eine Zahl sein? Länge 6 - 1 = Wert mit 5 Byte??? Kann ja kein Short oder Long sein?

                Code:
                1B1B1B1B0101010176070017028D1519620062007263010176010107001701B0B1B30B0901454D48000077F2DF01016303CE00
                        76070017028D151A620062007263070177010B0901454D48000077F2DF070100620AFFFF7262016501B0A3BB7A
                        77078181C78203FF0101010104454D4801
                        77070100000009FF010101010B0901454D480000
                        77F2DF0177070100010800FF640101A201
                        621E
                        52FF
                        560000FD3C7F
                        01
                        77070100020800FF640101A201     // OBIS 2.8.0
                        621E
                        52FF
                        56000221965B                 // Signed Integer Länge 6
                        01
                        77070100010801FF0101        // OBIS 1.8.1
                        621E
                        52FF
                        560000FD3C7F                // Signed Integer Länge 6
                        01
                        77070100020801FF0101        // OBIS 2.8.1
                        621E
                        52FF
                        56000221965B                // Signed Integer Länge 6
                        01
                        77070100010802FF0101        // OBIS 1.8.2
                        621E
                        52FF
                        560000000000                // Signed Integer Länge 6
                        01
                        77070100020802FF0101        // OBIS 2.8.2
                        621E
                        52FF
                        560000000000                // Signed Integer Länge 6
                        01
                        77070100100700FF0101
                        621B
                        52FF
                        55FFFFAAC6
                        01
                Das müsste doch eigentlich falsch sein oder?

                Hier die Spezifikation:

                Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image_22458.png Ansichten: 0 Größe: 31,9 KB ID: 210617

                Was meinst du da dazu?

                Kommentar

                • Gast

                  #338
                  Zitat von blacksun
                  Gast


                  Hallo, ich habe eine Frage zu den signed Integerwerte. Laut Spezifikation sind signed Integerwerte nur zulässig mit folgenden Längen.
                  52 = Länge 2, 8 Bit
                  53 = Länge 3, 16 Bit
                  55 = Länge 5, 32 Bit
                  59 = Länge 9 64 Bit

                  Hier ein Auszug eines Telegramms des EMH ED300L Zählers.

                  Wie kann es sein, das überwiegend signed Integerwerte übertragen werden mit Länge 6. Was soll das für eine Zahl sein? Länge 6 - 1 = Wert mit 5 Byte??? Kann ja kein Short oder Long sein?

                  Code:
                  1B1B1B1B0101010176070017028D1519620062007263010176010107001701B0B1B30B0901454D48000077F2DF01016303CE00
                  76070017028D151A620062007263070177010B0901454D48000077F2DF070100620AFFFF7262016501B0A3BB7A
                  77078181C78203FF0101010104454D4801
                  77070100000009FF010101010B0901454D480000
                  77F2DF0177070100010800FF640101A201
                  621E
                  52FF
                  56[COLOR=#FF0000]0000FD3C7F[/COLOR]
                  01
                  77070100020800FF640101A201 // OBIS 2.8.0
                  621E
                  52FF
                  56[COLOR=#FF0000]000221965B[/COLOR] // Signed Integer Länge 6
                  01
                  77070100010801FF0101 // OBIS 1.8.1
                  621E
                  52FF
                  56[COLOR=#FF0000]0000FD3C7F[/COLOR] // Signed Integer Länge 6
                  01
                  77070100020801FF0101 // OBIS 2.8.1
                  621E
                  52FF
                  56[COLOR=#FF0000]000221965B[/COLOR] // Signed Integer Länge 6
                  01
                  77070100010802FF0101 // OBIS 1.8.2
                  621E
                  52FF
                  56[COLOR=#FF0000]0000000000 [/COLOR]// Signed Integer Länge 6
                  01
                  77070100020802FF0101 // OBIS 2.8.2
                  621E
                  52FF
                  56[COLOR=#FF0000]0000000000[/COLOR] // Signed Integer Länge 6
                  01
                  77070100100700FF0101
                  621B
                  52FF
                  55FFFFAAC6
                  01
                  Das müsste doch eigentlich falsch sein oder?

                  Hier die Spezifikation:

                  Klicke auf die Grafik für eine vergrößerte Ansicht Name: image_22458.png Ansichten: 0 Größe: 31,9 KB ID: 210617

                  Was meinst du da dazu?
                  严格来说,报文是有错误的, 无符号整型 uint8_t, uint16_t, uint32_t, uint64. 长度分别为1,2,4,8字节.
                  emh 的报文应该是电表内部保存电量为5字节, sml传输时未做长度转换.
                  可用以下方法实现 c 语言

                  Strictly speaking, the message is wrong, the unsigned integers uint8_t, uint16_t, uint32_t, uint64. are 1, 2, 4, and 8 bytes in length.
                  The message of emh should be that the internal power stored in the meter is 5 bytes, and the length conversion is not performed when the sml is transmitted.
                  Can be achieved by the following methods c Language

                  Streng genommen ist die Nachricht falsch, die vorzeichenlosen Ganzzahlen uint8_t, uint16_t, uint32_t, uint64 haben eine Länge von 1, 2, 4 und 8 Byte.
                  Die Meldung von EMH sollte lauten, dass die im Messgerät gespeicherte interne Leistung 5 Byte beträgt und die Längenumrechnung nicht durchgeführt wird, wenn der SML übertragen wird.
                  Kann durch die folgenden Methoden erreicht werden c Sprache

                  Code:
                  uint8_t buf[] = {0x[COLOR=#FF0000]00, 0x00, 0xFD, 0x3C, 0x7F[/COLOR]};
                  uint64_t x=0;
                  for (uint8_t i = 0; i < sizeof(buf); ++i) {
                      x <<= 8;
                      x += buf[i];
                  }

                  Kommentar

                  • blacksun
                    MS Profi
                    • 20.01.2016
                    • 575

                    #339
                    Hallo Gast ,

                    vielen Dank für die Bestätigung. Da müsste als EMH nach arbeiten.

                    Kommentar

                    • Prof.Mobilux
                      Supermoderator
                      • 25.08.2015
                      • 4716

                      #340
                      blacksun Besten Dank für den Pull Request! Ich mache daraus ein neues PreRelease und melde mich hier wieder (denke ich schaffe es heute noch).
                      🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                      LoxBerry - Beyond the Limits

                      Kommentar


                      • blacksun
                        blacksun kommentierte
                        Kommentar bearbeiten
                        Sehr geil. Ich bin gespannt.

                      • Gast
                        Gast kommentierte
                        Kommentar bearbeiten
                        Please give me the github URL.
                    • blacksun
                      MS Profi
                      • 20.01.2016
                      • 575

                      #341
                      Contribute to mschlenstedt/LoxBerry-Plugin-Smartmeter development by creating an account on GitHub.

                      Kommentar

                      • Prof.Mobilux
                        Supermoderator
                        • 25.08.2015
                        • 4716

                        #342
                        Hallo zusammen,

                        ich habe aus den Änderungen von blacksun ein PreRelease Version 1.1 erstellt: https://github.com/mschlenstedt/LoxB...meter-V1.1.zip

                        LG
                        Michael
                        🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                        LoxBerry - Beyond the Limits

                        Kommentar

                        • blacksun
                          MS Profi
                          • 20.01.2016
                          • 575

                          #343
                          Servus Gast,

                          teste du bitte auch mal die PreRelease, da etliche Änderungen von Deinem Zähler mit eingeflossen sind. Sollte laufen. Gib uns hier dann kurz Bescheid!

                          Prof.Mobilux, habs installiert und getestet. Läuft.

                          Oli, bitte noch um Dein Dumpfile.

                          Gast, könntest du evtl. eine Routine schreiben für die Checksummenüberprüfung nach CRC16 Kermit?
                          Zuletzt geändert von blacksun; 26.08.2019, 16:30.

                          Kommentar


                          • blacksun
                            blacksun kommentierte
                            Kommentar bearbeiten
                            Kannst du machen, wird aber Dir nix bringen. Der Zähler muss 1x abgefragt werden. Dann befindet sich im Verzeichnis auch das dumpfile

                          • Oli
                            Oli kommentierte
                            Kommentar bearbeiten
                            ich habe jetzt versucht den Zähler abzufragen. Allerdings bekomme ich keine richtigen Werte mehr aus dem Zähler. Keine Ahnung was lost ist....

                            01304DD6: Found configuration for 1
                            01304DD6: Manual settings.
                            01304DD6: Protocol: genericsml
                            01304DD6: Timeout: 10
                            01304DD6: Delay: 1
                            01304DD6: Device: /dev/serial/smartmeter/01304DD6
                            01304DD6: Baudrate:9600/9600 Databits:8 Stopbits:1 Parity:even Handshake:none
                            Initial Baudrate: 9600
                            Max Baudrate: 9600
                            Protocol: genericsml
                            Timeout: 10
                            Delay: 1
                            Setting up port /dev/serial/smartmeter/01304DD6: Baudrate:9600/9600 Databits:8 Stopbits:1 Parity:even Handshake:none
                            1B1B1B1B010101017605006D334E6200620072650000010176 0101074553595133430B0901455359110393BFA601016353DA 007605006D334F6200620072
                            [...]
                            Save raw buffer to /var/run/shm/smartmeter/01304DD6.dump
                            Parse /var/run/shm/smartmeter/01304DD6.dump as SML-Protocol.
                            Buffer:

                            Calculate average power for cons.
                            Last Reading: . Saved before: 435234.9928 hours. Consumption: 0.0000. Avg. Power: 0.0000,
                            Calculate average power for del.
                            Last Reading: . Saved before: 435234.9928 hours. Consumption: 0.0000. Avg. Power: 0.0000,
                            Save Meter data to /var/run/shm/smartmeter/01304DD6.data.
                            All data written to /var/run/shm/smartmeter/01304DD6.xxxx

                            das Dumfile wird auch auch nicht erzeugt. Das Verzeichnis bleibt leer
                            Zuletzt geändert von Prof.Mobilux; 27.08.2019, 05:53.

                          • Oli
                            Oli kommentierte
                            Kommentar bearbeiten
                            Jetzt habe ich das File per Putty gefunden. Allerdings finde ich es nicht zum übertragen per WINSCP, egal wohin ich das file kopiere.
                        • Oli
                          LoxBus Spammer
                          • 25.08.2015
                          • 293

                          #344
                          Wie kann ich ein .dump file hier hochladen? Bekomme immer eine Fehlermeldung...
                          Das ist der Inhalt

                          1B1B1B1B010101017605006D334E6200620072650000010176 0101074553595133430B0901455359110393BFA601016353DA [...]
                          FF630190726201650A6DD3D4621E52016500000070
                          Zuletzt geändert von Prof.Mobilux; 27.08.2019, 05:53. Grund: Gekürzt - Download als ZIP weiter unten.

                          Kommentar

                          • Oli
                            LoxBus Spammer
                            • 25.08.2015
                            • 293

                            #345

                            Ich hab’s mal bei iCloud hochgeladen

                            https://www.icloud.com/iclouddrive/0g2uflbJDOgyFdNLXddQ8sXCw#01304DD6

                            Kommentar

                            Lädt...