The hours and hours that I have spent on this just does not bear thinking about!
First check - solar forecast start/end matches local solar day.
You (currently) expect sunrise at 06:50, and sunset at 20:05 (rounded). This agrees with the solar sun calculator suncalc.org for Frankfurt. I am in Bristol UK on BST (UTC+1), being about 10 degrees west of you my solar day is much the same, currently sunrise 06:32, sunset 19:52.
Next, ‘actual power’.
Here is my solar power history for Tuesday. A sunny day generated 20kWh total.
Top line is solar power sensor from inverter. Power started around 07:00, and ended around 20:00 (which is OK for a solar day from 6:30 - 20:00). The power line is correct, as it comes from my inverter and agrees with what I see on the inverter UI screen.
I use this sensor in a Reimann sum to get solar energy (second line). This is correct - difference start to end of the day is 20kWh. The sensor records total energy, and this agrees (within tolerance) with my ongoing inverter monthly/yearly records.
Now I want to plot the ‘actual’ on my graph for each hour.
Here I show the utility meter sensor for energy hourly at +30 minutes offset.
Aside: why offset 30 minutes?
The solar forecast is power and I also want to plot actual energy to easily compare them. Energy is not power, however the average power for a one hour period is the energy, so I can plot both together, as long as I line up the periods. Actual power at 9:00 has to be compared with energy from 8:30 to 9:30 to match.
Check utility meter: From power graph, actual power at 8:30 is ~1330 W, and at 9:30 it is ~1630 W, so an average is 1480 W, or approximately 1.5kW over 1 hour = 1.5kWh.
If I update the solar forecast at 10:05, and I read the utility meter entity, the entity 'last period’ is the value when it was last reset at 9:30, and this gives 1.5kWh, so I can use that to plot 1.5kWh on the graph at 9:00.
Double check - power at 9:00 is ~1500W (as expected on a linear interpolation between 8:30 and 9:30) so that matches with average power and energy between 8:30 and 9:30. I can plot power 1500W at 9:00 and energy (1 hour) 1500Wh at 9:00.
So my actual energy values are correct.
Here is a HA history plot of solar power for the east and the west plane, and a plot of the solar forecast (power) for the current hour.
To make this clearer here is an excel scatter plot for just the east-north-east plane showing actual and forecast.
In theory, at this point, the ‘actual energy’ and the ‘forecast power’ should now line up. They don’t - you can clearly see the huge disparity between forecast and actual. The expected rapid rise at the start of the day from sunlight directly on the east facing plane is curtailed (by horizon shading) for about 60-90 minutes. Also, my planes are on a garage roof with a nearby south-facing house wall reflecting indirect sunlight back onto the planes. This increases the midday and early afternoon generation.
Now I look at your graph.
I note that your solar day starts at 06:51, so at 7:00 the sun is just rising. On your graph your actual for 7:00 is about zero, which is what I would expect. However, and this is the interesting part, your forecast for power suggests 5500 W.
Whatever your situation, I cannot believe that your system is going to be generating over 5kW just 9 minutes after the sun has risen!
Another check is to look at solar noon - for a south facing plane both forecast and actual should peak at solar noon. For east/west planes this will not be the case, but my two equal capacity, and almost equally offset from due south, when added together should peak around solar noon. Your solar noon should be approx 13:30. If you have balanced planes then your actual looks reasonable peaking at 13:00, but the forecast peaks before 12:00.
So I suspect the forecast is the problem. Is this being plotted one, even two hours earlier than it should be?
My thoughts are that planes that do not face due south produce poor forecasts, with the error being at the start for east and end for west, and becoming more pronounced further away from due south. There seems to be no easy fix for this error (I just can’t add in or subtract, or shift the curve left or right). I have managed to get a reasonable match for myself by getting forecast power and actual energy to time-match, by using the damping factor, and by having two planes 180 degrees opposing which goes some way to cancelling out the errors between them.