After I lost the connection to our Enphase solarsystem via modbus/sunspec in the beginning of this week, I started experimenting with a Shelly device for measuring the solar production as that’s in front of my solar system. It does show the production in the overview. But the production data isn’t plotted in the graphs for the installation usage graphs (an other shelly for the heatpump works and plottes it’s data.)
What does your shelly report for the power value in the shelly app? It should report negative Power Values. Negative Power will bring up its internal EnergyReversed Counter, which is the one used for the system graph.
If you connected your shelly in a way that it reports positive Power, its EnergyForward Counter will increase, and that would mean “it’s a consumig PV Inverter”, thus no production counted that would make it into the system graph.
Very very old shellies and/or firmware did not have a seperate EnergyReversed counter, hence only Gen2+ is supported iirc.
The per phase counters are extremely low. Barely 1 kWh total.
Eventually for the pro3, the per phase values are used, and these “not moving” is the issue.
Could you check if that are values visible on the device itself?
I would recommend to factory reset the shelly and ensure all counters on the device are 0, before doing anything else. If counters now “flip” from 1kWh to a realistic value (say 8000 kWh) due to some config/measurement direction changes, the system could conclude a spontaneous production of 8000 kWh and therefore also conclude 8000 kWh consumption and mess with your system stats forever.
Ahh. No your reading the Energie L1 / L2 / L3 wrong. That’s what have been send out from the shelly to the inverters in the past years.
This is what you were looking for. This is what got delivered by the solar panels via the shelly. The counters are running the right way. And I don’t worry that the system stats will be wrong.
No, that’s a bit of a tricky thing: For a “Shelly PVInverter” the proper place for the values should be in the EnergyForward-Counter, even tho they are sourced from the EnergyReturned-Counter of the Shelly. (Because we handle PV Production as positive flows, hence forward counting; The shelly is handling production negative, hence reverse counting)
Your relevant counters seem to be injected into the Energy-Reversed Fields. This is “right” for Grid-Meter behaviour (Feedin = negative = EnergyReturned), but for the PVInverter not.
I think I have to poke the shelly-implementation dev on how it’s supposed to be for the 3EM and if there might be something unaligned on that integration.
You could theoretically invert the clamps (or in the pro even software wise) which theoretically should also switch the counters - but that won’t help, if that’s a integration glitch and fixed in a future release. (Caution: Will mess your stats without prior reset)
Additionally: Sometimes some logic is reading voltage or current to decide whether a device is active or not. Your EM3 apparently does show the phase voltages etc, but in the overview list, it says “–” not sure if that eventually would make VRM to conclude “this device appears to not be connected”.
For reference, mine do show voltage and current there (but I use single-channel PM-Shellies)
I’m having the same issue with a Shelly EM Gen3 device; currently on te V3.80~27 version. It seems the kWh meters are not working at all (e.g increasing) when it is set as PV inverter. This make that the current power registration is working but the totals are 0.
I first had it added as AC Load and then those numbers are working correctly so it seems to be a Victron <> Shelly integration issue?
IIRC: This is what I am getting on my energy meter from shelly and latest Venus OS 3.80 beta. I also have the “Reversed” switch toggled on Shelly and it seems to me that Shelly app reports correctly the same data as Venus app… so on my 3.80 it seems correct.
I see in your screenshot that the device is a heatpump and not a pvinverter, is that correct?
Because this thread is specifically about using a shelly EM as pvinverter. When using it to measure PV, the shelly will report reversed energy, but on the GX we need to report that as forward energy because the GX determines the direction of the flow based on the service type.
Yeah sorry, I missed that. Let’s take my screenshot only as a confirmation that for HeatPump role the direction in shelly app and Venus GUI is correct…
The shelly integration will then report the reverse energy counter from the shelly as forward energy on the GX when the role is set to pvinverter. For the other roles, the energies are mapped one to one.
Note that any workaround intended to fix this issue, such as reversing the CT will cause the readings to be incorrect again.
A (potential) related question on the dbus-shelly code. So how does it work with the s[‘/Ac/Power’] = abs(status_json[“act_power”]) setting always making it a positive number (abs) can this be negative?. F.e. My solar inverter draws around 4 watts during the night and this is then reported as, but if a pvinverter is positive in act_power shouldn’t it be 0 to not have this behavior?
Yes that value can be negative, i.e. when the current flows in the direction opposite to what is indicated on the CT, so for pvinverters that is the case normally.
Since the direction of the energy flow is determined by the service type, and for all roles that the shelly can have the current will normally flow in just one direction, we take the abs() here to make sure the current/power is not reported as a negative value.
(Actually the only case where a negative current is valid is on the grid meter, but that role cannot be assigned to shellies)
So - to answer your question - we cannot just take the value without taking abs(), and we also cannot just cap it at 0. What we maybe can do, is for the pvinverter case first cap it to 0 as max (so ignore any positive value), and then take the abs() of it in order to report that value as positive.