VRM DC power wrong with Multiplus II inverting

There was no change in DC loads as these images were captured just seconds apart, nor was there any external power input. Battery current measured by SmartShunt. edit: this is from a Cerbo GX running the latest release code (v3.72). MP2 120 V 48/3000/35-50.

Screenshot with inverter off, correctly showing 21 W DC load (matches 21 W battery draw as measured by Smartshunt) …

With inverter on…

Note that the draw from the battery is now 32 W, an increase of 11 W. That increase matches the 11 W AC load shown. But, DC load is now way off. I understand that figure is calculated rather than being measured directly. But shouldn’t the calculation be (battery draw of 32 W) - (AC load of 11 W) = DC load of 21 W, which would match the DC load with the inverter off, as shown in the first image? The same is shown in both VRM and Remote Console.

The numbers simply don’t add up. Where is that -5 W DC load number coming from? Where does the system think the unaccounted 26 W is going?

Does AC load (I think that’s reported by the MP2) include the power used by the MP2 itself? Even if it doesn’t, and the calculation is attempting to adjust for that, it’s still way off - “Zero load power in AES mode” is spec’d at 7 W (which I’m assuming would be close to the overhead with a small load), nowhere near the missing 26 W.

the multiplus also uses power itself!

Yes, I added a bit about that. But that can’t explain the 26 W change in reported DC load, it especially can’t explain why the system reports incoming power on the DC side (there is no power source there, only loads). In addition, the reported 11 W AC load exactly matches the increase in power draw from the battery.

It is not a measurement but a calculation of differences between DC readings between the inverter and the Battery/BMV.
The time each reading is taken may vary, and readings at low power are inaccurate, so I would not be expecting any form of accuracy at those power levels.

Did you not read the full comment? I understand that. The calculation is simply wrong, as I explained. Perhaps you can explain exactly how it is calculated, and how that calculation results in impossible numbers.

Like nicksb wrote its calculated and varies, so it will never be spot on. Its also a “snapshot” on that moment of power use

Is sometimes see impossible numbers too at random moments but its completely normal

It is simply subtracting two values, and values that may not have been taken at the same time and that are subject to error at those low levels.
Trying to make sense of readings in the single and low 2-digit range is mostly pointless.
There are typically time variances across all readings which makes what you’re trying to do problematic.
Put some proper load through it and it will be more dependable, but never 100% accurate.

The system is basically idle and the numbers are pretty static. They’re not bouncing around. I can watch it in realtime and see no change over several minutes. I’ll ask you - exactly what is the calculation which results in a negative DC load, which is impossible?

I’m not a victron engineer, so dont know the calculation behind it, just saying its normal for these systems and would not worry too much about it :blush:

The data isn’t present to see what the Multi is drawing.
If the battery says it is losing 10A and the inverter says it’s using 9A DC, it will attribute 1A to DC loads.
At such low loading, the inverter is likely pulling more power to run itself, and the BMS will be drawing power as well (assuming a managed battery).

Has DC loads isn’t a good tool to gauge idle usage, it is a ballpark number when something is pulling a decent load directly from the battery, and still better gauged with a dedicated shunt if accuracy is required.

To make the numbers work based on the inverter pulling more power than it reports, it would have to be using 5 W more power than the SmartShunt is measuring (=37 W), to account for the 5 W reported as coming in from DC loads. I know the shunt is much more accurate than that, and Victron spec’s it to be more accurate than that. The inverter is in AES mode, spec’d at 7 W (zero power), and the actual AC loads are very small (basically, a couple of clocks). The reported 11 W AC load is a reasonable number for what the MP2 is actually using in total.

Once again, the simple and logical calculation (battery draw - AC load = DC load) results in self-consistent numbers, whether the inverter is on or off.

Take the reported numbers and come up with a reasonable calculation which results in 26 missing watts and a negative DC load. The numbers are very stable, watching in realtime over 5 minutes, none vary by more than 1 W. It’s not that they’re being read at different times, or are bouncing around.

Mentioning the BMS is a red herring. The system is set to use the SmartShunt as the battery monitor. The BMS is internal to the battery, and before the Smartshunt, so has no bearing on what VRM sees.

I’m not going to argue with you because you don’t like or understand the explanation.
The multi is not highly accurate in its measurements, the shunt is far more accurate but sample rates and accuracy are very different.
iirc from an old discussion on this topic the multi’s margin for error was 50-100W? (might be less on smaller systems but you hopefully get the point).
Any reading below this threshold is likely nonsense.
Your expectation of accuracy and what the DC load feature will be showing is a bit high.
Several topics on this over the years.
If you do not have DC loads, this feature is not intended to be used to show the idle load of the system components.
I will leave it there and spend my efforts elsewhere.

I’m still waiting for an explanation, not a vague “it just does that, because maybe…” excuse which doesn’t fit the facts.

Not sure exactly what’s going wrong here, but it seems to be a code issue.

Looking at where the dbus com.victronenergy.system Dc/System/Power value comes from (this is what VRM reports as DC Load), it’s in dbus-systemcalc-py,
starting about line 852. This is the most relevant line:

newvalues['/Dc/System/Power'] = solarchargers_total_power + charger_power + fuelcell_power + alternator_power + vebuspower + inverter_power - battery_power

Some of those aren’t relevant in my system, so contribute 0. Others collect multiple instances, which again isn’t relevant (i.e. because there’s only 1 SCC, solarchargers_total_power should equal Dc/Pv/Power). That calculation is essentially the same as I suggested it should be in the first post.

Using dbus-spy, I took a snapshot. Dc/System/Power isn’t what it should be, but I’m not sure why.

Dc/Alternator/Power			-
Dc/Battery/Power 			102.37 (this matched Battery W in VRM)
Dc/Charger/Power 			-
Dc/FuelCell/Power 			-
Dc/Pv/Power 				134.675	(this matched Solar yield in VRM)
Dc/System/Power 			-5.411
Dc/Vebus/Power 				-9		(this matched AC Load in VRM)

From the formula above, Dc/System/Power should be 134.675 + -9 -102.37 = 23.305. That is in line with what I’d expect (see first picture in first post). But what’s populated is the -5.411 shown above. So the logic seems right, but something is going wrong somewhere. I’ll admit I didn’t work my way up to all the “accumulators” for those variables. Perhaps someone more experienced with Venus code can find out where.

(as an aside, all the “it just does that, everything is inaccurate, live with it posts” by supposed experts were very much less than helpful)