LogicMachine Forum
Solaredge Control of inverter power output - Printable Version

+- LogicMachine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8)
+--- Thread: Solaredge Control of inverter power output (/showthread.php?tid=5326)



Solaredge Control of inverter power output - gjniewenhuijse - 27.03.2024

Is there a way to control the Solaredge inverter power output from the LM?

I like to limiting or completely shutting down the power output. For example in case of a dynamic energy contract in periods with a negative energy price.

See: home-assistant-solaredge-modbus/README.md at master · binsentsu/home-assistant-solaredge-modbus · GitHub


RE: Solaredge Control of inverter power output - Daniel - 27.03.2024

https://forum.logicmachine.net/showthread.php?tid=2462&pid=16657#pid16657


RE: Solaredge Control of inverter power output - gjniewenhuijse - 28.03.2024

(27.03.2024, 16:08)Daniel Wrote: https://forum.logicmachine.net/showthread.php?tid=2462&pid=16657#pid16657

Thanks, that works great for me. But now i have all readable values from the inverter. I like to control the output from the inverter as described in:
photovoltaikforum.com/core/attachment/88445-power-control-open-protocol-for-solaredge-inverters-pdf/

Question 1: On Page 3 i see some info, but don't know how to start.
Register  61442,  61443,  61762 and 61700 doesn't return any value.

Question 2: Is there an easy way to display the returned values as readable text?

Code:
require('luamodbus') mb = luamodbus.tcp() mb:open('x.x.x.x', 1502) res, err = mb:connect() if res then   log("connected!")   mb:setslave(1)   r0 = mb:readregisters(40069) -- 101 = single phase, 102 = split phase, 103 = three phase   r1 = mb:readregisters(61440) -- RRCR State    r2 = mb:readregisters(61441) -- Active Power Limit   r3a = mb:readregisters(61442) -- CosPhi 1/2   r3b = mb:readregisters(61443) -- CosPhi 2/2   log(r1, r2, r3a, r3b)     --To enable the dynamic power control mode, set the following:   -- AdvancedPwrControlEn on address 0xF142 to 1 (enable). It is disabled (0) by default. -1.0 - 1.0 (61762)   -- ReactivePwrConfig on address 0xF104 to 4 (RRCR mode). It is set by default to 0 (Fixed CosPhi mode). (61700)   -- Issue a Commit Power Control Settings command on address 0xF100 in order to make this setting effective. (61696)   r4 = mb:readregisters(61762) -- AdvancedPwrControlEn    r5 = mb:readregisters(61700) -- ReactivePwrConfig   r6 = mb:readregisters(61696) -- Commit Power   log(r4, r5, r6)     else   log('connect failed', err) end mb:close()



RE: Solaredge Control of inverter power output - Daniel - 28.03.2024

Try writing 1 to F142, log errors and then try sending a 50 to F001.


RE: Solaredge Control of inverter power output - admin - 28.03.2024

For Float32 values use:
Code:
cosphi = mb:readregistervalue(61442, 'float32', 'w') log(cosphi)

If the returned value is incorrect change the third parameter from w to n
Similarly for Int32 and UInt32 values change the second parameter to either int32 or uint32


RE: Solaredge Control of inverter power output - gjniewenhuijse - 28.03.2024

(28.03.2024, 09:14)Daniel Wrote: Try writing 1 to F142, log errors and then try sending a 50 to F001.

Code:
log( mb:writeregisters(61762,1) ) log( mb:writeregisters(61696,50) )

twice times in the log:
* arg: 1
  * nil
* arg: 2
  * string: Operation timed out


RE: Solaredge Control of inverter power output - gjniewenhuijse - 28.03.2024

Thanks it works great!

log( mb:writeregisters(61441,100) ) --F001 0-100