Und WS_COUNT_RAIN ist dann monoton steigend? Sollte dieser Wert nicht von der Wetterstation regelmäßig zurückgesetzt werden?
Wie sind die Items definiert? Handelt es sich um QuantityType Items?
Angenommen, es handelt sich um einen Absolutwert, Regenmenge, die
jemals gefallen ist (seit Inbetriebnahme der Wetterstation, natürlich), gemessen in mm, dann wäre der korrekte Ansatz:
1. Item
WS_COUNT_RAIN als
Number:Length definieren (mit
unit=mm) (Item wird automatisch persistiert, falls nicht anders konfiguriert, um springende Werte zu vermeiden als Strategy zusätzlich zu
everyChange, everyMinute noch
restoreOnStartup setzen)
2. Item
RAIN_CHART als
Number:Length (mit
unit=mm) für die Regenmenge pro Tag. Evtl. als Strategy zusätzlich zu
everyChange, everyMinute noch
restoreOnStartup setzen
2. Eine Rule um den Tageswert ins Item
RAIN_CHART zu schreiben:
Code: Alles auswählen
rule "Save Rain Data"
when
Item WS_COUNT_RAIN changed
then
var nDiff = 0.0
if(WS_COUNT_RAIN.deltaSince(now.with(LocalTime.MIDNIGHT),"rrd4j") instanceof Number)
nDiff = WS_COUNT_RAIN.deltaSince(now.with(LocalTime.MIDNIGHT),"rrd4j") as Number
RAIN_CHART.postUpdate(nDiff)
end
Die Variable
nDiff wird automatisch als Float Objekt erzeugt (weil der Wert 0.0 übergeben wird)
Falls die Persistence-Funktion
.deltaSince einen gültigen Wert liefert, wird dieser in die Variable übernommen.
Der Wert aus
nDiff wird ins Item geschrieben.
Um sicher täglich mit 0 zu beginnen, kannst Du noch eine zweite Regel definieren:
Code: Alles auswählen
rule "Reset Daily Data"
when
Time cron "0 0 0 * * ?" // täglich um 00:00:00 Uhr
then
RAIN_CHART.postUpdate(0)
end
Um 0 Uhr wird das Chart-Item auf 0 gesetzt.
Im Chart ist dann pro Tag (an dem es regnet) eine steigende Kurve zu sehen, die um 0 Uhr bei 0 startet und bis 24 Uhr zur Tagesgesamtregenmenge ansteigt. An regenfreien Tagen gibt es eine 0-Linie.
Sollte in
WS_COUNT_RAIN kein Absolutwert vorliegen, muss man evtl. noch mal drüber nachdenken, dazu fehlen aber noch notwendige Informationen
restoreOnStartup ist hier lediglich wichtig, um bei Ausbleiben von neuen Messwerten zu verhindern, dass die gemalten Linien seltsam aussehen
Die Angabe des Persistence Service
,"rrd4j" kann natürlich auch auf andere Services eingestellt werden, falls dort sicher gültige Werte für die betrachteten Zeiträume vorliegen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet