question

semlohnhoj avatar image
semlohnhoj asked

SmartSolar "Yield Today KWh" value resets around 10:30PM?

I have 5 x SmartSolar 100/20 MPPT's connected to a Cerbo GX and I've noticed that the "Yield Today KWh" values in NodeRed and on the VictronConnect App resets to 0 at a random point after 10PM?

They all do this at slightly different times but pretty close to each other. I was watching my dashboard last night and three of them reset within around a minute or two at around 10:34PM.

My obvious question is why is this happening?

I want to log the total yield for the day at the end of the day (say at 11:45PM) but I was clearly having issues with this because the values were all 0 by that point. I've now had to opt to take the readings at 10PM which is not ideal.

Do these things have internal clocks that aren't correct or something?

Everything else on the Cerbo GX has the correct time attached to it. In the config it is correct and set to GMT Standard Time.

Any suggestions?


MPPT ControllersMPPT SmartSolar
2 |3000

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

6 Answers
Guy Stewart (Victron Community Manager) avatar image
Guy Stewart (Victron Community Manager) answered ·

I’m not 100% on this, so always a bit dangerous posting.

I am pretty sure that the internal “clock” is based on the solar day, and not some midnight clock time.

So some hours after the MPPT detects the sun sets (low PV voltage), the day is over. So the figure will even change from season to season, based on the solar day, and not the 24 hour day.

In almost all cases this is good enough and reliable for our purposes, except for your case where you want to use that figure outside the normal app.

This is done on MPPT - and not much to do with the GX device (which has 24 hour clock) except for being the route that data takes from the MPPT.

2 |3000

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

semlohnhoj avatar image
semlohnhoj answered ·

Ah, that makes sense. I can work around that by recording the highest value periodically throughout the day and then using that. I can then reset that to 0 after I've used it at 11:45PM.


Thanks for the quick response.


John

2 |3000

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

ronski avatar image
ronski answered ·

This has also caught me out, I'm using the values in Home Assistant, just assumed they'd reset at midnight. I'll build something into the flow to change the value I send, but that's a job for tomorrow.


I guess I'd better store and use the highest value until midnight, then reset to 0 until a suitable time.

2 |3000

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

ronski avatar image
ronski answered ·

I wrote some Node Red to manage the value, keep the highest value (in case it reset before midnight), and then reset it to zero at midnight.

I was curious so also wrote a little Node Red to capture the time they actually reset.


One reset at 1:11am, and the other at 2:17am, these are two identical sized arrays, one east facing the other west facing, not sure what triggers them to shut down, the voltages both looked pretty similar so would have expected the same sort of reset time, but its irrelevant so doesn't matter.

2 |3000

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

semlohnhoj avatar image
semlohnhoj answered ·

I got a response from Victron about this. They don't have internal clocks so they just reset to zero a fixed time after solar production ends. I think the logic I used in NodeRed was to use a local KWh variable that takes the highest value reported by the system but ignores the hours between midnight and 4am. I also reset my variable at midnight.

2 |3000

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

ronski avatar image
ronski answered ·

@Semlohnhoj Thats basically what I've done, but also need to account for the possibility in winter when its dark by 5pm that it may reset before midnight.

This is what I used.


var Var1 = Number((msg.payload).toFixed(2));
var Yield = flow.get("MPPT-1-Yield");
var d=new Date();
var hours=d.getHours()

// mppt yield does not reset at midnight - the time varies - see comments

//if the hours are less than 3 then use 0
//If the hours are less than 16 then use current yield
//if the hours are greater than 16, but Yield = zero use previous yield value

msg.payload = (hours<3 ? 0:(hours < 16 ? Var1 : ((Var1 == 0 ? Yield : Var1))));

flow.set("MPPT-1-Yield",msg.payload);

return msg



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.

semlohnhoj avatar image semlohnhoj commented ·
That was why I only took the highest value from the MPPT so if it reset to 0 it wouldn't affect my local variable.
0 Likes 0 ·

Related Resources

MPPT Product Page

MPPT Error codes

MPPT 150/60 up to 250/70 Manual

Additional resources still need to be added for this topic