Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. SMA Energy Meter in Echtzeit auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    SMA Energy Meter in Echtzeit auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Marcolotti last edited by

      Hallo Werte Gemeinde,

      hier kommt von mir ein Node-Red-Flow für den Energy Meter. Dieser empfängt und übergibt die Daten an die Homematic CCU2.

      [{"id":"92bd2097.3853a8","type":"udp in","name":"SMA Energy Meter","iface":"","port":"9522","ipv":"udp4","multicast":"true","group":"239.12.255.254","datatype":"buffer","x":92.88333129882812,"y":305.8833312988281,"z":"851687cc.dd6d58","wires":[["66eba2d2.54f614"]]},{"id":"66eba2d2.54f614","type":"function","name":"eMeter auslesen","func":"// Script von Marco Jäger\n// Aktueller Verbrauch\nvar eMeter = msg.payload;\nvar AktVerbrauch = {};\nmsg = {};\nvar deco = eMeter.toString('hex');\nAktVerbrauch=deco.substr(64,8);\nAktVerbrauch=parseInt(AktVerbrauch,16)/10;\nmsg.payload = AktVerbrauch;\n// Gesamtverbrauch\nvar GesVerbrauch = {};\nmsg2 = {};\nGesVerbrauch=deco.substr(80,16);\nGesVerbrauch=parseInt(GesVerbrauch,16)/3600000;\nmsg2.payload = GesVerbrauch;\n// Aktuelle Einspeisung\nvar AktEin = {};\nmsg3 = {};\nAktEin=deco.substr(104,8);\nAktEin=parseInt(AktEin,16)/10;\nmsg3.payload = AktEin;\n// Gesamt Einspeisung\nvar GesEin = {};\nmsg4 = {};\nGesEin=deco.substr(120,16);\nGesEin=parseInt(GesEin,16)/3600000;\nmsg4.payload = GesEin;\nreturn [msg,msg2,msg3,msg4]","outputs":"4","noerr":0,"x":319.8833312988281,"y":306.8833312988281,"z":"851687cc.dd6d58","wires":[["83a55ab8.2d3c8"],["2686c4be.822e94"],["276e6767.d6d4e"],["902fe131.3a4cc8"]]},{"id":"83a55ab8.2d3c8","type":"ioBroker out","name":"Aktueller Verbrauch","topic":"hm-rega.0.7456","ack":"true","autoCreate":"false","x":881.88330078125,"y":250.88333129882812,"z":"851687cc.dd6d58","wires":[]},{"id":"2686c4be.822e94","type":"ioBroker out","name":"Gesamtverbrauch","topic":"hm-rega.0.7457","ack":"true","autoCreate":"false","x":875.88330078125,"y":293.8833312988281,"z":"851687cc.dd6d58","wires":[]},{"id":"276e6767.d6d4e","type":"ioBroker out","name":"Aktuelle Einspeisung","topic":"hm-rega.0.7458","ack":"true","autoCreate":"false","x":886.88330078125,"y":338.8833312988281,"z":"851687cc.dd6d58","wires":[]},{"id":"902fe131.3a4cc8","type":"ioBroker out","name":"Gesamteinspeisung","topic":"hm-rega.0.7459","ack":"true","autoCreate":"false","x":883.88330078125,"y":384.8833312988281,"z":"851687cc.dd6d58","wires":[]}]
      

      Viel Spaß.

      1 Reply Last reply Reply Quote 0
      • T
        thomassch last edited by

        Hallo,

        Ich überlege auch mir eine sma enery meter zuzulegen.

        Das Gerät sendet ja nur über broadcast die Detaildaten.

        http://www.eb-systeme.de/?page_id=1240

        Was müsste ich machen um das dann in iobroker zu bekommen:

        • umstellen der broadcast Adresse auf iobroker host

        • red node mit dem Script nehmen

        Reicht das um auch die Details

        Einspeisewerte, phasenverbrauchswerte…

        Zu erhalten?

        PS. Aktuell habe ich eine Erfassung über s0 impulssignal.

        Funktioniert auch über lan, allerdings unterscheidet das Gerät nicht zwischen

        Einspeisung und Verbrauch, da es nur eine Summe liefert...

        Auch phasenlast ist natürlich nicht sichtbar.

        http://www.wasnlos.ch/wasnlos/2013/12/2 … -erhalten/

        Gruß

        Thomas

        1 Reply Last reply Reply Quote 0
        • M
          Marcolotti last edited by

          Hallo,

          du brauchst garnichts mit dem Energy-Meter machen. Broadcast heißt, er sendet ins ganze Netzwerk. Du greifst mit dem NodeRed den Broadcast auf. Möchtest du einen SMA Wechselrichter irgendwann kaufen?

          Gruß Marco

          1 Reply Last reply Reply Quote 0
          • T
            thomassch last edited by

            Hallo,

            Danke für die Info.

            Den sma Wechselrichter habe ich schon…

            Gesendet von iPhone mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • M
              Marcolotti last edited by

              Hallo,

              kann der Wechselrichter ModBus? Dann könntest du dir über den ModBus Adapter alle Daten ziehen. Bei mir kommuniziert der EnergyMeter mit dem Wechselrichter. Dadurch habe ich mir das mit dem NodeRed gespart.

              Gruß Marco

              1 Reply Last reply Reply Quote 0
              • T
                thomassch last edited by

                Die Daten vom den beiden Wechselrichter hole ich mir schon per Script [emoji4]

                Geht recht gut direkt von den Sunny webbox …

                Gesendet von iPad mit Tapatalk

                1 Reply Last reply Reply Quote 0
                • T
                  thomassch last edited by

                  Die Daten ist aber die Einspeisung, mit dem sma Energy Meter könnte ich aber auch Bezug + Einspeisung am eon Netz ermitteln….

                  Gesendet von iPad mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • M
                    Marcolotti last edited by

                    Guten Morgen,

                    der Wechselrichter holt sich sowieso die Daten vom EnergyMeter. Ich habe vor der ModBus-Lösung die Daten auch separat geholt. Kann ja auch jeder machen wir er es mag. 😉 🙂

                    Ich mag es immer am liebsten komplett.

                    721_modbus.jpg
                    721_modbus1.jpg

                    Gruß Marco

                    1 Reply Last reply Reply Quote 0
                    • W
                      wobo last edited by

                      Hallo

                      das ist ja toll leider sehe ich die Werte im IoBroker doch leider erfolgt kein Eintrag in der CCU2. Welche Systemvariable hast du genommen?

                      HM-REGA liest alle Daten aus der CCU2 aus doch anscheinend werden keine gesendet.

                      1 Reply Last reply Reply Quote 0
                      • K
                        kirbsi last edited by

                        Ich möchte mir auch gerne einen SMA Energie Meter kaufen. Was kostet dieser? Finde keine Preise? Wie genau ist diese Erfassung?

                        1 Reply Last reply Reply Quote 0
                        • K
                          kirbsi last edited by

                          @Marcolotti:

                          Hallo,

                          kann der Wechselrichter ModBus? Dann könntest du dir über den ModBus Adapter alle Daten ziehen. Bei mir kommuniziert der EnergyMeter mit dem Wechselrichter. Dadurch habe ich mir das mit dem NodeRed gespart.

                          Gruß Marco `
                          Was meinst du mit Wechselrichter? Ich möchte gerne mein Stromverbrauch mit mit Bus abgreifen z.B. Modbus weiß aber nicht was ich dazu alles brauche.

                          1 Reply Last reply Reply Quote 0
                          • M
                            Marcolotti last edited by

                            Hi Wobo,

                            ich habe via Node-Red die Werte von Iobroker mit den Werten in der CCU2 verknüpft.

                            Siehe Bild:
                            721_nodered.jpg

                            Hallo Kirbsi,

                            https://www.google.de/#q=sma+energy+meter&tbm=shop

                            Das Teil hat eine Ethernet-Schnittstelle und sendet im Broadcast sekündlich die aktuellen Daten. Das NodeRed-Script zum abgreifen der Daten habe ich schonmal hier veröffentlicht.

                            Gruß Marco

                            S 1 Reply Last reply Reply Quote 0
                            • Q
                              Qlink last edited by

                              Hi Marcolotti,

                              könntest du mir etwas helfen bei dem node red Thema.

                              Ich möchte ebenfalls die Daten meines Energy Meter 2.0 in iobroker bekommen. Eine Übergabe an die CCU bräuchte ich nicht unbedingt,

                              ich möchte nur die Werte in iobroker visualisieren.

                              Ich hatte aber bisher noch keinerlei Berührungspunkte mit node red und daher auch keine Ahnung wie ich dein Script oben nun verwenden muss, damit es läuft.

                              Ich habe den node red adapter in iobroker installiert und dann stehe ich auch schon an … 🙂

                              Muss ich etwas konfigurieren ? Wo muss ich dein Script reinkopieren ?

                              Was ist mit http Stammpfad gemeint ? Was mit zusätzliche NPM Module ?

                              Wenn ich den Reiter node-red.0 öffne, dann erscheint nur der weinende Smiley (keine Seite verfügbar)

                              Momentan siehts bei mir so aus:
                              415_nodered1.png
                              415_nodered2.png
                              415_nodered3.png

                              Vielen Dank für deine Hilfe.

                              Beste Grüße

                              1 Reply Last reply Reply Quote 0
                              • M
                                Marcolotti last edited by

                                Hallo Qlink,

                                ich gehe mal davon aus, dass du bereits über Adapter Node-Red installiert hast. Der weinende Smilie kommt bei mir auch immer, wenn die Node-Red Instanz noch nicht fertig gestartet ist oder man mal die Reiter wechselt. Konfigurieren musst du da eigentlich nichts mehr.

                                Danach gehst du rechts auf das Menüsymbol -> Import -> Clipboard und kopierst das Script hinein.

                                721_clipboardjpg.jpg

                                Danach sollte sich alles aufbauen. Beim Doppelklick auf die blauen Felder z.B. Verbrauch kannst du festlegen, mit welchem Objekt du es verknüpfen willst. Kannst dir also auch selber welche anlegen unter Objekte und diese dann verknüpfen.

                                Danach bitte auf Deploy gehen und losgehts schon.

                                Gruß Marco

                                1 Reply Last reply Reply Quote 0
                                • Q
                                  Qlink last edited by

                                  Hi Marcolotti,

                                  vielen Dank für deine Hilfe.

                                  Ich bekomme jetzt Werte in iobroker rein.

                                  Seltsamerweise bleibt aber der Wert "aktuelle_Einspeisung" bei 0kW ? Woran kann das liegen ?
                                  415_sp.png
                                  415_netzbezug.png
                                  Ich hätte gerne auch noch den Wert Netzbezug von W in kW umgerechnet und idealerweise auf 2 Kommastellen gerundet.

                                  Ich hätte dafür ein Umrechnungsscript probiert zu schreiben, aber der Wert in iobroker bleibt bei 0.
                                  415_kwumrechnung.png
                                  Habe ich einen Fehler in meinem Script oder etwas vergessen ?

                                  Wie kann ich die Rundung auf 2 Kommastellen bewerkstelligen ?

                                  Beste Grüße

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    Marcolotti last edited by

                                    Versuch mal

                                    setState("idNetzbezugkW", ((Math.round(getState("idNetzbezug").val / 1000) * 100) / 100), true);
                                    

                                    Gruß Marco

                                    1 Reply Last reply Reply Quote 0
                                    • Q
                                      Qlink last edited by

                                      Hi Marco,

                                      ich bekomme jetzt einen umgerechneten Wert in kW, aber die Rundung auf 2 Kommastellen funktioniert noch nicht.

                                      Bei 3340W Verbrauch zeigt er mir nun 3kW an bei dem berechneten Wert. d.h. er rundet auf ganze Zahlen…

                                      Hast du auch eine Idee warum ich bei deinem Script beim Wert aktuell Einspeisung keinen Wert vom Energy Meter erhalte ?

                                      Vielen Dank für deine Hilfe.

                                      Beste Grüße

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        Marcolotti last edited by

                                        Hi,

                                        mit welchem Widget zeigst du den an? Also bei mir funktioniert diese Vorgehensweise.

                                        Gruß Marco

                                        1 Reply Last reply Reply Quote 0
                                        • Q
                                          Qlink last edited by

                                          Hi Marco,

                                          in vis kann ich die Werte ja beliebig mit einem Multiplikator anzeigen lassen. Dafür bräuchte ich die Umrechnung auch nicht. Da klappt alles gut.

                                          Das Umrechnungsskript bräuchte ich um in flot die Kurven vergleichbar mit einer einheitlichen y-Achse anzeigen zu können.

                                          Ich glaub dass das Umrechnungsskript auf ganze Zahlen rundet und nicht auf 2 Kommastellen.

                                          Kann es sein das hier noch etwas geändert werden muss ?

                                          Funktioniert bei dir das Umrechnungsskript, so dass beim Ergebnis ein Wert mit 2 Kommastellen angezeigt wird?

                                          var idNetzbezug = 'hm-rega.0.40900';  // Datenpunkt-ID vorhanden
                                          var idNetzbezugkW = 'javascript.0.Netzbezug.kW';   // Datenpunkt-ID für neuen DP Netzbezug in kW
                                          
                                          function calckW() {
                                              var Netzbezug = parseFloat(getState(idNetzbezug).val);
                                              setState(idNetzbezugkW, ((Math.round(getState(idNetzbezug).val / 1000) * 100) / 100), true);
                                          
                                          }
                                          
                                          on(idNetzbezug, calckW);  // bei jeder Änderung von Netzbezug
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            Marcolotti last edited by

                                            Hallo Qlink,

                                            daher wird der Wert ja erst mit 100 Multipliziert -> gerundet (er rundet nur auf ganze Zahlen) und danach durch 100 subtrahiert.

                                            Ich habe bei mir nochmal nachgesehen, wie es Blockly macht:
                                            721_bericht.jpg

                                            Vorher musst du noch deine Umrechnung auf kW machen.

                                            Math.ceil(100 * getState("javascript.0.PV_Anlage.StromkostenanzeigeMonat").val/1000) / 100
                                            

                                            Für sowas ist Blockly wirklich wunderbar.

                                            Gruß Marco

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            898
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            85
                                            25545
                                            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