Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Smartmeter mit Landis+Gyr E650

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Smartmeter mit Landis+Gyr E650

    This topic has been deleted. Only users with topic management privileges can see it.
    • Michael Uray
      Michael Uray @apollon77 last edited by

      @apollon77

      Das hier sind meine Einstellungen:

      2022-04-02_17-41-11_instances_-stocking-_Mozilla_Firefox.png

      Homoran Ralla66 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Michael Uray last edited by

        @michael-uray sagte in Smartmeter mit Landis+Gyr E650:

        Das hier sind meine Einstellungen:

        da hast du aber nicht

        @homoran sagte in Smartmeter mit Landis+Gyr E650:

        alles Standardeinstellungen

        oder?

        Was hattest du denn im Terminal an Parametern mitgegeben?

        1 Reply Last reply Reply Quote 0
        • Michael Uray
          Michael Uray last edited by Michael Uray

          @homoran said in Smartmeter mit Landis+Gyr E650:

          da hast du aber nicht

          @homoran sagte in Smartmeter mit Landis+Gyr E650:

          alles Standardeinstellungen

          oder?

          Stimmt, ich hatte hier inzwischen schon die Daten eingestellt welche bei mir am Terminal ursprünglich funktioniert hatten.

          Was hattest du denn im Terminal an Parametern mitgegeben?

          300,E,7,1

          @apollon77 said in Smartmeter mit Landis+Gyr E650:

          Die Daten die reinkommen sind müll und deswegen erkennt er auch nichts. Settings bitte nochmal Zeigen

          Danke, ich habe schon die ganze Zeit gerätselt wie diese Daten im Log dargestellt werden, da ich keinen Zusammenhang mit den Daten welche ich über das Terminal empfangen hatte sehen konnte.

          Dass hier Müll ankommt lies mich jetzt ein Problem mit der Baudrate vermuten und daher habe ich das jetzt einmal mit fix (D0: Überschreiben der Baudrate-Änderung) 300 Baud getestet und siehe da, es funktioniert!
          Danach habe ich noch fix 9600 und 4800 getestet, doch leider wieder ohne brauchbare Daten.
          Erst bei 2400 hat die Kommunikation dann wieder funktioniert.

          Danke euch allen, das ist schon einmal ein großer Erfolg!

          Woran könnte das denn jetzt noch liegen, dass höhere Baudraten als 2400 nicht funktionieren?
          Der Zähler schickt am Anfang ja eigentlich "5" (/LGZ5\2ZMD4104407.B31), was 9600 bedeuten sollte soweit ich gesehen habe.

          Könnte es ein Hardware Problem sein?
          Der IR Kopf ist mit einem recht kurzen Kabel (~1m) and einen RS232 FTDI USB Adapter mit einem ebenso kurzen USB Kabel angebunden.

          Oder ist es möglich, dass der Zähler 9600 meldet, es aber eigentlich nicht unterstützt?

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Michael Uray last edited by Homoran

            @michael-uray sagte in Smartmeter mit Landis+Gyr E650:

            Dass hier Müll ankommt lies mich jetzt ein Problem mit der Baudrate vermuten und daher habe ich das jetzt einmal mit fix ( D0: Überschreiben der Baudrate-Änderung) 300 Baud getestet und siehe da, es funktioniert!

            ich habe inzwischen noch für dich gegoogelt und bei Volkszähler für einen anderen (320) L+G Zähler gefunden, dass die Antwort

            @michael-uray sagte in Smartmeter mit Landis+Gyr E650:

            /LGZ5\2ZMD4104407.B31
            /LGZ52ZMD4104407.B31

            wohl bedeutet, dass maximal 2Mbaud passen würden

            1 Reply Last reply Reply Quote 0
            • Ralla66
              Ralla66 Most Active @Michael Uray last edited by

              @michael-uray
              "/?!\r\n/LGZ5\2ZMD4104407.B31\r\n"
              nach Bedienungsanleitung Serie 3 bedeutet die 5 hinter LGZ Baudrate.
              In der Norm IEC 62056-21 ist 5 9600 Baud

              Homoran 1 Reply Last reply Reply Quote 1
              • Homoran
                Homoran Global Moderator Administrators @Ralla66 last edited by

                @ralla66 Ooops, dann hab ich wohl schief geguckt

                Ralla66 1 Reply Last reply Reply Quote 0
                • Ralla66
                  Ralla66 Most Active @Homoran last edited by

                  @homoran
                  hast die 2 erwischt ist Extended communication possibility 2 = dlms-compatible meter

                  Homoran 1 Reply Last reply Reply Quote 1
                  • Homoran
                    Homoran Global Moderator Administrators @Ralla66 last edited by

                    @ralla66 sagte in Smartmeter mit Landis+Gyr E650:

                    @homoran
                    hast die 2 erwischt ist Extended communication possibility 2 = dlms-compatible meter

                    Jepp :shame:

                    Allerdings muss die Aushandlung bei 300Baud erfolgen.
                    IMHO muss dann die Baudrate in der Instanz leer bleiben. Der Adapter "regelt" dann nach (wenn ich mich nicht täusche.
                    Deswegen sollte ja alles auf Standard bleiben

                    Michael Uray 1 Reply Last reply Reply Quote 0
                    • Michael Uray
                      Michael Uray @Homoran last edited by

                      @homoran said in Smartmeter mit Landis+Gyr E650:

                      Der Adapter "regelt" dann nach (wenn ich mich nicht täusche.

                      Ja, das seint so zu sein, denn er schaltet dann auf 9600 hoch, was ja auch korrekt wäre, doch kommen dann mit 9600 aus irgend einem Grund keine brauchbaren Daten mehr an.
                      Ich frage mich nur warum, wo der Zähler doch eigentlich meldet dies zu unterstützen?

                      Hier habe ich noch ein PDF mit der Norm gefunden:
                      https://www.ungelesen.net/protagWork/media/downloads/solar-steuerung/iec62056-21{ed1.0}en_.pdf

                      Protocol mode C and protocol mode E (with baud rate changeover, with
                      acknowledgement / option select message or other protocols)
                      0 - 300 Bd
                      1 - 600 Bd
                      2 - 1 200 Bd
                      3 - 2 400 Bd
                      4 - 4 800 Bd
                      5 - 9 600 Bd
                      6 - 19 200 Bd
                      7, 8, 9 - reserved for later extensions.

                      d) Protocol mode D (data transmission at 2 400 Bd)
                      Baud rate character is always 3.

                      "Protocol mode D (data transmission at 2 400 Bd)"
                      Eventuell ist das hier der Auslöser?

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @Michael Uray last edited by Homoran

                        @michael-uray sagte in Smartmeter mit Landis+Gyr E650:

                        "Protocol mode D (data transmission at 2 400 Bd)"
                        Eventuell ist das hier der Auslöser?

                        Wo hast du die Info über mode D gefunden?

                        in deinem Log stand:
                        @michael-uray sagte in Smartmeter mit Landis+Gyr E650:

                        D0 Protocol E (2) not fully supported! Let us try it 🙂 Please contact the developer if you have problems

                        apollon77 1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 last edited by

                          Also ich sehe im log das der Adapter die Logon Nachricht korrekt empfängt und auch parst das es 9600 Baud sind und dem Zähler mit "050" dann das Kommando zum Baudrate-CHangeover sendet ... und dann "hört" er auf 9600 baud ... ALso wenn Es mit nem Baudrate override tut schau nochmal nach dem Sitz des Kopfes bzw das die Senderichtung korrekt funktioniert

                          1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 @Homoran last edited by

                            @homoran sagte in Smartmeter mit Landis+Gyr E650:

                            D0 Protocol E (2) not fully supported! Let us try it Please contact the developer if you have problems

                            Ja Protokoll E heisst quasi "die Daten könnten anders aussehen als normalerweise) ... hat aber an sich mit dem Baudrates und so nichts zu tun

                            1 Reply Last reply Reply Quote 0
                            • Michael Uray
                              Michael Uray last edited by Michael Uray

                              Ich hatte damals auch noch ein Script für mich geschrieben, welches diverse Werte ausrechnet die in den ausgelesenen Daten nicht vorhanden sind. Bzw. bildet es auch die Werte in leichter verständlichen Objektnamen ab, denn die OBIS Codes sind ja nicht besonders gut zu merken.

                              Vielleicht kann es ja jemand brauchen.

                              Edit 1:
                              DrwPower wird aktuell noch nicht berechnet und DlvPower müsste nur bei negativen Werten übernommen werden.

                              const CtFactor = 200    // factor for current transformers
                              const VtFactor = 1      // factor for voltage transformers
                              const path = '0_userdata.0.EMTR1'
                              
                              
                              // create required objects on startup
                              createState(path + '.info.MeterOwnerNumber')
                              createState(path + '.info.Firmware')
                              createState(path + '.info.Error')
                              
                              createState(path + '.Voltage', {type: "number", unit: 'V'})
                              createState(path + '.VoltageL1', {type: "number", unit: 'V'})
                              createState(path + '.VoltageL2', {type: "number", unit: 'V'})
                              createState(path + '.VoltageL3', {type: "number", unit: 'V'})
                              
                              createState(path + '.Current', {type: "number", unit: 'A'})
                              createState(path + '.CurrentL1', {type: "number", unit: 'A'})
                              createState(path + '.CurrentL2', {type: "number", unit: 'A'})
                              createState(path + '.CurrentL3', {type: "number", unit: 'A'})
                              
                              createState(path + '.Frequency', {type: "number", unit: 'Hz'})
                              createState(path + '.cosPhi', {type: "number"})
                              createState(path + '.sinPhi', {type: "number"})
                              
                              // DLV = delivery to grid
                              createState(path + '.DLV1.Power', {type: "number", unit: 'kW'})
                              createState(path + '.DLV1.Energy', {type: "number", unit: 'kWh'})
                              createState(path + '.DLV1.ReactiveEnergy', {type: "number", unit: 'kVarh'})
                              createState(path + '.DLV1.ReactivePower', {type: "number", unit: 'kVar'})
                              
                              // DRW = draw from grid
                              createState(path + '.DRW1.Power', {type: "number", unit: 'kW'})
                              createState(path + '.DRW1.Energy', {type: "number", unit: 'kWh'})
                              createState(path + '.DRW1.ReactiveEnergy', {type: "number", unit: 'kVarh'})
                              createState(path + '.DRW1.ReactivePower', {type: "number", unit: 'kVar'})
                              
                              var MeterOwnerNumber
                              var Firmware
                              var Error 
                              
                              var CurrentTime
                              var CurrentDate
                              var Frequency
                              
                              var CurrentL1 // = 3.43 A
                              var CurrentL2 // = 3.35 A
                              var CurrentL3 // = 3.36 A
                              var CurrentN  // = 0.04 A
                              var Current // = calulated
                              
                              var VoltageL1 // = 241.1 V
                              var VoltageL2 // = 241.1 V
                              var VoltageL3 // = 241.1 V
                              var Voltage // = calulated
                              
                              var Angle_U_L1_to_U_L1 // = 0*Deg
                              var Angle_U_L2_to_U_L1 // = 120*Deg
                              var Angle_U_L3_to_U_L1 // = 240*Deg
                              var Angle_I_L1_to_U_L1 // = 200*Deg
                              var Angle_I_L2_to_U_L1 // = 321*Deg
                              var Angle_I_L2_to_U_L2 // = calulated
                              var Angle_I_L3_to_U_L1 // = 80*Deg
                              var Angle_I_L3_to_U_L3 // = calulated
                              var Angle
                              var CosPhi // = calulated
                              var SinPhi // = calulated
                              
                              var DlvEnergy = 0.0
                              var DlvReactiveEnergy = 0.0
                              var DlvPower = 0.0
                              var DlvReactivePower = 0.0
                              
                              var DrwEnergy = 0.0
                              var DrwReactiveEnergy = 0.0
                              var DrwPower = 0.0
                              var DrwReactivePower = 0.0
                              
                              on({ id: 'smartmeter.0.1-0:2_8_0.value', change: 'any' }, function (data) {
                                  // wait 1000 ms when this datapoint changed to make sure all datapoints got updated
                                  setTimeout(() => {
                              
                                      MeterOwnerNumber = getState('smartmeter.0.1-0:0_0_0.value').val;
                                      Firmware = getState('smartmeter.0.1-0:0_2_0.value').val;
                                      Error = getState('smartmeter.0.1-0:97_97.value').val;
                              
                                      DrwEnergy = getState('smartmeter.0.1-0:1_8_0.value').val;
                                      DrwReactiveEnergy = getState('smartmeter.0.1-0:3_8_0.value').val;
                              
                                      DlvEnergy = getState('smartmeter.0.1-0:2_8_0.value').val;
                                      DlvReactiveEnergy = getState('smartmeter.0.1-0:4_8_0.value').val;
                              
                                      CurrentL1 = getState('smartmeter.0.1-0:31_7.value').val * CtFactor;
                                      CurrentL2 = getState('smartmeter.0.1-0:51_7.value').val * CtFactor;
                                      CurrentL3 = getState('smartmeter.0.1-0:71_7.value').val * CtFactor;
                                      CurrentN = getState('smartmeter.0.1-0:91_7.value').val * CtFactor;
                              
                                      VoltageL1 = getState('smartmeter.0.1-0:32_7.value').val * VtFactor;
                                      VoltageL2 = getState('smartmeter.0.1-0:52_7.value').val * VtFactor;
                                      VoltageL3 = getState('smartmeter.0.1-0:72_7.value').val * VtFactor;
                              
                                      Frequency = getState('smartmeter.0.1-0:14_7.value').val * VtFactor;
                              
                                      Angle_U_L1_to_U_L1 = getState('smartmeter.0.1-0:81_7_0.value').val;
                                      Angle_U_L2_to_U_L1 = getState('smartmeter.0.1-0:81_7_1.value').val;
                                      Angle_U_L3_to_U_L1 = getState('smartmeter.0.1-0:81_7_2.value').val;
                                      Angle_I_L1_to_U_L1 = getState('smartmeter.0.1-0:81_7_4.value').val;
                                      Angle_I_L2_to_U_L1 = getState('smartmeter.0.1-0:81_7_5.value').val;
                                      Angle_I_L3_to_U_L1 = getState('smartmeter.0.1-0:81_7_6.value').val;
                              
                                      Current = (CurrentL1 + CurrentL2 + CurrentL3) / 3;
                                      Voltage = ((VoltageL1 + VoltageL2 + VoltageL3) / 3) * Math.sqrt(3);
                              
                                      Angle_I_L2_to_U_L2 = Angle_I_L2_to_U_L1 - 120;
                                      Angle_I_L3_to_U_L3 = Angle_I_L3_to_U_L1 + 120;
                                      Angle = (((Angle_I_L1_to_U_L1 + Angle_I_L2_to_U_L2 + Angle_I_L3_to_U_L3) / 3) - 180);
                              
                                      CosPhi = Math.cos(Angle * (Math.PI / 180));
                                      SinPhi = Math.sin(Angle * (Math.PI / 180));
                              
                                      DlvPower = Voltage * Current * CosPhi * Math.sqrt(3) / 1000;
                                      DlvReactivePower = Voltage * Current * SinPhi * Math.sqrt(3) / 1000;
                              
                                      setState(path + '.info.MeterOwnerNumber', MeterOwnerNumber)
                                      setState(path + '.info.Firmware', Firmware)
                                      setState(path + '.info.Error', Error)
                              
                                      setState(path + '.Current', Math.round(Current*10)/10);
                                      setState(path + '.CurrentL1', CurrentL1);
                                      setState(path + '.CurrentL2', CurrentL2);
                                      setState(path + '.CurrentL3', CurrentL3);
                              
                                      setState(path + '.Voltage', Math.round(Voltage*100)/100);
                                      setState(path + '.VoltageL1', VoltageL1);
                                      setState(path + '.VoltageL2', VoltageL2);
                                      setState(path + '.VoltageL3', VoltageL3);
                              
                                      setState(path + '.Frequency', Frequency);
                                      setState(path + '.cosPhi', CosPhi);
                                      setState(path + '.sinPhi', SinPhi);
                              
                                      setState(path + '.DRW1.Energy', DrwEnergy);
                                      setState(path + '.DRW1.Power', Math.round(DrwPower*10)/10);
                                      setState(path + '.DRW1.ReactiveEnergy', DrwReactiveEnergy);
                                      setState(path + '.DRW1.ReactivePower', Math.round(DrwReactivePower*10)/10);
                              
                                      setState(path + '.DLV1.Energy', DlvEnergy);
                                      setState(path + '.DLV1.Power', Math.round (DlvPower * 10)/10);
                                      setState(path + '.DLV1.ReactiveEnergy', DlvReactiveEnergy);
                                      setState(path + '.DLV1.ReactivePower', Math.round(DlvReactivePower*10)/10);
                              
                                  }, 1000);
                              });
                              

                              Das sieht dann im Ergebnis so aus:
                              2022-12-11_11-27-40_objects_-stocking–_Mozilla_Firefox.png

                              Das hier waren meine finalen Einstellungen mit welchen es dann schlussendlich funktioniert hat.
                              2022-12-11_11-45-37_instances_-stocking–_Mozilla_Firefox.png

                              robert.ke 1 Reply Last reply Reply Quote 2
                              • robert.ke
                                robert.ke @Michael Uray last edited by robert.ke

                                Hallo zusammen,

                                ich habe auch einen Landis+Gyr E650 Zähler und habe auch den Adapter mit den Settings von euch auf "grün". Seitdem erhalte ich eine ganze Menge an Objekten:

                                Objekte.png
                                ... die Liste ist noch länger.

                                Adapter bleibt grün - leider fehlt oder finde ich die relevanten Objekte bzgl. der Momentanleistung in Watt/kWh nicht.
                                Auch das Script von @Michael-Uray hat keine wirkliche Hilfe gebracht:

                                Objekte_Script.png

                                ein paar Werte sind also da, aber auch hier die relevanten nicht.

                                Hat jemand eine Idee, was ich beim Zähler-Auslesen übersehen habe?

                                Michael Uray 1 Reply Last reply Reply Quote 0
                                • Michael Uray
                                  Michael Uray @robert.ke last edited by Michael Uray

                                  @robert-ke

                                  Ich sehe gerade, dass es hier in dem Script noch einen Fehler gibt, denn DlvPower wird zwar berechnet, DrwPower aber nicht. Dennoch müsste in DlvPower ein Wert stehen, welchen ich bei dir aber nicht sehe.

                                  Die Leistung selbst wird vom Zähler nicht geliefert, deswegen hatte ich sie damals aus Spannung, Strom und Leistungsfaktor berechnet.

                                  Was liefert dir denn der Zähler bei folgenden Werten?

                                      CurrentL1 = getState('smartmeter.0.1-0:31_7.value').val * CtFactor;
                                      CurrentL2 = getState('smartmeter.0.1-0:51_7.value').val * CtFactor;
                                      CurrentL3 = getState('smartmeter.0.1-0:71_7.value').val * CtFactor;
                                  
                                      VoltageL1 = getState('smartmeter.0.1-0:32_7.value').val * VtFactor;
                                      VoltageL2 = getState('smartmeter.0.1-0:52_7.value').val * VtFactor;
                                      VoltageL3 = getState('smartmeter.0.1-0:72_7.value').val * VtFactor;
                                  
                                      Angle_I_L1_to_U_L1 = getState('smartmeter.0.1-0:81_7_4.value').val;
                                      Angle_I_L2_to_U_L1 = getState('smartmeter.0.1-0:81_7_5.value').val;
                                      Angle_I_L3_to_U_L1 = getState('smartmeter.0.1-0:81_7_6.value').val;
                                  

                                  CtFactor und VtFactor ist bei dir auf 1 zu setzen, falls du keine Strom- oder Spannungswandler haben solltest, was nur bei sehr großen Leistungen üblich ist.

                                  robert.ke 1 Reply Last reply Reply Quote 0
                                  • robert.ke
                                    robert.ke @Michael Uray last edited by

                                    @michael-uray

                                    das ist wohl mein Problem: Alle von dir genannten 9 Objekte sind nicht vorhanden, sagt auch die Objekt-Suche:
                                    bbd8190c-111c-4fd8-a987-f4c35c52b9b1-image.png

                                    Deswegen kann die Berechnung deines Skripts auch nicht stattfinden.

                                    Ich vermute, da passt beim auslesen des Zählers was nicht.
                                    Den Faktor für die Stromwandler brauche ich, wir haben Wandler mit Verhältnis 50 im Einsatz 😉

                                    1 Reply Last reply Reply Quote 0
                                    • Michael Uray
                                      Michael Uray last edited by

                                      @robert-ke

                                      Was bringt denn eine Suche nach "_7" für Objekte?

                                      Kannst du vielleicht andere Objekte ausmachen, welche Strom, Spannung und Phasenwinkel vom Zähler beinhalten?

                                      robert.ke Michael Uray 2 Replies Last reply Reply Quote 0
                                      • robert.ke
                                        robert.ke @Michael Uray last edited by

                                        @michael-uray

                                        genau ein Objekt:
                                        77091eec-9cb2-4f41-8357-d0e175b15bb3-image.png

                                        Hier eine komplette Übersicht der Objekte:
                                        6d4098cc-d830-495d-848d-88318091c058-image.png
                                        9b599b9e-62aa-4864-9974-b46189998951-image.png
                                        02f27d3e-28ca-47a8-9cf3-a10bc8ec49da-image.png
                                        b04d9e0d-6efc-4c00-8cc7-1c7e2bf58312-image.png
                                        b3b8b559-ea0e-4ada-a965-519bdd374cc2-image.png
                                        ac2da9a2-531e-47d1-84e3-e7441f562000-image.png
                                        0964e761-c4bf-49a6-87c1-4dca49e0a7a4-image.png

                                        Ganz viel Zählerstände, Maximus aber irgendwie nichts brauchbares. Vielen Dank für die Mithilfe!

                                        1 Reply Last reply Reply Quote 0
                                        • Michael Uray
                                          Michael Uray @Michael Uray last edited by

                                          @robert-ke
                                          Was liefert dein Zähler denn eigentlich an Daten zurück, wenn du dich mit einem seriellen Terminal (Baudrate 300, 7 Daten-Bits, 1 Stop-Bit, Parität: gerade/even) auf ihn verbindest und "/?!" an ihn schickst?

                                          robert.ke 1 Reply Last reply Reply Quote 0
                                          • robert.ke
                                            robert.ke @Michael Uray last edited by

                                            @michael-uray

                                            Da bin ich jetzt nicht so fit - aber ich habs auf die schnelle probiert:
                                            bf6a02fd-c84f-4b8a-9e0f-590e4605e5ab-image.png
                                            ca6991ae-2aba-46b1-aae8-3fc816ab0f0d-image.png

                                            Der Lesekopf steckt aktuell noch an einem Raspberry PI dran - um zu prüfen ob wir mit dem Zähler überhaupt zum Ziel kommen.

                                            Die Verbindung müsste schon stimmen, aber er zeigt nach dem Connected nichts weiter an und eingaben sind auch keine Möglich.

                                            Michael Uray 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            788
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            56
                                            5903
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo