solaredge_modbus icon indicating copy to clipboard operation
solaredge_modbus copied to clipboard

active_power_limit

Open dmaunder opened this issue 4 years ago • 5 comments

Does anybody understand how to use/interpret the value "active_power_limit" field that is returned in the json data? It is an integer between 1 and 100. It seems to be related to setting an Export Limit. eg I have a 10kw inverter, and the export limit is set to 5kw. If it is (probably) generating 10kw and exporting 5kw, it will have a value of 50, if it is generating under 5kw, it will have a value of 100. If it is between 5 and 10kw, but it is all being used, ie none is being curtailed, then it will also show 100. I would have thought dividing the AC Power value by this number would show the uncurtailed value, but it doesnt seem to quite work that way. It isnt in the Sunspec documentation either.

dmaunder avatar Nov 30 '21 05:11 dmaunder

If you set for example this F001 parameter to 1%, actually power drops to 1% of nominal photovoltaic power value. If you can not supply back to grid, according value to zero grid feeding you can dynamically reduce power. Similar on Fronius inverter with native smart meter.

Jusufs avatar Oct 15 '22 16:10 Jusufs

I wouldn't recommend to adjust the power setting, but to instead adjust the export limit via modbus instead.

Adjusting the export control limit option is more accurate in terms of wattage and the inverters do their magic.

Changing the active power percentage, will adjust the output of the inverter to whatever you set it to, which can cause your household to begin pulling from the grid if you set it too low.

herbi3 avatar Dec 04 '23 09:12 herbi3

Agree with herbi3 that it's better to let the inverter do this work but then the inverter should have some metering. Is there an example available about how to implement writing this F001 or similar registers like export limit? I don't see a possibility to write registers in this solaredge_modbus-package at this moment.

PeterVermaas avatar Apr 17 '24 21:04 PeterVermaas

Agree with herbi3 that it's better to let the inverter do this work but then the inverter should have some metering. Is there an example available about how to implement writing this F001 or similar registers like export limit? I don't see a possibility to write registers in this solaredge_modbus-package at this moment.

@PeterVermaas apologies, I didn't see your reply. once the inverter is set, you can use inverter.write("export_control_site_limit", 0) this will set 0W as the site limit, the default is "11400" for maximum output. ensure inverter.write("export_control_mode", 1) is enabled. ("1" for export limit, "4" for production limit)

I recommend keeping the export_control_mode set to 1 or 4. and when an export limit is needed, then to lower the value from 11400 to your choosing, then after reset it back to 11400.

currently, with inverter.write for these specific settings only, there is an endian issue for these registers, try modifying the __init__.py ive mentioned elsewhere. Once you've done that, then set StorageInverter as the same you would for inverter now, storage = solaredge_modbus.StorageInverter(parent=inverter, unit=type) this does has all the settings for that require little endian.

then use storage.write("export_control_mode", 1) and storage.write("export_control_site_limit", 0)

herbi3 avatar May 21 '24 11:05 herbi3