Allgemeine Konfiguration des Dashboards
Das Dashboard wird über Umgebungsvariablen konfiguriert.
Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“Zeitzone gemäß Liste. Standardwert ist Europe/Berlin.
Sie bestimmt, wo ein Tag anfängt und aufhört. Diagramme, Statistiken und die Zeitraumauswahl richten sich danach. Eine falsche Zeitzone verschiebt also alle Tages- und Monatswerte.
TZ=Europe/RomeCURRENCY
Abschnitt betitelt „CURRENCY“Währung für Preise, Kosten und Ersparnis, als ISO-4217-Code. Standardwert ist EUR. Kleinschreibung ist erlaubt, das Dashboard wandelt sie in Großbuchstaben.
Version 1.2 wertet die Variable noch nicht aus. Sie wirkt erst in der Entwicklungsversion des Dashboards.
CURRENCY=CHFAPP_HOST
Abschnitt betitelt „APP_HOST“Hostname, unter dem das Dashboard erreichbar ist. Hier gehört nur der Host hin, kein http:// oder https:// und keine Portnummer.
Gesetzt wirkt die Variable als CORS-Freigabe: Nur Webseiten von diesem Ursprung dürfen Antworten des Dashboards im Browser auslesen. Der Server weist deshalb keine Anfragen ab, die Sperre setzt der Browser durch. Ohne die Variable bleibt das Auslesen für alle Ursprünge frei.
APP_HOST=solectrus.example.comFORCE_SSL
Abschnitt betitelt „FORCE_SSL“Leitet jeden Aufruf auf HTTPS um. Erlaubt sind true und false, Standardwert ist false.
Auf true gehört der Wert nur, wenn ein Reverse Proxy mit TLS-Zertifikat davorsteht. Sonst läuft die Umleitung ins Leere und das Dashboard ist nicht mehr erreichbar.
FORCE_SSL=trueTRUSTED_PROXY_RANGES
Abschnitt betitelt „TRUSTED_PROXY_RANGES“Komma-getrennte Liste von IP-Bereichen in CIDR-Notation, die als vertrauenswürdige Proxies gelten. Ohne die Variable akzeptiert das Dashboard nur lokale und Docker-interne Adressen als Proxy.
Nötig ist sie, wenn ein fremder Reverse Proxy davorsteht, etwa Cloudflare. Erst dann liest das Dashboard die echte Client-IP aus X-Forwarded-For, statt die des Proxys zu protokollieren.
Verfügbar ab Dashboard-Version 1.1.
TRUSTED_PROXY_RANGES=173.245.48.0/20,103.21.244.0/22SECRET_KEY_BASE
Abschnitt betitelt „SECRET_KEY_BASE“Geheimer Schlüssel, mit dem das Dashboard die Session-Cookies signiert. Ohne ihn startet das Dashboard nicht.
Erzeugt wird er etwa mit openssl rand -hex 64, das ergibt 128 Zeichen. Er muss geheim bleiben und sich nicht mehr ändern: Ein neuer Schlüssel entwertet alle Sessions, und wer mit ADMIN_PASSWORD oder LOCKUP_CODEWORD angemeldet war, muss sich erneut anmelden.
SECRET_KEY_BASE=6cce2d6cb3c86ae77f4a0471357830950b323eab4a99ee0e1b196dfd4767e6bf59c20c6404b64f66e67bdbd59aca37e9e2786d887010e16078d620e48186de88WEB_CONCURRENCY
Abschnitt betitelt „WEB_CONCURRENCY“Anzahl der Web-Worker-Prozesse, eine Ganzzahl. Standardwert ist 0, also ein einzelner Prozess ohne Worker.
Mehr Worker bedienen mehr gleichzeitige Anfragen, brauchen aber jeweils eigenen Arbeitsspeicher. Für eine Handvoll Nutzer im Haushalt bringt das nichts.
WEB_CONCURRENCY=3ADMIN_PASSWORD
Abschnitt betitelt „ADMIN_PASSWORD“Passwort für den Administrator. Nur er kann sich über die Web-Oberfläche anmelden und dort Einstellungen vornehmen, etwa Strompreise pflegen.
Ohne die Variable startet das Dashboard trotzdem. Eine Anmeldung als Administrator ist dann aber unmöglich, und die Strompreise bleiben unerreichbar.
ADMIN_PASSWORD=my-super-secret-passwordINSTALLATION_DATE
Abschnitt betitelt „INSTALLATION_DATE“Datum, an dem die PV-Anlage die ersten Erträge geliefert hat, im Format YYYY-MM-DD. Standardwert ist 2020-01-01.
Vor diesem Datum bietet die Navigation keine Zeiträume an. Ein zu früh gesetztes Datum füllt die Auswahl also mit leeren Jahren.
INSTALLATION_DATE=2024-01-15CO2_EMISSION_FACTOR
Abschnitt betitelt „CO2_EMISSION_FACTOR“Faktor zur Berechnung der eingesparten CO₂-Menge, in g/kWh. Er beziffert, wie viel CO₂ eine Kilowattstunde aus dem Netz verursacht, entspricht also dem Strommix. Standardwert ist 401, das ist der deutsche Strommix laut Umweltbundesamt.
CO2_EMISSION_FACTOR=420LOCKUP_CODEWORD
Abschnitt betitelt „LOCKUP_CODEWORD“Codewort, das die gesamte Web-Oberfläche sperrt. Ist es gesetzt, lässt sich das Dashboard erst nach Eingabe des Codeworts benutzen. Ohne die Variable bleibt die Oberfläche offen.
Nötig ist es, wenn das Dashboard aus dem Internet erreichbar ist und niemand sonst die Messwerte sehen soll. Das Codewort ist nicht mit dem ADMIN_PASSWORD zu verwechseln, das nur die Einstellungen absichert.
LOCKUP_CODEWORD=my-secret-codewordFRAME_ANCESTORS
Abschnitt betitelt „FRAME_ANCESTORS“Ursprünge, die das Dashboard per iframe einbetten dürfen, komma-getrennt. Ohne die Variable verweigert das Dashboard jede Einbettung.
Nötig ist sie, wenn das Dashboard in einer anderen Oberfläche erscheinen soll, etwa in Home Assistant.
FRAME_ANCESTORS=https://example.comUI_THEME
Abschnitt betitelt „UI_THEME“Farbschema der Web-Oberfläche, light oder dark. Ist eines gesetzt, steht das Farbschema fest und lässt sich über die Oberfläche nicht mehr umschalten. Gedacht ist das für Displays ohne Bedienung, etwa Digital Signage. Ohne die Variable wählt der Benutzer selbst.
Jeder andere Wert lässt das Dashboard beim Start abbrechen.
UI_THEME=darkDB_HOST
Abschnitt betitelt „DB_HOST“Hostname des PostgreSQL-Servers. Läuft PostgreSQL im selben Docker-Netzwerk, ist das der Name des Docker-Services, also postgresql.
DB_HOST=postgresqlDB_USER
Abschnitt betitelt „DB_USER“Benutzername für den Zugriff auf PostgreSQL.
DB_USER=postgresDB_PASSWORD
Abschnitt betitelt „DB_PASSWORD“Passwort für den Zugriff auf PostgreSQL. Es muss zu dem Passwort passen, mit dem die Datenbank angelegt wurde.
DB_PASSWORD=my-postgres-passwordREDIS_URL
Abschnitt betitelt „REDIS_URL“URL für die Verbindung zu Redis. Läuft Redis im selben Docker-Netzwerk, lautet sie redis://redis:6379/1.
Das Dashboard hält darin seinen Cache und verteilt darüber die Live-Aktualisierung der Kacheln. Ohne Redis startet es zwar, aber die Werte aktualisieren sich nicht mehr von selbst.
REDIS_URL=redis://redis:6379/1INFLUX_HOST
Abschnitt betitelt „INFLUX_HOST“Hostname des InfluxDB-Servers. Läuft InfluxDB im selben Docker-Netzwerk, ist das der Name des Docker-Services, also influxdb. Es kann aber auch ein externer Server sein, etwa influxdb.example.com.
INFLUX_HOST=influxdbINFLUX_SCHEMA
Abschnitt betitelt „INFLUX_SCHEMA“Schema für die Verbindung zu InfluxDB, http oder https. Standardwert ist http. Bei einer externen InfluxDB mit TLS gehört hier https hin.
INFLUX_SCHEMA=httpsINFLUX_PORT
Abschnitt betitelt „INFLUX_PORT“Port für die Verbindung zu InfluxDB, eine Ganzzahl. Standardwert ist 8086. Bei einer externen, per TLS abgesicherten InfluxDB ist es oft 443.
INFLUX_PORT=443INFLUX_ORG
Abschnitt betitelt „INFLUX_ORG“Organisation in InfluxDB, unter der die Messwerte liegen. In einer SOLECTRUS-Installation heißt sie solectrus.
Der Name muss zu der Organisation passen, die in InfluxDB tatsächlich existiert, und zu der, in die die Collectors schreiben. Passt er nicht, liest das Dashboard ins Leere und die Kurven bleiben leer.
INFLUX_ORG=solectrusINFLUX_BUCKET
Abschnitt betitelt „INFLUX_BUCKET“Bucket in InfluxDB, aus dem das Dashboard die Messwerte liest. Eine SOLECTRUS-Installation kommt mit einem einzigen aus, er heißt solectrus.
Der Name muss zu dem Bucket passen, in den die Collectors schreiben. Passt er nicht, bleiben die Kurven leer.
INFLUX_BUCKET=solectrusINFLUX_TOKEN
Abschnitt betitelt „INFLUX_TOKEN“Token, mit dem sich das Dashboard bei InfluxDB anmeldet. Er muss dort existieren und das Recht haben, aus dem angegebenen Bucket zu lesen. Mehr braucht das Dashboard nicht: Es holt Messwerte und schreibt nie welche zurück.
Passt der Token nicht, weist InfluxDB jede Abfrage ab. Das Dashboard läuft dann weiter, protokolliert aber Fehler, und die Kurven bleiben leer.
INFLUX_TOKEN=my-super-secret-read-tokenINFLUX_POLL_INTERVAL
Abschnitt betitelt „INFLUX_POLL_INTERVAL“Sensor-Konfiguration
Abschnitt betitelt „Sensor-Konfiguration“Welcher Messwert in der InfluxDB welchem Sensor des Dashboards zugeordnet wird, steht auf einer eigenen Seite:
Sensor-Konfiguration des Dashboards.