Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Solaredge mit Zigbee einbinden?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    UNSOLVED Solaredge mit Zigbee einbinden?

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

      Hallo Habedere,
      nach der Anleitung von sol21 hat es wunderbar geklappt. Wenn du es nach seiner Anleitung hier machst, dann funktioniert es mit dem Modbus Adapter.
      Schau mal in diesem pdf https://forum.iobroker.net/assets/uploads/files/1559928314213-sunspec-logging-in-solaredge-inverters.pdf In der Tabelle kannst alles sehen was man auslesen kann. Was mir sehr fehlt sind die kWh/Tag.

      Wenn Fragen offen sind, einfach hier reinschreiben.

      BG
      Christophe

      H 1 Reply Last reply Reply Quote 0
      • H
        Habedere @Paan83 last edited by Habedere

        @Paan83 sagte in Solaredge mit Zigbee einbinden?:

        Hallo Habedere,
        nach der Anleitung von sol21 hat es wunderbar geklappt. Wenn du es nach seiner Anleitung hier machst, dann funktioniert es mit dem Modbus Adapter.
        Schau mal in diesem pdf https://forum.iobroker.net/assets/uploads/files/1559928314213-sunspec-logging-in-solaredge-inverters.pdf In der Tabelle kannst alles sehen was man auslesen kann. Was mir sehr fehlt sind die kWh/Tag.

        Wenn Fragen offen sind, einfach hier reinschreiben.

        BG
        Christophe

        Servus,
        danke für die Info!
        Ich brauche aber einen zusätzlichen M-Bus Adapter um den SE-WR aus zu lesen?
        Von M-Bus auf USB ist kein Thema - habe bereits WMZ dran...
        Oder einen Pegelwandler M-Bus Master nach RS232/485 der nicht original vom SE sein muss?

        Habe auch noch ein originales "SolarEdge SE1000-RS485-IF Erweiterungsset" gefunden um den o.g. Pegelwandler an zu schließen...

        Also "Original Erweiterungsset" + Pegelwandler + M-Bus/USB-Adapter -> ioBroker

        1 Reply Last reply Reply Quote 0
        • S
          sol21 last edited by

          @Habedere: Wir haben in den letzten Beiträgen den Anschluss eines Solaredge Wechselrichters via Ethernet (Modbus TCP) diskutiert. Da Du vom M-Bus und verschiedenen Schnitstellenwandern sprichst, glaube ich Du hast was anderes vor... Kannst Du uns mal verraten, was für einen Wechselrichter Du hast?

          1 Reply Last reply Reply Quote 0
          • H
            Habedere last edited by Habedere

            @sol21
            Einen SolarEdge SE25K-N4 oder SE17K wird es wohl werden.
            Diese haben aber werksseitig meines Wissens keinen M-Bus anschluss.
            Habe mittlerweile gelesen dass diese einen RS485 Anschluss haben.
            Hierzu benötige ich wohl noch einen Pegelwandler von RS485 auf M-Bus.
            Mit dem M-Bus/USB Adapter dann an ioBroker.

            Du sprichtst von "via Ehternet (Modbus TCP)"
            Aber Ethernet (LAN?!) und M-Bus sind doch zwei verschiedene paar Schuhe?!

            S 1 Reply Last reply Reply Quote 0
            • S
              sol21 @Habedere last edited by

              @Habedere sagte in Solaredge mit Zigbee einbinden?:

              Habe mittlerweile gelesen dass diese einen RS485 Anschluss haben.

              Aber einen Ethernetanschluss haben sie doch auch (meiner zumindest und kennen keinen neuen ohne)? Somit ist es doch am einfachsten den Wechselrichter direkt via Ethernet mit dem IOBroker zu verbinden?

              Aber Ethernet (LAN?!) und M-Bus sind doch zwei verschiedene paar Schuhe?!

              Ja

              H 1 Reply Last reply Reply Quote 0
              • H
                Habedere @sol21 last edited by

                @sol21
                Achso ich kann alle notwendigen Daten direkt per LAN vom WR ziehen?!
                Dachte das wäre nur für das Solar Edge Portal möglich...

                1 Reply Last reply Reply Quote 0
                • S
                  sol21 last edited by

                  Ja, das klappt. Am besten Du arbeitest dich von vorne durch diesen Beitrag. Da sollten alle Punkte zur Sprache kommen.

                  Aber neu kommt hinzu:
                  Du musst die Schnittstelle im Wechselrichter noch freigeben. Ich konnte das noch via Display machen. Wenn Du aber einen neuen Wechselrichter hast, ist dieser vermutlich ohne Display. Da musst Du dann selber im Handbuch schauen wie das geht oder falls Du einen Installateuer hast, der den Wechselrichter installiert gleich diesem sagen er soll die Schnittstelle freischalten.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    Habedere @sol21 last edited by

                    @sol21
                    Ach sorry - ich hatte den Thread nur überflogen und hatte zwischen den Zeilen ständig M-Bus gelesen 😄 das man dort aber auch die IP eintragen kann war mir nicht bekannt^^

                    Alles klar ich frage mal den Solarteur.

                    1 Reply Last reply Reply Quote 0
                    • C
                      cburghardt last edited by

                      Um statistische Daten auszulesen ist die Solaredge API viel einfacher. Man kann halt nur alle 5 Minuten auslesen, aber wenn man nichts anderes damit steuern will, ist das doch ausreichend. Ich persönlich mache beides, aktuelle Daten per modbus TCP und die Tageszusammenfassung per API.
                      Die Zigbee Schnittstelle von Solaredge ist nur eine Alternative zu dem LAN Anschluss, wenn man kein Ethernet in der Nähe des Wechselrichters hat, kann der über zigbee (und dem Gateway von Solaredge!) die Daten an die Monitoring Platform übermitteln.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        Master77 @cburghardt last edited by

                        @cburghardt sagte in Solaredge mit Zigbee einbinden?:

                        Ich persönlich mache beides, aktuelle Daten per modbus TCP und die Tageszusammenfassung per API.

                        Wie genau liest du die Daten per API bei Solaredge aus?
                        Ich suche nämlich nach einer Alternative / Ergänzung zum Modbus weil ich per Modbus nur die aktuelle PV Leistung auslesen kann. Alle anderen Adressen nimmt der Modbus Adapter nicht an. Daher wäre das Auslesen der Daten per API natürlich eine super Ergänzung.

                        Gruß Markus

                        C 1 Reply Last reply Reply Quote 0
                        • C
                          cburghardt @Master77 last edited by

                          @Master77 ich kann heute Abend mal das Javascript dazu posten, ist sehr einfach.
                          Welche Adressen nimmt modbus denn nicht? Ich verwende eigentlich nur die holding register 83, 84 (entspricht 40083, 40084) und die Daten vom Stromzähler (206, 210). Dann kommen bei mir noch die Batteriedaten dazu und die Daten meines zweiten Wechselrichters (Client ID 2).

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            Master77 @cburghardt last edited by

                            @cburghardt sagte in Solaredge mit Zigbee einbinden?:

                            @Master77 ich kann heute Abend mal das Javascript dazu posten, ist sehr einfach.
                            Welche Adressen nimmt modbus denn nicht? Ich verwende eigentlich nur die holding register 83, 84 (entspricht 40083, 40084) und die Daten vom Stromzähler (206, 210). Dann kommen bei mir noch die Batteriedaten dazu und die Daten meines zweiten Wechselrichters (Client ID 2).

                            Das wäre super wenn du das Javascript hier posten könntest. Vielleicht bekomme ich damit mehr Daten.
                            Die 40083 und 84 kann ich auslesen. Das ist ja die derzeitige PV Produktion. Alles andere bekomme ich mit dem Modbus nicht ausgelesen. Die App zeigt aber alles andere an.

                            Gruß Markus

                            1 Reply Last reply Reply Quote 0
                            • C
                              cburghardt last edited by

                              @Master77 Welche anderen Daten versuchst du denn auszulesen, also welche Register, so als Beispiel?

                              Das folgende Script ruft um 1 Uhr morgens die Daten des vorherigen Tages ab und schreibt sie in states:

                              • Consumption
                              • FeedIn
                              • Production
                              • Purchased
                              • SelfConsumption

                              Es benötigt noch die site ID, die sieht man im Monitoring Portal und einen API Key, den kriegt man vom Solaredge Support.

                              var request = require('request');
                              
                              const site = "";
                              const api_key = "";
                              
                              function totalDay() {    
                                  var date = new Date();
                                  date.setDate(date.getDate()-1);
                                  var dateStr = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();
                                  var endTime = dateStr + "%2023:59:59";
                                  var startTime = dateStr + "%2000:00:00";
                                  var link = "https://monitoringapi.solaredge.com/site/" + site + "/energyDetails?endTime=" + endTime + "&startTime=" + startTime + "&timeUnit=DAY&api_key=" + api_key;
                                  request(link, function(error, response, body) {
                                      if (error) log('Error from Solaredge API:' + error, 'error');        
                                      else {            
                                          var result = JSON.parse(body);
                                          for (var i = 0; i < result.energyDetails.meters.length; ++i) {
                                              var t = result.energyDetails.meters[i].type;
                                              var value = Number(result.energyDetails.meters[i].values[0].value) / 1000;
                                              createState("stats." + t, value);
                                          }
                                      }    
                                  });
                              }
                              
                              schedule("0 1 * * *", totalDay);
                              
                              M P 2 Replies Last reply Reply Quote 0
                              • M
                                Master77 @cburghardt last edited by

                                @cburghardt sagte in Solaredge mit Zigbee einbinden?:

                                @Master77 Welche anderen Daten versuchst du denn auszulesen, also welche Register, so als Beispiel?

                                Das folgende Script ruft um 1 Uhr morgens die Daten des vorherigen Tages ab und schreibt sie in states:

                                • Consumption
                                • FeedIn
                                • Production
                                • Purchased
                                • SelfConsumption

                                Es benötigt noch die site ID, die sieht man im Monitoring Portal und einen API Key, den kriegt man vom Solaredge Support.

                                var request = require('request');
                                
                                const site = "";
                                const api_key = "";
                                
                                function totalDay() {    
                                    var date = new Date();
                                    date.setDate(date.getDate()-1);
                                    var dateStr = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();
                                    var endTime = dateStr + "%2023:59:59";
                                    var startTime = dateStr + "%2000:00:00";
                                    var link = "https://monitoringapi.solaredge.com/site/" + site + "/energyDetails?endTime=" + endTime + "&startTime=" + startTime + "&timeUnit=DAY&api_key=" + api_key;
                                    request(link, function(error, response, body) {
                                        if (error) log('Error from Solaredge API:' + error, 'error');        
                                        else {            
                                            var result = JSON.parse(body);
                                            for (var i = 0; i < result.energyDetails.meters.length; ++i) {
                                                var t = result.energyDetails.meters[i].type;
                                                var value = Number(result.energyDetails.meters[i].values[0].value) / 1000;
                                                createState("stats." + t, value);
                                            }
                                        }    
                                    });
                                }
                                
                                schedule("0 1 * * *", totalDay);
                                

                                Super, vielen Dank.

                                Gruß Markus

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Paan83 @cburghardt last edited by

                                  @cburghardt
                                  Hallo,
                                  das ist wirklich sehr interressant. ich möchte mir nämlich die KWh/Tag in meiner Vis anzeigen lassen. Rückt Solaredge den API Key einfach so raus? Kann man den nirgends auslesen?
                                  Ich verstehe bei dem Skript leider nur Bahnhof, da ich im Programmieren absoluter Laie bin. Einfache Blocklys bekomme ich hin aber mehr leider nicht. Wäre es möglich das Skript so umzuändern, dass er zB alle 15Minuten die produzierten KW/h pro Tag ausliest, und diese dann in einen Datenpunkt schreibt?

                                  Danke im voraus

                                  Christophe

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    cburghardt last edited by

                                    Den API Key kriegst du ohne Probleme vom Support oder von deinem Solarmonteur.
                                    Spontan würde ich sowas versuchen, habs aber nicht getestet:

                                    var request = require('request');
                                     
                                    const site = "";
                                    const api_key = "";
                                     
                                    function energyDetails() {    
                                        var now = new Date();
                                        var dateStr = now.getFullYear() + "-" + (now.getMonth()+1) + "-" + now.getDate() + "%20";
                                        var endTime = dateStr + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
                                        var start = new Date(now.getTime() - 15 * 60000);
                                        var startTime = dateStr + start.getHours() + ":" + start.getMinutes() + ":" + start.getSeconds();
                                        var link = "https://monitoringapi.solaredge.com/site/" + site + "/energyDetails?endTime=" + endTime + "&startTime=" + startTime + "&timeUnit=QUARTER_OF_AN_HOUR&api_key=" + api_key;
                                        request(link, function(error, response, body) {
                                            if (error) log('Error from Solaredge API:' + error, 'error');        
                                            else {            
                                                var result = JSON.parse(body);
                                                for (var i = 0; i < result.energyDetails.meters.length; ++i) {
                                                    var t = result.energyDetails.meters[i].type;
                                                    var value = Number(result.energyDetails.meters[i].values[0].value) / 1000;
                                                    createState("stats." + t, value);
                                                }
                                            }    
                                        });
                                    }
                                     
                                    schedule("*/15 * * * *", energyDetails);
                                    
                                    P 1 Reply Last reply Reply Quote 0
                                    • P
                                      Paan83 @cburghardt last edited by

                                      @cburghardt
                                      Danke für das Skript, aber ich weiss nur nicht was ich wo eintragen muss damit es funktioniert. Erzeugt das Skript auch einen Datenpunkt?
                                      Sorry für meine Unwissenheit

                                      1 Reply Last reply Reply Quote 0
                                      • C
                                        cburghardt last edited by

                                        Site und api_key eintragen:

                                        const site = "XXX";
                                        const api_key = "YYY";
                                        

                                        Dann das ganze Script als neues Javascript hinzufügen.
                                        Und ja, es erzeugt neue States unter javascript.0.stats

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          Paan83 last edited by Paan83

                                          Bedeutet Site die IP Addresse des WR?

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            Paan83 last edited by

                                            Ich habe mal versucht bei "Site" die IP Addresse des WR einzugeben, aber ich bekomme nur Fehlermeldungen im LOG.
                                            Außerdem habe ich mal im Menü vom WR geschaut ob ich API aktivieren muss, hab aber nichts gefunden. TCP musste ich aktivieren damit ich es benutzen konnte.

                                            C 1 Reply 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

                                            1.1k
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            solaredge
                                            9
                                            66
                                            7375
                                            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