Seite 1 von 1

JDBC-Persistence mit mariaDB

Verfasst: 21. Dez 2022 11:34
von frankh
Hallo,

in meiner oh3 Installation habe ich die persistence auf jdbc mit meiner existierenden mariaDB Datenbank umgestellt, was soweit funktioniert.
Allerdings persistiert der persistence Service die Item Werte von einem Zaehleritem nur als VARCHAR und nicht als NUMBER, was dann leider dazu führt, dass ich die Werte nicht mit Grafana als timeseries visualisieren kann. Mindestens ein Feld muss dann vom Type Number sein oder evtl geht auch float - aber halt kein string Type
Gibt es die Möglichkeit, die persistence eines Wertes als NUMBER einzustellen ?

select * from sampleTable from sampleDB ;

Code: Alles auswählen

+-------+----------------+------+-----+----------------------+--------------------------------+
| Field | Type           | Null | Key | Default              | Extra                          |
+-------+----------------+------+-----+----------------------+--------------------------------+
| time  | timestamp(3)   | NO   |     | current_timestamp(3) | on update current_timestamp(3) |
| value | varchar(16255) | YES  |     | NULL                 |                                |
+-------+----------------+------+-----+----------------------+--------------------------------+
würde jetzt ungern dafür extra noch die InfluxDB installieren , da einige andere timeseries Daten bereits in der mariaDB sind.

Vielleicht kennt jemand eine Möglichkeit hierfür. Danke vorab.

Re: JDBC-Persistence mit mariaDB

Verfasst: 21. Dez 2022 12:50
von udo1toni
da muss irgendwas schief sein. Number Werte werden gewöhnlich immer auch als Zahl gespeichert, nicht als String.

Kannst Du Näheres über die Items sagen?
Ach ja, bitte markiere solchen Text als Code, damit bleibt die Formatierung dann eher so, wie sie in der Shell aussieht, fixe Laufweite, Zeilenumbruch korrekt usw.

Re: JDBC-Persistence mit mariaDB

Verfasst: 21. Dez 2022 13:04
von frankh
die Tabelle hat openhab selber in meiner openhabdb@mariaDB erstellt, dh vielleicht ist das schon der Fehler. Sollte die vorher als timestamp und Number angelegt werden ?
mein Item ist in der .items als Number definiert

Code: Alles auswählen

Number  ItemName         "ItemNameWatt [%.1f W]"

Re: JDBC-Persistence mit mariaDB

Verfasst: 21. Dez 2022 16:18
von udo1toni
Nein, das ist schon korrekt so, openHAB sollte selbst die Tabelle anlegen.
Bist Du sicher, dass Du auf die richtige Tabelle schaust?

Re: JDBC-Persistence mit mariaDB

Verfasst: 21. Dez 2022 19:02
von frankh
ok, ich hab die ganze Tabelle gedropped, dann persist service nochmal gestartet (zwischendurch fallback auf rrdj) und die Tabelle wurde neu angelegt
jetzt sieht die Tabelle auch besser aus, dh die richtigen Types

Code: Alles auswählen

MariaDB [openhabdb]> SHOW COLUMNS FROM MyTable;
+-------+--------------+------+-----+----------------------+--------------------------------+
| Field | Type         | Null | Key | Default              | Extra                          |
+-------+--------------+------+-----+----------------------+--------------------------------+
| time  | timestamp(3) | NO   | PRI | current_timestamp(3) | on update current_timestamp(3) |
| value | double       | YES  |     | NULL                 |                                |
+-------+--------------+------+-----+----------------------+--------------------------------+
2 rows in set (0.003 sec)
die Tabelle kann Grafana jetzt auch als timeseries anzeigen