Mittelwert von Zeitpunkten (und Bonus: Gewichtung der einzelnen Werte)

Ich hab schon einiges hier im Forum gelernt und auch die Youtube-Videos geschaut, das hat mich in Home Assistant schon sehr weit gebracht. Aber jetzt stehe ich vor einer etwas größeren Herausforderung, die ich alleine nicht bewältigen kann:

Ich habe meinen Eltern (eine Etage tiefer) ein Tablet an die Wand gebaut, auf dem sie die wichtigsten Dinge in einem Dashboard machen und sehen können.
Wir haben eine PV-Anlage, die ich auch gut einbinden konnte. Die Vorhersage dafür habe ich mit Forecast.Solar gemacht, auch das funktioniert super. Allerdings besteht die PV-Anlage aus 4 Elementen, die unterschiedlichen ausgerichtet sind - ich habe also vier unterschiedliche Entitäten, die den Zeitpunkt der Spitzenleistung der jeweiligen Elemente angeben. Daraus möchte ich gerne einen Durchschnitt haben, weil ich einfach nur eine Zeit anzeigen möchte, zu der es zum Beispiel am ökonomischsten ist, die Spül-/Waschmaschine anzumachen. Das funktioniert mit diesem Template wunderbar:

{{((as_timestamp(states('sensor.power_highest_peak_time_today_2'))
+ as_timestamp(states('sensor.power_highest_peak_time_today_3'))
+ as_timestamp(states('sensor.power_highest_peak_time_today_4'))
 + as_timestamp(states('sensor.power_highest_peak_time_today_5')))/4) | timestamp_custom('%H:%M')}}

Nun sind aber die jeweiligen Standorte der Anlagen unterschiedlich groß, sodass nicht alle gleich viel Strom zur Spitzenzeit produzieren.
Kann ich es hinbekommen, dass die Anlagen unterschiedlich in der Rechnung gewichtet werden (eine zum Beispiel mit 20%, eine andere mit 30% und zwei mit 25%)?

Während ich das hier schreibe, kommt mir schon eine mathematische Idee. Ich probiere es mal aus, aber wäre dennoch über jeden Hinweis dankbar.

Gut, ich habe eine Lösung, die erstmal funktioniert. Ist kompliziert und wahrscheinlich auch total verkompliziert, aber ich teile sie gerne mit euch:

{{
((((states('sensor.energy_production_today_2') | int)*(60*(as_timestamp(states('sensor.power_highest_peak_time_today_2'))) | timestamp_custom('%H')| int)+((as_timestamp(states('sensor.power_highest_peak_time_today_2')) | timestamp_custom('%M')| int)))+
((states('sensor.energy_production_today_3') | int)*(60*(as_timestamp(states('sensor.power_highest_peak_time_today_3'))) | timestamp_custom('%H')| int)+((as_timestamp(states('sensor.power_highest_peak_time_today_3')) | timestamp_custom('%M')| int)))+
((states('sensor.energy_production_today_4') | int)*(60*(as_timestamp(states('sensor.power_highest_peak_time_today_4'))) | timestamp_custom('%H')| int)+((as_timestamp(states('sensor.power_highest_peak_time_today_4')) | timestamp_custom('%M')| int)))+
((states('sensor.energy_production_today_5') | int)*(60*(as_timestamp(states('sensor.power_highest_peak_time_today_5'))) | timestamp_custom('%H')| int)+((as_timestamp(states('sensor.power_highest_peak_time_today_5')) | timestamp_custom('%M')| int))))/((states('sensor.energy_production_today_2') | int)+(states('sensor.energy_production_today_3') | int)+(states('sensor.energy_production_today_4') | int)+(states('sensor.energy_production_today_5') | int))) | timestamp_custom('%M:%S', false) }}

Das Template multipliziert die Leistung des Tages der jeweiligen Module mit der Uhrzeit der Spitzenleistung (zwischendurch in Minuten konvertiert), addiert alles und teilt es dann durch die gesamte Leistung des Tages. Dann komme ich bei dem Wert raus, zu dem die meiste Energie prognostiziert wird.

Für heute kam 13:09 raus und das ist tatsächlich auch der Moment, an dem Heute die Spitzenleistug der PV-Anlage erbraucht wurde.