Seite 1 von 1

jdbc persistence mysql

Verfasst: 4. Jun 2021 16:23
von StephanT
Hallo,

ich versuche eine Mysql-DB an openhab3 anzubinden und nutze dazu das Binding "jdbc persistence mysql".
Auf einem 2. Server läuft die Mysql-Datenbank und die Berechtigungen sind für den Benutzer openhabian gesetzt. Tabellen sind in der DB nicht angelegt.
Auf dem Openhab-Raspi habe ich die Dateien jdbc.persist und und jdbc.cfg angelegt und mit den notwendigen Daten versehen.

jdbc.cfg:
url=jdbc:mysql://192.168.1.101:3306/openhab
user=openhabian
password=openhabian


jdbc.persist:
Strategies {
everyMinute : "0 * * * * ?"
everyHour : "0 0 * * * ?"
everyDay : "0 0 0 * * ?"
default = everyChange
}
Items {
KostalInverter_YieldDay : strategy = everyMinute, restoreOnStartup
Wetterinformationen_Aussentemperatur : strategy = everyHour, restorOnStartup
}

Ich habe auch noch eine mysql.persist angelegt, die inhaltlich der jdbc.persist entspricht.

In die Datenbank werden aber leider bisher keine Daten geschrieben. :x

Muss ich in der Dabenbank noch Tabellen anlegen oder legt Openhab die erforderliche Struktur in der Datenbank über die Schnittstelle selbst an.

Da dies meine ersten Versuceh mit Openhab und einer mysql-DB sind, wäre ich für Tipps dankbar.

VG Stephan

Re: jdbc persistence mysql

Verfasst: 6. Jun 2021 18:52
von Horschie
Servus,

der Datenbankzugriff ist bei mir komplett im grafischen Openhab-Admin-Tool konfiguriert,
eine DAtei gibt es bei mir dazu nicht.


Grüße

Re: jdbc persistence mysql

Verfasst: 7. Jun 2021 00:11
von StephanT
Hallo,

da dies mein erster Versuch ist, bin ich nach Anleitungen im Netz vorgegangen.

In der graphischen Oberfläche habe ich unter Einstellungen-Addons-Persistence das JDBC Persistence MySQL-Binding installiert.
Das ist auch das einzige Persistence-Binding.
Unter Systems Services-Persistence ist nur jdbc vorhanden.
Unter Other services - JDBC Persistence Service habe ich die Zugangsdaten zum MySQL-Server eingetragen, incl. Nutzer und Passwort.
Sollte ich jetzt die obigen Konfigurationsdateien löschen, oder müssen die zusätzlich vorhanden sein?
Woher weiß das System welche Daten und wann in die Datenbank geschrieben werden sollen?

VG Stephan

Re: jdbc persistence mysql

Verfasst: 7. Jun 2021 18:14
von udo1toni
Die Dateien kannst Du einfach löschen.
Was die persistierten Daten betrifft, so habe ich bisher noch keine Stelle gefunden, wo man das konfigurieren kann... ;)
Meine Vermutung ist: wenn keine jdbc.persist Datei vorhanden ist, werden alle Items mit everyChange (oder evtl. everyUpdate) persistiert.

Re: jdbc persistence mysql

Verfasst: 8. Jun 2021 09:56
von StephanT
Hallo,

ich habe nun beide Dateien gelöscht.
Dennoch werden keine DAten in der DB gespeichert.
Wenn ich per phpmyadmin auf die DB schaue, ist sie leer. Es sind keine Tabellen oder Datenfelder angelegt.
Muss ich evtl. noch Tabellen anlegen, damit darin Daten gespeichert werden können.
Im openhab log erkennt man, dass die Daten aus den Geräten ausgelesen werden. Von einer Speicherung in der DB ist allerdings ncht zu sehen:

2021-06-08 09:37:38.379 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_ACPower' changed from 4066 W to 3876 W
2021-06-08 09:37:38.388 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_YieldDay' changed from 4.49 kWh to 4.56 kWh
2021-06-08 09:38:38.697 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_ACPower' changed from 3876 W to 4280 W
2021-06-08 09:38:38.709 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_YieldDay' changed from 4.56 kWh to 4.62 kWh
2021-06-08 09:39:39.016 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_ACPower' changed from 4280 W to 4316 W
2021-06-08 09:39:39.025 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_YieldDay' changed from 4.62 kWh to 4.69 kWh
2021-06-08 09:40:39.400 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_ACPower' changed from 4316 W to 4180 W
2021-06-08 09:40:39.410 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'KostalInverter_YieldDay' changed from 4.69 kWh to 4.76 kWh

Von daher gehe ich davon aus, dass keine Daten gespeichert werden.

Muss das Speichern an anderer Stelle initialisiert werden?

Re: jdbc persistence mysql

Verfasst: 8. Jun 2021 10:11
von StephanT
Asche auf mein Haupt,

ich habe die ganzen logs nochmals durchsucht und einen acces denied gefunden. Der User hatte eine falsche Berechtigung.
Jetz läuft's.

Danke für eure Hilfe.