Replies: 4 comments 48 replies
-
I don't really know Modbus to this level, so I'm hoping if I explain what we do on our end, we'll be able to piece everything together. So sorry for the possibly unrelated discussion. Firstly, (based on my previous comment) - we don't use Modbus for comms. While I have "reading the SunSpec specifications" on my list of things to do I haven't started yet - so I couldn't say whether the APIs we access are thin veneers over SunSpec, or if they are something else. When we send a command, we make one API call that schedules an event. We set the timeout for that event to be 5 minutes. This (as you correctly have pointed out) means if we can never communicate the device again, it will revert to whatever event is next in the stack (an empty stack puts the device back to default - which we assume is self-consume). So, it's the Solaredge cloud API (or possibly the inverter itself upon receiving a remote command) that is changing the inverter's Storage control mode from "Self-consumption" to "Remote".
(I feel like this is the crux of your question) So, you want Smartshift to tell you what to do via some API/push/webhook/queue, then you'll talk to the inverter via Modbus? |
Beta Was this translation helpful? Give feedback.
-
all three inverters are set as their own Leader because currently there is no support for multiple blackout protection devices in a leader follower configuration. once a new firmware update supports x3 BUI's in Leader/Follower config, I may change these to leader follower if it were needed.
I haven't yet had a response from last nights email. understandably, I am only one customer of many and I am probably too excited to have full Smartshift functions |
Beta Was this translation helpful? Give feedback.
-
I am very interested in the DRED application, I think this has real application for home automation and would be wonderful for households to match things like excess solar production (aka Kevin Smith Paladin) and price signals (aka Amber). I have the control framework already setup, which gives me the power draw I would like my airconditing to adopt, I just don't have the DRED hardware, so if you are manufacturing an interface I would be really interested. Another setup utilising DRED for airconditing control is from Rod Webster: https://community.home-assistant.io/t/controlling-air-conditioner-using-demand-enabled-response-device-per-as-nzs-4755/481353?u=markpurcell My Energy Management System (EMHASS) utilises a linear programming framework and in many ways replicates the control functionality of SmartShift. I have EMHASS and SmartShift running in parallel and it provides a very useful independent verification of what SmartShift is doing. However I have limited control over the Powerwall, but running EMHASS with advanced SolarEdge modbus battery control would replicate almost all of the SmartShift intelligence and enable it to be run locally. I have documented my setup here: https://community.home-assistant.io/t/running-devices-when-energy-is-cheaper-and-greener/380011?u=markpurcell and my optimisation for the next 24 hours is crazy with the heat wave and 4 hour price spike, the red line is what I would like a DRED enabled HVAC system to be able to follow.. |
Beta Was this translation helpful? Give feedback.
-
It seems that the "preserve battery" setting causes the battery to charge from AC when it isn't already full. It switches storage control mode from I would expect that during preserve battery mode via the app, it would change the |
Beta Was this translation helpful? Give feedback.
-
I have x1 solaredge inverter for Smartshift (I think something has gone wrong with provisioning the other x2 inverters I have, as Smartshift only reports the status of 1/3 batteries & 1/3 inverters)
I have noticed the solaredge Smartshift integration sets the
Storage control mode
set toRemote
each time it wishes to charge from AC or discharge the batteries. I have recorded the register settings via modbus (using python) and the settings change in this order:Storage control mode
changes from1, Maximise self consumption
to4, Remote
then it changes the relatedRemote
settingsStorage Remote Command Mode
to whatever is needed (charge, maximise export, maximise self consumption etc.) along with it changing the setting forStorage AC Charge policy
Then, when it is finished, it changes the
Storage control mode
back to1, Maximise self consumption
would it be best to keep
Storage control mode
set to4, Remote
and just have Smartshift change the related4, Remote
settings? then theStorage Default Mode
can be kept permanently atMaximise self consumption
and only theStorage AC Charge policy
&&Storage Remote Command Mode
&& the duration of the remote command modeStorageRemoteCtrl_CommandTimeout
by using the
StorageRemoteCtrl_CommandTimeout
withStorage AC Charge policy
&Storage Remote Command Mode
when the timeout finishes, it simply defaults back to whatever is set withinStorage Default Mode
instead of changingStorage control mode
each time.I imagine that by not using the
StorageRemoteCtrl_CommandTimeout
functionality, that if the inverter could not communicate with the outside world that the settings applied during Smartshift will continue to remain until connectivity is re-established. where as ifStorageRemoteCtrl_CommandTimeout
was used, it wouldn't matter if connectivity was available since the inverter would just default back toStorage Default Mode
setting after the timeout period.below applies to activating zero export during negative feed in:
during my own automation of this before Smartshift provisioning, I also noticed that if I applied
export_control_mode
to1
when this was already the exact same setting within the inverter, that the inverter would then apply this again and it would HALF the dynamicactive_power_limit
each time the setting was applied when it was already enabled. i.e, if I appliedexport_control_mode
to1
x4 times, then the dynamicactive_power_limit
would set itself to 1/4 of its capability. ( I was also applyingexport_control_site_limit
from its absolute maximum, to0
so the inverter would not export and would only produce what the consumption required.Therefore, within my automation, I had it check to see if
export_control_mode
was already enabled, if it wasn't, then it would enable it only once. this was permanently set to1
and only ever changed if it somehow changed back to0
- the only setting that would change after this wasexport_control_site_limit
- I would setexport_control_site_limit
to the maximum of the inverter during positive feed in times, and then only changeexport_control_site_limit
to0
whenever the FiT was negative.If there is a Smartshift beta API, I would love to use it so I can dynamically change the settings on my end without them reverting back every 30s when the inverters are enrolled in Smartshift. otherwise, it would be great to somehow participate in the solaredge Smartshift integration myself, so any improvements or potential bugs, I could help resolve asap - I would love to assist overall, rather than just "fixing" any issues for myself with my own automation and not having anyone else benefit from it.
running on my linux server, I use python to read and write to the registers of the solaredge inverters via tcp modbus proxy (proxy is used to enable multiple connections to the inverter), the data is recorded in a seperate database and other python services do the automation thereafter (set zero export mode, turn off or on the hotwater (3.6kW), turns off or on the ducted aircon (14kW). I am next going to be using a DRED style of controlling % power input to the aircon compressor (I manufacture the DRED devices (along with many other products) that are used in solar and aircon units based on ripple control to limit power by 25%, 50%, 75% or off completely. instead of using the ripple control, it would simply be based on the Smartshift API (when available)
Solaredge documentation specifies this below:
Beta Was this translation helpful? Give feedback.
All reactions