NEWS
Solaredge Adapter (Photovoltaikanlage)
-
@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.) -
Den Vergleich zu den Zählerwerten habe ich auch gemacht.
Ich habe einen neuen Hauszähler installiert bekommen. Einen Elster AS3000.
Da lese ich nun die OBIS Daten aus (also die effektiven Zählerwerte, mit vzlogger).
Habe das nun 3 mal geprüft, aber ich bekomme echt erschreckende Abweichungen, insbesondere beim Strombezug.
Hier mal der direkte Vergleich. Einmal von den Juli Daten und dann noch von den Tagesverbräuchen im August.
Hat sonst noch jemand mit Batterie einen solchen Vergleich gemacht? Liegt hier doch noch ein Messproblem vor? -
@al-bundy sagte in Solaredge Adapter (Photovoltaikanlage):
@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.hi, bei mir funktioniert das irgendwie nicht. habe die Formel wie im Screenshot eingetragen und SF angehakt. bei mir sieht das so aus:
Meine Adressen sind um eines verschoben aber die stimmen.
-
@soeni sagte in Solaredge Adapter (Photovoltaikanlage):
Meine Adressen sind um eines verschoben aber die stimmen.
Das heißt ohne die Formula sind Werte da ( Standard ) und wenn du die Formula einträgst inkl. den Haken bei "SF" fehlen die Werte?
-
@soeni Hast du bei 40085 I_AC_Power_SF ganz rechts bei Spalte "SF-Skalierungsfaktor" den Haken gesetzt? Ist in deinem Screenshot nicht zu sehen.
Ansonsten hier meine Zeilen, wo ich die Formel anwende zum Vergleichen:_address name description unit type len factor offset formula role room poll wp cw isScale 40083 I_AC_Leistung AC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40084']) value true false false 40084 I_AC_Leistung_SF AC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false true 40100 I_DC_Leistung DC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40101']) value true false false 40101 I_DC_Leistung_SF DC-Leistung Skalierungsfaktor SF int16be 1 1 0 value true false true 40103 I_Temp_Kühler Kühlkörpertemperatur °C uint16be 1 1 0 x * Math.pow(10, sf['40106']) value true false false 40106 I_Temp_SF Kühlkörpertemperatur Skalierungsfaktor SF int16be 1 1 0 value true false true 40206 M_AC_Power Total Real Power (sum of active phases) W int16be 1 1 0 x * Math.pow(10, sf['40210']) value true false false 40210 M_AC_Power_SF AC Real Power Scale Factor SF int16be 1 1 0 value true false true
-
Hi, vieln Dank für die Hilfe. SF Haken ist gesetzt. anbei der Auszug:
40085 I_AC_Power_SF I_AC_Power_SF SF int16be 1 1 0 value true false false true 40084 I_AC_Power I_AC_Power W uint16be 1 1 0 x * Math.pow(10, sf['40085']) value true false false
Das Ergebnis ist, dass vorher (Ohne Formel sonst alles gleich) der AC Wert im Objekt stand (Natürlich ohne SF korrektur) und hinter herr ein 'null' also nicht definierter Wert.