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.)