Consumerbot3418
Fitting square pegs into round holes... for fun?
Not sure if it qualifies as an "advanced user experiment", but I'm presently driving my SMA Sunny Island 6048-US-10 inverters in Li-Ion BMS mode, using an ESP32 ($5), CAN board ($9), and Victron SmartShunt. (probably ought to pick a different CAN board, as this one isn't galvanically isolated)
I was inspired by @sijones2010 and his project, but needed to do some tweaking, such as manual override of the reported SoC, in order to remotely command (trick) my Sunny Islands into connecting to grid and charge.
The ESP32 is running ESPHome, and integrates nicely with Home Assistant, which is where all my off-grid control and monitoring happens.
I'm able to send the BMS messages demanded by Sunny Island, and am working on decoding the CAN messages intended for SunnyRemote, as explained by @madsci1016 in the history section here.
I am already able to manually control charge. Would like to eventually automate a retarded charge current when temperature gets too high or low, or SoC over 90%, as well as backfeed grid with a specified amount of power. As a proof of concept, setting BMS voltage limit slightly below present battery voltage will cause SI to backfeed until voltage drops below BMS voltage limit.
I've observed that SI subtracts 1V from the BMS voltage limit when off-grid. This would make it difficult to ever reach 100% SoC while off-grid with AC coupling. Wonder if anyone else has already solved this issue? I could command a higher voltage, but I guess the problem would be if a large load powered off while batteries are (nearly) full, and AC coupled PV is pumping out 10kW+.

I was inspired by @sijones2010 and his project, but needed to do some tweaking, such as manual override of the reported SoC, in order to remotely command (trick) my Sunny Islands into connecting to grid and charge.
The ESP32 is running ESPHome, and integrates nicely with Home Assistant, which is where all my off-grid control and monitoring happens.
I'm able to send the BMS messages demanded by Sunny Island, and am working on decoding the CAN messages intended for SunnyRemote, as explained by @madsci1016 in the history section here.
I am already able to manually control charge. Would like to eventually automate a retarded charge current when temperature gets too high or low, or SoC over 90%, as well as backfeed grid with a specified amount of power. As a proof of concept, setting BMS voltage limit slightly below present battery voltage will cause SI to backfeed until voltage drops below BMS voltage limit.
I've observed that SI subtracts 1V from the BMS voltage limit when off-grid. This would make it difficult to ever reach 100% SoC while off-grid with AC coupling. Wonder if anyone else has already solved this issue? I could command a higher voltage, but I guess the problem would be if a large load powered off while batteries are (nearly) full, and AC coupled PV is pumping out 10kW+.


Last edited: