Metainformationen zur Seite
Modul Stats4Lox
Initialisierung
use LoxBerry::System; require "$lbpbindir/libs/Stats4Lox.pm";
Lädt die Module
- Stats4Lox::JSON
Globale Variablen
Variable | Inhalt |
$Stats4Lox::pcfgfile | Enthält den Dateinamen der Konfigurationsdatei ("$LoxBerry::System::lbpconfigdir/stats4lox.cfg") |
$Stats4Lox::pcfg | Ist das geladene Config::Simple Objekt der Konfigurationsdatei. Autosave ist aktiv. |
$main::configfolder | Der Konfigurationsordner von Stats4Lox (CFG-Datei: Main.configfolder), standardmäßig $lbpdatadir/s4ldata |
$main::statisticsfile | Der volle Pfad und Dateiname zur Statistik-Hauptdatei statistics.json. Wird zusammengesetzt aus $main::configfolder/statistics.json |
$main::RRDCACHED_ADDRESS | Der rrdcached-Socket (Standard: unix:/var/run/rrdcached.sock). Liefert die Variable undef zurück, ist er in der Config abgeschaltet. |
Autoload-Funktionen
- Führt bei jedem Aufruf eine Prüfung durch, ob eine Versionsmigration erforderlich ist.
- Erzeugt und initialisiert $Stats4Lox::pcfgfile, wenn dieses nicht vorhanden ist
- Alle Init-Parameter werden ins Config-File übernommen (Ordner, andere Einstellungen)
- Lädt $Stats4Lox::pcfgfile als Config::Simple Objekt in $Stats4Lox::pcfg, autosave aktiv.
Funktionen
Keine Funktion wird exportiert. Alle müssen mit Stats4Lox::function aufgerufen werden.
Stats4Lox::navbar_main
Damit man nicht alle Elemente in allen Templates bzw. Scripts pflegen muss, ist der Code für die Initialisierung der NavBar in Stats4Lox.pm in der Funktion navbar_main.
Zum Anzeigen der NavBar:
Stats4Lox::navbar_main(Nummer);
LoxBerry::Web::lbheader(x, y, z);
Die Nummer ist das Element, das gehighlighted werden soll. Die Elemente haben jetzt 10=Statistiken, 20=Import, usw.
Stats4Lox::get_dbsettings
Gibt aus der (alten) Datenbank (dbsettings.dat) einen Hash zurück, der den Namen der Einstellungen zurückgibt.
- Wird nur im Import verwendet, muss fertig ausprogrammiert werden, um alle Daten zurückzuliefern.
Stats4Lox::get_databases_by_name
Liest die (alte) Datenbank (databases.dat) in einen Hash. Schlüsselelement ist der Name der Datenbank ("Loxone-Name to fetch"). Rückgabe: Hash
- Umbauen auf neues Datenmodell
Stats4Lox::get_databases_by_id
Liest die (alte) Datenbank (databases.dat) in einen Hash. Schlüsselelement ist die ID der Datenbank ("DB-Name / Statistic ID"). Rückgabe: Hash
- Umbauen auf neues Datenmodell
Stats4Lox::read_file
Stats4Lox::write_file
Stats4Lox::update_grafana_dashboard
Die Funktion wird im Modul intern im END-Block ausgeführt und muss eigentlich nie explizit aufgerufen werden.
- Prüft, ob sich die Datenbank geändert hat (Datei-Timestamp), und verlässt die Funktion bei keiner Änderung
- Liest die Datenbankliste aus
- Erzeugt ein Dashboard, und loopt durch die Datenbanken zum Erzeugen der Panels. Templates für Dashboard und Panels unter $LoxBerry::System::lbpdatadir/grafana-templates/
- Schreibt das neue Dashboard ($LoxBerry::System::lbpdatadir/grafana-dashboards/Stats4Lox.json)
- Umbauen auf Prüfung der neuen Datenbank
Stats4Lox::data_migration
Wird im AUTOLOAD aufgerufen, wenn die ConfigFile-Version niedriger ist als die Soll-Version.
Führt alle Migrationsschritte durch (Dateien kopieren, Daten ändern usw.)