question

Mark avatar image
Mark asked

Solaredge enhanced power control in dbus-fronius

Hi All,

I just wanted to inform the people here that I extended dbus-fronius to use the solaredge enhanced power control implementation (non sunspec model 123). It could do with a bit more testing and tweaking of certain settings I guess. You can find it here in the solaredge branch. There is also a solaredge-mbs branch for which I made a tool I can used to read and write registers of the solaredge manually via dbus-spy.

If anybody wants to help out with testing this that would be great.

Here is a quick(start) outline if you wish to compile and test yourself:

  1. Install the SDK.
  2. Clone the fork of dbus-fronius with submodules:
    git clone --recurse-submodules https://github.com/mpverrijt/dbus-fronius.git
  3. Optionally checkout the 'solaredge-mbs' branch depending on what you want (solaredge-mbs has the extra tool to manually read/write registers on the solaredge inverter via dbus-spy, but be careful, I suggest only to use it if you know what you are doing).
  4. In a terminal go to where you installed the sdk and enter:
    source environment-setup-cortexa8hf-neon-ve-linux-gnueabi
  5. In the same terminal window go to the base directory of the dbus-fronius clone and enter:
    ./alt-build.sh
  6. You should now have a new exectuable (build/dbus-fronius/dbus-fronius) if all went well.
  7. Get root access to your cerbo-gx.
  8. Copy the newly created executable to the data directory of your cerbo (via scp for example):
    scp build/dbus-fronius/dbus-fronius root@YOUR_CERBO_IP_ADDRESS:/data/
  9. ssh to your cerbo-gx
    ssh root@YOUR_CERBO_IP_ADDRESS`
  10. There make a copy of the original executable and link the one you copied to the data directory instead:
    cd /opt/victronenergy/dbus-fronius
    cp -a dbus-fronius dbus-fronius.orig
    ln -sf /data/dbus-fronius
  11. Restart dbus-fronius by killing the current running process (pkill dbus-fronius), the supervisor will restart with the new executable. Alternatively you can reboot your cerbo.


With respect to firmware updates, the whole root file system gets updated. This means you need to rerun step 10 (and 11) once after a firmware update.

When dbus-fronius gets updated and you want/need these updates we need to merge/maintain these updates in the fork and recompile the executable.

All of this can be made a lot simpler by creating a package and installing it via the package manager tools (opkg). I'm quite limited in the amount of time I can work on this right now, but I do want to do this when I can.

Also, I need to mention it is required to enable advanced power control on your solaredge inverter. This can be done via the SetApp or with writing registers via modbus. If you are using it with the original dbus-fronius and frequency scaling (when grid fails / standalone) this should already be enabled. All of the enhanced power control settings and enable I now send once on a inverter connect, but I believe the settings atleast can be set once (in non-volatile memory). For testing purposes I have left left them there for now. For example, I have disabled the rate of change as I believe this is also how it works for the other inverters via sunspec model 123, but I am not 100% sure.

Modbus TCPsolaredge
1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

teemischer avatar image teemischer commented ·
Sounds great, now you just need to let us know where we can get your SW. I guess you forgot to post the github link :-)
0 Likes 0 ·
2 Answers
Mark avatar image
Mark answered ·

Strange that the links don't show up, I used hyperlinks in my post but they are not visible, they are visible in the source, here are the relevant links:

Install the SDK: https://github.com/victronenergy/venus/wiki/howto-install-and-use-the-sdk

Clone the fork of dbus-fronius with submodules: https://github.com/mpverrijt/dbus-fronius

Get root access to your cerbo-gx: https://www.victronenergy.com/live/ccgx:root_access

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Mark avatar image
Mark answered ·

Just wanted mention here that @kyros32 also was able to test it on a site with a SE16 K inverter. See issue on github: https://github.com/victronenergy/dbus-fronius/issues/6

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Related Resources

Modbus TCP Basics

Additional resources still need to be added for this topic