NEWS
Solaredge Adapter (Photovoltaikanlage)
-
@al-bundy said in Solaredge Adapter (Photovoltaikanlage):
@cybtrash Ich bin echt verblüfft. Grossartig. Nochmals Danke
edit: Hab mir jetzt eine kleine Übersicht in VIS gebastelt, ein Klon der Solaredge Übersicht sozusagen. Finde ich am übersichtlichsten. Das ganze erweitere ich jetzt noch um das E-Auto und Wärmepumpe
Das Problem mit den unklaren Werten der Batterie für die tägliche Statistik der Energiemenge bleibt aber -.- (siehe hier) -
@cybtrash
Da helfe ich gerne. Brauche aber noch etwas Zeit dazu.
Prinzipiell habe ich auch bis jetzt schon vieles von meinem Haus, dass ich überwache und steuere (z.B. über 25 Shellys zur Messung und Steuerung der Stromaufnahme) und werde dies auch mit der PV Anlage tun
Die Anlage ist aber erst 6 Tage alt und der Modbus Adapter funktioniert auch erst seit Dienstag. Bevor ich mit den Aufzeichnungen und Analysen starte, werde ich erst noch die Messwerte prüfen. Mir scheint der gemessene Verbrauch etwas zu tief (etwa 10-20%) zu dem was ich zuvor gemessen habe. Um das aber genau zu prüfen, muss ich noch die Messerei des neuen Energiezählers installieren. Eben "step by step"
Falls von Interesse hier die Anlagen-Daten:
Module: 36 x LG Neon LG365N1C (13kWp)
WR: StoreEdge SE10K-RWS
Batterie: LG CHEM RESU 13 -
Gelöscht
-
@cybtrash
Ich bin nun ein Stück weiter, es ist jedoch schon eine ziemliche rechnerei mit einer Batterie am SE WR. Bislang habe ich die Leistungs-Kennwerte (Watt) genauer angeschaut (die Verbrauchsenergie kWh wird noch folgen).
Der Modbus liefert leider nur 3 Leistungskennwerte und zwar die folgenden mit meinen Beobachtungen:40083: I_AC:
- Wird als Parameter bei SolarEdge WR ohne Batterie als Sonnenertrag benutzt (geht mit Batterie nicht!)
- Scheint der Ertrag zu sein, Ertrag fehlt aber, wenn Batterie geladen wird und ist auch in der Nacht da, wenn die Batterie Leistung abgibt.
- Die Leistung in der Nacht (180-300W) ist tiefer als jene des Batterieverbrauches (300-400W)! Kann also nicht sein ?!?
- Scheint gemäss SE Portal - Auswertung dem Graphen: "Power: Leistung" zu entsprechen
40100 I_DC:
- Analog I_AC, nur leicht höhere Werte (in der Nacht 2-5W bei 200W, am Tag 150W bei etwa 9kW, oder 60W bei etwa 4kW)
40206 M_AC:
- Scheint die effektive Rückgelieferte Leistung zu sein
- Scheint gemäss SE Portal - Auswertung dem Graphen: "Power: Einspeise-Zähler" zu entsprechen
- Am Tag deutlich geringer als I_AC, in der Nacht meist 0 Watt
57716 Battery Power:
- Die Leistungswerte der Batterie scheinen mir in der Nacht plausibler als jene von I_AC
- Positive Werte entsprechen in der SE Portal - Auswertung dem Graphen: "Anlage Ladeleistung"
- Negative Werte entsprechen in der SE Portal - Auswertung dem Graphen: "Anlage Entladeleistung"
Als Leistungswerte würde mich folgende Grössen interessieren:
- PV-Erzeugung
- Hausverbrachs-Leistung
- Eingenverbrauchs-Leistung
- Batterie Entlade-Leistung
- Batterie Lade-Leistung
- Leistung aus dem Netz
- Leistung ins Netz
Diese 7 Parameter auszurechnen und darzustellen ist mir nicht gelungen. Evtl. jemandem von euch!
Meine Ansätze:-
PV-Erzeugung:
I_AC + Batterie Power: Geht nicht. Liefert in der Nacht etwa -100 W ?!?
M_AC + Batterie Laden: Geht nicht. Nacht stimmt dann, aber Erzeugung am Tag ist dann um den Verbrauch zu tief
API Schnittstelle: Geht nicht. Entspricht auch nur I_AC und ist sehr ungenau
Weitere Möglichkeit 1: I_AC + Batterie laden, wenn Batterie nicht entladen wird -> noch nicht umgesetzt
Weitere Möglichkeit 2: Summe der Leistung von den einzelnen Pannels => habe ich nicht aus dem Modbus lesen können
Weitere Möglichkeit 3: Ratlosigkeit -
Hausverbrachs-Leistung:
I_AC - M_AC: Stimmt dann mit der App überein. Werte in der Nacht sind dann aber zu niedrig (180-300W anstelle von 300-400W). Werte am Tag scheinen mir auch eher zu gering… -
Eingenverbrauchs-Leistung:
I_AC - M_AC + M_Import-Leistung: Knackpunkt: M_Import-Leistung muss aus M_Import (Verbrauch) berechnet werden. -
Batterie Entlade-Leistung:
Kein Problem (über Programm: Wenn Batteriezustand=3 (Modbus 57734, Laden), dann Battery Power Modbus 57716, sonst 0 Watt)) -
Batterie Lade-Leistung:
Kein Problem (über Programm: Wenn Batteriezustand=4 (Modbus 57734, Entladen), dann Battery Power Modbus 57716 * -1, sonst 0 Watt)) -
Leistung aus dem Netz:
Leider kein direkter Modbus Parameter. Abhilfe: Aus M_Import (kWh) die Leistung berechnen -
Leistung ins Netz:
Kein Problem Ist M_AC
Weitere Bemerkungen zur Leistungsmessung:
Sowohl der M_Import (Verbrauch), wie auch der Hauszähler melden, dass in der Nach vom Netz ebenfalls Strom bezogen wird, und dies, obschon die Batterie längst nicht entladen ist und auch nicht an der 5kW grenze ansteht.
Das sind meist so zwischen 50-100W die in der Nacht aus dem Netz bezogen werden und somit deutlich mehr als in der App oder SE Portal-Auswertung angezeigt wird (dort meist 0 - 50W).
Über euere Erfahrungen würde ich mich freuen.Ach ja. Die Verbrauchsdaten der Batterie sind weniger ein Problem.
Die Modbus Daten liefern auch bei mir unlogische Daten, auch wenn das zurücksetzen weg gerechnet wird (im Übrigen werden diese Rücksetzungen auch im SE-Portal in der Rubrik Auswertung gezeigt, dort passen aber die Werte).
Ich trenne die Leistungsdaten sowieso in Ladung und Entladung auf. In iobroker gibt es etliche Adapter, die die Leistungskennwerte Integrieren (aufsummieren) und so den Verbrauch ermitteln. Ich mache dies mit sourceanalytix. Da kommen dann plausible Werte raus (der Verbrauch der Batterieentladung ist nach meiner Messung etwa 10% höher, als jener, der in der App angegeben wird)Grafana Bilder eines Tages (gestern) der Leistungsmessungen:
I_AC
I_DC
M_AC
Battery Power
I_AC - M_AC
M_Import_Power (ausgerechnet aus M_Import)
API-Schnittstelle: Power
SE-Portal:
SE-App:
-
Ich hab schon seit mehr als 2 Jahren den Modbus-Adapter mit Solaredge im Einsatz. Hat an sich auch gut funktioniert. Jetzt wollte ich die Infos noch etwas erweitern, aber der Adapter spinnt mit manchen Adressen. Interessanterweise kommt
Poll error count: 1 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
immer nur dann wenn ich im Adapter die Adressen zum Strom der Phase B (damit ist wohl L2 in Deutschland gemeint) aktiviere. Aber nach einiger Zeit steckt es jetzt auch so fest.
Ahja, ich habe die beta des Modus-Adapters im Einsatz, irgendwie hat die stable seltsame Adressen vergeben und damit falsche Objekte angelegt. Mit der beta geht auch das Editieren als TSV (ich kenn das als CSV mit Tabs als Delimiter, aber sei's drum). Hier mein TSV:
_address name description unit type len factor offset formula role room poll wp cw isScale 40073 I_AC_CurrentA AC Phase A Current value A int16be 1 1 0 value true false false false 40074 I_AC_CurrentB AC Phase B Current value A int16be 1 1 0 value true false false false 40075 I_AC_CurrentC AC Phase C Current value A int16be 1 1 0 value true false false false 40076 I_AC_Current_SF AC Current scale factor int16be 1 1 0 value true false false false 40084 I_AC_Power AC Power value W int16be 1 1 0 value true false false false 40085 I_AC_Power_SF AC Power scale factor int16be 1 1 0 value true false false false 40097 I_DC_Current DC Current value A uint16be 1 1 0 value true false false false 40098 I_DC_Current_SF DC Current scale factor int16be 1 1 0 value true false false false 40099 I_DC_Voltage DC Voltage value V uint16be 1 1 0 value true false false false 40100 I_DC_Voltage_SF DC Voltage scale factor int16be 1 1 0 value true false false false 40101 I_DC_Power DC Power value W int16be 1 1 0 value true false false false 40102 I_DC_Power_SF DC Power scale factor int16be 1 1 0 value true false false false 40104 I_Temp_Sink Heat Sink Temperature int16be 1 1 0 value true false false false 40107 I_Temp_SF Heat Sink Temperature int16be 1 1 0 value true false false false 40108 I_Status Operating State uint16be 1 1 0 value true false false false 40109 I_Status_Vendor Vendor-defined Operating State uint16be 1 1 0 value true false false false 40191 M_AC_Current AC Current (sum of active phases) A int16be 1 1 0 value true false false false 40192 M_AC_Current_A Phase A AC Current A int16be 1 1 0 value true false false false 40193 M_AC_Current_B Phase B AC Current A int16be 1 1 0 value false false false false 40194 M_AC_Current_C Phase C AC Current A int16be 1 1 0 value true false false false 40195 M_AC_Current_SF AC Current Scale Factor int16be 1 1 0 value true false false false 40196 M_AC_Voltage_LN Line to Neutral AC Voltage (average of active phases) V int16be 1 1 0 value true false false false 40197 M_AC_Voltage_AN Phase A to Neutral AC Voltage V int16be 1 1 0 value true false false false 40198 M_AC_Voltage_BN Phase B to Neutral AC Voltage V int16be 1 1 0 value true false false false 40199 M_AC_Voltage_CN Phase C to Neutral AC Voltage V int16be 1 1 0 value true false false false 40200 M_AC_Voltage_LL Line to Line AC Voltage (average of active phases) V int16be 1 1 0 value true false false false 40201 M_AC_Voltage_AB Phase A to Phase B AC Voltage V int16be 1 1 0 value true false false false 40202 M_AC_Voltage_BC Phase B to Phase C AC Voltage V int16be 1 1 0 value true false false false 40203 M_AC_Voltage_CA Phase C to Phase A AC Voltage V int16be 1 1 0 value true false false false 40204 M_AC_Voltage_SF AC Voltage Scale Factor int16be 1 1 0 value true false false false 40205 M_AC_Freq AC Frequency Hz int16be 1 1 0 value true false false false 40206 M_AC_Freq_SF AC Frequency Scale Factor Hz int16be 1 1 0 value true false false false 40207 M_AC_Power Total Real Power (sum of active phases) W int16be 1 1 0 value true false false false 40208 M_AC_Power_A Phase A AC Real Power W int16be 1 1 0 value true false false false 40209 M_AC_Power_B Phase B AC Real Power W int16be 1 1 0 value true false false false 40210 M_AC_Power_C Phase C AC Real Power W int16be 1 1 0 value true false false false 40211 M_AC_Power_SF AC Real Power Scale Factor int16be 1 1 0 value true false false false
Hatte das jemand auch? Was habt ihr im Modbus-Adapter damit er stabil alle Adressen lesen kann?
-
@hoich
Bei meiner Konfig habe ich keine Probleme.
Unterschied sehe ich beim Type. Bei dir oft int16be, bei mir unit16be.
Anbei meine Holding registers. Bei mir base 0 Adressen, bei dir base 1, also um 1 verschoben.
Modbus Version ist 3.2.6 (stable)deviceId address name description unit type len factor offset formula role room poll wp isScale 1 40000 C_SunSpec_ID Wert = "SunS" (0x53756e53). Identifiziert dies eindeutig als eine SunSpec Modbus-Karte uint32be 2 1 0 value true false false 1 40002 C_SunSpec_DID Wert = 0x0001. Identifiziert dies eindeutig als einen SunSpec “Common Block“ uint16be 1 1 0 value true false false 1 40003 C_SunSpec_Länge 65 = Länge eines Blocks in 16-bit Registern uint16be 1 1 0 value true false false 1 40004 C_Hersteller Bei SunSpec eingetragener Wert = "SolarEdge" string 16 1 0 value true false false 1 40020 C_Modell Spezifischer SolarEdge Wert string 16 1 0 value true false false 1 40044 C_Version Spezifischer SolarEdge Wert string 8 1 0 value true false false 1 40052 C_Seriennummer Eindeutiger SolarEdge Wert string 16 1 0 value true false false 1 40068 C_Geräteadresse Modbus-ID der entsprechenden Einheit uint16be 1 1 0 value true false false 1 40069 C_SunSpec_DID 101 = Einphasig, 102 = Spaltphase, 103 = Dreiphasig uint16be 1 1 0 value true false false 1 40070 C_SunSpec_Länge 50 = Länge des Modellblocks Register uint16be 1 1 0 value true false false 1 40071 I_AC_Strom AC-Gesamtstromwert A uint16be 1 1 0 value true false false 1 40072 I_AC_StromA AC-Phase A (L1) Stromwert A uint16be 1 1 0 value true false false 1 40073 I_AC_StromB AC-Phase B (L2) Stromwert A uint16be 1 1 0 value true false false 1 40074 I_AC_StromC AC-Phase C (L3) Stromwert A uint16be 1 1 0 value true false false 1 40075 I_AC_Strom_SF AC-Strom Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40076 I_AC_SpannungAB AC-Spannung Phase AB (L1-L2) Wert V uint16be 1 1 0 value true false false 1 40077 I_AC_SpannungBC AC-Spannung Phase BC (L2-L3) Wert V uint16be 1 1 0 value true false false 1 40078 I_AC_SpannungCA AC-Spannung Phase CA (L3-L1) Wert V uint16be 1 1 0 value true false false 1 40079 I_AC_SpannungAN AC-Spannung Phase A-N (L1-N) Wert V uint16be 1 1 0 value true false false 1 40080 I_AC_SpannungBN AC-Spannung Phase B-N (L2-N) Wert V uint16be 1 1 0 value true false false 1 40081 I_AC_SpannungCN AC-Spannung Phase C-N (L3-N) Wert V uint16be 1 1 0 value true false false 1 40082 I_AC_Spannung_SF AC-Spannung Skalierungsfaktor V int16be 1 1 0 value true false false 1 40083 I_AC_Leistung AC-Leistungswert W uint16be 1 1 0 value true false false 1 40084 I_AC_Leistung_SF AC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40085 I_AC_Frequenz Frequenzwert Hz uint16be 1 1 0 value true false false 1 40086 I_AC_Frequenz_SF Frequenz Skalierungsfaktor int16be 1 1 0 value true false false 1 40087 I_AC_VA Scheinleistung VA uint16be 1 1 0 value true false false 1 40088 I_AC_VA_SF Scheinleistung Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40089 I_AC_VAR Blindleistung VAR uint16be 1 1 0 value true false false 1 40090 I_AC_VAR_SF Blindleistung Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40091 I_AC_PF Leistungsfaktor % uint16be 1 1 0 value true false false 1 40092 I_AC_PF_SF Leistungsfaktor Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40093 I_AC_Energie_WH AC Gesamt-Energieproduktion Wh uint32be 2 1 0 value true false false 1 40095 I_AC_Energie_WH_SF AC Gesamtenergie Skalierungsfaktor SF uint16be 1 1 0 value true false false 1 40096 I_DC_Strom DC-Stromwert A uint16be 1 1 0 value true false false 1 40097 I_DC_Strom_SF DC-Strom Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40098 I_DC_Spannung DC-Spannungswert V uint16be 1 1 0 value true false false 1 40099 I_DC_Spannung_SF DC-Spannung Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40100 I_DC_Leistung DC-Leistungswert W uint16be 1 1 0 value true false false 1 40101 I_DC_Leistung_SF DC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40103 I_Temp_Kühler Kühlkörpertemperatur °C uint16be 1 1 0 value true false false 1 40106 I_Temp_SF Kühlkörpertemperatur Skalierungsfaktor SF int16be 1 1 0 value true false false 1 40107 I_Status Betriebszustand (1 = Aus, 2 = Schlafen (Automatisches Herunterfahren) – Nachtmodus, 3 = Aufwachen/Starten, 4 = Wechselrichter ist AN und wandelt Energie, 5 = Begrenzte Produktion, 6 = Herunterfahren, 7 = Fehler, 8 = Wartung/Setup) uint16be 1 1 0 value true false false 1 40108 I_Status_Anbieter Anbieter-spezifischer Betriebszustand sowie Fehlercodes: 1 = Aus, 2 = Schlafen (Automatisches Herunterfahren) – Nachtmodus, 3 = Aufwachen/Starten, 4 = Wechselrichter ist AN und wandelt Energie, 5 = Begrenzte Produktion, 6 = Herunterfahren, 7 = Fehler, 8 = Wartung/Setup uint16be 1 1 0 value true false false 1 40123 C_Manufacturer Meter manufacturer string 32 1 0 value true false false 1 40139 C_Model Meter model string 32 1 0 value true false false 1 40155 C_Option Export + Import, Production, consumption string 16 1 0 value true false false 1 40190 M_AC_Current AC Current (sum of active phases) A uint16be 1 1 0 value true false false 1 40194 M_AC_Current_S F AC Current Scale Factor SF int16be 1 1 0 value true false false 1 40206 M_AC_Power Total Real Power (sum of active phases) W int16be 1 1 0 value true false false 1 40210 M_AC_Power_SF AC Real Power Scale Factor SF int16be 1 1 0 value true false false 1 40226 M_Exported Total Exported Real Energy Wh uint32be 2 1 0 value true false false 1 40234 M_Imported Total Imported Real Energy Wh uint32be 2 1 0 value true false false 1 40242 M_Energy_W_SF Real Energy Scale Factor SF int16be 1 1 0 value true false false 1 57600 Battery 1 Manufacturer Name Geht nicht! string 16 1 0 value false false false 1 57616 Battery 1 Model Geht nicht! string 16 1 0 value false false false 1 57632 Battery 1 Firmware Version Geht nicht! string 16 1 0 value false false false 1 57648 Battery 1 Serial Number Geht nicht! string 16 1 0 value false false false 1 57664 Battery 1 Device ID Batterie Geräte ID uint16be 1 1 0 value true false false 1 57666 Battery 1 Rated Energy Batterie Nennkapazität Wh floatsw 2 1 0 value true false false 1 57668 Battery 1 Max Charge Continues Power Batterie maximale Ladeleistung W floatsw 2 1 0 value true false false 1 57670 Battery 1 Max Discharge Continues Power Batterie maximale Entladeleistung W floatsw 2 1 0 value true false false 1 57672 Battery 1 Max Charge Peak Power Batterie maximale Ladespitzenleistung W floatsw 2 1 0 value true false false 1 57674 Battery 1 Max Discharge Peak Power Batterie maximale Entladespitzenleistung W floatsw 2 1 0 value true false false 1 57708 Battery 1 Average Temperature Batterie Durchschnittstemperatur °C floatsw 2 1 0 value true false false 1 57710 Battery 1 Max Temperature Batterie maximale Temperatur °C floatsw 2 1 0 value true false false 1 57712 Battery 1 Instantaneous Voltage Batterie momentane Spannung V floatsw 2 1 0 value true false false 1 57714 Battery 1 Instantaneous Current Batterie momentane Stromstärke A floatsw 2 1 0 value true false false 1 57716 Battery 1 Instantaneous Power Batterie momentane Leistung W floatsw 2 1 0 value true false false 1 57718 Battery 1 Lifetime Export Energy Counter Batterie Gesamtenergie entladen Wh uint64le 4 1 0 value true false false 1 57722 Battery 1 Lifetime Import Energy Counter Batterie Gesamtenergie geladen Wh uint64le 4 1 0 value true false false 1 57726 Battery 1 Max Energy Batteriekapazität aktualisiert nach Alterung Wh floatsw 2 1 0 value true false false 1 57728 Battery 1 Available Energy Batterie verfügbare Energie Wh floatsw 2 1 0 value true false false 1 57730 Battery 1 State of Health (SOH) Batterie Verhältnis von Nennkapazität zu Batteriekapazität nach Alterung % floatsw 2 1 0 value true false false 1 57732 Battery 1 State of Energy (SOE) Batterie Ladezustand (verfügbare Energie zu mögliche Kapazität) % floatsw 2 1 0 value true false false 1 57734 Battery 1 Status Batterie Zustand (0 = Aus, 1 = Standby, 2 = Initialisierung, 3 = Laden, 4 = Entladen, 5 = Fehler, 6 = Leerlauf) uint32sw 2 1 0 level true false false 1 57736 Battery 1 Status Internal Batterie Hersteller spezifische Kodierung uint32sw 2 1 0 level false false false 1 57738 Battery 1 Events Log Batterie Ereignisprotokoll uint16be 1 1 0 value false false false 1 57746 Battery 1 Events Log Internal Batterie internes Ereignisprotokoll uint16be 1 1 0 value false false false
-
@al-bundy said in Solaredge Adapter (Photovoltaikanlage):
40206 M_AC:
Scheint die effektive Rückgelieferte Leistung zu sein
Scheint gemäss SE Portal - Auswertung dem Graphen: "Power: Einspeise-Zähler" zu entsprechen
Am Tag deutlich geringer als I_AC, in der Nacht meist 0 WattM_AC ist bei mir der Wert des SE-Stromzählers am Netzeinspeisepunkt.
Dieser wird positiv für Einspeisung und negativ für Bezug.
Er ist bei dir wohl wegen Batterieentladung = 0 in der Nacht.Ich habe mir auch so ein Schema gezeichnet, das die einzelnen Werte nach meinem aktuellen Kenntnisstand darstellt
Modbus wird aktuell in 10s Intervallen gepollt. Ich spiele gerade mit Mittelung von Werten herum, daher passt die Berechnung von Hausverbrauch und Stromzähler in diesem Fall nicht. Wenn PV aus ist, kann man die DC-DC Verluste von 800V (PV) auf 50V (LV Batterie durch I_P_DC - Batt_P_DC ermitteln. Das sind 50 - 70 W über den gesamten Leistungsbereich des WR (auch bei 0 W).
Hier ein beispielhafter Tagesverlauf mit den Leistungen von WR-DC, WR-AC, Stromzähler (positiv oder 0 - außer Regelverluste, da Batterie nicht leer) und Batterieleistung (positiv für Laden und negativ für Entladen). Wenn die Batterie leer ist, wird die Leistung am Stromzähler negativ. Da brauchst du gar nicht die Umrechnung aus den kWh.
Mir hat das geholfen, um die Zusammenhänge der Größen verstehen zu können.
-
@al-bundy said in Solaredge Adapter (Photovoltaikanlage):
- PV-Erzeugung:
I_AC + Batterie Power: Geht nicht. Liefert in der Nacht etwa -100 W ?!?
M_AC + Batterie Laden: Geht nicht. Nacht stimmt dann, aber Erzeugung am Tag ist dann um den Verbrauch zu tief
API Schnittstelle: Geht nicht. Entspricht auch nur I_AC und ist sehr ungenau
Weitere Möglichkeit 1: I_AC + Batterie laden, wenn Batterie nicht entladen wird -> noch nicht umgesetzt
Weitere Möglichkeit 2: Summe der Leistung von den einzelnen Pannels => habe ich nicht aus dem Modbus lesen können
Weitere Möglichkeit 3: Ratlosigkeit
Der Weg I_AC + Batterie Power scheint mir der richtige.
Allerdings hast du die Verluste AC-DC und DC-DC nicht abgedeckt, dadurch ergeben sich dann negative Werte, weil die Batterie mehr liefern muss (mehr minus) als hinten raus kommt.
Vorschlag A: Einfach auf positive Werte begrenzen und mit dem geringen Unterschied leben.
Vorschlag B: Verluste mit einbeziehen.
Für AC-DC Verluste kannst du dann einfach den I_DC Wert nehmen und die leistungsabhängigen Verluste im Nachtfall (ohne PV) ermitteln. Das sind ca. 60 W im Mittel. Ich schau einmal, ob ich dazu noch meine alte Tabelle finde...- Hausverbrachs-Leistung:
I_AC - M_AC: Stimmt dann mit der App überein. Werte in der Nacht sind dann aber zu niedrig (180-300W anstelle von 300-400W). >Werte am Tag scheinen mir auch eher zu gering…
Das mache ich auch so.
Wieso meinst du zu gering - misst du das noch anderweitig?
Ich habe noch einen geeichten Discovergy Smartmeter, so dass ich den Datenpunkt an der Einspeisung doppelt messe und auch auslesen kann. Die Werte unterscheiden sich um 5 % (Vergleich kumulierte Monatswerte).
Ob es an der Messgenauigkeit liegt oder an der Installation kann ich nicht sagen...- Eingenverbrauchs-Leistung:
I_AC - M_AC + M_Import-Leistung: Knackpunkt: M_Import-Leistung muss aus M_Import (Verbrauch) berechnet werden.
Ich bin mir nicht ganz sicher was du mit Eigenverbrauch meinst, aber du musst vermutlich für M_AC zwei Datenpunkte anlegen, die für Bezug und Einspeisung stehen. Also Bezug = If (M_AC < 0 then M_AC else 0) etc.
- Batterie Entlade-Leistung:
Kein Problem (über Programm: Wenn Batteriezustand=3 (Modbus 57734, Laden), dann Battery Power Modbus 57716, sonst 0 Watt))
Batterie Lade-Leistung:
Kein Problem (über Programm: Wenn Batteriezustand=4 (Modbus 57734, Entladen), dann Battery Power Modbus 57716 * -1, sonst 0 Watt))
Ja, oder >0 dann Ladung, <0 Entladung
- Leistung aus dem Netz:
Leider kein direkter Modbus Parameter. Abhilfe: Aus M_Import (kWh) die Leistung berechnen
7.Leistung ins Netz:
Kein Problem Ist M_AC
Wie gesagt, das ist beides in M_AC vereint. Geht ja auch nur in die eine oder andere Richtung.
- PV-Erzeugung:
-
@pvonroof said in Solaredge Adapter (Photovoltaikanlage):
Für AC-DC Verluste kannst du dann einfach den I_DC Wert nehmen und die leistungsabhängigen Verluste im Nachtfall (ohne PV) ermitteln. Das sind ca. 60 W im Mittel. Ich schau einmal, ob ich dazu noch meine alte Tabelle finde.
Gefunden! Hier die DC-DC Verluste für Nachtzeiten (PV Ertrag =0) mit meinem SE8K-RWS.
Berechnet aus Differenz P_Batt und I_P_DC, aufgetragen über die Batterieleistung.Inwieweit der Fit auch für DC-Werte > 5000 W passt habe ich nicht geprüft.
Ich finde es bemerkenswert, dass die DC-DC Verluste ein Minimum bei ca. 1500 W haben.
Da könnte man ggf. die maximale Ladeleistung entsprechend optimieren. -
@pvonroof
Hi PVonRoof
Du scheinst dich stark mit der Materie zu befassen und auszukennen. Freut mich und danke für deine Kommentare.
Zu Hausverbrauchs-Leistung:
Wieso meinst du zu gering - misst du das noch anderweitig?
Habe vor der PV-Anlage den Gesamtstromverbrauch mit Homematic ES-LED direkt am Hauszähler gemessen und auch mit z.B. vielen Shelly's vergleichen können. Geht nun nicht mehr, da ja in der Nacht der Zähler fast kein Strom mehr sieht.
Habe hier mal ein Beispiel in der Nacht vom 28.05.2021 von 00:00 bis 04:00, bevor die PV Anlage installiert war.
Direkt am Stromzähler (Impulse gemessen), waren das über die 4h 1'180 Wh und somit im Ø knapp 300 Watt:
Der Zähler war geeicht und der Homematic Sensor hatte über 1 Jahr eine Abweichung von etwa -4 Stunden!
Zudem sind da noch die Shelly. Da muss ich leider zusammenrechnen oder via Portal die Summe der verschiedenen Zähler nehmen.
Leider nicht alles, aber mit 9 Shelly's 1PM bei den 1-Phasigen Sicherungsabgängen und weiteren Sensoren (+1x 3EM, + 2x 2.5) erfasse ich einen Grossteil des Stromes.
Für den besagten Zeitraum waren dies 1'056 Wh (Ø264W). Dabei fehlen die Shelly's selbst und auch einige 3 Phasige Sicherungsabgänge.
Neu dazu kam im Wesentlich der WR und die Batterie, die Auch nicht von den Shellys erfasst werden.
Deshalb erwarte ich eher einen Verbrauch von Ø 300 Watt anstelle von Ø 200 Watt in der Nacht wenn "nichts" läuft.Zu den Modbus Daten.
Ich komme mal vom neu installierten Hauszähler des Stromversorgers (Elster AS3000). Hier kann ich die Werte direkt mit IR-Lesekopf und vzlogger auslesen und speichern. Naja, klappt noch nicht richtig, wegen der zu langen USB Leitung hat es Unterbrüche. Aber das ist eine andere Baustelle.
Habe mir also auch wieder ein Zeitbereich angeschaut, wo die Sonne sicher nicht scheint (23.07.2021 00:00 - 04:00).
In dieser Zeit geht nichts raus (keine Rücklieferung), also so wie es sein soll:
Rücklieferung am Zähler somit: 0 Wh => Ø 0 Watt
Der Bezug liegt bei geringen 30 Wh => Ø 8Watt:
Da in dieser Zeit keine Leistung zurückgespiesen wurde, ist die Leistungskurve des Zähler nur als Bezug zu verstehen (Leider gibts es bei diesem Datenpunkt kein ±).
Das Leistungsdiagramm ist soweit schlüssig mit dem Verbrauch, also 30Wh und im Schnitt 8 Watt. Es sind auch mehrheitlich weniger bis auf die 3 Ausreisser:
Die Erwartung wäre also, dass M_AC für diese Zeit negativ ist, M_Import ein Delta von 30Wh aufweist und M_Export ein Delta von 0Wh...
M_Import liefert bei mir keine negativen Werte! Die Grössenordnung passt aber:
Ich muss hier mal das umrechnungs-Script prüfen, welches die M_AC Werte mit dem Skalierfungsfaktor verrechnet. Evtl. liegt da ein Fehler vor.
M_Import zeigt dann leider wieder zu viel an (125 Wh, gegenüber AS3000 mit 30 Wh):
M_Export müsste nahezu 0 sein, ist jedoch auch bei 112 Wh:
Naja, an dieser Stelle löse ich erst mal mein Problem mit dem M_AC_Power ± Werten...DC-DC Verluste:
Interessante Grafik von dir. Ich finde die Verluste doch sehr gross, vergleicht man diese mit den DC-AC Verlusten (I_DC - I_AC).
In Grafana geht das relativ einfach. Habe dies mal so wie von dir beschrieben gemacht und in der Nacht Battery Power - I_DC gerechnet.
Das ergibt ein leicht ansteigender Verlust von 85W bis 90W (und das bei 300 Watt der Batterie, bzw. 200 Watt Netzlast!). Da bin ich aber zu wenig Elektrotechniker um dies beurteilen zu können.
Hier die Grafik dazu:
Ich bin mir nicht ganz sicher was du mit Eigenverbrauch meinst
Ist so in der SE-App bezeichnet und entspricht der blaue Kurve. Genau steht da: Energie - Eigenverbrauch (naja, ist in diesem Fall die Leistung und nicht die Energie...)
Damit ist der Anteil des (Haus-) Verbrauches gemeint, der selbst erzeugt wird (PV oder Batterie) und immer kleiner als der Verbrauch (rote Kurve in der App). -
@al-bundy said in Solaredge Adapter (Photovoltaikanlage):
Ich muss hier mal das umrechnungs-Script prüfen, welches die M_AC Werte mit dem Skalierfungsfaktor verrechnet. Evtl. liegt da ein Fehler vor.
Ich habe die Skripte von hier:
https://forum.iobroker.net/topic/38322/tutorial-solaredge-modbus-iobroker-grafana/2
für die Umrechnung benutzt.
Das funktioniert soweit einwandfrei bei mir.M_Import und M_Export sind stehts positiv, aber M_AC_P ist bei mir nachweislich positiv und negativ.
Hier ein Beispiel mit leerer BatterieBlau ist der Wert von M_AC_P
Und dieser springt sobald die Batterie leer ist auf negative Werte und ersetzt damit nahtlos die Batterie (schwarze Kurve), die logischerweise auf 0 geht.
Warum die rote Linie (P_DC Wechselrichter) nicht auf Null geht, ist mir ein Rätsel. Dazu läuft schon ein Ticket bei SolarEdge.
Würde mich interessieren, ob ich der einzige bin, dessen DC-seitige Leistung bei leerer Batterie und ohne PV-Ertrag auf 600 W springt. Also gerne einmal mitloggen wenn die Batterie leer werden sollte.DC-DC Verluste:
Interessante Grafik von dir. Ich finde die Verluste doch sehr gross, vergleicht man diese mit den DC-AC Verlusten (I_DC - I_AC).Da stimme ich völlig überein.
Der größte Witz ist aber, dass der WR bei leerer Batterie nicht in den Standby geht, sondern fröhlich weiterhin 60 W verbrät. Im Winter summiert sich das ganz schön auf.
Wieviele Stunden steht die Batterie leer herum - 1/6 vom Jahr könnte vielleicht hinkommen? Macht 1/6 *8760 h = 1460h und ergibt damit einen unnötigen Mehrverbrauch von ca. 90 kWh. Kosten über 20 Jahre dann etwa 540 €. Das ist unsinnig und völlig unnötig.
Dazu gibt es auch einen sehr langen thread im PVForum:
https://www.photovoltaikforum.com/thread/149483-storedge-se8k-monitoringplattform-energie-heute-läuft-rückwärts/ -
@al-bundy sagte in Solaredge Adapter (Photovoltaikanlage):
Ich muss hier mal das umrechnungs-Script prüfen, welches die M_AC Werte mit dem Skalierfungsfaktor verrechnet.
@pvonroof sagte in Solaredge Adapter (Photovoltaikanlage):
Ich habe die Skripte von hier:
https://forum.iobroker.net/topic/38322/tutorial-solaredge-modbus-iobroker-grafana/2
für die Umrechnung benutzt.Hallo ihr zwei , ich bin auch gerade dabei meine neue SolarEdge Anlage mit dem Modus einzurichten , Anlage ist noch nicht in Betrieb der Zweirichtungszähler fehlt noch
und mir ist aufgefallen , das der Wert mit der Modbusangabe im Formula eher entspricht , als das Script selber .
Oder liege ich da falsch !?
Die Ausgabe erfolgt dann sofort im Datenpunkt 40083 I_AC_Leistung AC-Leistungswert schon umgerechnet .
Formula This field can be used for advanced calculations if Factor and Offset is not sufficient. If this field is set, then the Factor and Offset field is ignored. The Formula is executed by the eval() function. Therefore all common functions are supported. Especially the Math functions. The formula must comply with Javascript syntax, therefore also take care about upper and lower cases. In the formula, "x" has to be used for the read value from Modbus. E.g. x * Math.pow(10, sf['40065']) If the formula cannot be evaluated during runtime, then the Adapter writes a warning message to the log. Another use case for formulas could also be to prevent implausible data with a formula like x > 2000000 ? null : x
40083 I_AC_Leistung AC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40084']) value true false false false 40084 I_AC_Leistung_SF AC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false false true
und @Al-Bundy Danke für die Modbus Vorlage !
-
Naja, an dieser Stelle löse ich erst mal mein Problem mit dem M_AC_Power ± Werten...
Fehler gefunden. Minimal Wert der Variable war mit 0 definiert anstelle von -20000.
Nun gehen die negativen Werte
Ich mach mich dann nochmals an die Hausaufgaben zur Leistungsmessung und Darstellung...@pvonroof sagte
Der größte Witz ist aber, dass der WR bei leerer Batterie nicht in den Standby geht, sondern fröhlich weiterhin 60 W verbrät.
Kann ich so noch nicht bestätigen. Da die Anlage erst seit Juni läuft, ist die Batterie noch nie unter 48% gefallen.
Wenn dem so ist, müsste man wohl die Batterie abstellen, wenn sie leer ist.@Glasfaser sagte
Modbus Factor for 40083 I_AC_Leistung: x * Math.pow(10, sf['40084']
Wenn das geht ist ja prima! Ich selbst habe es nicht versucht und mich auch an Skripten aus den Foren gehalten. Wenn man so Skripte sparen kann um so besser.
Geht es denn bei dir? Ich hab's noch nicht getestet um mir die geloggten Daten nicht zu zerschiessen.@Glasfaser : Bitte für die Modbus Vorlage. Habe auch lange danach gesucht und keine vollständige gefunden. Anhand des Sprachenmix und der unterschiedlichen Kennzeichnung ist zu sehen, dass dies aus diversen Forenbeiträgen ist und teils von mir aus Datenblättern übersetzt wurde. Ist also nicht perfekt, aber funktioniert.
-
@al-bundy sagte in Solaredge Adapter (Photovoltaikanlage):
Geht es denn bei dir? Ich hab's noch nicht getestet um mir die geloggten Daten nicht zu zerschiessen.
Ja , es geht und ich finde der Wert ist realer der anzeigten Werte per App / Online.
Habe dazu gestern die Anlage mal kurz in Betrieb genommen und der Wert per Skript zum vergleich Modbus per Formula hatte ein unterschied von ~1,2 KW und das fand ich schon happig .
Also Online bei der Bewölkung gestern schwanke die App / Online bei 6,2 KW , bei Nutzung des Skript war ich bei ~5 KW und mit Modbus Formula passte der Wert zu 6,2 KW.
Ich kann mich auch täuschen und lasse mich eines besseren belehren ... bin noch am Anfang mit der PV
-
@glasfaser said in Solaredge Adapter (Photovoltaikanlage):
Hallo ihr zwei , ich bin auch gerade dabei meine neue SolarEdge Anlage mit dem Modus einzurichten , Anlage ist noch nicht in Betrieb der Zweirichtungszähler fehlt noch
und mir ist aufgefallen , das der Wert mit der Modbusangabe im Formula eher entspricht , als das Script selber .Hallo @Glasfaser,
Formula hatte ich bislang noch nicht gehört. Das ist dann direkt im Modbus Adapter bei den Holding Registern.
Beim Ausdruck sf['40084'] hänge ich etwas, kommt das "sf" von der Einheit "SF", die du bei 40084 definiert hast?
Werde ich auf jeden Fall einmal probieren.Fehler gefunden. Minimal Wert der Variable war mit 0 definiert anstelle von -20000.
Na also, super! Dann stimmt mein Weltbild auch wieder
Kann ich so noch nicht bestätigen. Da die Anlage erst seit Juni läuft, ist die Batterie noch nie unter 48% gefallen.
Wenn dem so ist, müsste man wohl die Batterie abstellen, wenn sie leer ist.Das geht nicht so einfach, weil dadurch der Schutz vor Tiefentladung entfällt. In dem genannten Thread aus dem PVForum hatte da auch schon jemand deutlich zu tief entladen, wodurch die Batterie beschädigt werden kann.
Den "Fehler" fiel zunächst dadurch auf, dass der Energiezähler bei leerer Batterie rückwärts läuft. Den tatsächlichen Wert kann man auch mit der SetApp bei vorhandenem Installateursaccount direkt ablesen. SolarEdge hatte dazu zunächst Besserung und Softwareupdate in Q2/2021 versprochen, aber es passiert nichts.
Jetzt soll angeblich zeitnah eine neue Generation von Hybridwechselrichtern auf den Markt kommen. -
@pvonroof sagte in Solaredge Adapter (Photovoltaikanlage):
Formula hatte ich bislang noch nicht gehört. Das ist dann direkt im Modbus Adapter bei den Holding Registern.
Ich habe auch oben das ModbusRegister als Screenshot und als Vorlage beigefügt was zu machen ist .
kommt das "sf" von der Einheit "SF", die du bei 40084 definiert hast?
richtig , deshalb kommt im Register 40084 der Haken rein
-
@glasfaser
Habe seit gestern auch auf Formeln umgestellt und testhalber mit dem Javascript verglichen (in Javascript Math.pow auf Basis 1 anstelle 10 umgestellt).
Bei mir kommt genau das selbe raus, wenn ich z.B. den Tagesverlauf von M_AC-Javascript und M_AC-Modubus-Formel vergleiche (Subtraktion gibt immer 0)
Danke für den Tipp. Super Sache. Skripte gespart und man sieht auch direkt in den Modbus Objekten die richtigen Zahlen
Kleine Anmerkung zu deinem Post: Da fehlt am Schluss noch die Klammer, darum hat es bei mir zu Beginn nicht funktioniert.
Ich habe mal diese 4 Modbus Adressen umgestellt und stelle die Javascripts zur Umrechnung ab (Bild der Holding Registers in der Adapter Version 3.4.9):
Auch kann es so keine Fehler mehr geben, des nicht zeitgleichen Auslesens, wie dies schon oft andere User berichtet haben.
Da ich auch erst Beginne, meine Grafana Panels zu erstellen, ist es mir egal, die alten Datenwerte zu verlieren. -
@al-bundy sagte in Solaredge Adapter (Photovoltaikanlage):
Kleine Anmerkung zu deinem Post: Da fehlt am Schluss noch die Klammer, darum hat es bei mir zu Beginn nicht funktioniert.
Stimmt ... habe es editiert , ist mir beim testen nicht aufgefallen .
Das Problem ist , ich bin auch noch am testen . bzw. die Anlage wurde nach der Errichtung wieder ausgeschaltet , da der Zweirichtungszähler von den Stadtwerken noch fehlt
Daher alles Offline ......
-
Die Leistungsdaten habe ich nun zusammen.
Hier verglichen mit der mySolarEdge App. Links Grafana Auswertung und rechts die App:
Die Grafiken stimmen recht gut überein (wenn auch nicht perfekt).Die Leistungswerte habe ich wie folgt ausgerechnet:
1. Produktion PV (PV-Erzeugung):
40083_I_AC_Leistung + 57716_Battery_1 Instantaneous Power
Bemerkung: Variabelbereich von 0 - 20'000W, damit es in der Nacht keine negativen Werte gibt (DC-DC-Verluste)
2. Verbrauch (Hausverbrauchs-Leistung):
40083_I_AC_Leistung - 40206_M_AC_Power
3. Eingenverbrauch-Leistung:
40083_I_AC_Leistung - (positive Werte von: 40206_M_AC_Power)
Herleitung:
Verbrauch - Leistung aus dem Netz
= 40083_I_AC_Leistung - 40206_M_AC_Power - (negative Werte von: 40206_M_AC_Power)
= 40083_I_AC_Leistung - [(positiven Werte von: 40206_M_AC_Power)+(negativen Werte von: 40206_M_AC_Power)] - (negative Werte von: 40206_M_AC_Power)
= 40083_I_AC_Leistung - [(positiven Werte von: 40206_M_AC_Power)+(negativen Werte von: 40206_M_AC_Power)] - (negative Werte von: 40206_M_AC_Power)
= 40083_I_AC_Leistung - (positiven Werte von: 40206_M_AC_Power)
4. Von der Batterie (Batterie Entlade-Leistung):
negative Werte von: 57716_Battery_1 Instantaneous Power
in der Nacht ist nun die angezeigte Energie aus der Batterie höher, als der Verbrauch (DC-DC-Verlust von etwa 90 Watt), dies stimmt mit der App noch nicht überein. Dort wird in der Nacht die Batterieleistung nie höher als der Verbrauch angezeigt.
5. Batterie Lade-Leistung (taucht in der App nicht einzeln auf):
positive Werte von: 57716_Battery_1 Instantaneous Power
6. Leistung aus dem Netz (taucht in der App nicht einzeln auf, Imported Power):
negative Werte von: 40206_M_AC_Power
7. Einspeisung (Leistung ins Netz, Exported Power)
positive Werte von: 40206_M_AC_PowerLeistungen habe ich somit beisammen. Teils werden die Werte der Batterie noch nicht regelmässig aktualisiert / geloggt, ansonsten kann ich nun gut unterschiedliche Grafiken zusammenstellen.
Rechnet ihr die Werte auch so aus?
Nächster Schritt ist die Berechnung / Visualisierung aller 7 Energie-Werte und ein Vergleich zum Hauszähler... -
Nun habe ich auch die Energieverbräuche zusammen.
Bis auf die Batterie ist es hier nicht ganz so schwierig und die Werte stimmen exakt mit dem Portal überein:
Die Tabellen wurden direkt in Grafana erstellt, ohne Skripte oder ähnliches zu erstellen und zwar wie folgt:
1. PV Produktion:
Entspricht 40093_I_AC_Energie.
In Grafana habe ich eine Tabelle entsprechend gruppiert, um die Tageswerte zu erhalten:
SELECT max("value") -min("value") FROM "modbus.0.holdingRegisters.40093_I_AC_Energie_WH" WHERE $timeFilter GROUP BY time(1d) fill(none) tz('Europe/Berlin')
2. Einspeisung:
Entspricht 40226_M_Exported
3. Bezug:
Entspricht 40234_M_Imported
4. Verbrauch:
40093_I_AC_Energie - 40226_M_Exported + 40234_M_Imported
Kann über die Transform Operation ebenfalls direkt berechnet werden
5. Eigenverbrauch:
40093_I_AC_Energie - 40226_M_ExportedBei der Batterie wird es schwieriger (siehe @cybtrash vom 09.06.2021 22:09)
Habe hier mal die Daten der von Batterie entladen Leistung genommen und den kommulierten Zählerwert der Energie (berechnet vom SourceAnalytix Adapter) benutzt. Die Werte stimmen aber nicht mit dem Portal überein.
Hier hat vielleicht jemand eine bessere Lösung (z.B. API des Portales abrufen, oder die Prozente auswerten.)