Mit der sog. Persistenz haben die Entwickler von OpenHAB ein mächtiges Werkzeug geschaffen, das es korrekt einzusetzen gilt. Wie das gelingt erfahrt ihr in diesem Beitrag.
Nutzen einer Persistenz
Eine Persisten bedeutet nichts weiter, als die Werte der Automatisierungsanlage zu speichern, zB. in einer Datenbank. Entweder nachdem sie sich verändert haben, oder im Intervall zB. alle Stunde. Auf Basis dieser Datenbank kannst du:
- Durchschnittswerte im zurückliegenden Zeitraum berechnen und verwenden
- Werte nach einem Neustart wiederherstellen
- Diagramme und Auswertungen
Die gängigsten Persistenzen und deren Unterschiede
Eine Liste aller verfügbarer Persistenzen gibt es hier. Aus meiner Sicht sind die wichtigesten folgende:
RRD4J
RRD4J ist die Standard-Persistenze für OpenHAB. Sie ist schnell, zuverlässig und dauerhaft Wartungsfei. Sie ist jedoch nicht exakt, auswertbar und verträglich mit SD-Karten.
Schnell = kurze Reaktionszeiten, gute Performance
Zuverlässig = immer ein Ergebnis, keine Störungen, keine Ausfälle
Wartungsfrei = keinerlei Wartung erforderlich
Nicht exakt = Daten werden mit der zeit aggregiert / gelöscht
Nicht auswertbar = Kein Zugriff wie bei JDBC
SD-Karten = häufige schreibzugriffe beschädigen SD-Karten
JDBC
JDBC steht für Java DB Connector und bedeutet nichts weiter als die Verwendung einer beliebigen Datenbank über das JDBC-Protokoll. Mit allen Vor- und Nachteilen dieser Datenbank. Sofern diese stabil läuft und nicht auf dem Rasp. mit SD-Karte betrieben wird, steht dem fast nichts im Weg. Ledigleich das Thema Wartung, denn über JDBC findet kein Aufräumen statt, die Daten werden fortlaufend und unbegrenz gespeichert. Bis die Platte voll ist. Dies gilt es zu vermeiden, und ist garnicht so trivial wie es klingt.
InfluxDB
Eine relative neue Datenbank, geschaffen um Daten in zeitliche Serien zu sortieren und auswertbar zu machen. Dies klingt für unseren Anwendungsfall passend, sofern diese nicht – ich wiederhole mich – auf der SD-Karte läuft.
Meine Empfehlung
Ich persönlich setze auf eine im Internet betriebe MySQL Datenbank. Diese läuft stabil, außreichend sicher und ist durch SQL Mechanismen wartbar, wenn auch mit etwas Aufwand. Als Service biete ich diese Art von Persistenz ebnfalls an, siehe Services.
Noch keine Kommentare