Seite 1 von 1

Wie Peristence von Openhab 4.1 richtig verwenden

Verfasst: 3. Mär 2024 13:54
von dev_MaFi
Hallo Forum,

zum Thema Persistence in OH4.1 habe ich mal eine Frage, bzw. mir ist es nicht ganz klar.
Zu erst mal mein Setup:
  • OH 4.1 mit JDBC und Map installiert
  • MariaDB mit entsprechender korrekter Konfiguration
  • Default Persistence Service: Map DB
  • jdbc.persist File für die Items, welche in der MariaDB gespeichert werden sollen
Mein Thema ist nun, dass jedesmal, wenn ich ein neues Item anlege, dieses immer in der MariaDB angelegt wird, egal ob ich es in dem persist File angebe oder eben auch nicht. Wenn ich es angebe, verstehe ich, dass es angelegt wird.

Damit einhergehen zwei Fragen:
  • Warum legt OH mir, obwohl MAP DB der Default ist, für alle Items einen Eintrag in der MariaDB an und speichert auch die Werte?
  • Wenn ich Map DB als Default angebe, muss ich dann dennoch für jedes Item dort einen Eintrag hinterlegen? Wenn nicht, was muss ich einstellen, dass die Einträge aus der Map DB beim Restart wieder gelesen und in den Item Status geschrieben werden?
  • Ist die Benennung des Persist File mit jdbc.persist für die MariaDB korrekt?
Danke Martin

Re: Wie Peristence von Openhab 4.1 richtig verwenden

Verfasst: 3. Mär 2024 17:23
von udo1toni
Der NAme jdbc.persist ist schon mal korrekt. Wo hast Du die Datei gespeichert?
Welchen Inhalt hat die Datei (exakt, ungekürzt)?

Die Default Persistence bezieht sich nur auf Lesevorgänge aus´der Persistence, nicht auf Schreibvorgänge, denn die werden nur über die entsprechende *.persist Datei (bzw. das UI Pendant) gesteuert.

Re: Wie Peristence von Openhab 4.1 richtig verwenden

Verfasst: 3. Mär 2024 21:06
von dev_MaFi
Die Datei ist unter /etc/openhab/persistence/jdbc.persist abgelegt, aktuell mit folgendem Inhalt:

Code: Alles auswählen

Strategies {
        everyChange
}

Items {
        Lock_Nuki03_BatteryValue : strategy = everyChange
}
Schau ich in die Datenbank rein, finde ich aber alle für Nuki Items Einträge, ebenso die Gruppen und auch für zwei bereits angelegte Contact Items:

Code: Alles auswählen

SELECT * FROM gdorf;
1	Contact_Aqara14_State_Bad
2	Contact_Aqara15_State_Bad
3	gLockCylinders
4	Lock_Nuki02_BatteryValue
5	Lock_Nuki02_Switch
6	Lock_Nuki02_Doorstate
7	Lock_Nuki02_LowBatteryAlert
8	Lock_Nuki01_Switch
9	Lock_Nuki01_LowBatteryAlert
10	Lock_Nuki01_Doorstate
11	Lock_Nuki03_Switch
12	Lock_Nuki03_BatteryValue
13	Lock_Nuki03_LowBatteryAlert
14	Lock_Nuki03_Doorstate
15	gLockState
16	Lock_Nuki01_BatteryValue

Re: Wie Peristence von Openhab 4.1 richtig verwenden

Verfasst: 3. Mär 2024 23:54
von udo1toni
Und Du hast zuerst die jdbc.persist Datei angelegt und erst danach die Items?

Re: Wie Peristence von Openhab 4.1 richtig verwenden

Verfasst: 5. Mär 2024 10:22
von dev_MaFi
Nein, erst die Items und da ich dann verwundert war, habe ich die jdbc.persist angelegt.

Re: Wie Peristence von Openhab 4.1 richtig verwenden

Verfasst: 5. Mär 2024 16:09
von udo1toni
Dann hat openHAB umgehend für die Items auch Tabellen erzeugt. Allerdings dürften die, seitdem die jdbc.persist passend gefüllt ist, nicht mehr mit aktuellen Daten versorgt werden.

Re: Wie Peristence von Openhab 4.1 richtig verwenden

Verfasst: 5. Mär 2024 21:57
von dev_MaFi
Super, danke für die Erklärung. Jetzt ist es mir etwas klarer. Ich werde das noch einmal im Detail anschauen und testen!