NEWS
Solaredge Adapter (Photovoltaikanlage)
-
Hallo zusammen,
Ich habe eine Frage, bisher habe ich den Modbus Adapter genutzt um von meinem Wechselrichter die Daten abzuhohlen.
SE25K per LAN und an RS485-1 war das SolarEdge Smart Meter angeschlossen und die RS485-2 (Modbus MultiGerät) hatte ich die Daten abgerufen.
Nun wurde die Anlage Erweitert und der zweite Wechselrichter wurde an die RS485-2 angeschlossen und auf der RS485-1 ist weiterhin das SmartMeter.
Nun kann ich die Daten nicht mehr abrufen.
Wie kann man das noch lösen das ich weiterhin an die Daten komme, nur der erste Wechselrichter hat noch einen Lan Anschluss alle anderen komunizieren über die RS485-2 Schnittstelle.Danke für eure Hilfe.
-
@nobody-0
Du kannst über die LAN Schnittstelle die Daten für beide Wechselrichter abrufen. Dazu im Modbusadapter die Option "Mehrere Geräte-IDs" aktivieren. Du hast dann im Bereich HOLDING REGISTER eine neue Spalte "Slave-ID". Hier kannst Du jedes Register einmal für den ersten und einmal für den zweiten Wechselrichter abfragen. Wenn der zweite Wechselrichter mit Modbus ID 2 konfiguriert wurde, dann nimmst Du dort für den zweiten Wechselrichter die Slave-ID 2. -
Hallo zusammen,
habe seit 2 Jahren den Modbus Adapter an meiner SE PV-Anlage im Einsatz.
Die stimmten auch immer mit den Werten aus der solaredge APP überein.
Seit ca. 4 Wochen besitze ich einen BYD Speicher 8 LVS. Meine Register habe ich schon so wie hier im Forum beschrieben erweitert und bekomme auch Daten.
Die passen aber irgendwie überhaupt nicht mehr.
Müssen jetzt alle Daten wie, PV-Leistung; Einspeise- und Bezug, Hausverbrauch, separat berechnet werden??
Oder habe ich evtl. die falschen Register?? -
Ausversehen auf Speichern gekommen
-
@ichderarnd sagte in Solaredge Adapter (Photovoltaikanlage):
Danke für deine Antwort, aber ich kann ja nicht die RS485-5 wieder auf Multi Modbus stellen, dann findet er die anderen Wechselrichter nicht.
Wenn man die auf RS485-2 anschliesst und den ersten als Master Konfiguriert, findet er die anderen als Slave Wechselrichter.Oder muss ich jeden Wechselrichter einen ID Manuell geben und die dann alle auf den RS485-1 anschliessen?
Wechselrichter ID = 1 an RS485-1
Wechselrichter ID = 3 an RS485-1 durchgeschlieffen
Wechselrichter ID = 4 an RS485-1 durchgeschlieffen
Smart Meter ID = 2 an RS485-1 und dann Terminiert als Abschluss?
Dann könnte ich am Ersten Wechselrichter den RS485-2 wieder auf MultiProtokoll stellen statt auf Modbus Master.Danke für Deine Hilfe.
-
@nobody-0
Ich verstehe Dich so, dass Du drei Wechselrichter hast. Einer davon muss wie Du geschrieben hast als RS485 Master konfiguriert sein, ID auf 1 setzen und Terminator ein. Von dort geht es auf den zweiten Wechselrichter mit ID 2, Slave, Terminator aus. Dann weiter auf den dritten Wechselrichter mit ID 3, Slave, Terminator an. Den iobroker schließt Du über LAN MODBUS TCP an den Master Wechselrichter an.
Der Smart Meter kommt an den anderen RS485 Bus des Masters. Auch hier bekommt der Master die ID 1 und der Smart Meter die ID 2. Terminator auf beiden Seiten des Busses ein (die IDs zählen pro Bus).Im Modbus-Adapter des iobrokers kannst Du nun unter ID 1 den Master-Wechselrichter und das SmartMeter auslesen (dazu gibt es separate Register im Master z.B. 40227). Den zweiten Wechselrichter liest Du mit ID 2 und den dritten mit ID 3 aus.
Beispiel:
- WR: 40084 1 I_AC_Power ...
40227 1 M_Exported ... - WR: 40084 2 I_AC_Power ...
- WR: 40084 3 I_AC_Power ...
und das für alle Register...
- WR: 40084 1 I_AC_Power ...
-
@hsjan
Ich hatte dasselbe Problem mit meinen SE10K-RWB48 nachdem ich die Batterien angeschlossen hatte.
Der Hybridwechselrichter hat kein Register, in dem die PV-Leistung abzulesen ist.
Ich habe es nun so gelöst, dass ich mir per Javascript im ioBroker jeweils die Register- modbus.0.holdingRegisters.1.40101_I_DC_Power
- modbus.0.holdingRegisters.1.97717_Battery_1_Instantaneous_Power
bei jeder Änderung merke und jede Sekunde daraus die Summe bilde und als Variable I_DC_PV_Power merke. Falls dabei I_DC_PV_Power wegen kleiner Zeitdifferenzen unter 0 fällt, setze ich es auf 0 um eine negative PV-Leistung zu verhindern.
Dann multipliziere ich I_DC_PV_Power mit 0.98 (Umwandlungsverlust DC -> AC) und runde es auf eine ganze Zahl und erhalte somit einen neuen Wert, den ich in der Variablen I_AC_PV_Power speicher. Dieser Wert gibt mir dann die PC Leistung des SE10K-RWB48 an.
-
vielen Dank, das werde gleich morgen mal nachbauen.
Vielen Dank
....werde berichten. -
@ichderarnd
Die Werte sind immer noch unplausiebel.
Auch wenn die PV aus, ergibt die Berechung ein positiver Wert.
Wobei es keine Sonneneinstrahlung gibt. -
@ichderarnd
Die Werte sind immer noch unplausiebel.
Auch wenn die PV aus, ergibt die Berechung ein positiver Wert.
Wobei es keine Sonneneinstrahlung gibt. -
@hsjan
Welche Werte liest Du denn aus I_DC_Power und Battery_1_Instantaneous_Power in den jeweiligen Anlagenzuständen aus?:- Im Dunkeln, Batterie wird entladen
- Bei Sonne, Batterie wird geladen, keine Einspeisung
- Bei Sonne, Batterie wird geladen, Einspeisung
Den scale factor hast Du sicher berücksichtigt?
-
Sorry, dass ich mich jetzt erst melde.
Den scale factor habe ich berücksichtigt.
• Im Dunkeln, Batterie wird entladen
I_DC_Power 200W und Battery_1_Instantaneous_Power 199W
• Bei Sonne, Batterie wird geladen, keine Einspeisung
I_DC_Power 323W und Battery_1_Instantaneous_Power 477W
• Bei Sonne, Batterie wird geladen, Einspeisung
I_DC_Power 410W und Battery_1_Instantaneous_Power 870W
• Bei Sonne, Batterie wird nicht geladen, Netz Bezug
I_DC_Power 314W und Battery_1_Instantaneous_Power 2040W
Ich hoffe du kannst da was erkennen. -
Guten Morgen,
Hast Du zu diesem Thema eine Lösung gefunden? Bei mir sieht es leider ähnlich aus. Prinzipiell hole ich die Werte der Batterie aus dem Kanal 57716, takte den WR alle 2 s und summiere die Werte in einer Liste für einen definierten Intervallzeitraum auf. Das belastet natürlich das System und ich würde das gerne einfacher gestalten.
57666 Battery Rated Energy Battery Rated Energy Wh floatsw 2 1 0 value true
57716 Batterie Batterie W floatsw 2 1 0 value true
57718 Batterie Lifetime_Exp Batterie Lifetime_Exp Wh uint64le 4 1 0 value true
57722 Batterie Lifetime_Imp Batterie Lifetime_Imp Wh uint64le 4 1 0 value true
57728 Batterie Available Energy Batterie Available Energy Wh floatsw 2 1 value true
57732 Batterielevel Batterielevel % floatsw 2 1 0 value true
57734 Batteriezustand Batteriezustand Batterie Zustand (0 = Aus, 1 = Standby, 2 = Initialisierung, 3 = Laden, 4 = Entladen, 5 = Fehler, 6 = Leerlauf) uint32swVerwendest Du den Kanal 57728? Nach meinen Verständnis sollte dieser die verfügbare Energie in Wh anzeigen, leider bewegt sich dieser bei mir nicht und steht immer bei 11532 Wh. Ich habe einen LG Chem Resu 13 57666 = 13100Wh.
Danke & Vg
-
Moin zusammen,
ich bekomme es einfach nicht hin die erzeugten Energiemengen zu errechnen.
Seit ich den BYD-Speicher installiert habe liegen mir keine Verbrauch- bzw. Erzeugungswert mehr vor. Mit Hilfe von "ichderarnd" habe ich es geschafft die Leistungen zu errechnen und zu visualisieren ab bei den Verbräuchen komme ich nicht weiter.
Über einen Tipp, wie ich vorgehen muss, würde ich mich freuen. -
@hsjan, @Smartuser_1
Ich erfasse im Moment auch nur die aktuellen Leistungen der Wechselrichter, Batterie und am Netzübergabepunkt.
Das Aufzeichnen der Energie mache ich aktuell noch nicht. Dazu importiere ich die Werte im Moment vom Solaredge Monitoring Portal (siehe hier). Das ist allerdings mühsam...Wenn sich das aus den Wattstunden-Registern der Wechselrichter zusammengenommen mit den Batteriewerten nicht ermitteln lässt, dann wäre selbst rechnen aus den Leistungen multipliziert mit der Zeit angesagt. Ich möchte damit gerne zum Jahresanfang starten, hoffentlich finde ich die Zeit.
-
@hsjan Das Problem gibt es beim Zendure Solarflow auch. Hier werden nur die Leistungswerte ausgegeben. Ich habe mir aber dazu ein Blockly geschrieben um einen groben Verbrauchswert zu haben. Ich ermittle dazu einen Mittelwert und multipliziere diesen mit der Zeit seit Produktionsbegin.
-
Hallo zusammen,
Ich habe mir die letzte Hälfte des Threads durchgelesen, muss aber zugeben, dass ich nicht alles verstanden hab. Vielleicht kann mir jemand mit mehr Wissen kurz auf die Sprünge helfen. Ein Bild sagt mehr als 1000 Worte, daher hier die Visualisierung der interessanten Daten (Offset der Daten beachten, Werte stehen in der Legende):
Folgende Daten werden direkt aus dem Modbus ausgelesen (Registerwerte haben bei mir einen Offset von 1 im Modbus):
- AC (Register 40084)
- DC (Register 40101)
- Netzeinspeisung (Register 40207)
- Batterieladeleistung (BYD Akku, Register 102837)
Die anderen Werte werden daraus wie folgt berechnet:
- Sonnenenergie = AC + Batterieladeleistung + Netzeinspeisung
- Gebäudeverbrauch = Sonnenenergie - Batterieladeleistung - Netzeinspeisung (was am Ende bedeutet, dass der Gebäudeverbrauch = AC ist)
Nun meine Fragen:
-
Die Sonnenenergie wird teilweise negativ. Das kommt bei meiner Berechnung daher, dass die Batterieladeleistung nachts Null ist und die Netzeinspeisung negativ, sprich Strom wird aus dem Netz bezogen. Reicht es, Werte <0 hart auf 0 zu setzen oder habe ich einen Fehler in meiner Berechnung?
-
Der Gebäudeverbrauch ist nachts 0. Das kann aber nicht stimmen, denn nachts verbrauchen wir natürlich auch Strom. Ich denke, dass der Verbrauch nicht richtig bestimmt wird, sprich er ist nicht gleich AC?
-
Und letztendlich noch zu den heftigen Ausschlägen - hier gab es ja diverse Ansätze mit Abfrage der Werte zu unterschiedlichen Zeiten etc. Hat sich hier über die Zeit etwas herauskristallisiert, was das Problem am besten behebt?
Danke für die Hilfe schon mal im Voraus!
Edit: Ich denke, ich hatte einen Fehler in der Berechnung. Ich habe es noch mal angepasst, mal sehen, wie sich die Werte jetzt entwickeln:
Edit2: Auch jetzt stimmen die Werte nicht. Jetzt ergibt sich manchmal ein negativer Verbrauch.
Edit3: So, ich denke, jetzt hab ich es:
-
Hallo.
Seit heute habe ich einen SE10K-RWS und eine BYD BatterieBox LVS 8.0
Habe momentan Probleme, dass ich den Hausverbrauch richtig hinbekomme.
Welche Lösungen habt ihr in diesem Zusammenhang.Ein zweites Problem:
Ich bekomme bei den beiden Parametern irgendwelche extrem hohen Werte über Modbus
Funktionieren diese mit BYD LVS nicht oder weiß jemand was ich machen muss, damit diese WErte richtig im MOdbus ankommen.57718 Batterie Lifetime_Exp Batterie Lifetime_Exp Wh uint64le 4 1 0 value true
57722 Batterie Lifetime_Imp Batterie Lifetime_Imp Wh uint64le 4 1 0 value trueDANKE.
-
@manfredhi Woher hast du denn diese Register? Ich habe die gleiche Kombination (allerdings mit LVS 20) und verwende diese Register:
_address name description unit type len factor offset formula role room poll wp cw isScale 97709 Batt1_Avg_T Batterie 1 Average Temperature °C floatsw 2 1 0 level true false false false 101697 CommitSettings Commit Power Control Settings uint16be 1 1 0 level true false false false 101698 Restore Power Control Default Settings Restore Power Control Default Settings uint16be 1 1 0 level true false false false 101701 ReactivePwrConfig ReactivePwrConfig uint32sw 2 1 0 level true false false false 101761 PowerReduce PowerReduce floatsw 2 1 0 level true false false false 101763 AdvancedPwrControlEn AdvancedPwrControlEn uint32sw 2 1 0 level true false false false 102721 Battery 1 Manufacturer Name Battery 1 Manufacturer Name string 8 1 0 level true false false false 102737 Battery 1 Model Battery 1 Model string 16 1 0 level true false false false 102753 Battery 1 Firmware Version Battery 1 Firmware Version string 16 1 0 level true false false false 102769 Battery 1 Serial Number Battery 1 Serial Number string 16 1 0 level true false false false 102787 Batt Rated Energy Batt Rated Energy Wh floatsw 2 1 0 level true false false false 102789 Battery 1 Max Charge Continues Power Battery 1 Max Charge Continues Power W floatsw 2 1 0 level true false false false 102791 Battery 1 Max Discharge Continues Power Battery 1 Max Discharge Continues Power W floatsw 2 1 0 level true false false false 102829 Batt1_Avg_T Batterie 1 Average Temperature °C °C floatsw 2 1 0 level true false false false 102837 Speicher_Ladung Speicher Ladeleistung W floatsw 2 1 0 level true false false false 102839 xBattery 1 Lifetime Export Energy Counter Battery 1 Lifetime Export Energy Counter Wh uint64le 4 1 0 value true false false false 102843 xBattery 1 Lifetime Import Energy Counter Battery 1 Lifetime Import Energy Counter Wh uint64le 4 1 0 value true false false false 102847 Battery 1 Max Energy Battery 1 Max Energy Wh floatsw 2 1 0 level true false false false 102849 Battery 1 Available Energy Battery 1 Available Energy Wh floatsw 2 1 0 level true false false false 102851 Speicher_SoH Batterie Alterung % floatsw 2 1 0 level true false false false 102853 Speicher_SoC Batterieladung % floatsw 2 1 0 level true false false false 102855 Speicher_Betriebszustand 1: Aus, 3: Laden, 4: Entladen, 6: Erhaltungsladen uint32sw 2 1 0 level true false false false 102857 Battery 1 Status Internal Battery 1 Status Internal uint32sw 2 1 0 level true false false false 102859 Battery 1 Events Log Battery 1 Events Log uint32sw 2 1 0 level true false false false 102867 Battery 1 Events Log Internal Battery 1 Events Log Internal uint32sw 2 1 0 level true false false false 103233 Export Control Mode Export Control Mode uint16be 1 1 0 level true false false false 103234 Export Control Limit Mode Export Control Limit Mode uint16be 1 1 0 level true false false false 103235 Export Control Site Limit Export Control Site Limit floatsw 2 1 0 level true false false false 103237 Str Storage control mode uint16be 1 1 0 level true false false false 103238 Storage_AC_Charge_Policy_RW 0: Disable, 1: Always allowed , 2: Fixed Energy Limit uint16be 1 1 0 level true false false false 103239 Storage AC Charge Limit Storage AC Charge Limit % floatsw 2 1 0 level true false false false 103241 Storage_Backup_Reserved_Setting Storage Backup Reserved Setting % floatsw 2 1 0 level true false false false 103243 StChDisChMode Storage Charge/Discharge Mode uint16be 1 1 0 level true false false false 103244 Timeout Timout sec uint32sw 2 1 0 level true false false false 103246 Remote Control Command Mode RW Remote Control Command Mode RW uint16be 1 1 0 level true false false false 103247 Remote Control Charge Limit Remote Control Charge Limit W floatsw 2 1 0 level true false false false 103249 Remote Control Command Discharge Limit Remote Control Command Discharge Limit W floatsw 2 1 0 level true false false false 40001 C_SunSpec_ID "Wert = ""SunS"" (0x53756e53). Identifiziert dies eindeutig als eine SunSpec Modbus-Karte" uint32be 2 1 0 true false false false 40003 C_SunSpec_DID Wert = 0x0001. Identifiziert dies eindeutig als einen SunSpec “Common Block“ uint16be 1 1 0 true false false false 40004 C_SunSpec_Länge 65 = Länge eines Blocks in 16-bit Registern uint16be 1 1 0 true false false false 40005 C_Hersteller "Bei SunSpec eingetragener Wert = ""SolarEdge""" string 16 1 0 true false false false 40021 C_Modell Spezifischer SolarEdge Wert string 16 1 0 true false false false 40045 C_Version Spezifischer SolarEdge Wert string 8 1 0 true false false false 40053 C_Seriennummer Eindeutiger SolarEdge Wert string 16 1 0 true false false false 40069 C_DeviceAddress MODBUS Unit ID uint16be 1 1 0 true false false false 40070 C_SunSpec_DID 101 = Einphasig, 102 = Spaltphase, 103 = Dreiphasig uint16be 1 1 0 true false false false 40072 I_AC_Strom AC-Gesamtstromwert A uint16be 1 1 0 x * Math.pow(10, sf['40076']) true false false false 40073 I_AC_StromA AC-Phase A (L1) Stromwert A uint16be 1 1 0 x * Math.pow(10, sf['40076']) true false false false 40074 I_AC_StromB AC-Phase B (L2) Stromwert A uint16be 1 1 0 x * Math.pow(10, sf['40076']) true false false false 40075 I_AC_StromC AC-Phase C (L3) Stromwert A uint16be 1 1 0 x * Math.pow(10, sf['40076']) true false false false 40076 I_AC_Strom_SF AC-Strom Skalierungsfaktor SF int16be 1 1 0 true false false true 40084 I_AC_Leistung AC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40085']) true false false false 40085 I_AC_Leistung_SF AC-Leistung Skalierungsfaktor SF int16be 1 1 0 true false false true 40088 I_AC_VA Scheinleistung VA uint16be 1 1 0 x * Math.pow(10, sf['40089']) true false false false 40089 I_AC_VA_SF Scheinleistung Skalierungsfaktor SF int16be 1 1 0 true false false true 40090 I_AC_VAR Blindleistung VAR uint16be 1 1 0 x * Math.pow(10, sf['40091']) true false false false 40091 I_AC_VAR_SF Blindleistung Skalierungsfaktor SF int16be 1 1 0 true false false true 40092 I_AC_PF Leistungsfaktor % uint16be 1 1 0 x * Math.pow(10, sf['40093']) true false false false 40093 I_AC_PF_SF Leistungsfaktor Skalierungsfaktor SF int16be 1 1 0 true false false true 40094 I_AC_Energie_WH AC Gesamt-Energieproduktion kWh uint32be 2 1 0 x * Math.pow(10, sf['40096'] - 3) true false false false 40096 I_AC_Energie_WH_SF AC Gesamtenergie Skalierungsfaktor SF uint16be 1 1 0 true false false true 40097 I_DC_Strom DC-Stromwert A uint16be 1 1 0 x * Math.pow(10, sf['40098']) true false false false 40098 I_DC_Strom_SF DC-Strom Skalierungsfaktor SF int16be 1 1 0 true false false true 40099 I_DC_Spannung DC-Spannungswert V uint16be 1 1 0 x * Math.pow(10, sf['40100']) true false false false 40100 I_DC_Spannung_SF DC-Spannung Skalierungsfaktor SF int16be 1 1 0 true false false true 40101 I_DC_Leistung DC-Leistungswert W uint16be 1 1 0 x * Math.pow(10, sf['40102']) true false false false 40102 I_DC_Leistung_SF DC-Leistung Skalierungsfaktor SF int16be 1 1 0 true false false true 40104 I_Temp_Kühler Kühlkörpertemperatur °C uint16be 1 1 0 x * Math.pow(10, sf['40107']) true false false false 40107 I_Temp_SF Kühlkörpertemperatur Skalierungsfaktor SF int16be 1 1 0 true false false true 40108 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 true false false false 40109 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 true false false false 40124 C_Manufacturer Meter manufacturer string 32 1 0 true false false false 40140 C_Model Meter model string 32 1 0 true false false false 40156 C_Option Export + Import, Production, consumption string 16 1 0 true false false false 40191 M_AC_Current AC Current (sum of active phases) A uint16be 1 1 0 x * Math.pow(10, sf['40195']) true false false false 40192 M_AC_Current_A Phase A AC Current A uint16be 1 1 0 x * Math.pow(10, sf['40195']) true false false false 40193 M_AC_Current_B Phase B AC Current A uint16be 1 1 0 x * Math.pow(10, sf['40195']) true false false false 40194 M_AC_Current_C Phase C AC Current A uint16be 1 1 0 x * Math.pow(10, sf['40195']) true false false false 40195 M_AC_Current_S F AC Current Scale Factor SF int16be 1 1 0 true false false true 40207 M_AC_Power Total Real Power (sum of active phases) W int16be 1 1 0 x * Math.pow(10, sf['40211']) true false false false 40211 M_AC_Power_SF AC Real Power Scale Factor SF int16be 1 1 0 true false false true 40221 M_AC_PF Average Power Factor (average of active phases) % uint16be 1 1 0 x * Math.pow(10, sf['40226']) true false false false 40226 M_AC_PF_SF AC Power Factor Scale Factor SF int16be 1 1 0 true false false true 40227 M_Exported Total Exported Real Energy kWh uint32be 2 1 0 x * Math.pow(10, sf['40243'] - 3) true false false false 40235 M_Imported Total Imported Real Energy kWh uint32be 2 1 0 x * Math.pow(10, sf['40243'] - 3) true false false false 40243 M_Energy_W_SF Real Energy Scale Factor SF int16be 1 1 0 true false false true
Edit: Die Berechnungen zu Verbrauch und die zugehörigen Register findest du in meinem Post darüber.
-
@guitardoc
Die von @manfredhi sind die gleichen wie diese:
102839 xBattery 1 Lifetime Export Energy Counter Battery 1 Lifetime Export Energy Counter Wh uint64le 4 1 0 value true false false false
102843 xBattery 1 Lifetime Import Energy Counter Battery 1 Lifetime Import Energy Counter Wh uint64le 4 1 0Falls du noch mehr Register brauchst...
Die funktioniern bei mir auch:
101699 PwrFrqDeratingConfig PwrFrqDeratingConfig uint32sw 2 1 0 level true false false false
102209 Enable Dynamic Power Control Enable Dynamic Power Control uint16be 1 1 0 level true false false false
102221 Active Power Limit Active Power Limit W floatsw 2 1 0 level true false false false
102223 Reactive Power Limit Reactive Power Limit W floatsw 2 1 0 level true false false false
102225 Command Timeout Command Timeout Sec uint32sw 2 1 0 level true false false false