• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

My Victron Cerbo GX Home Assistant Integration

OK, off topic, but my thread anyway.

Here is actual efficiency data using 51 hours of data sampled at 1 Hz.
The spreadsheet moves very slowly with that many points.
Median filtered to reduce measurement noise (better than averaging).

I would say that the 92% efficiency knee is around 1500 W (750W per inverter).
By the time you get out to 8000W (4000W per inverter), 87%.
Hard to tell with the big puffy data points, but by eye.

Wouldn't it be great if Victron specified the efficiency at full Wattage (not full VA)?
They could say 92% max, 87% at max continuous wattage.

Screen Shot 2025-03-21 at 6.06.27 PM.png
 
Last edited:
If the house isn't doing much, the Grid Power will be hovering around 100 W, which is the ESS Grid Setpoint.
In the case above, the house was using lots of power (probably for hot water or HVAC).

Since I limit the inverter power dynamically based on PV, the grid has to take up the slack, 1596 W in this case.


Hold on to your head for this explanation.

I have a complicated situation here where the House is on one 200A panel, and the Addition is on another 200A panel.
I have 400A service. They meet in the utility meter.
I have my own Carlo Gavazzi EM530 energy meters ($$) on the feeds to both 200A panels.

This might be a dumb question but why not just one energy meter at your main utility meter?

I'm going to guess the em530 may not be able to handle 400a?
The total consumption is the sum of those two meters.
However, a Grid Meter can only be a single device instance on the Cerbo GX (Victron limitation).
I accomplish that by creating an emulated meter which talks to both physical meters, and creates a composite meter in software
that the Cerbo thinks is a normal meter. This was very nontrivial software to write.

Victron should be incorporating your ideas into their system for everyone as you make the system work so just better than out of the box..
 
OK, off topic, but my thread anyway.

Here is actual efficiency data using 51 hours of data sampled at 1 Hz.
The spreadsheet moves very slowly with that many points.
Median filtered to reduce measurement noise (better than averaging).

I would say that the 92% efficiency knee is around 1500 W (750W per inverter).
By the time you get out to 8000W (4000W per inverter), 87%.
Hard to tell with the big puffy data points, but by eye.

Wouldn't it be great if Victron specified the efficiency at full Wattage (not full VA)?
They could say 92% max, 87% at max continuous wattage.

View attachment 286782
Victrons are a work horse but efficiency is one area where they suffer a little
 
This might be a dumb question but why not just one energy meter at your main utility meter?
The meter base box (now locked by utility) internally immediately splits onto busbars.
So the joining happens in the busbars. And I didn’t want to cut the lock off.
I did the install back in 2002 myself so I know what is inside.

I'm going to guess the em530 may not be able to handle 400a?
I purchased my 5A CTs (40:1 ratio) from amazon, but the em530 uses any 5A CT. It does not come with any.
The em540 has internal CTs, but the current is like 60A. For 400A I would need 80:1 ratio CTs.

Victron should be incorporating your ideas into their system for everyone as you make the system work so just better than out of the box..
They are sometimes receptive to ideas, particularly if mvader (president) takes an interest.
But more often than not, unless the idea is generally applicable to most of their customers, they view these things as “modifications”.
Which they enthusiastically support, to their credit.
 
Last edited:
Victrons are a work horse but efficiency is one area where they suffer a little
Perhaps, I don’t know how to compare.
I haven’t seen anyone else take real data and plot efficiency like that, say for an HF AiO like the EG4 18kpv, SRNEs, or others.
Would probably be a great thread if the data can be harvested from those inverters.
 
On the meter side - did you ever consider using a 3 Phase meter ?
PoCo meter with 3-phase service? No, was never an option here.
I’ve only got a single phase on the wires and poles here.

The Em530s I have can measure 3-phase, they are revenue grade meters,
I only connect L1, L2, and N.
 
Update

Ok, I’ve spent a few weeks with a nice HA dashboard, tweaked card line spacing with card_mod, and added a button to Ignore AC Input to switch to battery on command. All great.

What I am unhappy about is MQTT, specifically the effect it has on the Cerbo GX.
The flashmq process is taking over 35% of the Cerbo CPU due to the MQTT bridge client in HA grabbing data.

This is causing usability issues with the standard Victron console in responsiveness, like 5 second lags responding to clicks, and over 10 seconds to load the console.

I’ve tried reducing the number of entities in HA, and tried to limit the number of topics in the config file, with limited effect on performance.
While this is a convenient way to get data and settings out of the Cerbo, it is too heavyweight for my needs.

Therefore, I’m going back to Modbus TCP, where I can explicitly craft a minimal set of what I need for efficiency.
It also provides a direct way to control update rate per message. Rate limiting of topics apparently isn’t directly controllable in MQTT.

If I do this right, the HA dashboard I’ve developed will work identically, without the performance penalty on the Cerbo.
It will just require lots of coding by hand.
 
Last edited:
@ricardocello

I have a lot of (MQTT) entities in HA from the Cerbo

I do not get any kind of performance issues

What version is Venus on your Cerbo ?

Here is mine

Mem: 561816K used, 468268K free, 1708K shrd, 49684K buff, 153344K cached
CPU: 22% usr 5% sys 0% nic 71% idle 0% io 1% irq 0% sirq
Load average: 0.87 0.89 0.97 3/272 30884
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
1529 1515 root S 35020 3% 6% python /data/dbus-shelly-em-smartmeter/dbus-shelly-em-smartmeter.py
1077 1060 root S 25784 2% 4% {dbus_systemcalc} /usr/bin/python3 -u /opt/victronenergy/dbus-systemcalc-py/dbus_systemcalc.py
781 779 messageb S 3728 0% 2% dbus-daemon --system --nofork
1039 1012 root S 90508 9% 2% /opt/victronenergy/gui/gui -nomouse -display VNC:size=480x272:depth=32:0
1038 1002 root S 42248 4% 2% {vrmlogger.py} /usr/bin/python3 -u /opt/victronenergy/vrmlogger/vrmlogger.py
1082 1068 root S 52356 5% 1% {dbus-modbus-cli} /usr/bin/python3 -u /opt/victronenergy/dbus-modbus-client/dbus-modbus-client.py
1033 1004 root S 56368 5% 1% /opt/victronenergy/venus-platform/venus-platform
1078 1031 root S 51028 5% 1% /opt/victronenergy/hub4control/hub4control
1885 1875 root S 66048 6% 1% /usr/bin/flashmq
1889 1871 root S 52988 5% 1% /opt/victronenergy/dbus-modbustcp/dbus-modbustcp
1099 1086 root S 52932 5% 1% /opt/victronenergy/dbus-fronius/dbus-fronius
1614 1577 root S 3664 0% 1% /opt/victronenergy/mk2-dbus/mk2-dbus --log-before 25 --log-after 25 --banner -w -s /dev/ttyS4 -i -t mk3 --settings /data/var/lib/mk2-dbus/mkxport-ttyS4.settings
1059 1027 root S 29344 3% 1% {localsettings.p} /usr/bin/python3 -u /opt/victronenergy/localsettings/localsettings.py --path=/data/conf
1883 1869 root S 24796 2% 1% {vesmart_server.} /usr/bin/python3 -u /opt/victronenergy/vesmart-server/vesmart_server.py -i hci0
1043 1014 simple-u S 12924 1% 0% /bin/simple-upnpd --xml /var/run/simple-upnpd.xml -d
12531 12529 root S 3376 0% 0% /opt/victronenergy/vedirect-interface/vedirect-dbus -v --log-before 25 --log-after 25 -t 0 --banner -s /dev/ttyS5
1074 1055 root S 22792 2% 0% {dbus_vebus_to_p} /usr/bin/python3 -u /opt/victronenergy/dbus-vebus-to-pvinverter/dbus_vebus_to_pvinverter.py
30732 1653 root S 5524 1% 0% sshd: root@pts/0
1753 1750 root S 3712 0% 0% /opt/victronenergy/vecan-dbus/vecan-dbus -c socketcan:can0 --banner --log-before 25 --log-after 25 -vv
12574 12572 root S 3376 0% 0% /opt/victronenergy/vedirect-interface/vedirect-dbus -v --log-before 25 --log-after 25 -t 0 --banner -s /dev/ttyS6
1741 1737 root R 3184 0% 0% /opt/victronenergy/can-bus-bms/can-bus-bms --log-before 25 --log-after 25 -vv -c socketcan:can1 --banner
30758 30751 root R 2784 0% 0% top
22682 1 avahi S 3632 0% 0% avahi-daemon: running [venus.local]
1111 1092 root S 3416 0% 0% /opt/victronenergy/dbus-adc/dbus-adc --banner
12604 12602 root S 3244 0% 0% /opt/victronenergy/vedirect-interface/vedirect-dbus -v --log-before 25 --log-after 25 -t 0 --banner -s /dev/ttyS7
1104 1094 root S 27888 3% 0% {dbus-acsystem.p} /usr/bin/python3 /opt/victronenergy/dbus-acsystem/dbus-acsystem.py
1049 1018 root S 3044 0% 0% {serial-starter.} /bin/bash /opt/victronenergy/serial-starter/serial-starter.sh
766 2 root SW 0 0% 0% [RTW_CMD_THREAD]
10590 2 root IW 0 0% 0% [kworker/0:2-eve]
30232 2 root IW 0 0% 0% [kworker/u4:2-ev]
 
@ricardocello

I have a lot of (MQTT) entities in HA from the Cerbo

I do not get any kind of performance issues

What version is Venus on your Cerbo ?

Here is mine
Thanks for checking!

I'm running the latest Beta 3.60~57. I suppose it could be a Beta issue and not an MQTT issue.
The flashmq process utilization is all over the place, but frequently in the 30-36% range (by eye-balling top).

Screenshot 2025-04-10 at 3.08.16 PM.png
 
Thanks for checking!

I'm running the latest Beta 3.60~57. I suppose it could be a Beta issue and not an MQTT issue.
The flashmq process utilization is all over the place, but frequently in the 30-36% range (by eye-balling top).

View attachment 291279

I am on 3.54 (which I suppose is good!)

Here is mine with a remote console going as well


Screenshot 2025-04-10 231254.png
 
I am on 3.54 (which I suppose is good!)

Here is mine with a remote console going as well
Thanks, that is reassuring. Most people won't have my issues I suspect.

I believe the presence of multiple fast Energy meters running at near 10Hz is gumming up the works.
The flashmq process appears trying to synchronize those via the MQTT bridge to the client broker.
Then the messages build up and get regularly flushed. I'm not an expert on MQTT, but that is my best guess at this time.

I've got a nice stable Modbus TCP implementation running now, took all day to do that.
It ticks at 1 Hz because it is polled from the client. Dashboard looks identical.
 
Lastest Dashboard, with data coming via ModbusTCP from CerboGX.
Weirdly, there are things you can get in modbus that are not available in MQTT (and probably vice-versa too).
For me, it is the MPP Operational Mode of the SmartSolars (Off, Limited, Active).

IMG_7550.jpeg
 

diy solar

diy solar
Back
Top