Ich erinnere mich dunkel an die Rule.
Woran ich mich nicht erinnere, das ist die Erweiterung um die Vorwerte (Verbrauch und Kosten Vortag bzw. letzte...) und das kann so eigentlich auch nicht stimmen - also abgesehen davon, dass diese Werte fix sind, also nie häufiger als einmal berechnet werden müssten.
Du hast ja schon eine Rule, welche den Tagesertrag für den aktuellen Tag errechnet. Von dort gibt es verschiedene Möglichkeiten, wie es weiter geht.
Z.B.: Du schreibst "eine Sekunde" vor Mitternacht den Tagesertrag in ein Item, welches Du nicht automatisch persistierst. z.B. so:
Code: Alles auswählen
rule "Tagesertrag persistieren"
when
Time cron "58 59 23 * * ?" // täglich um 23:59:58 Uhr
then
if(Solarpanel_Ertrag_Tag.state instanceof Number) {
solarPanel_Ertrag_Speicher.postUpdate((Solarpanel_Ertrag_Tag.state as Number))
Thread.sleep(250)
solarPanel_Ertrag_Speicher.persist
]
end
So ist sichergestellt, dass pro Tag nur ein Messwert in der Persistence landet. Alternativ könnte man auch das Speichern über die Persistence automatisch erledigen lassen, wichtig ist aber, dass zu der Zeit der korrekte Wert anliegt und nur ein Wert pro Tag geschrieben wird.
Nun kannst Du - bezogen auf dieses Item - mittels sumSince() oder sumBetween() die Summen der Tageswerte für beliebige Zeiträume erfragen.
Das funktioniert natürlich nicht für alte Werte

aber da die aktuelle Version von openHAB auch das persistieren mit beliebigem Zeitstempel unterstützt, könnte man die benötigten Werte aus dem persistierten Item Solarpanel_Ertrag_Tag einmalig auslesen lassen, per persistedState(Zeitstempel vor Mitternacht).
Das Problem hierbei ist, dass man jeden Zeitstempel errechnen muss. Man könnte das auch on-the-fly erledigen lassen, aber dann läuft so eine Rule mutmaßlich etwas länger (bis zu 366 Durchläufe und Datenbankabfragen für das aktuelle Jahr...) und das Ganze ist ja bezogen auf Zeitstempel, das ist definitiv nicht trivial. Die einfache Lösung ist daher, die Werte automatisch in einer separaten Tabelle zu speichern, die dann leicht abgefragt werden kann.
Wichtig wäre hier auch, dass solarPanel_Ertrag_Speicher nicht mit rrd4j persistiert werden darf, weil rrd4j zwingend everyMinute vorschreibt, was die Berechnung zunichte machen würde...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet