JDBC-Persistence mit mariaDB

Hier bitte alles rein was Off-topic ist.

Moderatoren: Cyrelian, seppy

Antworten
frankh
Beiträge: 17
Registriert: 13. Apr 2022 09:26

JDBC-Persistence mit mariaDB

Beitrag 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.
Zuletzt geändert von frankh am 21. Dez 2022 12:59, insgesamt 1-mal geändert.

Benutzeravatar
udo1toni
Beiträge: 13857
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: JDBC-Persistence mit mariaDB

Beitrag 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.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

frankh
Beiträge: 17
Registriert: 13. Apr 2022 09:26

Re: JDBC-Persistence mit mariaDB

Beitrag 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]"

Benutzeravatar
udo1toni
Beiträge: 13857
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: JDBC-Persistence mit mariaDB

Beitrag von udo1toni »

Nein, das ist schon korrekt so, openHAB sollte selbst die Tabelle anlegen.
Bist Du sicher, dass Du auf die richtige Tabelle schaust?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

frankh
Beiträge: 17
Registriert: 13. Apr 2022 09:26

Re: JDBC-Persistence mit mariaDB

Beitrag 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

Antworten