Konfigurationsdatei
Für den Betrieb des LxLogger wird eine Konfigurationsdatei im TOML-Format benötigt. Sie enthält im Wesentlichen die Angaben zu deinem Loxone Miniserver und genau ein Ausgabeziel (Sink) – die Datenbank, in die geschrieben wird.
Anlegen der Konfiguration
Abschnitt betitelt „Anlegen der Konfiguration“Lege die Konfiguration auf Basis der mitgelieferten, vollständig kommentierten
Vorlage an. Bei der Linux-Paketinstallation findest du sie unter
/usr/share/doc/lxlogger/example.lxlogger.toml:
sudo cp /usr/share/doc/lxlogger/example.lxlogger.toml /etc/lxlogger/lxlogger.tomlsudo nano /etc/lxlogger/lxlogger.tomlLxLogger sucht die Konfigurationsdatei in dieser Reihenfolge:
- der mit
--config <pfad>angegebene Pfad $HOME/.lxlogger.toml./.lxlogger.toml(aktuelles Verzeichnis)/etc/lxlogger/lxlogger.toml(üblich beim Dienstbetrieb)
Jeder Wert lässt sich zusätzlich über eine Umgebungsvariable LXL_<SEKTION>_<KEY>
überschreiben (z. B. LXL_MINISERVER_HOST=192.168.1.77).
Beispiel
Abschnitt betitelt „Beispiel“Eine minimale Konfiguration besteht aus [miniserver] und genau einem
[[sinks]]-Eintrag:
[miniserver]host = "192.168.1.77" # Hostname oder IP des Miniservers# port = 80 # HTTP-Port (Default: 80)username = "lxlogger" # Login-Benutzerpassword = "CHANGE-ME" # Login-Passwort
[[sinks]]kind = "influxdb_v2"url = "http://localhost:8086" # Basis-URL des InfluxDB-v2-Serversorg = "mein-haus" # Organisationbucket = "lxlogger" # Ziel-Buckettoken = "CHANGE-ME-TOKEN" # API-TokenDas Ausgabeziel ([[sinks]])
Abschnitt betitelt „Das Ausgabeziel ([[sinks]])“Der Sink legt fest, wohin die Daten geschrieben werden. Er besteht aus einem
kind-Tag plus den Feldern, die dieses kind benötigt. Es ist genau ein Sink
erlaubt – ein zweiter [[sinks]]-Eintrag führt zu einem Konfigurationsfehler.
[[sinks]]kind = "influxdb_v2"url = "http://localhost:8086"org = "mein-haus"bucket = "lxlogger"token = "CHANGE-ME-TOKEN"# admin_token = "CHANGE-ME-ADMIN" # optional: legt den Bucket an, falls er noch nicht existiert[[sinks]]kind = "influxdb_v1"url = "http://localhost:8086"username = "admin" # optional (v1.8 läuft oft ohne Authentifizierung)password = "CHANGE-ME" # optionalDer Datenbankname wird nicht konfiguriert, sondern automatisch aus der
Seriennummer deines Miniservers abgeleitet (lxlogger_<seriennummer>) und beim
Start angelegt.
Geheimnisse (Passwörter & Tokens)
Abschnitt betitelt „Geheimnisse (Passwörter & Tokens)“Passwörter und API-Tokens müssen nicht im Klartext in der Konfigurationsdatei stehen. LxLogger löst jedes Geheimnis in dieser Reihenfolge auf:
- Umgebungsvariable (z. B.
LXL_MINISERVER_PASSWORD) - Umgebungsvariable mit
_FILE-Suffix (Pfad zu einer Datei mit dem Wert – ideal für als Datei gemountete Docker-/Kubernetes-Secrets) - OS-Schlüsselbund (macOS Schlüsselbund / Windows-Anmeldeinformationsverwaltung / Linux Secret Service)
- die Konfigurationsdatei (Klartext)
Den OS-Schlüsselbund verwaltest du mit dem Befehl secret:
# Geheimnis interaktiv (ohne Anzeige) hinterlegenlxlogger secret set miniserver.password
# zeigt je Geheimnis die Quelle an – nie den Wert selbstlxlogger secret listStabile Schlüssel sind u. a. miniserver.password, influxdb_v1.password,
influxdb_v2.token und influxdb_v2.admin_token.
Konfiguration prüfen
Abschnitt betitelt „Konfiguration prüfen“Vor dem ersten Start kannst du die Konfiguration und die Erreichbarkeit des Miniservers prüfen:
lxlogger check --config /etc/lxlogger/lxlogger.tomlDer Befehl gibt strukturiert ✓/✗ aus und beendet sich mit Code 0, wenn alles in
Ordnung ist – sonst mit 1.
Weitere Abschnitte
Abschnitt betitelt „Weitere Abschnitte“Die folgenden Abschnitte sind optional und in der mitgelieferten Vorlage ausführlich kommentiert:
[wal]– justiert den lokalen Crash-Puffer (Write-Ahead-Log), der jedes Event zwischenpuffert, bevor es in die Datenbank geschrieben wird. Alle Werte haben sinnvolle Standardwerte; eine Anpassung ist im Normalfall nicht nötig.[backup]– legt das Zielverzeichnis für Backup-Archive fest (siehe Backup).
Messwert-Namensänderung
Abschnitt betitelt „Messwert-Namensänderung“Über den optionalen Abschnitt [grafana] kannst du den Namen der einzelnen
Statistiken (das Measurement) selbst bestimmen. Dazu dient der Wert
msmntNameTmpl. Wird keine eigene Formatierung festgelegt, wird nur der reine
Name der Statistik verwendet.
[grafana]msmntNameTmpl = "[$r|$c] $n.$s"Folgende Variablen stehen zur Verfügung:
| Variable | Beschreibung |
| $n | Der Name der Statistik. |
| $r | Der Raum, der dem Sensor/Gerät in der Loxone Config zugewiesen wurde. |
| $c | Die Kategorie, die dem Sensor/Gerät in der Loxone Config zugewiesen wurde. |
| $s | Der Status des verwendeten Geräts. Am Beispiel einer Intelligenten Raumregelung sind zum Beispiel die folgenden Werte möglich: tempActual, tempTarget, usw. Trennzeichen wie der Punkt werden dabei automatisch gekürzt. |
Beispiel
Abschnitt betitelt „Beispiel“Für einen Temperatursensor mit dem Namen Temperatur in der Kategorie Klima im Raum Badezimmer würde das obige Template die Werte unter dem folgenden Measurement bereitstellen:
[Badezimmer|Klima] Temperatur
Ohne eigene Angabe wären die Werte unter dem Namen
Temperatur
zu finden.