NEWS
Solaredge Adapter (Photovoltaikanlage)
-
Hallo Markus,
du gehst in die Konfiguration und trägst deine IP-Adresse ein. Porteinstellungen bleiben auf standard (502) Siehe hier:
adapterkonfiguration.JPG
Danach gehst du in der Konfiguration auf Holding-Registers und drückst dort auf das markierte + . Dann fängst du an die Adressen einzugeben laut SunSpec-PDF in meinem ersten Beitrag des Threads.
holding.JPG
z.B. 40084 - Typ (Signed 16Bit Big Endian) - das wäre deine PV-Leistung nach dem WR.
Versuch mal dein Glück.
Gruß Marco `
Hi,
ich habe auch einen Solaredge WR mit modbus TCP. Allerdings muss ich für sinnvolle Werte noch einen Skalierungsfaktor (scale factor) den man ebenfalls per Modbus TCP ausliest mit dem Wert multiplizieren.
Herausforderung dabei: Die Werte müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen.
Also z.B. diese Werte auslesen:
40084 40083 1 I_AC_Power int16 Watts AC Power value
40085 40084 1 I_AC_Power_SF int16 AC Power scale factor
und dann: I_AC_Power * 10^I_AC_Power_SF
Lässt sich das in dem Modul nachbilden oder wie mache ich das? Mein Ziel wäre danach die Werte in influxdb zu schreiben.
-
Moin zusammen,
ich habe auch einen solarEdge Wechselrichter und bei mir hat es genau nach der obigen Anleitung geklappt.
Am Besten der Anleitung wie weiter oben folgen, dann auf "Holding Registers" gehen und dort auf den (+) Knopf drücken (links von "Poll umschalten).
In der Anlage findest Du eine Datei die Du dort importieren kannst.
…..
Bernd `
Hallo Bernd,
bei mir waren die Adressen um -1 "versetzt".
In dem PDF von SolarEdge steht: The base Register Common Block is set to 40001 (MODBUS PLC address [base 1]), or 40000 (MODBUS Protocol Address [base 0]).
Bei mir scheint also "base 0" eingestellt zu sein - wo auch immer ….
Also sieht das ganze dann bei mir so aus:
address name description unit type len factor offset role room poll wp 40071 I_AC_Current AC-Verbrauch gesamt Amp uint16be 1 0.1 0 level true false 40072 AC_CurrentA AC Phase A Current value Amp uint16be 1 0.1 0 level true false 40073 AC_CurrentB AC Phase B Current value Amp uint16be 1 0.1 0 level true false 40074 AC_CurrentC AC Phase C Current value Amp uint16be 1 0.1 0 level true false 40076 AC_VoltageAB AC Voltage Phase AB value V uint16be 1 0.1 0 level true false 40077 AC_VoltageBC AC Voltage Phase BC value V uint16be 1 0.1 0 level true false 40078 AC_VoltageCA AC Voltage Phase CA value V uint16be 1 1 0 level true false 40079 VAC_L1_N Spannung L1-N V uint16be 1 0.1 0 level true false 40080 VAC_L2_N Spannung L2-N V uint16be 1 0.1 0 level true false 40081 VAC_L3_N Spannung L3-N V uint16be 1 0.1 0 level true false 40083 CurrentPower-AC aktuelle AC-Leistung W int16be 1 0.1 0 level true false 40084 ACPF AC Power Faktor uint16be 1 1 0 level true false 40085 Frequenz Frequenz Hz uint16be 1 0.01 0 level true false 40093 AC_Energy_WH AC-Gesamtproduktion kWh int32be 2 0.001 0 level true false 40098 VDC Spannung DC V int16be 1 0.1 0 level true false 40100 DC_Power DC Power Value W int16be 1 0.1 0 level true false 40103 Temp Temperatur uint16be 1 0.01 0 level true false 40107 OP_State Operation State uint16be 1 1 0 level true false
Damit funktioniert es bei mir dann bestens
Gruß
Olli
-
Hallo zusammen. Bei mir springt der Punkt nicht auf grün. Er bleibt nach Aktivierung des Adapter auf gelb. Jetzt weiß ich nicht ob in meinem Solaredge Wechselrichter TCP aktiviert wurde. Verhält es sich so wie bei mir wenn es nicht aktiviert ist?
Gruß Markus
Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk
-
Zeige mit der Maus mal auf den gelben Punkt (nicht klicken, nur drauf zeigen!).
Dann kommt ein kleines Popup-Fenster, wo Du sehen kannst, was nicht passt.
Gruß,
Eric
Von unterwegs getippert
-
kennt sich jemand mit der Deutung der Daten aus dem Wechselrichter und dem Mosbus Zähler aus ?
Im SE-Portal kann ich Erzeugten, eigenverbrauchten und Bezug bzw. Lieferung des Stroms ablesen – diese Daten
werden also erhoben bzw. errechnet.
Aus den angezeigten Werten in IOBROKER kann ich aber irgendwie diese Werte nicht alle ableiten.Werte die ich zuordnen kann – und die mit den im Portal angezeigten übereinstimmen:
40083_I_AC_Power -> aktuelle Produktion in W
40093_I_AC_Energy_WH -> Gesamt Produktion der Anlage in kWh
Werte die zwar angezeigt werden aber irgendwie keinen Sinn machen:
40225_M_Exported
40233_M_Imported
Konfiguration des Modbusadapzers:
address name description unit type len factor offset role room poll wp 40071 I_AC_Current AC Total Current value Amp uint16be 1 1 0 level true false 40075 I_AC_Current_SF AC Current scale factor int16be 1 1 0 level true false 40083 I_AC_Power AC Power value W int16be 1 1 0 level true false 40084 I_AC_Power_SF AC Power scale factor int16be 1 1 0 level true false 40085 I_AC_Frequency AC Frequency value Hz uint16be 1 0.01 0 level true false 40093 I_AC_Energy_WH AC Lifetime Energy production kWh int32be 2 0.001 0 level true false 40098 I_DC_Voltage DC Voltage value V uint16be 1 0.1 0 level true false 40100 I_DC_Power DC Power Value W int16be 1 0.1 0 level true false 40103 I_Temp_Sink Temperatur °C int16be 1 1 0 level true false 40107 I_Status Operation State uint16be 1 1 0 level true false 40154 C_Option Export + Import, Production, consumption, NA string 8 1 0 level true false 40189 M_AC_Current AC Current (sum of active phases) A int16be 1 1 0 level true false 40193 M_AC_Current_S F AC Current Scale Factor SF int16be 1 1 0 level true false 40194 M_AC_Voltage_L N Line to Neutral AC Voltage (average of active phases) V int16be 1 1 0 level true false 40198 M_AC_Voltage_L L Line to Line AC Voltage (average of active phases) V int16be 1 1 0 level true false 40202 M_AC_Voltage_S F AC Voltage Scale Factor V int16be 1 1 0 level true false 40203 M_AC_Freq AC Frequency Hz int16be 1 1 0 level true false 40204 M_AC_Freq_SF AC Frequency Scale Factor SF int16be 1 1 0 level true false 40205 M_AC_Power Total Real Power (sum of active phases) W uint16be 1 1 0 level true false 40209 M_AC_Power_SF AC Real Power Scale Factor SW int16be 1 1 0 level true false 40210 M_AC_VA Total AC Apparent Power (sum of active phases) VA int16be 1 1 0 level true false 40214 M_AC_VA_SF AC Apparent Power Scale Factor SF int16be 1 1 0 level true false 40215 M_AC_VAR Total AC Reactive Power (sum of active phases) VAR int16be 1 1 0 level true false 40219 M_AC_VAR_SF AC Reactive Power Scale Factor % int16be 1 1 0 level true false 40220 M_AC_PF Average Power Factor (average of active phases) % int16be 1 1 0 level true false 40224 M_AC_PF_SF AC Power Factor Scale Factor SF int16be 1 1 0 level true false 40225 M_Exported Total Exported Real Energy Wh uint32le 2 1 0 level true false 40233 M_Imported Total Imported Real Energy Wh uint32le 2 1 0 level true false 40233 M_Imported Total Imported Real Energy Wh uint32le 2 1 0 level true false 40241 M_Energy_W_SF Real Energy Scale Factor Wh int16be 1 1 0 level true false 40242 M_Exported_VA Total Exported Apparent Energy VAh uint32le 2 1 0 level true false 40106 I_Temp_SF Scale factor int16be 1 1 0 level true false
-
Hallo zusammen
ich bin nun auch schon 2 Tage am üben mit meinem Solaredge Wechselrichter und dem Modbus Adapter.
Grundätzlich bringe ich es zum laufen (gemäss Beschreibung oben) und kann auch die Leistung unter 40084 auslesen.
Irgendwann passiert es dann aber jeweils, dass der grüne Status auf gelb wechselt. Wenn ich nun mit der Maus auf den gelben Icon fahre kommt das Popup wie folgt:
Verbunden mit Host: wahr
Lebenszeichen: wahr
Verbunden mit Modbus: falsch
Wenn es soweit ist, bringe ich es nicht mehr zum laufen. Der einzige Ausweg den ich bis jetzt gefunden habe, ist den Wechselrichter auszuschalten und wieder starten. Dann habe ich auch wieder eine stabile Verbindung aber nach ca. 15min ist es wieder soweit…
Läuft bei Euch die Verbindung stabil? Hat jemand eine Idee?
-
Hallo Sol21,
bei mir läuft er stabil - selbst Stromausfall war kein Problem. Den Wechselrichter musste ich noch nie aus/einschalten.
Fragst du denn direkt alle Werte ab ?
Vielleicht erst mal nur ein oder zwei Werte abfragen und dann langsam weitere dazunehmen ?
Hier meine Settings mit denen es stabil läuft:
-
Hallo ehome
Einstellungen sind identisch (ausser IP Adresse). Lese auch nur ein bis max. zwei Werte zu Testzwecken.
Koennte es sein das irgendwie ein durcheinander mit den Adressen im gesamten Netzwerk ist?
Gruss
-
gute Frage -
kannst du doch relativ einfach testen und ggf beheben.
vielleicht den modbus Adapter mal komplett löschen und neu anlegen - weiss nicht ob das was bringt - schaden tuts aber auch nicht
Ich gehe mal davon aus das ioBroker (und damit alle Module) auf dem aktuellen Stand sind - sonst mal alles updaten.
-
System ist aktuel. Werde aber in den naechsten Tagen versuchen den raspberry moeglichst direkt anzuschliessen und alle andern Geräte vom Netz zu nehmen. Adapter werde ich dann auch neu installieren. Komme heute aber nicht mehr das.
Aber wenn ich weiss, dass es bei dir stabil läuft ist das auch schon mal was.
Werde mich dann wieder melden.
-
Hier eine kurze Rückmeldung:
Habe nun meine Netzwerkinstallation anpasst und es scheint stabil zu laufen. Also kein Problem vom IOBroker oder vom Modbus Adapter.
Wenn es jemanden genauer interessiert: Habe ein Kabelmodem und einen Router (Fritzbbox). Den Wechselrichter hatte ich direkt am Kabelmodem angeschlossen (sozusagen parallel zum Router). Das lief bisher auch ohne Probleme. Nun habe ich mir einen zusätzlichen kleinen Switch besorgt und habe nun genügend Anschlüsse um alle Netzwerkteilnehmer inkl. Wechselrichter am Router anzuschliessen. Und wie oben geschrieben läuft es nun.
Bei den Modbus Adressen musste ich dann doch noch etwas rumspielen. Bei mir ist es nun so, dass die PV-Leistung auf Adresse 40084 liegt (entspricht also der Anleitung) und die Leistung vom Zusätzlichen Zahler auf Adresse 40207 (anstelle der 40206 aus der Anleitung).
-
Bei den Modbus Adressen musste ich dann doch noch etwas rumspielen. Bei mir ist es nun so, dass die PV-Leistung auf Adresse 40084 liegt (entspricht also der Anleitung) und die Leistung vom Zusätzlichen Zahler auf Adresse 40207 (anstelle der 40206 aus der Anleitung). `
Schön, das das bei dir nun auch läuft.
Bekommst du für die Adresse (Handbuch:40206, bei dir 40207, bei mir 40205: Real Power M_AC_Power / init16 / Watts / Total real Power (sum of active phases)) nachvollziehbare Werte angezeigt ?
Bei mir steht da gerade 65534 W - was nicht stimmen kann …
Wie oben geschrieben suche ich eine Möglichkeit die von Solaredge gemessenen Werte (Verbrauch des Hauses) zu ermitteln – komme da aber nicht auf einen grünen Zweig ;(
-
Ja, ich bekomme nachvollziehbare Werte. Das heisst sie stimmen auch mit dem Solaredge Portal überein. Auch das Vorzeichen ändert bei Bezug/Einspeisung.
Im Anhang meine Testkonfiguration bis jetzt.
Die Skalierungsfaktoren stimmen vermutlich noch nicht, hatte dazu noch keine Zeit.
Damit ich überhaupt mal sicher bin auf der Richtigen Adresse zu sein, frage ich ich Model und Herrsteller des Zählers ab. Da kommt bei mir "WattNode" respektive "WNC-3Y-400-MB" zurück. So hatte ich rausgefunden dass ich bei mir die Adresse +1 rechnen muss.
Generell die Frage: Auf dem Solaredge Portal wird Dir der Verbrauch des Hauses bereits korrekt angezeigt?
3525_einstellungen.jpg -
Ich kann nun den aboluten Wert mit dem Scalierungsfaktor berechnen. Nur habe ich wohl das weiter oben von User smOrthOme erwähnte Problem:
> Herausforderung dabei: Die Werte müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen.
Das äussert sich in kurzen Ausreissern beim Umschalten des Skalierungsfaktors.
Doch wie lese ich nun beide Werte gleichzeitig aus? Meine Idee ist Wert und Skalierungsfaktor zusammen mit einer 32bit Variable auszulesen. Doch wie teile ich diese wieder in zwei 16-bit Variablen auf? Ich habe es mal in Blocky versucht aber keine entsprechenden Befehle gefunden.
Hat das schon jemand umgesetzt oder sonst einen Tip für einen Programmieranfänger?
-
Ich habe auch einen Wechselrichter von Solar Edge (SE15K-ER-01) und wollte diesen nun in IO Broker einbinden.
Ich bin nach den oben genannten Anleitungen vorgegangen.
Aber bei der Instanz Modbus steht: "Verbunden mit Modbus: falsch"
Auch eine direkte Netzwerkanbindung hatte keinen Erfolg gebracht.
Daher vermute ich das, wie bereits geschrieben wurde, der Modbus TCP nicht aktiviert ist.
Allerdings finde ich dazu keinerlei Anleitungen oder Informationen im Internet.
Hat hier jemand eine Anleitung?
Bzw. bei denen es bereits funktioniert. Musstet ihr den Modbus aktivieren oder war dieser es bereits?
-
Die Anleitung ist im 2. Post. Sieh Dir mal die Seite 8. an.
Den grundsätzlichen Einstieg (Passwort etc.) ins Menü findes Du in der Installationsanleitung des Wechselrichters. (Kannst Du auf der Solaredge Homepage runterladen)
Aber Achtung: wenn Du den Wechselrichter öffnest besteht die Gefahr eines lebensgefährlichen Stromschlages. Zuerst die Installationsanleitung studieren und im Zweifelsfall von einem Fachmann machen lassen.
-
Weiter oben hatte ich noch folgendes Problem:
` > Ich kann nun den aboluten Wert mit dem Scalierungsfaktor berechnen. Nur habe ich wohl das weiter oben von User smOrthOme erwähnte Problem:Zitat:
Herausforderung dabei: Die Werte müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen.
Das äussert sich in kurzen Ausreissern beim Umschalten des Skalierungsfaktors. `
Das mit dem gleichzeitigen auslesen habe ich nicht rausbekommen, habe aber einen Workaround den ich gerne mit Euch teile. Vielleich kann es ja jemand als Idee übernehmen.
1. Lesen von PV-Leistung und Skalierfaktor
2. Varible aus PV-Leistung und Skalierfaktor berechnen
-> somit habe ich schon mal die richtige Leistung mit den erwähnten Ausreissern.
Ueberlegung: In meinem Fall möchte ich die Wärmepumpe am Morgen erst einschalten wenn die PV-Leistung z.B. über 2kW sind. Ich muss nur verhindern, dass die kurze Spitze der PV-Leistung die Wärmepumpe bereits freigibt. Daher soll die Leistung etwas Länger über den 2kW sein bis die Freigabe gesetzt wird.
3. Habe 4 Hilfsvariablen in einem Script dass jede Minute aufgerufen wird.
4. bei jedem Aufruf werden die Werte der Hilfsvariablen in die nächste Variable geschoben und die aktuelle PV-Leistung in die 1. Variable geschrieben.
5. Nun gebe ich die Wärmepumpe erst frei, wenn alle 4 Hilfsvariablen über 2kW haben.
Bei mir scheint es so zu funktionieren (habe natürlich noch keine Langzeiterfahrung)
Wenn trotzdem noch jemand eine Lösung für das gleichzeitige Auslesen der PV-Leistung mit dem Skalierfaktor findet, wäre ich natürlich immer noch intressiert.
-
Hi,
ich möchte zwar nicht Heizen sondern ein Auto aufladen aber das Prinzip ist ja das gleiche.
Die Werte schreibe ich mir in "wrapper opbjekte". Als Beispiel hier mal der aktuelle Wert für
die Produktion der PV
on(/modbus.0.holdingRegisters.40083_I_AC_Power/, function (obj) { var scale_factor=getState("modbus.0.holdingRegisters.40084_I_AC_Power_SF").val; var aktuell_power=getState("modbus.0.holdingRegisters.40083_I_AC_Power").val; var norm_wert=aktuell_power*Math.pow(10,scale_factor); setState("wrapper.0.Strom.power_pv_aktuell"/*Power PV aktuell*/,norm_ert,true); });
Allerdings sind es dann meherer Einträge pro Sekunde.
-
Weiter oben hatte ich noch folgendes Problem:
` > Ich kann nun den aboluten Wert mit dem Scalierungsfaktor berechnen. Nur habe ich wohl das weiter oben von User smOrthOme erwähnte Problem:Zitat:
Herausforderung dabei: Die Werte müssen unmittelbar zusammen ausgelsesen werden, sonst passen sie nicht zusammen.
Das äussert sich in kurzen Ausreissern beim Umschalten des Skalierungsfaktors. `
Das mit dem gleichzeitigen auslesen habe ich nicht rausbekommen, habe aber einen Workaround den ich gerne mit Euch teile. Vielleich kann es ja jemand als Idee übernehmen.
1. Lesen von PV-Leistung und Skalierfaktor
2. Varible aus PV-Leistung und Skalierfaktor berechnen
-> somit habe ich schon mal die richtige Leistung mit den erwähnten Ausreissern.
Ueberlegung: In meinem Fall möchte ich die Wärmepumpe am Morgen erst einschalten wenn die PV-Leistung z.B. über 2kW sind. Ich muss nur verhindern, dass die kurze Spitze der PV-Leistung die Wärmepumpe bereits freigibt. Daher soll die Leistung etwas Länger über den 2kW sein bis die Freigabe gesetzt wird.
3. Habe 4 Hilfsvariablen in einem Script dass jede Minute aufgerufen wird.
4. bei jedem Aufruf werden die Werte der Hilfsvariablen in die nächste Variable geschoben und die aktuelle PV-Leistung in die 1. Variable geschrieben.
5. Nun gebe ich die Wärmepumpe erst frei, wenn alle 4 Hilfsvariablen über 2kW haben.
Bei mir scheint es so zu funktionieren (habe natürlich noch keine Langzeiterfahrung)
Wenn trotzdem noch jemand eine Lösung für das gleichzeitige Auslesen der PV-Leistung mit dem Skalierfaktor findet, wäre ich natürlich immer noch intressiert. `
Hi, wie berechnest du denn die PV Leistung?
-
Hi, wie berechnest du denn die PV Leistung? `
Leistung * 10 "hoch" Skalierfaktor
Mein Blocky zum importieren:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="YYeTFl5=+RUFGKp!fwS8" x="-937" y="63"><field name="OID">modbus.0.holdingRegisters.40084_WR_Leistung</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="update" id="{8c)~K%7n5#35[IVg*CU"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Leistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_arithmetic" id="N5XZnoEUm{3Kzm-/]B@/"><field name="OP">MULTIPLY</field> <value name="A"><shadow type="math_number" id="!{7/(]DX3lGP@Il`Y=E1"><field name="NUM">1</field></shadow> <block type="get_value" id="_;teC|IbrE2JD_fEN~js"><field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40084_WR_Leistung</field></block></value> <value name="B"><shadow type="math_number" id="M:s(2P888iDd:XzoTo4p"><field name="NUM">1</field></shadow> <block type="math_single" id="/]%B9azJMI,TVYWo.Q;d"><field name="OP">POW10</field> <value name="NUM"><shadow type="math_number" id="T+;~SGgPH[32R+:S}|M!"><field name="NUM">0</field></shadow> <block type="get_value" id="|gkz@RnPUVcfP6F8mj]p"><field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40085_WR_Leistung scale</field></block></value></block></value></block></value></block></statement></block></xml>