NEWS
Solaredge PV-Produktion mit SE Home Battery - GELÖST
-
@homoran sagte in Solaredge PV-Produktion mit SE Home Battery ermitteln:
ein Bild scheint zu fehlen
Vielleicht steht es da drin.
Aber noch besser bitte als Text in code-tags. Dann ist es auch lesbar
-
_address deviceId name description unit type len factor offset formula role room poll wp cw isScale 40083 1 Power I_AC_Power W uint16be 1 1 0 x * Math.pow(10, sf['40084']) value true false false false 40084 1 PowerSF I_AC_Power_SF int16be 1 1 0 state true false false true 40100 1 DCPower I_DC_Power W int16be 1 1 0 "x * Math.pow(10, sf['40101']) " value true false false false 40101 1 DCPowerSF I_DC_Power_SF int16be 1 1 0 state true false false true 40206 1 MeterPowerTotal M_AC_Power W int16be 1 1 0 value true false false false 40210 1 MeterPowerSF M_AC_Power_SF int16be 1 1 0 state true false false false 40226 1 MeterEnergyExportedTotal M_Exported Wh uint32be 2 1 0 value true false false false 40234 1 MeterEnergyImportedTotal M_Imported Wh uint32be 2 1 0 value true false false false 40242 1 MeterEnergySF M_Energy_W_SF int16be 1 1 0 state true false false false
MOD-EDIT: Code in code-tags gesetzt!
-
@joerg sagte in Solaredge PV-Produktion mit SE Home Battery ermitteln:
Die Holdingregister-Adressen habe ich vom githubuser/content weitestgehend übernommen. Dort gibt es keine Vorgaben/Infos für die Eingangsregister.
die müsstest du vom Hersteller bekommen.
was hat GitHub damit zu tun?Holding Register (>40000) sind promär zum Schreiben gedacht. Natürlich kann man die Auch auslesen.
InputRegister sind nur zum lesen und luegen normal bei 30000(+)Ich kann mit den kryptischen Bezeichnungen nichts finden, was auf PV Produktion hindeutet.
wenn
@joerg sagte in Solaredge PV-Produktion mit SE Home Battery ermitteln:Der Energiezähler ist über RS485 an den WR im Zählerkasten angeschlossen
angeschlossen ist sollte er auch nur die PV Werte liefern.
oder ist das ein Hybrid WR mit angeschlossener HV Batterie?@joerg sagte in Solaredge PV-Produktion mit SE Home Battery ermitteln:
erhalte ich immer nur den aktuellen "Verbrauch im Haus".
wie der WR bei der von dir beschriebenen Konfiguration an deinen Hausverbrauch kommen soll, ist mir allerdings schleierhaft.
-
@joerg sagte in Solaredge PV-Produktion mit SE Home Battery ermitteln:
Ich versuche es noch einmal
Aus folgenden Holdingregistern "lese" ich die Werte:40083: wenn Batterie nicht geladen wird / kein Netzbezug: PV-Produktion ---- aber wenn Batterie geladen wird / bei Netzbezug: Verbrauchsleistung Haus!!!
40100: wie 40083 (Werte sind etwas höher)
40093: AC Gesamt-Energieproduktion PV in Wh (ist richtig!)
40206: Einspeisung oder Netzbezug (ist richtig!)MIr fehlt also der aktuelle Wert der PV-Produktion (wenn Batterie geladen wird) und die Lade/-Entladeleistung der Batterie.
Wie kann ich diese ermitteln? Welche Werte können/sollten in den Inputregistern definiert werden?ich fürchte du interpretierst da etwas rein, wasxes so nicht gibt, oder ich verstehe dich überhaupt nicht.
Habe mal eben gegoogelt und anscheinend die Liste der Register direkt von Solaredge gefunden
https://knowledge-center.solaredge.com/sites/kc/files/sunspec-implementation-technical-note.pdfDa ich überhaupt keine Ahnung von deren Produkten und Bezeichnungen habe, hilft mir das allerdings nicht
-
Da habe ich auch lange daran gesessen.
Zuerst musst du den I_AC korrekt mit I_AC_SF berechnen, also den Faktor.
Anschließend musst du die aktuelle Leistung der Batterie dazu addieren.
Die sind nicht dokumentiert. Bei mir sind die im Register 102837_B_DC_Power. Das ist aber wohl abhängig von der Batterie. -
@homoran
ja, das ist die techn. Spezifikation von Solaredge. Ich habe mich an den SE-Support gewandt, um Infos über die benötigten Register zu erhalten.
Vielen Dank für Deine Unterstützung! -
@achbz
Danke für Deinen Beitrag. Habe direkt mal "Dein" Register ausprobiert - klappt leider nicht. Ist sehr wahrscheinlich vom Batterietyp abhängig. Werde jetzt mal bei Solaredge nachhaken. -
habe nun einen speziellen Solaredge-Modbus-Adapter (Solaredge-Modbus) "entdeckt". Hier funktioniert alles bestens.
Ich musste nur ein paar spezielle Berechnungen vornehmen, um die PV-Erzeugung und den Verbrauch richtig zu ermitteln. Wichtig war, dass die Werte der Batterie hier richtig gelesen werden. -
@joerg Hi Jörg, wie hast du es den jetzt endgültig gelöst? Du schreibst von einem Modbus Adapter. Kannste mir hier mal auf die Sprünge helfen?
-
@joerg Hi, mich würde auch die Lösung interessieren. Mir fehlen auch die Registeradressen meiner Solaredge Batterie.
-
Hab bisher leider auch keinen Passenden speziellen modbus adapter gefunden welcher funktioniert mit der SE-Home Batterie.
Ich hätte zwar im folgenden link die Register vom Storegde Modul, die kann ich aber mit dem Modbus Adapter nicht auslesen und hab somit auch keine Ahnung wie ich diese auslesen kann.
https://www.photovoltaikforum.com/core/attachment/88445-power-control-open-protocol-for-solaredge-inverters-pdf/ -
So hab es nun geschafft, man muss die Hex werte in Dezimalzhalen umwandeln..., dann bekommt man auch ein Ergebnis. anbei die Holding Register für die SE Home Batterie, bei Lifetime In-Export passen die werte noch nicht.
62720 Battery 1 Manufacturer Name Battery 1 Manufacturer Name string 6 1 0 state true false false false 62736 Battery 1 Model Battery 1 Model string 16 1 0 state true false false false 62768 Battery 1 Serial Number Battery 1 Serial Number string 16 1 0 state true false false false 62788 Battery 1 Max Charge Continues Power Battery 1 Max Charge Continues Power W floatsw 2 1 0 state true false false false 62790 Battery 1 Max Discharge Continues Battery 1 Max Discharge Continues Power Battery 1 Max Discharge Continues Power W floatsw 2 1 0 state true false false false 62828 Battery 1 Average Temperature Battery 1 Average Temperature °C floatsw 2 1 0 state true false false false 62830 Battery 1 Max Temperature Battery 1 Max Temperature °C floatsw 2 1 0 state true false false false 62832 Battery 1 Instantaneous Voltage Battery 1 Instantaneous Voltage V floatsw 2 1 0 state true false false false 62834 Battery 1 Instantaneous Current Battery 1 Instantaneous Current A floatsw 2 1 0 state true false false false 62836 Battery 1 Instantaneous Power Battery 1 Instantaneous Power W floatsw 2 1 0 state true false false false 62838 Battery 1 Lifetime Export Energy Counter Battery 1 Lifetime Export Energy Counter Wh uint64le 4 1 0 state true false false false 62842 Battery 1 Lifetime Import Energy Counter Battery 1 Lifetime Import Energy Counter Wh uint64be 4 1 0 state true false false false 62846 Battery 1 Max Energy Battery 1 Max Energy Wh floatsw 2 1 0 state true false false false 62848 Battery 1 Available Energy Battery 1 Available Energy Wh floatsw 2 1 0 state true false false false 62850 Battery 1 State of Health (SOH) Battery 1 State of Health (SOH) % floatsw 2 1 0 state true false false false 62852 Battery 1 Charge level Battery 1 Charge level floatbe 2 1 0 state true false false false
-
@kalchi sagte in Solaredge PV-Produktion mit SE Home Battery - GELÖST:
man muss die Hex werte in Dezimalzhalen umwandeln...,
das wollte ich dir heute morgen schon schreiben, hielt das aber für zu banal.
Sorry! -
@homoran naja, blutiger Anfänger halt, aber ich hoffe die Register sind jemanden geholfen, bisher hab ich die noch nirgendwo gefunden außer im PV forum.
-
@joki1968 ich verwende diesen: https://github.com/joergspoerl/ioBroker.solaredge-modbus.git
-
@ajk ich verwende diesen: https://github.com/joergspoerl/ioBroker.solaredge-modbus.git
-
@joerg
Hallo Jörg, mit diesem Adapter bekommt man die Batteriedaten ausgelesen? Wenn ja, wie bekomme ich den in iobroker installiert?Gruß,
Marcus -
diese Registeradressen passen bei mir nicht. Wie hast du die ermittelt?
-
In folgendem Dokument Seite 19 Stehen die Register, diese müssen aber erst von Hex auf Dezimal umgerechnet werden.
https://www.photovoltaikforum.com/core/attachment/88445-power-control-open-protocol-for-solaredge-inverters-pdf/BG, Mario
-
@kalchi
nicht wirklich... Unterlage kenn ich und hatte auch schon versucht, die Register umzurechnen. Ich glaube, es kommt noch auf die Batterie drauf an. In meinem Fall ist es eine DC Batterie (SolarEdge Home Battery 9.2kWh) und das sind meine Register:_address name description unit type len factor offset formula role room poll wp cw isScale 97601 Batt1_Manufacturer string 8 1 0 true false false false 97617 Batt1_Model string 16 1 0 true false false false 97633 Batt1_Firmware string 16 1 0 true false false false 97649 Batt1_Serial string 16 1 0 true false false false 97665 Batt1_ID Device ID uint16be 1 1 0 true false false false 97667 Batt1_RatedEnergy Nennenergie kWh floatsw 2 1 0 x * Math.pow(10, -3) true false false false 97669 Batt1_MaxChargeConPower Max. Ladeleistung Fortlaufend W floatsw 2 1 0 true false false false 97671 Batt1_MaxDischargeConPower Max. Entladeleistung Fortlaufend W floatsw 2 1 0 true false false false 97673 Batt1_MaxChargePower Max. Ladeleistung W floatsw 2 1 0 true false false false 97675 Batt1_MaxDischargePower Max. Entladeleistung W floatsw 2 1 0 true false false false 97709 Batt1_AverageTemp Durchschnittstemperatur °C floatsw 2 1 0 true false false false 97711 Batt1_MaxTemp Maximale Temperatur °C floatsw 2 1 0 true false false false 97713 Batt1_Voltage Aktuelle Spannung V floatsw 2 1 0 true false false false 97715 Batt1_Current Aktueller Strom Minus = Laden; Plus = Entladen A floatsw 2 1 0 true false false false 97717 Batt1_Power Aktuelle Leistung Minus = Entladen; Plus = Laden W floatsw 2 1 0 true false false false 97719 Batt1_TestExport gesamt Exportierte Energie - heute? kWh uint64le 4 1 0 x * Math.pow(10, -3) true false false false 97723 Batt1_TestImport gesamt Importierte Energie - heute? kWh uint64le 4 1 0 x * Math.pow(10, -3) true false false false 97727 Batt1_MaxEnergy Maximale Ladung kWh floatsw 2 1 0 x * Math.pow(10, -3) true false false false 97729 Batt1_AvailableEnergy Nutzbare Ladung kWh floatsw 2 1 0 x * Math.pow(10, -3) true false false false 97731 Batt1_StateOfHealth Lebenszustand % floatsw 2 1 0 true false false false 97733 Batt1_StateOfCharge Ladezustand % floatsw 2 1 0 true false false false 97735 Batt1_Status Battery operating state: 0 – Off; 1 – Standby; 2 – Init; 3 – Charge; 4 – Discharge; 5 – Fault; 7 - Idle uint32sw 2 1 0 true false false false 97737 Batt1_StatusIntern Vendor-defined status codes. uint32sw 2 1 0 true false false false 97739 Batt1_EventLog Battery vendor's last fault ID uint16le 1 1 0 true false false false 101697 CommitSettings Commit Power Control Settings uint16be 1 1 0 level true false false false 101701 ReactivePwrConfig ReactivePwrConfig uint32sw 2 1 0 level true false false false 101763 AdvancedPwrControlEn AdvancedPwrControlEn uint32sw 2 1 0 level true false false false 103237 StCtrlMode 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 103241 Storage_Backup_Reserved_Setting_RW floatsw 2 1 0 level true false false false 103243 StChDisChMode Storage Charge/Discharge Default Mode uint16be 1 1 0 level true false false false 103244 Timeout Timout sec uint32sw 2 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 40001 SunSpecID C_SunSpec_ID uint32be 2 1 0 state true false false false 40003 SunSpecDID C_SunSpec_DID uint16be 1 1 0 state true false false false 40004 SunSpecLength C_SunSpec_Length uint16be 1 1 0 state true false false false 40005 Manufacturer C_Manufacturer string 16 1 0 state true false false false 40021 Model C_Model string 16 1 0 state true false false false 40045 Version C_Version string 8 1 0 state true false false false 40053 SerialNumber C_SerialNumber string 16 1 0 state true false false false 40069 DeviceAddress C_DeviceAddress uint16be 1 1 0 state true false false false 40070 PhaseTypes C_SunSpec_DID uint16be 1 1 0 state true false false false 40071 SunSpecLength C_SunSpec_Length uint16be 1 1 0 state true false false false 40072 CurrentTotal I_AC_Current A uint16be 1 1 0 x = x * Math.pow(10, sf['40076']) value true false false false 40073 CurrentL1 I_AC_CurrentA A uint16be 1 1 0 x = x * Math.pow(10, sf['40076']) value true false false false 40074 CurrentL2 I_AC_CurrentB A uint16be 1 1 0 x = x * Math.pow(10, sf['40076']) value true false false false 40075 CurrentL3 I_AC_CurrentC A uint16be 1 1 0 x = x * Math.pow(10, sf['40076']) value true false false false 40076 CurrentSF I_AC_Current_SF int16be 1 1 0 state true false false true 40080 VoltageL1N I_AC_VoltageAN V uint16be 1 1 0 x = x * Math.pow(10, sf['40083']) value true false false false 40081 VoltageL2N I_AC_VoltageBN V uint16be 1 1 0 x = x * Math.pow(10, sf['40083']) value true false false false 40082 VoltageL3N I_AC_VoltageCN V uint16be 1 1 0 x = x * Math.pow(10, sf['40083']) value true false false false 40083 VoltageSF I_AC_Voltage_SF int16be 1 1 0 state true false false true 40084 Power I_AC_Power W uint16be 1 1 0 x = x * Math.pow(10, sf['40085']) value true false false false 40085 PowerSF I_AC_Power_SF int16be 1 1 0 state true false false true 40086 Frequency I_AC_Frequency Hz uint16be 1 1 0 x = x * Math.pow(10, sf['40087']) value true false false false 40087 FrequencySF I_AC_Frequency_SF int16be 1 1 0 state true false false true 40088 VA I_AC_VA VA int16be 1 1 0 x = x * Math.pow(10, sf['40089']) value true false false false 40089 VASF I_AC_VA_SF int16be 1 1 0 state true false false true 40090 VAR I_AC_VAR VAR int16be 1 1 0 x = x * Math.pow(10, sf['40091']) value true false false false 40091 VARSF I_AC_VAR_SF int16be 1 1 0 state true false false true 40092 PF I_AC_PF % int16be 1 1 0 x = x * Math.pow(10, sf['40093']) value true false false false 40093 PFSF I_AC_PF_SF int16be 1 1 0 state true false false true 40094 TotalEnergy I_AC_Energy_WH Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40096']) value true false false false 40096 TotalEnergySF I_AC_Energy_WH_SF int16be 1 1 0 state true false false true 40097 DCCurrent I_DC_Current A uint16be 1 1 0 x = x * Math.pow(10, sf['40098']) value true false false false 40098 DCCurrentSF I_DC_Current_SF int16be 1 1 0 state true false false true 40099 DCVoltage I_DC_Voltage V uint16be 1 1 0 x = x * Math.pow(10, sf['40100']) value true false false false 40100 DCVoltageSF I_DC_Voltage_SF int16be 1 1 0 state true false false true 40101 DCPower I_DC_Power W int16be 1 1 0 x = x * Math.pow(10, sf['40102']) value true false false false 40102 DCPowerSF I_DC_Power_SF int16be 1 1 0 state true false false true 40104 Temp I_Temp_Sink °C int16be 1 1 0 x = x * Math.pow(10, sf['40107']) state true false false false 40107 TempSF I_Temp_SF int16be 1 1 0 value true false false true 40108 Status I_Status uint16be 1 1 0 state true false false false 40109 StatusVendor I_Status_Vendor uint16be 1 1 0 state true false false false 40140 MeterModel M_C_Model string 16 1 0 state true false false false 40164 MeterVersion M_C_Version string 8 1 0 state true false false false 40172 MeterSerialNumber M_C_SerialNumber string 16 1 0 state true false false false 40191 MeterCurrentTotal M_AC_Current A int16be 1 1 0 x = x * Math.pow(10, sf['40195']) value true false false false 40192 MeterCurrentL1 M_AC_Current_A A int16be 1 1 0 x = x * Math.pow(10, sf['40195']) value true false false false 40193 MeterCurrentL2 M_AC_Current_B A int16be 1 1 0 x = x * Math.pow(10, sf['40195']) value true false false false 40194 MeterCurrentL3 M_AC_Current_C A int16be 1 1 0 x = x * Math.pow(10, sf['40195']) value true false false false 40195 MeterCurrentSF M_AC_Current_SF int16be 1 1 0 state true false false true 40196 MeterVoltageLN M_AC_Voltage_L_N V int16be 1 1 0 x = x * Math.pow(10, sf['40204']) value true false false false 40197 MeterVoltageL1N M_AC_Voltage_A_N V int16be 1 1 0 x = x * Math.pow(10, sf['40204']) value true false false false 40198 MeterVoltageL2N M_AC_Voltage_B_N V int16be 1 1 0 x = x * Math.pow(10, sf['40204']) value true false false false 40199 MeterVoltageL3N M_AC_Voltage_C_N V int16be 1 1 0 x = x * Math.pow(10, sf['40204']) value true false false false 40204 MeterVoltageSF M_AC_Voltage_SF int16be 1 1 0 state true false false true 40205 MeterFrequency M_AC_Freq Hz int16be 1 1 0 x = x * Math.pow(10, sf['40206']) value true false false false 40206 MeterFrequencySF M_AC_Freq_SF int16be 1 1 0 state true false false true 40207 MeterPowerTotal M_AC_Power W int16be 1 1 0 x = x * Math.pow(10, sf['40211']) value true false false false 40208 MeterPowerL1 M_AC_Power_A W int16be 1 1 0 x = x * Math.pow(10, sf['40211']) value true false false false 40209 MeterPowerL2 M_AC_Power_B W int16be 1 1 0 x = x * Math.pow(10, sf['40211']) value true false false false 40210 MeterPowerL3 M_AC_Power_C W int16be 1 1 0 x = x * Math.pow(10, sf['40211']) value true false false false 40211 MeterPowerSF M_AC_Power_SF int16be 1 1 0 state true false false true 40212 MeterApparentPowerTotal M_AC_VA VA int16be 1 1 0 x = x * Math.pow(10, sf['40216']) value true false false false 40213 MeterApparentPowerL1 M_AC_VA_A VA int16be 1 1 0 x = x * Math.pow(10, sf['40216']) value true false false false 40214 MeterApparentPowerL2 M_AC_VA_B VA int16be 1 1 0 x = x * Math.pow(10, sf['40216']) value true false false false 40215 MeterApparentPowerL3 M_AC_VA_C VA int16be 1 1 0 x = x * Math.pow(10, sf['40216']) value true false false false 40216 MeterApparentPowerSF M_AC_VA_SF int16be 1 1 0 state true false false true 40217 MeterReactivePowerTotal M_AC_VAR VAR int16be 1 1 0 x = x * Math.pow(10, sf['40221']) value true false false false 40218 MeterReactivePowerL1 M_AC_VAR_A VAR int16be 1 1 0 x = x * Math.pow(10, sf['40221']) value true false false false 40219 MeterReactivePowerL2 M_AC_VAR_B VAR int16be 1 1 0 x = x * Math.pow(10, sf['40221']) value true false false false 40220 MeterReactivePowerL3 M_AC_VAR_C VAR int16be 1 1 0 x = x * Math.pow(10, sf['40221']) value true false false false 40221 MeterReactivePowerSF M_AC_VAR_SF int16be 1 1 0 state true false false true 40227 MeterEnergyExportedTotal M_Exported Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40229 MeterEnergyExportedL1 M_Exported_A Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40231 MeterEnergyExportedL2 M_Exported_B Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40233 MeterEnergyExportedL3 M_Exported_C Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40235 MeterEnergyImportedTotal M_Imported Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40237 MeterEnergyImportedL1 M_Imported_A Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40239 MeterEnergyImportedL2 M_Imported_B Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40241 MeterEnergyImportedL3 M_Imported_C Wh uint32be 2 1 0 x = x * Math.pow(10, sf['40243']) value true false false false 40243 MeterEnergySF M_Energy_W_SF int16be 1 1 0 state true false false true
trotzdem danke für deine Antwort.