NEWS
UNSOLVED Solaredge mit Zigbee einbinden?
-
Hallo liebe Community,
ich brauche mal wieder eure Hilfe und Meinung zu meinem Wechselrichter von meiner Photovoltaikanlage. Mein Wechselrichter ist ein Solaredge SE17k. Diesen möchte in meinem ioBroker mit einbinden. Ich habe gelesen, dass es mit dem Modbus Adapter funktioniert, und habe es auch versucht, aber das ganze ist mir viel zu kompliziert. Ich habe es überhaupt nicht hinbekommen, denn das meiste davon was ich gelesen habe, habe ich gar nicht verstanden
Dann habe ich mir mal die Bedienungsanleitung vom Wechselrichter angeschaut, und folgendes gefunden:
Da steht etwas von Zigbee. Das hab ich schonmal gehört. Könnte ich mir nicht ein Zigbee Gateway zulegen, und dann könnte ich die Daten einfacher auslesen?
Bitte entschuldigt meine Unwissenheit, aber ich bin noch in der LernphaseDanke euch im voraus
Christophe
-
@Paan83 Das Zigbee ist nur optional. Hat das dein Wechselrichter wirklich?
Und selbst wenn er es hat, muss er noch vom Adapter unterstützt werden (was er momentan nicht ist).Angegeben ist noch Ethernet, da könntest du evtl (wenn es eine API gibt) steuern. Kann aber gut sein, dass es speziell dafür keinen fertigen Adapter gibt.
-
Ja das dachte ich mir schon fast.
Was ich aber machen kann, ich kann auf die Homepage von Solaredge gehen, mich dort mit meinem Login anmelden, und kann meine Werte dort live ablesen. Gibt es vieleicht darüber eine Möglichkeit die aktuellen Werte zu bekommen? -
@Paan83 sagte:
Gibt es vieleicht darüber eine Möglichkeit die aktuellen Werte zu bekommen?
Es gibt offenbar die Möglichkeit über die API JSON-Daten zu erhalten.
-
Ich habe einen SE15K und lese den Wechselrichter via Ethernet (Modbus Adapter) aus. Sollte eigentlich nicht zu kompliziert sein (evt. abhängig was Du machen willst).
Wir können Dir hier bestimmt weiterhelfen. Aber beschreib doch kurz was Du schon versucht hast und was für Werte Du lesen willst und ob Du diese nur anzeigen willst oder auch etwas schalten.- Zigbee habe ich so verstanden, dass dies für die Geräte von Solaredge verwendet wird (Steckdose, Heizeinsatz...) also nicht zum Übertragen der Werte
- Auslesen der API des Portals habe ich nicht gemacht. Die Daten sind aber nicht aktuell (habe mal was von 15min verzögert gelesen). Wenn Du damit einen Verbraucher schalten willst - wohl zu spät.
Wie geschrieben würde ich nochmals Modbus TCP versuchen:
- Hast Du die Schnittstellenbeschreibung von Solaredge schon gefunden?
- TCP im Wechselrichter freigeschalten?
- Modbusadapter installiert?
- Objekt angelegt?
-
@paul53 said in Solaredge mit Zigbee einbinden?:
@Paan83 sagte:
Gibt es vieleicht darüber eine Möglichkeit die aktuellen Werte zu bekommen?
Es gibt offenbar die Möglichkeit über die API JSON-Daten zu erhalten.
Sorry aber das ist mir leider ein bischen hoch...da verstehe ich nur Bahnhof...
@sol21 said in Solaredge mit Zigbee einbinden?:
Ich habe einen SE15K und lese den Wechselrichter via Ethernet (Modbus Adapter) aus. Sollte eigentlich nicht zu kompliziert sein (evt. abhängig was Du machen willst).
Wir können Dir hier bestimmt weiterhelfen. Aber beschreib doch kurz was Du schon versucht hast und was für Werte Du lesen willst und ob Du diese nur anzeigen willst oder auch etwas schalten.- Zigbee habe ich so verstanden, dass dies für die Geräte von Solaredge verwendet wird (Steckdose, Heizeinsatz...) also nicht zum Übertragen der Werte
- Auslesen der API des Portals habe ich nicht gemacht. Die Daten sind aber nicht aktuell (habe mal was von 15min verzögert gelesen). Wenn Du damit einen Verbraucher schalten willst - wohl zu spät.
Wie geschrieben würde ich nochmals Modbus TCP versuchen:
- Hast Du die Schnittstellenbeschreibung von Solaredge schon gefunden?
- TCP im Wechselrichter freigeschalten?
- Modbusadapter installiert?
- Objekt angelegt?
Ich möchte nichts schalten, ich verkaufe sowieso alles was ich produziere an meinen Anbieter Ich möchte nur die Momentane Leistung, den Tagesertrag und wenns es möglich ist noch den Monatsertrag auslesen, und dies in meiner Vis anzeigen lassen.
Den Modbusadapter habe ich installiert und der Status ist nicht von gelb auf Grün gewechselt, das bedeutet wohl, das TCP nicht aktiv ist. Kann ich das selbst aktivieren?
-
TCP einschalten:SunSpec Logging in SolarEdge Inverters.pdf
Als erstes:
Firmwareversion prüfen: Seite 2
-> sonst am besten Solaredge Support anrufen mit der bitte sie sollen das Update online einspielenbitte um Feedback (und ist der Wechselrichter mit Display?)
-
Die Firmware ist neu, hatte vor einigen Wochen einen Blitzeinschlag und es hat mir die Platine zerfetzt. Die Software wurde da auch neu mit aufgespielt.
Ich habe mal ein paar Fotos vom Bildschirm gemacht wo ich dachte dass interessant wären:
-
Im Modbus habe ich die IP-Addresse des Wechselrichters eingegeben und wie auf dem Foto zu sehen, bleibt der Status auf Gelb:
-
Im Wechselrichter Modbus TCP bereits freigegeben? Siehe obige Anleitung Seite 14.
Achtung, den Wechselrichter musst Du öffnen um an die Tasten zu kommen. Gefahr eines Stromschlages! Handbuch des Wechselrichters studieren was zu beachten ist! -
Ich habe TCP im Wechselrichter aktiviert:
Wie erwartet war es vorher ausgeschaltet. Trotzdem steht der Status von Modbus im ioBroker auf gelb. Gibt es vieleicht noch eine Einstellung im Wechselrichter die ich aktivieren muss?
-
Folgendes habe ich im Log gefunden:
Vieleicht weiss jemand was das bedeuten soll
-
Ich meine mich zu errinnern, dass ich am nach der Konfiguration am Wechselrichter den IO-Broker auch mal neu starten musste (bin mir auch nicht mehr sicher - aber vesuchen kann man es ja).
Wenn Du den Modbusadapter stoppst und startest (unter Instanzen) was steht dann im Log?
Hast Du unter Holding-Registers schon was eingetragen? Im Anhang mal mein Beispiel. Evt. mal nur mit der Wechselrichter-Leistung anfrangen
-
Hey, du hattest recht, nachdem ich den ioBroker neu gestartet habe, wechselte der Status auf Grün
Die erste Kolonne habe ich dann genauso ausgefüllt wie du. Ich gehe davon aus, dass das die Momentane Leistung ist? Er spuckt mir einen Wert aus von 21365. Was natürlich nicht stimmen kann. Die Momentane Leistung beträgt 4000W. Muss dieser Wert noch irgendwie umgerechnet werden? -
Der Wert muss tatsächlich noch mit dem Scale Faktor umgerechnet werden - Schauen wir uns aber am besten erst später an, wenn wir soweit plausible Werte haben. Der Scale Faktor schiebt denn Wert für den Moment einfach um eine 10er Stelle. Somit sollte der Wert schon übereinstimmen. Der Wert sollte sich vor allem immer auch leicht ändern.
Ich musste damals auch etwas den Adressen rumspielen. Versuch mal die Start-Adresse (im obigen Bild rechts oben) mit 40001 und 40000 aus.
Hier noch 2 Bilder wie es weiter bei mir aussieht.
Der Wert 21950 der gelesen wird entspricht den 2.28kW des Portals (kleine Abweichung da die Printscreens nacheinander aufgenommen wurden) -
Ich muss sagen, dein Widget sieht richtig schick aus, schön gemacht
Irgendetwas ist bei mir nicht normal. Heute war mein Modbus Adapter einfach verschwunden. Er war bei den Instanzen nicht mehr zu finden, also habe ich ihn nochmal installiert. Als ich am probieren mit den Adressen war, tauchte er dann zweimal in den Instanzen auf. Ich hab mich dann dafür entschieden beide zu deinsatllieren, und nochmal von vorne anzufangen.
Das habe ich dann auch gemacht (ebenfalls mit Neustart) und habe dann einfach zum ausprobieren mal die selben Adressen eingegeben wie du.
Ich habe mir gedacht, dass mein WR vielleicht die selben Adressen wie deiner. Heraus kommt folgendes:
Er spuckt mir nur zwei Werte aus, und der Status bleibt ebenfalls auf Gelb. Ich bin das ganze Menü im WR einmal durchgegangen, aber leider entsprach keiner dieser beiden Zahlen einem Wert im WR.
Wie hast du die richtigen Adressen gefunden? Du hast hoffentlich keine 200 Adressen ausprobiert? -
@Paan83 sagte in Solaredge mit Zigbee einbinden?:
Ich muss sagen, dein Widget sieht richtig schick aus, schön gemacht
Danke - ist aber kein Widget von mir sondern aus dem Monitoring Portal von Solaredge.
Wie hast du die richtigen Adressen gefunden? Du hast hoffentlich keine 200 Adressen ausprobiert?
Grundsätzlich sind die Adressen ist in der SunSpec Beschreibung (mein Beitrag weiter oben 7. Juni 2019, 19:35)
Als erstes müssen wir aber wohl den Adapter wieder auf grün bringen:
Ich würde mich mal auf 1-2 Werte konzentieren. Am Besten alles löschen ausser 40084 (aktuell Produzierte Leistung) und 40085 (der dazugehörige Skalierfaktor).
So hattest Du es doch schon mal auf grün? Dann sollten wir das ja wieder zum laufen bringen...
Steht den im Log etwas wenn du den Adapter stoppst und startest?Weiter zum ausprobieren mit den Adressen. Mit der Start-Adresse hatte ich folgendes Feld gemeint (siehe Markierung). Versuch mal 40001 und 40000.
-
Die beiden Addressen 40084 und 40085 habe ich drin gelassen und alle anderen rausgelöscht und tatsächlich scheint der Modbus Adapter jetzt auf Grün stehen zu bleiben
Auch die Werte scheinen soweit zu passen. Hier ein Beispiel:
8378 x 10^0= 8378W das stimmt soweit mit der Produktion überein.
Hast du ein Skript benutzt, damit er die Werte automatisch umrechnet?
@sol21 said in Solaredge mit Zigbee einbinden?:
Weiter zum ausprobieren mit den Adressen. Mit der Start-Adresse hatte ich folgendes Feld gemeint (siehe Markierung). Versuch mal 40001 und 40000.
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?
-
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.
-
Erstmal möchte ich dir danken dass du mir soviel geholfen hast, ohne dich hätte ich das nicht hingekriegt
Dies wird jetzt mein erstes Script werden! Bitte siehs mir nach, wenn ich noch die ein oder ander Frage dazu hätte
Ich werde es mal heute Abend, wenn ich von der Arbeit komme, ausprobieren.