Ideas about solar production forecasting

Jean-Luc,
That is indeed so cool what you managed to build. I assume you have never thought about describing somewhere your setup... We most certainly will have to install something like that in the near future, but no clue at all how to start with it.

1 Like

Thank you for your comments. :relaxed:
I had so much fun building this from scratch that I would be really happy to share this.
I'm even sad that it's over.
Bart, when you say I could describe my setup, would it be from a general perspective or really very technical or both ?
Can I do it here on this forum which is Nodered and not Solar oriented?
I don't want to pollute this forum with a non-NR topic.
I could indeed talk about how the dialogue with the inverter is done. It seems that this protocol is used in quite a few inverters.
Also share solutions I have adopted and especially learn from your feedback to do even better.

Jean-Luc,
You have no idea how glad I am that you take into consideration of sharing your knowledge...
Since all kind of material is involve, perhaps a Github repository might be useful? There you can add flows, code, documenation, wiki, issue tracking...

I have accurately defined a profile in Solcast, in every detail - location, capacity, azimuth, tilt, efficiency factor, etc, and have compared their forecast, which was obtained at 12:00 UTC today, together with the half hourly averages obtained from my PV system, and have pasted the results below.

It was a little disappointing, as the forecast bore little similarity to the local data (the local data has been calibrated & is accurate).
I will let the flow continue to run tomorrow, and again compare the results.

      {
         "pv_estimate":1.9102,
         "pv_estimate10":0.584,
         "pv_estimate90":2.7364,
		 "Actual":1.212
         "period_end":"2021-07-10T13:30:00.0000000Z"
      },
      {
         "pv_estimate":2.1115,
         "pv_estimate10":0.4923,
         "pv_estimate90":2.9333,
		 "Actual":0.796
         "period_end":"2021-07-10T14:00:00.0000000Z"
      },
      {
         "pv_estimate":2.166,
         "pv_estimate10":0.6234,
         "pv_estimate90":3.0321,
		 "Actual":0.984
         "period_end":"2021-07-10T14:30:00.0000000Z"
      },
      {
         "pv_estimate":2.1842,
         "pv_estimate10":0.703,
         "pv_estimate90":3.1559,
		 "Actual":1.003
         "period_end":"2021-07-10T15:00:00.0000000Z"
      },
      {
         "pv_estimate":1.9524,
         "pv_estimate10":0.5588,
         "pv_estimate90":3.0043,
		 "Actual":0.744
         "period_end":"2021-07-10T15:30:00.0000000Z
      },
      {
         "pv_estimate":1.6836,
         "pv_estimate10":0.3982,
         "pv_estimate90":2.7949,
		 "Actual":1.485
         "period_end":"2021-07-10T16:00:00.0000000Z"
      },
      {
         "pv_estimate":1.4342,
         "pv_estimate10":0.2862,
         "pv_estimate90":2.55,
		 "Actual":0.575
         "period_end":"2021-07-10T16:30:00.0000000Z"
      },
      {
         "pv_estimate":1.2527,
         "pv_estimate10":0.231,
         "pv_estimate90":2.2877,
		 "Actual":0.376
         "period_end":"2021-07-10T17:00:00.0000000Z"
      },
      {
         "pv_estimate":1.1373,
         "pv_estimate10":0.2285,
         "pv_estimate90":1.9587,
		 "Actual":0.382
         "period_end":"2021-07-10T17:30:00.0000000Z"
      },
      {
         "pv_estimate":1.0347,
         "pv_estimate10":0.2374,
         "pv_estimate90":1.6438,
		 "Actual":0.747
         "period_end":"2021-07-10T18:00:00.0000000Z"
      },
      {
         "pv_estimate":0.8952,
         "pv_estimate10":0.2381,
         "pv_estimate90":1.2485,
		 "Actual":0.679
         "period_end":"2021-07-10T18:30:00.0000000Z"
      },
      {
         "pv_estimate":0.6539,
         "pv_estimate10":0.1736,
         "pv_estimate90":0.8243,
		 "Actual":0.528
         "period_end":"2021-07-10T19:00:00.0000000Z"
      }
Attributes Details
pv_estimate PV power estimated in kilowatts (kW)
pv_estimate10 PV power estimate in kilowatts (kW) 10th percentile (low scenario)
pv_estimate90 PV power estimate in kilowatts (kW) 90th percentile (high scenario)
Actual Actual PV power recorded by home monitoring (kW)

*All timings are UTC

OK so a couple of things here.

  1. Solcast does take into account cloud coverage etc - in the old API they also let you feed back your actual data and it would then tune the algorithm based on how your output matched up. They have now removed that - so what you need to do instead is slowly change the orientation and other factors for your site to get closer to what they are predicting. Once you have this they are quire accurate.

  2. The python stuff i linked to is even more advanced - it will let you input as many orientations as you wish for panels (he has 3 by default) and also then input information about shading, albedo and the like until you get really accurate output . It takes input from a number of weather services and uses the cloud information they output to tune the expected insolation on the panels

If you were going to try and do something in Node-Red then i would use this and exec out to it and call in the values it outputs - this is what i am looking at trying to do over the next couple of weeks.

Craig

On my side,
I was thinking more about a light sensor which gives me an instantaneous value of my sunshine, and according to this one, to activate/deactivate or not consumers to store (ex: electric water heater multi resistances) or dissipate energy (P.A.C or Electric Car).
I had bought this Philips HUE detector that I want to put on my roof with exactly the same orientation as the P.V.
But, what I notice is that the sensor saturates, I do not know if I can change its calibration range. :face_with_monocle:
I haven't had time to look into it yet.
Here is an example over a week.

Hi Guys,

I have been playing with solar for a few years now, and have found that the solar forecasting information out on the web is wonderful for longer term and larger scale generation, but far from ideal on the micro scale of private individuals who are producing for self consumption...

What I have done, on my main array (12x 350w mono crystalline wired 2p6s) is to put a small single mono crystalline cell with a parallel voltage divider resistor in as far as possible, an identical inclination to the main array. This cell is in the "least advantaged" position, meaning that it gets lit last and loses light first - Depending on its output (as read by a Sonoff Basic with Tasmota and a bit of hardware hacking to get to the analog input), I am able to determine the luminance of the main array - Scaling it up, I am then able to instantly "forecast" what the immidiate load is that I can impose on my inverter...

This "forecast" I use to turn on water heating (8 step pure resistive element), irrigation pump, grey water recycling pump, compressor in the workshop,deep freeze, fridge, etc etc etc....

All of this is running on a paltry little 5kw Axpert "King" knockoff, controlled by Node Red and logging via EmonCMS...

Here is yesterdays' "main" graph of the highlights (there were a few clouds around midday)....

It is awesome to sit and watch the loads regulating one another pretty seamlessly....

Regds
Ed

2 Likes

I'm throwing in the towel with Solcast as I've tested it again today, and the forecasts are just too inaccurate.
For example, I obtained a new forecast at 9.30 UTC this morning, and it suggested that the power best estimate would be an average of 2.2609kW in the 30 minute period ending 10.30 UTC. In actual fact it was thick cloud, and I managed an average of 385W....
I've recorded the data throughout the day in a logfile, and sometimes it's high and other times too low.,

The only accurate reading I have had was at 2am where Solcast forecast 0kW, and ....need I say more :wink:

3 Likes

Thanks Paul for these tests and this feedback, it seems that this is not the way to anticipate its possible production. Are you going to continue your tests ?

Hello eddee54455, it is indeed a very good idea to install a cell in parallel with the others ! Your setup reminds me of the one I made to measure the voltage at the terminals of my batteries, a wifi voltage divider. I had followed this tutorial and It had given this result.
I think I will follow your solution which seems to me very good. Better than measuring solar insolation ?

The problem with this is it only instantaneous power - it is not going to give you any forecasting or let you control much other than resistive loads as motors will not like being turned on and off quickly for passing clouds etc.

Craig

Hi Craig,

If you look carefully at the dashboard pic I sent, you will see that I indeed turn on inductive motor loads. Obviously, these devices do not like frequent switching.... To overcome this, simply have the load turn on an "enable flag" at a safe SOC for your system(to allow a buffer), then place a minimum run time timer on it ensuring that startup heat has sufficient time to dissipate. In the event of refrigeration compressors etc that require a minimum "off time" to safely start, employ a second timer...

Each device needs its own specific power parameter to allow for passing clouds etc, I ensure that there is a small bit of headroom allowed for this.

To further improve the system, there are a few ways, one of which would be a basic Coulomb count to determine how much power is available to be withdrawn (less efficiencies of course), or a much lazier way (which I did) which is to take a fairly long average of immediately past solar charge/discharge events (last 50 to 120sec consisting of 10 or more sensor readings) and use that in assisting determination of whether a device can be switched on. Couple that to the SOC of the system (which is a big Coulomb counter anyway), and you have a fair representation of what can be withdrawn and is currently available.

Add in a few basic interlocks to prevent heavy draw appliances surging the system and turning on in short order, and you have a winner...

I have found that my solar yield went up dramatically on employing my little system, somewhere in the order of 25 to 30%, power that I was not aware of and now is at my disposal.

Regds
Ed

2 Likes

Yes, it's clear that we can't do On/Off, we have to do as in the air conditioning installations, do Integral-Derivative regulation. But it's out of my competence.
Maybe we could use an ESP32-Cam with an AI to watch and analyze our sky on 180° ? :face_with_monocle:

@eddee54455 Whoow :+1:

Hi @Jean-Luc ,

That would be an interesting solution, but not one that would be fully effective, I dont think... I have noticed that while clouds do make a large difference, the actual difference does not seem to be in proportion to what I see by eye... Edge effect of the clouds for one, seems to have a remarkably positive impact on yield, high level clouds reduce it somewhat, but not too badly, low level clouds have a major impact - All making it nastily complex... Hence me simply monitoring what is immediately available and taking a guestimate on what I can draw... (add that to smoke, pollution, dust and the like, and the luminance measurement is way easier and from what I have found, accurate enough.)

Regarding the PID loops etc, I have simply left that to the basic hardware I have installed - The fridge and freezer still have their independent controllers installed, simply set to lower temperatures than I would normally use... All I do is power them up for longer when the power is available, have a secondary temperature monitor in them, and ensure that they operate within safe and healthy limits of cooling, and dont turn on before they have had a chance for their system pressures to equalise... Other than that, besides installing a few kg of aluminium ingots around the evaporator plates to act as "cool stores" nothing much need be done...

I am planning on doing a slightly more complex IR control for my aircon system, but that will only be done when I determine whether a, its required, b, excess power is available, c. I get the time, d, I am not lazy....

Ed

1 Like

Hey Ed,

Nice explanation thanks.

I have a whole of house energy monitor so it monitors my Solar, Mains and Consumption (3 phase) and shortly the 3 batery system i will be deploying.

I have a 2nd one that monitors 14 of the circuits on my switchboard for most of my main loads - plus deployed tasmota device for individual things such as Pool Pumps etc.

Still trying to find a good system that works to have a "pool"of available energy and then assing that out to different devices.

The other thing i am tossing around in my head is how to "profile" electrical appliances such as a dishwasher - i am trying to work out how to represent and then sequence them - my dishwasher for instance on the standard cycle we use 95% of the time takes 3 hours - during that time it uses very little power for 90% of the time in the first 2 hours, but then has a fairly linear ramp up in the last hour as it rinses and then dries

Craig

I recall some earlier research on this topic... Staring at the Sun | IBM Research Blog

Hi @craigcurtin ,

The dishwasher I found quite easy to profile.... What mine does is as follows:

Idle power - approx14W
Fill - arond 30w, but Household pressure pumps come on as well.
Emptying- Approx 50W
Main pump - Around 130W
Heating - Around 2kw

The cycle ALWAYS runs in the following sequence - Idle,Fill,Main Pump,Heat,Main Pump,Empty,Fill,Main Pump,Heat,Main Pump,Empty,Idle....

The only thing that changes is the Heating time (Depending on incoming water temperature and cycle), and Washing time (Depending on cycle selected)....

All I watch out for, is when the unit is drawing above Idle/Emptying - ie when the main pump is running.... The element only comes on when there's circulation of the washing water.... During those times I "allocate" 2kw of availability to it and remove it from my forecasted yield... Of course, I also allow about a 2 to 3 minute window of shutdown during the cycle before the allocated power is repurposed... This allows the late comers to add the odd cup or two during the cycle that were forgotten..

After the wash, the same shutdown timer is imposed before reallocation, just in case....

To profile it, I simply connected a POWR2 in circuit and graphed the output... Easy Peasy... That same POWR2 has now been running for around 2 years controlling the Dishy without any mishap so far....

The only trickful thing I did, was to reprogram the sonoff button to only report a press to mqtt... The pi then sends an "on" signal, holds it for 30sec or so, then turns the dishy off.... It then remains off until solar is available to do the cycle, the pi taking care of it... This is to allow peeps to load the dishwasher in the eve, press the button on the sonoff, the dishy comes on, you select the program, press start and walk away... It then shuts down and waits for sunshine to do the dishes the following day.... A cute trick, even if I say so myself!!

The same procedure applies to our washing machines in the laundry too....

Regds
Ed

Just for info,
the Xiaomi sensor seems more accurate, in any case more sensitive and does not show saturation in high light.
image

Well it's a pity today it's not sunny so I don't know if it will saturate when there will be more light.
To be continued.
Below, comparison between the 2 sensors located one next to the other and same position:

@eddee54455 It's an excellent idea and function, the idea of the dishwasher,
unfortunately on my side, when I turn it off, I have to manually press the start button so that it continues its program.

@dceejay Very interesting article indeed. IBM has a lot of clout.

@Jean-Luc

Re the sensors.... That's why I went the "micro panel" route.... All sensors I tried had different sensitivity/power curves and couldn't scale up accurately across the full range from 0 to fully solar lit... Some came close, but not good enough... The single panel (of the same substrate as the arrays) with a current limiter divider ended up waaaaay more accurate....

Bummer re the dishwasher... One of the 4 washing machines we have in the household (belongs to one of my tenants) is of similar ilk.... A bit of a pita, but I have got her to at least do the washing during the bright days now....most of the time!

Regds
E

That said, what you have achieved is very strong.
Did you do all the logic with NR or are you using python or other tools ?
I think @BartButenaers must be very interested in what you have done.
He who is the originator of this topic

Just a few questions:
For powering the SonOff Pow, did you mount 230V on the roof ?
Is the WiFi strong enough to reach your access point ?
Is it mounted in a waterproof box or protected under the roof tiles?
How well does it stand the heat ?

1 Like

Hi JL,

It works very well indeed, and I am very happy with it!

All the major logic is done with NR, some of the Sonoffs are custom one offs I set up with ArduinoIDE, but most, by far, are Tasmota'd... The ones that I went to IDE I cant exactly remember, except for one near my mail server on the top floor of my house, that is hooked to a 433mhz receiver, reading Keeloq encoded remote control keyfobs for security and other lighting...

I hope Bart is enjoying the chat, hopefully I'm not hijacking his thread!!

Nope, I am using the powR2's at plugpoints, the only "roof" access that is needed is for the micro panel, which has a piece of "twin-flex" feeding down to a Sonoff Basic that is doing the a/d work and sending it out via mqtt..

WiFi access here is a nightmare - I have some "high security" steel lined workshops that have their own access points, but the property is BIG (by my estimates anyway)... The wifi is covered by a total of 10 DLink AP units plus another 2 or 3 WIFI/Cell internet Routers - This spans an outdoor total area of around 400m x 300m, or around 120 000 m sq (There is still another km or so of land that we have that is used by our paintball range....

Strangely enough, the worst AP reception is internal to the main house, the original builders around 80 years ago, cast the internal walls using concrete with what looks like charcoal as a filler - I live in an attractive Faraday cage!!

There is only one of the 10 AP's that is close to external, and that is just inside the metal shell of a secure area, with an external directional antenna linking it to the main house - This is around a 250m link or so...

Interestingly, the long haul AP, while nicely insulated itself from the direct solar heat proper, suffers most when we have heat waves - I ping them all every few minutes and raise an alert if a response is skipped - Mr Long Haul loves mist and rain, but his signals don't do well in the heat for some reason... One day I'll get off my butt and do something about it!!

Another unit that messes about, strangely enough, is the Sonoff Basic that controls my diesel Auto-Start Generator - It is literally 6ft from an AP(Another thing I must check out when I get a chance, mutter, mutter...) - My gennie is controlled by NR with the Sonoff Basic hardware hacked to a cold contact relay, so that the gennie will only come on when there is no mains power and the SOC/Voltage of the inverter batteries reaches a pre-configured level.. When that level is reached, NR tells the Genset to start, switches the inverter to "mains charging" and eco mode, once a safe charge level is reached, NR then shuts down the gennie and flips the inverter back to battery mode...


(Ignore the Current/Wattage values, I am playing with something)

No user intervention required (I told you I was a lazy bugger...LOL)

Regds
Ed

Edit: Sun/Cloud is a bit ragged today - here you can see the Hot water element stepping through various loads as solar comes and goes(Blue is harvest, Red Foreground is Element power read via a SonoffPowR2, Red background is total draw on the inverter):

1 Like