openHAB 2: MariaDB Persistence mit Synology NAS

openHab bietet eine Vielzahl an Möglichkeiten, wie wir unser Smarthome konfigurieren und verwalten können. In diesem HowTo möchte ich euch die Konfiguration einer MariaDB Datenbank auf einer Synology DiskStation näher bringen. Eine Datenbank ermöglicht es uns, Sensordaten persistent zu gestalten. Das bedeutet, dass wir auf vergangene Werte zurückgreifen und diese für weitere Berechnungen heranziehen können. Beispielsweise lässt sich auf diese Weise der Stromverbrauch der letzten Monate und die somit die entstandenen Kosten kalkulieren. Besonders in der Kombination mit einer smarten Steckdose (siehe TP-Link HS110 Tutorial) stellt das eine große Bereicherung dar.

Nachdem ich die Installation von openHAB 2 auf einer Synology DS per Paket-Zentrum, sowie über die Containersoftware Docker (unbedingt zu bevorzugen) bereits erklärt habe, können wir gleich uns gleich ins Geschehen stürzen. Sollte das Basissetup noch nicht hergestellt sein, würde ich dir die verlinkten Tutorials unbedingt ans Herz legen.

 

MariaDB Datenbank für openHAB anlegen

Eine ausführliche Anleitung, wie man einen MariaDB-Server auf der Synology DS installiert, könnt ihr bereits hier abrufen: „Synology MariaDB Datenbank erstellen„. Deswegen werden die einzelnen Schritte in diesem Post nur noch im Schnelldurchlauf angeführt:

  1. „MariaDB 10“ als Paket im Paketzentrum der Synology DS installieren – stellt die Datenbank-Instanz dar.
  2. „phpMyAdmin“ als Paket im Paketzentrum der Synology DS installieren – gibt uns die Möglichkeit, die Datenbank über eine übersichtliche GUI zu verwalten.
  3. phpMyAdmin Webinterface öffnen und einen neuen Benutzer „openhab“ anlegen.
  4. Checkbox „Erstelle eine Datenbank mit gleichem Namen und gewähre alle Rechte.“ anhaken und Benutzer erstellen.

 

openHAB Persistence Plugin installieren

Die Installation von Plugins über openHAB geht über die das „Paper UI“ relativ schmerzlos von der Hand. Dazu muss einfach der „Persistence“ Reiter unter „Add-ons“ aufgerufen und nach dem Schlagwort „MariaDB“ gesucht werden. Mit einem Klick auf „INSTALL“ wird das Plugin automatisch installiert. Sollte es auch nach mehreren Minuten im Installationsprozess festhängen, könnte ein Refresh des Browser-Tabs oder ein Restart von openHAB helfen. Wenn auch das nicht hilft, kann im Log relativ genau die Ursache ausgelesen werden.

 

 

JDBC Persistence MariaDB konfigurieren

Sobald das Plugin installiert ist, muss abschließend noch die Konfiguration der jdbc.cfg vorgenommen werden. Dazu kann einfach nachfolgende Datei kopiert und in den Texteditor deiner Wahl eingefügt werden.

############################ JDBC Persistence Service ##################################
# D A T A B A S E  C O N F I G
url=jdbc:mariadb://192.168.1.10:3307/openhab
# url=jdbc:mysql://192.168.0.1:3306/testMysql
# url=jdbc:postgresql://192.168.0.1:5432/testPostgresql

# required database user
user=openhab

# required database password
password=SUPERSAFEPA$$WORD
#######################################################################################

Grundsätzlich müssen nur die drei Zeilen ohne Raute angepasst werden:

  • url: IP der Synology NAS mit dem Port 3307 (Standardport für MariaDB) + Datenbankname
  • user: Benutzername des zuvor erstellten DB-Users
  • password: Password des zuvor erstellten DB-Users

Abschließend soll die Datei noch als „jdbc.cfg“ im openHAB-Pfad „/conf/services/“ abgespeichert werden. Damit man sicherstellen kann, dass die Verbindung mit der SQL-Datenbank ohne Fehler hergestellt worden ist, sollte man noch einen Blick in das openHAB-Log unter „/userdata/logs/openhab.log“ werfen. Bekommt man dort keine Fehlermeldung ausgegeben, sondern folgenden Eintrag, wurde die Verbindung erfolgreich hergestellt:

[INFO ] [persistence.jdbc.internal.JdbcMapper] - JDBC::openConnection: Driver is available::Yank setupDataSource

Somit ist der Grundstein gelegt, um zukünftig Items als Tabelle in der Datenbank anzulegen (siehe: openHAB 2: Items persistent in MariaDB speichern).

Das könnte Dich auch interessieren …

Abonnieren
Benachrichtige mich bei
guest
5 Comments
Älteste
Neuste Meist bewertet
Inline Feedbacks
View all comments
Olaf Maaß
Olaf Maaß
1 Jahr zuvor

Vielen Dank für die super Erklärung MariDB ==> openHAB.
Wie kann ich den nun ITEMS in die Datenbank ablegen?

Matthias
Matthias
11 Monate zuvor

Vielen Dank für die sehr gute und strukturierte Erklärung.
Ich suchte nämlich nach einer Möglichkeit Daten von openHAB, läuft momentan auf einem Raspberry, in eine Datenbank auf der Synology (DS214) zu loggen.

Dieser Artikel und der Folgeartikel hat mir das innerhalb von wenigen Minuten auf Anhieb ermöglicht.

Die Test Items erscheinen sofort in der Datenbank.
Zur leichteren Navigation in der Maria10 DB nutze ich am PC HeidiSQL

Viele Grüße
Matthias

Rolf Steiner
Rolf Steiner
8 Monate zuvor

Hi Vielen Dank für die super Anleitung. Ich habe diese genau befolgt und komme zumindest auch auf die message, mit der dieser Beitrag oben abgschlossen hast: [INFO ] [.persistence.jdbc.internal.JdbcMapper] - JDBC::openConnection: Driver is available::Yank setupDataSource Dann kommt aber folgende message, d.h. ich kann nicht verbinden: 10:50:47.189 [ERROR] [org.openhab.persistence.jdbc         ] - bundle org.openhab.persistence.jdbc:3.0.1 (260)[org.openhab.persistence.jdbc.internal.JdbcPersistenceService(302)] : The activate method has thrown an exception com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Could not connect to address=(host=192.168.xxx.xx)(port=3307)(type=master) : Connection refused (Connection refused) Ich bin auf Openhab 3, auf OH2 hatte ich die mysql, ist nun deprecated, darum musste ich auf JDBC wechseln. Hat… Weiterlesen »

Last edited 8 Monate zuvor by Rolf Steiner
5
0
Hinterlass' doch deine Meinung zu diesem Artikelx
()
x