Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Solaredge mit Zigbee einbinden?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

Solaredge mit Zigbee einbinden?

Geplant Angeheftet Gesperrt Verschoben Ungelöst ioBroker Allgemein
solaredge
66 Beiträge 9 Kommentatoren 10.5k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C cburghardt

    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 Offline
    P Offline
    Paan83
    schrieb am zuletzt editiert von
    #48

    @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 Antwort Letzte Antwort
    0
    • C Offline
      C Offline
      cburghardt
      schrieb am zuletzt editiert von
      #49

      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 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        Paan83
        schrieb am zuletzt editiert von Paan83
        #50

        Bedeutet Site die IP Addresse des WR?

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          Paan83
          schrieb am zuletzt editiert von
          #51

          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 Antwort Letzte Antwort
          0
          • H Offline
            H Offline
            Habedere
            schrieb am zuletzt editiert von Habedere
            #52

            Servus,
            habe mit dem M-Bus Adapter noch so meine Probleme den WR aus zu lesen...
            Nachfolgende Fehlermeldung erhalte ich im Log

            mbus.2	2019-10-22 19:18:05.787	error	M-Bus Connection failed. Please check configuration.
            mbus.2	2019-10-22 19:18:05.786	error	Error: No connection possible to MBus Host 192.168.178.7:1502
            mbus.2	2019-10-22 19:18:05.784	info	Initialize M-Bus TCP to 192.168.178.7:1502 with timeout 5
            mbus.2	2019-10-22 19:18:05.783	info	Default Update Interval: 3600
            mbus.2	2019-10-22 19:18:05.779	error	All M-Bus devices could not be read, reinitialize and start over
            mbus.2	2019-10-22 19:18:05.778	warn	M-Bus Devices with errors: 1 from 1
            mbus.2	2019-10-22 19:18:05.774	warn	M-Bus ID 1 err: Error: Error: Failed to send/receive M-Bus request frame[1].
            

            M-Bus selbst ist am WR eingeschaltet.
            Kann mir jemand sagen wir ich die direkte Verbindung zwischen ioBroker und der IP inkl. Port testen kann?

            Ach ja - mit dem Modbus Adapter ähnliches Problem. Erst connected, dann disconnected...

            C 1 Antwort Letzte Antwort
            0
            • P Paan83

              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 Offline
              C Offline
              cburghardt
              schrieb am zuletzt editiert von
              #53

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

              Damit rufst du aber nicht die Daten direkt vom WR ab, sondern vom Solaredge Portal.

              P 1 Antwort Letzte Antwort
              0
              • H Habedere

                Servus,
                habe mit dem M-Bus Adapter noch so meine Probleme den WR aus zu lesen...
                Nachfolgende Fehlermeldung erhalte ich im Log

                mbus.2	2019-10-22 19:18:05.787	error	M-Bus Connection failed. Please check configuration.
                mbus.2	2019-10-22 19:18:05.786	error	Error: No connection possible to MBus Host 192.168.178.7:1502
                mbus.2	2019-10-22 19:18:05.784	info	Initialize M-Bus TCP to 192.168.178.7:1502 with timeout 5
                mbus.2	2019-10-22 19:18:05.783	info	Default Update Interval: 3600
                mbus.2	2019-10-22 19:18:05.779	error	All M-Bus devices could not be read, reinitialize and start over
                mbus.2	2019-10-22 19:18:05.778	warn	M-Bus Devices with errors: 1 from 1
                mbus.2	2019-10-22 19:18:05.774	warn	M-Bus ID 1 err: Error: Error: Failed to send/receive M-Bus request frame[1].
                

                M-Bus selbst ist am WR eingeschaltet.
                Kann mir jemand sagen wir ich die direkte Verbindung zwischen ioBroker und der IP inkl. Port testen kann?

                Ach ja - mit dem Modbus Adapter ähnliches Problem. Erst connected, dann disconnected...

                C Offline
                C Offline
                cburghardt
                schrieb am zuletzt editiert von
                #54

                @Habedere bist du sicher dass der Port passt? Typischerweise verwendet Modus den Port 502, nicht 1502.

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  Habedere
                  schrieb am zuletzt editiert von
                  #55

                  Definitiv 1502 - habe mir extra einen Screenshot von den Einstellungen gemacht.

                  1 Antwort Letzte Antwort
                  0
                  • C cburghardt

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

                    Damit rufst du aber nicht die Daten direkt vom WR ab, sondern vom Solaredge Portal.

                    P Offline
                    P Offline
                    Paan83
                    schrieb am zuletzt editiert von Paan83
                    #56

                    @cburghardt Danke für den Hinweis, ich stand wohl etwas auf dem Schlauch. Ich habe beide Sachen jetzt eingetragen, und das Skript gestartet. Es scheint zu laufen, habe mal keine Fehlermeldung bekommen, jedoch erzeugt es keine Datenpunkte. Hast du das Skript am laufen?

                    Zum Modbus, bei mir ist es der Port 502. Hast du das mit dem Modbus hinbekommen?

                    --EDIT--
                    Ich hhab jetzt doch noch eine Fehlermeldung vom Skript bekommen. Leider verstehe ich es nicht. Könnte mir jemand helfen?
                    Unbenannt.JPG

                    C 1 Antwort Letzte Antwort
                    0
                    • P Paan83

                      @cburghardt Danke für den Hinweis, ich stand wohl etwas auf dem Schlauch. Ich habe beide Sachen jetzt eingetragen, und das Skript gestartet. Es scheint zu laufen, habe mal keine Fehlermeldung bekommen, jedoch erzeugt es keine Datenpunkte. Hast du das Skript am laufen?

                      Zum Modbus, bei mir ist es der Port 502. Hast du das mit dem Modbus hinbekommen?

                      --EDIT--
                      Ich hhab jetzt doch noch eine Fehlermeldung vom Skript bekommen. Leider verstehe ich es nicht. Könnte mir jemand helfen?
                      Unbenannt.JPG

                      C Offline
                      C Offline
                      cburghardt
                      schrieb am zuletzt editiert von
                      #57

                      @Paan83 das Script bekommt keine korrekte Antwort von SolarEdge. Hast du den richtigen API key eingetragen?

                      P 1 Antwort Letzte Antwort
                      0
                      • C cburghardt

                        @Paan83 das Script bekommt keine korrekte Antwort von SolarEdge. Hast du den richtigen API key eingetragen?

                        P Offline
                        P Offline
                        Paan83
                        schrieb am zuletzt editiert von
                        #58

                        @cburghardt Hey, natürlich, ich hatte einen Zahlendreher drinnen...:face_with_rolling_eyes:
                        Das Skript läuft jetzt seid gestern Abend. Ein Datenpunkt wurde erzeugt und der Wert vom DP steht auf 0. Der Zeitstempel der letzten Aktualisierung steht auf gestern Abend, das heißt es findet keine Aktualisierung statt. Woran könnte das liegen?

                        C 1 Antwort Letzte Antwort
                        0
                        • P Paan83

                          @cburghardt Hey, natürlich, ich hatte einen Zahlendreher drinnen...:face_with_rolling_eyes:
                          Das Skript läuft jetzt seid gestern Abend. Ein Datenpunkt wurde erzeugt und der Wert vom DP steht auf 0. Der Zeitstempel der letzten Aktualisierung steht auf gestern Abend, das heißt es findet keine Aktualisierung statt. Woran könnte das liegen?

                          C Offline
                          C Offline
                          cburghardt
                          schrieb am zuletzt editiert von
                          #59

                          @Paan83 das Script läuft alle 15 Minuten.

                          Versuche doch mal diesen Link im Browser, muss noch die site ID und api key eintragen, ohne die <>:

                          https://monitoringapi.solaredge.com/site/<site ID>/energyDetails?endTime=2019-10-29%2012:00:00&startTime=2019-10-29%2011:45:00&timeUnit=QUARTER_OF_AN_HOUR&api_key=<api key>

                          Das sollte die Daten vom 29.10 um 12 Uhr liefern.

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            Paan83
                            schrieb am zuletzt editiert von
                            #60

                            Folgendes wird mir angezeigt:
                            Unbenannt.JPG

                            1 Antwort Letzte Antwort
                            0
                            • P Offline
                              P Offline
                              Paan83
                              schrieb am zuletzt editiert von
                              #61

                              @cburghardt kann es sein dass bei mir die Werte fehlen?

                              C 1 Antwort Letzte Antwort
                              0
                              • P Paan83

                                @cburghardt kann es sein dass bei mir die Werte fehlen?

                                C Offline
                                C Offline
                                cburghardt
                                schrieb am zuletzt editiert von
                                #62

                                @Paan83 dann sollte aber im Datenpunkt "Production" schon etwas anderes als 0 stehen, zumindest wenn in den letzten 15 Minuten etwas produziert wurde. Der Wert ist in kWh. Wenn du wH haben möchtest, entfernst du einfach das " / 1000", also:

                                var value = Number(result.energyDetails.meters[i].values[0].value);
                                

                                Habs gerade getestet, die Werte werden erstellt.
                                Nachdem nur Produktion geliefert wird und kein Verbrauch o.ä. hast du wohl keinen Modbus Zähler installiert.

                                1 Antwort Letzte Antwort
                                0
                                • P Offline
                                  P Offline
                                  Paan83
                                  schrieb am zuletzt editiert von
                                  #63

                                  Ich habe mir das pdf Dokument von Solaredge nochmal durchgelesen und habe mit den url's rumprobiert. Ich bekomme jetzt doch die erhofften Werte, hier mal ein Beispiel:
                                  Unbenannt.JPG
                                  Was ich jetzt noch nicht herausgefunden habe, wie ich es machen soll dass er mir die produzierten kWh Stunden vom aktuellen Tag, und kWh's vom 1.ten des Monats bis heute ausgibt.

                                  C 1 Antwort Letzte Antwort
                                  0
                                  • P Paan83

                                    Ich habe mir das pdf Dokument von Solaredge nochmal durchgelesen und habe mit den url's rumprobiert. Ich bekomme jetzt doch die erhofften Werte, hier mal ein Beispiel:
                                    Unbenannt.JPG
                                    Was ich jetzt noch nicht herausgefunden habe, wie ich es machen soll dass er mir die produzierten kWh Stunden vom aktuellen Tag, und kWh's vom 1.ten des Monats bis heute ausgibt.

                                    C Offline
                                    C Offline
                                    cburghardt
                                    schrieb am zuletzt editiert von
                                    #64

                                    @Paan83 vorherige Tag, also morgens aufrufen:

                                    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;
                                                    setState("stats." + t, value);
                                                }
                                            }    
                                        });
                                    }
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • S sol21

                                      Ja, grundsätzlich klappt es auch mit einem einfachen Blockly (hatte ich früher mal) mit der Rechnung wie Du sie geschrieben hast.
                                      Wenn Du nur den Wert anzeigen willst ist das auch gut. Bei mir gab es dann allerdings bei einer Kurvenaufzeichnung unschöne Spitzen. Die kommen scheinbar daher, dass der Scale-Faktor und der Wert nicht 100% gleichzeitig umschalten.
                                      Ich bekam dann Hilfe aus dem Forum und seither habe ich folgendes Script

                                      /*
                                      Quelle Script: 
                                      http://forum.iobroker.net/viewtopic.php?f=21&t=3961
                                      */
                                      function convertValue(value, factor) {
                                         if (value === null) return;
                                         if (factor === null) factor = 0;
                                         setState('PV_Leistung', value * Math.pow(10, factor), true);
                                      }  
                                      createState('PV_Leistung', {
                                         name: 'AC Power value',
                                         unit: 'W',
                                         min:  0,
                                         type: 'number',
                                         role: 'value.energy'
                                      }, function () {
                                         on('modbus.0.holdingRegisters.40084_WR_Leistung', function(obj) {
                                            var timeout = setTimeout(function () {
                                               clearTimeout(timeout);
                                               var factorState = getState('modbus.0.holdingRegisters.40085_WR_Leistung scale');
                                               convertValue(obj.state.val, factorState ? factorState.val : 0);
                                            }, 100); 
                                         });
                                         var factorState = getState('modbus.0.holdingRegisters.40085_WR_Leistung scale');
                                         var valueState = getState('modbus.0.holdingRegisters.40084_WR_Leistung');
                                         convertValue(valueState ? valueState.val : null, factorState ? factorState.val : 0); 
                                      });
                                      

                                      Klappt gut, einfach kontrollieren dass die Variablen im Modbus Adapter gleich heissen (40084_WR_Leistung und 40085_WR_Leistung scale) oder im Code anpassen.
                                      Neu gibt es nun das Objekt "PV_Leisung" mit der berechneten Leistung.

                                      Die Startadresse steht schon standardmässig auf 40001, das brauch ich doch eigentlich nicht anzurühren, ich tippe ja nur meine Werte unten in der Zeile ein oder?

                                      Die Start-Adresse war nur als Idee gedacht wenn wir den Adapter nicht auf grün kriegen. Also alles i.O.

                                      R Offline
                                      R Offline
                                      Randy
                                      schrieb am zuletzt editiert von Randy
                                      #65

                                      @sol21
                                      Frage hat sich erledigt...

                                      1 Antwort Letzte Antwort
                                      0
                                      • B Offline
                                        B Offline
                                        bluppdiwupp
                                        schrieb am zuletzt editiert von
                                        #66

                                        wo wird der Script eingefügt? Ich bekomme es leider nicht hin...

                                        1 Antwort Letzte Antwort
                                        0
                                        Antworten
                                        • In einem neuen Thema antworten
                                        Anmelden zum Antworten
                                        • Älteste zuerst
                                        • Neuste zuerst
                                        • Meiste Stimmen


                                        Support us

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

                                        356

                                        Online

                                        32.5k

                                        Benutzer

                                        81.6k

                                        Themen

                                        1.3m

                                        Beiträge
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                        ioBroker Community 2014-2025
                                        logo
                                        • Anmelden

                                        • Du hast noch kein Konto? Registrieren

                                        • Anmelden oder registrieren, um zu suchen
                                        • Erster Beitrag
                                          Letzter Beitrag
                                        0
                                        • Home
                                        • Aktuell
                                        • Tags
                                        • Ungelesen 0
                                        • Kategorien
                                        • Unreplied
                                        • Beliebt
                                        • GitHub
                                        • Docu
                                        • Hilfe