Ja, das sieht so aus...
Die Frage ist: brauchst Du alle Items in der Persistence?
openHAB legt per Default erst mal für alle Items eine Persistence an. Witzigerweise ist das nicht mal für alle Items sinnvoll (rrd4j kann z.B. nicht mit String Items umgehen...)
Du kannst das Problem lösen, indem Du die Persistence gezielt konfigurierst.
Leider gibt es keine Möglichkeit, gezielt bestimmte Items von der Persistence auszunehmen. Stattdessen musst Du von "alle Item persistieren" zu "genau diese Items persistieren" kommen, was bedeutet, dass Du jedes Item benennen musst, welches persistiert werden soll, und mehr noch, Du musst auch definieren, wie dieses Item persistiert werden soll.
rrd4j setzt zwingend voraus, dass mindestens ein Messwert pro Minute existiert, eine Strategy ist also everyMinute. Weiterhin sollte mindestens bei jeder Wertänderung ein Speichern erfolgen, also zusätzlich everyChange.
Du kannst nun einzelne Items aufzählen oder die Items über Gruppen zusammenfassen. Hast Du z.B. alle Temperaturen in einer Gruppe gTemperaturen, so kannst Du die Member dieser Gruppe persistieren lassen.
Wenn Du mit openHAB4 unterwegs bist, kannst Du die Zuordnung zur Persistence über die UI erledigen:
Main UI ->Administration->Einstellungen->Add-Ons->Other->Persistence->RRD4J->Details (Klick auf die Kachel)->winziges blaues Zahnrad rechts neben REMOVE->Persistence configuration)
Unter Add configuration kannst Du die Items bzw. die Gruppen auswählen und bestimmen, welche Strategies zum Einsatz kommen sollen (pro Item/Gruppe)
Alternativ kannst Du das gleiche auch über eine Textdatei erledigen, Dateiname ist exakt
$OPENHAB_CONF/persistence/rrd4j.persist (wobei
$OPENHAB_CONF gewöhnlich auf
/etc/openhab/ zeigt).
Inhalt der Datei:
Code: Alles auswählen
Strategies {
// for rrd4j, we need a cron strategy
everyMinute : "0 * * * * ?"
}
Items {
// let's store Wheater_Chart values in rrd4j
Weather_Chart* : strategy = everyMinute, everyChange
GTempEG*, GTempOG* : strategy = everyMinute, everyChange
Gosund2Power : strategy = everyMinute, everyChange
}
Das * am Ende des Namens bedeutet: nimm statt des Status des Items selbst die Status der unmittelbaren Member. Es handelt sich also um die vollständigen Namen der Group Items, deren Member persistiert werden sollen. Ich ordne z.B. die Raumtemperatur des Wohnzimmers der Gruppe GTempEG zu, woraufhin die Temperatur regelmäßig persistiert wird.
Ohne Sternchen geht es um ein Item mit exakt diesem Namen (hier Gosund2Power).
Es ist nicht vorgesehen, irgendwelches Joker zu verwenden. Der einzig erlaubte Joker wäre ein einzelnes Sternchen, welches dann alle Items des Systems umfasst (hier nicht hilfreich...)
openHAB4.0.3 in einem Debian-Container (bookworm) (Proxmox 8.0.4, LXC), mit openHABian eingerichtet