klaus1 hat geschrieben: 7. Feb 2026 07:41
Ich hatte damals auch eine Persistierung aller items, ohne rrd files und ohne rrd4j addon.
Was heißt "damals"?
rrd4j persistierte seit OH3.0.0 als default Persistence ohne dass es explizit installiert oder eingerichtet war. Das war so, um die Analyze Funktion in der Main UI zur Verfügung zu stellen.
Es gab damals (auch von mir) Kritik dazu, weil es für den Anwendewr nicht ersichtlich war, dass rrd4j überhaupt installiert war, noch, wie es konfiguriert war.
Auch das Verhalten, dass Items überhaupt persistiert werden, ohne dass man etwas dazu eingerichtet hat, ist eher ungünstig. Hätte man die entsprechenden Konfigurationen einfach als Default sichtbar hinterlegt, dann wäre das transparent gewesen, so war es aber leider nicht.
klaus1 hat geschrieben: 7. Feb 2026 07:41
Ich möchte nur Zustände sichern und bei Neustart mit diesen arbeiten
Das geht am besten mit dem mapdb Addon.
MapDB kann nur einen einzigen Wert (pro Item) speichern, mitsamt der Zeitstempel des letzten Updates und der letzten Änderung. MapDB kann (im Unterschied zu rrd4j) auch mit Strings umgehen, was es ideal für restoreOnStartup macht.
Vorgehensweise:
Installiere das mapdb Addon.
Richte für alle Items, für die Du die Funktion benötigst als Strategy
everyChange,restoreOnStartup ein. Falls Du Zeitstempel des letzten Updates haben möchtest, kannst Du statt
everyChange auch
everyUpdate setzen.
Seit openHAB4 sind diese Einstellungen auch über die Main UI erreichbar, Einstellungen -> Persistence-> Configure Policies...
Evtl. ist der Menüpunkt gewandert, ich habe gerade kein OH4 zur Hand

aber zumindest in der Richtung müsste es liegen.
Du musst die default Persistence nicht ändern! (die bezieht sich einzig auf die Default Datenquelle, da ist rrd4j die bessere Wahl).
Du musst an der Konfiguration von rrd4j nichts ändern (höchstens zurück zur Konfiguration, bevor Du Experimente gestartet hast...)
Strategisch ist es sinnvoll, alle numerischen Items in rrd4j zu persistieren, es sei denn, Du legst auf die grafische Darstellung in openHAB (Analyze) keinen Wert, denn diese speist sich aus der Default Persistence (die deshalb unbedingt eine Historie aufweisen muss, anders als mapDB).
Weiterhin empfehle ich immer, sehr genau zu überlegen, wo die "beste" Quelle für einen Status ist. z.B. habe ich knx. knx liefert selbst beim Start die Status aller Items, sofern das korrekt konfiguriert ist -> kein restoreOnStartup.
Weiterhin habe ich verschiedene per mqtt angebundene Geräte, welche nach Anforderung ihren Status senden können -> kein restoreOnStartup, stattdessen eine Rule, welche per System started Trigger ausgelöst wird und eben diese Anforderung an alle Geräte schickt.
Aber ich habe auch Items, deren Status nirgends abrufbar ist, diese stelle ich dann mittels restoreOnStartup wieder her.
Es gilt aber immer daran zu denken, dass sich ein Status durchaus ändern kann, während openHAB gerade nicht gestartet ist. Dann ist so ein Status eventuell wertlos, ja, vielleicht sogar "gefährlich" (Zustand eines Melders wird als
OK angenommen, obwohl der betreffende Kontakt beim Start von openHAB bereits auf
Nicht OK stand)