rrd
Das RRDTool ist ein weitverbreitetes Tool um Zeitreihen von Messdaten aufzuzeichnen. Dieses Plugin stellt die Möglichkeit bereit Itemwerte an das RRDTool weiterzugeben.
Anforderungen
Notwendige Software
Das Paket Rrdtool und die entsprechenden Python Libraries müssen installiert sein.
sudo apt-get install librrd-dev libpython3-dev
Vergleich zwischen Datenbank-Plugin und rrdtool:
Das RRD-Plugin und das Datenbank-Plugin können nicht zusammen für ein einzelnes Element verwendet werden.
RRD + ein stabiles, zuverlässiges Werkzeug + wird in vielen Datenprotokollierungs- und Grafiktools verwendet - Die Entwicklung hat in den letzten Jahren nicht stattgefunden
Datenbank-Plugin + Unterstützung für viele verschiedene Datenbanken wie SQLite, MySQL/MariaDB usw. + genaue Protokollierung der Änderungszeiten + mehr Analysefunktionalität
Konfiguration
Die Plugin Parameter und die Informationen zur Item-spezifischen Konfiguration des Plugins sind unter Plugin ‚rrd‘ Konfiguration beschrieben.
Funktionen
Das Plugin stellt für jedes Item das für die Verwendung mit dem Plugin konfiguriert wurde eine Datenbankfunktion bereit.
sh.item.db(function, start, end='now')
Diese Funktion liefert Werte unter Berücksichtigung der nachfolgend erläuterten Funktion und dem Zeitrahmen start
und end
.
Unterstützte Funktionen für die Datenaufbereitung sind:
avg: Durchschnittswert
max: Maximalwert
min: Minimalwert
last: Letzter eingetragener Wert
Für das Zeitintervall müssen relative Anfangs- und Endzeitpunkte zum aktuellen Zeitpunkt angegeben werde.
Der Vorgabewert für das Ende ist now
was einer relativen Verschiebung um 0
entspricht.
Die relativen Start- und Endzeitpunkte werden definiert durch <Nummer><Intervalleinheit>
Für die Intervalleinheit können folgende Kennzeichnungen verwendet werden:
i: minute
h: hour
d: day
w: week
m: month
y: year
Beispiele
Aussen:
name: Aussen
Temperatur:
type: num
rrd: init
rrd_min: 'yes'
rrd_max: 'yes'
Wohnzimmer:
Temperatur:
type: num
rrd: 'yes'
Versorgung:
Wasser:
type: num
rrd_type: counter
Um das Minimum der letzten 24 Stunden zu ermitteln:
sh.Aussen.Temperatur.db('min', '1d')
Um die Durchschnittstemperatur einer Woche zu ermitteln die vor genau 7 Tagen endete:
sh.Aussen.Temperatur.db('avg', '2w', '1w')
Web Interface
Aktuell hat das Plugin kein Webinterface