Allgemeine Konfiguration des Dashboards
Das Dashboard wird üblicherweise in die Gesamtkonfiguration von SOLECTRUS integriert, d.h. die bestehenden Dateien compose.yaml und .env sind zu erweitern.
compose.yaml
Abschnitt betitelt „compose.yaml“In der compose.yaml wird ein Service namens dashboard konfiguriert. Dieser sollte so aussehen:
services: # ... dashboard: image: ghcr.io/solectrus/solectrus:latest depends_on: postgresql: condition: service_healthy influxdb: condition: service_healthy redis: condition: service_healthy ports: - 3000:3000 environment: - TZ - APP_HOST - FORCE_SSL - SECRET_KEY_BASE - WEB_CONCURRENCY - INSTALLATION_DATE - ADMIN_PASSWORD - FRAME_ANCESTORS - UI_THEME - CO2_EMISSION_FACTOR - DB_HOST=postgresql - DB_PASSWORD=${POSTGRES_PASSWORD} - DB_USER=postgres - REDIS_URL - INFLUX_HOST - INFLUX_TOKEN=${INFLUX_TOKEN_READ} - INFLUX_ORG - INFLUX_BUCKET - INFLUX_POLL_INTERVAL - INFLUX_SENSOR_INVERTER_POWER - INFLUX_SENSOR_INVERTER_POWER_1 - INFLUX_SENSOR_INVERTER_POWER_2 - INFLUX_SENSOR_INVERTER_POWER_3 - INFLUX_SENSOR_INVERTER_POWER_4 - INFLUX_SENSOR_INVERTER_POWER_5 - INFLUX_SENSOR_HOUSE_POWER - INFLUX_SENSOR_GRID_IMPORT_POWER - INFLUX_SENSOR_GRID_EXPORT_POWER - INFLUX_SENSOR_BATTERY_CHARGING_POWER - INFLUX_SENSOR_BATTERY_DISCHARGING_POWER - INFLUX_SENSOR_BATTERY_SOC - INFLUX_SENSOR_WALLBOX_POWER - INFLUX_SENSOR_WALLBOX_CAR_CONNECTED - INFLUX_SENSOR_CASE_TEMP - INFLUX_SENSOR_INVERTER_POWER_FORECAST - INFLUX_SENSOR_SYSTEM_STATUS - INFLUX_SENSOR_SYSTEM_STATUS_OK - INFLUX_SENSOR_GRID_EXPORT_LIMIT - INFLUX_SENSOR_HEATPUMP_POWER - INFLUX_SENSOR_CAR_BATTERY_SOC - INFLUX_SENSOR_CUSTOM_POWER_01 - INFLUX_SENSOR_CUSTOM_POWER_02 - INFLUX_SENSOR_CUSTOM_POWER_03 - INFLUX_SENSOR_CUSTOM_POWER_04 - INFLUX_SENSOR_CUSTOM_POWER_05 - INFLUX_SENSOR_CUSTOM_POWER_06 - INFLUX_SENSOR_CUSTOM_POWER_07 - INFLUX_SENSOR_CUSTOM_POWER_08 - INFLUX_SENSOR_CUSTOM_POWER_09 - INFLUX_SENSOR_CUSTOM_POWER_10 - INFLUX_SENSOR_CUSTOM_POWER_11 - INFLUX_SENSOR_CUSTOM_POWER_12 - INFLUX_SENSOR_CUSTOM_POWER_13 - INFLUX_SENSOR_CUSTOM_POWER_14 - INFLUX_SENSOR_CUSTOM_POWER_15 - INFLUX_SENSOR_CUSTOM_POWER_16 - INFLUX_SENSOR_CUSTOM_POWER_17 - INFLUX_SENSOR_CUSTOM_POWER_18 - INFLUX_SENSOR_CUSTOM_POWER_19 - INFLUX_SENSOR_CUSTOM_POWER_20 - INFLUX_EXCLUDE_FROM_HOUSE_POWER healthcheck: test: - CMD-SHELL - nc -z 127.0.0.1 3000 || exit 1 interval: 30s timeout: 10s retries: 5 start_period: 10s restart: unless-stopped logging: driver: json-file options: max-size: 10m max-file: '3' labels: - com.centurylinklabs.watchtower.scope=solectrus # ...Umgebungsvariablen (.env)
Abschnitt betitelt „Umgebungsvariablen (.env)“Allgemein
Abschnitt betitelt „Allgemein“Zeitzone gemäß Liste für die Darstellung und Berücksichtigung von Uhrzeiten. Wichtig für die korrekte Darstellung von Diagrammen und Statistiken.
TZ=Europe/RomeAPP_HOST
Abschnitt betitelt „APP_HOST“Hostname, über den das Dashboard erreichbar sein soll. Darf kein http:// oder https:// enthalten und auch keine Port-Nummer.
APP_HOST=solectrus.example.comFORCE_SSL
Abschnitt betitelt „FORCE_SSL“Gibt an, ob die App automatisch auf HTTPS umleiten soll. Dieser Wert darf nur dann auf true gesetzt werden, wenn man eine eigene Domain mit Reverse-Proxy und SSL-Zertifikat verwendet! In den allermeisten Fällen sollte man diesen Wert nicht setzen oder auf false lassen.
FORCE_SSL=trueSECRET_KEY_BASE
Abschnitt betitelt „SECRET_KEY_BASE“Geheimer Schlüssel für die Verschlüsselung von Session-Cookies. Dieser Wert muss geheim bleiben und sichert das Admin-Passwort ab.
Der String muss genau 128 Zeichen lang sein und kann beispielsweise mit openssl rand -hex 64 generiert werden. Eine Änderung bewirkt, dass bei Verwendung von ADMIN_PASSWORD oder LOCKUP_CODEWORD alle Benutzer sich erneut anmelden müssen.
SECRET_KEY_BASE=6cce2d6cb3c86ae77f4a0471357830950b323eab4a99ee0e1b196dfd4767e6bf59c20c6404b64f66e67bdbd59aca37e9e2786d887010e16078d620e48186de88WEB_CONCURRENCY
Abschnitt betitelt „WEB_CONCURRENCY“Anzahl der Web-Worker-Prozesse. Ein höherer Wert kann die Performance bei vielen gleichzeitigen Anfragen (durch viele Nutzer) verbessern, benötigt aber mehr RAM.
WEB_CONCURRENCY=3ADMIN_PASSWORD
Abschnitt betitelt „ADMIN_PASSWORD“Zugangspasswort für den Administrator. Nur der Admin kann sich über die Web-Oberfläche anmelden und dort einige Einstellungen vornehmen (z.B. Bearbeiten von Strompreisen).
ADMIN_PASSWORD=my-super-secret-passwordINSTALLATION_DATE
Abschnitt betitelt „INSTALLATION_DATE“Datum der Installation der PV-Anlage (wann die ersten Erträge erzielt wurden). Regelt die Navigation in der Web-Oberfläche.
INSTALLATION_DATE=2024-01-15CO2_EMISSION_FACTOR
Abschnitt betitelt „CO2_EMISSION_FACTOR“Faktor zur Berechnung der CO₂-Emission aus der PV-Erzeugung. Angabe in g/kWh.
CO2_EMISSION_FACTOR=420LOCKUP_CODEWORD
Abschnitt betitelt „LOCKUP_CODEWORD“Codewort für die Sperrung der gesamten Web-Oberfläche. Wenn dieses Codewort gesetzt ist, lässt sich die Web-Oberfläche nur nach Eingabe dieses Codewort verwendet. Das ist nützlich, wenn man seine SOLECTRUS-Instanz über das Internet erreichbar macht und nicht möchte, dass unbefugte Personen die Messwerte einsehen können.
Das LOCKUP_CODEWORD ist nicht mit dem ADMIN_PASSWORD zu verwechseln. Das ADMIN_PASSWORD sichert nur verschiedene Einstellmöglichkeiten ab, während das LOCKUP_CODEWORD die gesamte Web-Oberfläche sperrt.
LOCKUP_CODEWORD=my-secret-codewordFRAME_ANCESTORS
Abschnitt betitelt „FRAME_ANCESTORS“Um die Einbettung der Web-Oberfläche in eine andere Webseite (per iframe) zu erlauben, kann hier die URL der übergeordneten Webseite angegeben werden. Nützlich ist das beispielweise, wenn man SOLECTRUS direkt in Home Assistant darstellen möchte.
FRAME_ANCESTORS=https://example.comUI_THEME
Abschnitt betitelt „UI_THEME“Farbschema für die Web-Oberfläche. Mögliche Werte sind light und dark. Wenn gewählt, wird das Farbschema auf das gewählte Schema fest eingestellt und kann über die Oberfläche nicht mehr geändert werden. Nützlich ist das für den Einsatz auf einem Digital Signage Display, das man nicht interaktiv bedienen kann oder will.
UI_THEME=darkDB_HOST
Abschnitt betitelt „DB_HOST“Hostname für den Zugriff auf PostgreSQL. Muss dem Namen des Services in der compose.yaml entsprechen, also normalerweise 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. Da die Variable in der .env anders heißt (nämlich POSTGRES_PASSWORD), wird der Wert in der compose.yaml über ${POSTGRES_PASSWORD} referenziert.
POSTGRES_PASSWORD=my-postgres-passwordREDIS_URL
Abschnitt betitelt „REDIS_URL“URL für die Verbindung zu zum In-Memory-Cache Redis.
REDIS_URL=redis://redis:6379/1INFLUX_HOST
Abschnitt betitelt „INFLUX_HOST“Hostname von InfluxDB. Im Normalfall, wenn InfluxDB im gleichen Docker-Netzwerk läuft, ist das der Name des Docker-Services (z.B. influxdb). Es kann aber auch ein externer InfluxDB-Server sein, z.B. influxdb.example.com.
INFLUX_HOST=influxdbINFLUX_SCHEMA
Abschnitt betitelt „INFLUX_SCHEMA“Schema für die Verbindung zu InfluxDB. Bei Verwendung einer externen InfluxDB, die über TLS abgesichert ist, muss dieser Wert auf https gesetzt werden.
INFLUX_SCHEMA=httpsINFLUX_PORT
Abschnitt betitelt „INFLUX_PORT“Port für die Verbindung zu InfluxDB. Bei Verwendung einer externen InfluxDB könnte eine Anpassung erforderlich sein, z.B. auf 443.
INFLUX_PORT=443INFLUX_ORG
Abschnitt betitelt „INFLUX_ORG“Organisation in InfluxDB, in der die Daten gespeichert werden.
INFLUX_ORG=solectrusINFLUX_BUCKET
Abschnitt betitelt „INFLUX_BUCKET“Bucket in InfluxDB, in dem die Daten gespeichert werden.
INFLUX_BUCKET=solectrusINFLUX_TOKEN
Abschnitt betitelt „INFLUX_TOKEN“Token für den Zugriff auf InfluxDB. Dieser Token muss in InfluxDB erstellt werden und die Berechtigung haben, Daten aus dem angegebenen Bucket zu lesen (kein Schreibzugriff erforderlich).
Das Token kann manuell in InfluxDB erstellt werden, alternativ kann aber auch das INFLUX_ADMIN_TOKEN verwendet werden.
INFLUX_TOKEN=my-super-secret-read-tokenINFLUX_POLL_INTERVAL
Abschnitt betitelt „INFLUX_POLL_INTERVAL“Intervall in Sekunden, mit dem das Dashboard aktuelle Messwerte aus InfluxDB abfragt und die Darstellung im Browser aktualisiert.
Wenn der Wert zu klein ist, kann es zur Warnung “Keine Verbindung” in der Web-Oberfläche kommen.
INFLUX_POLL_INTERVAL=10Sensor-Konfiguration
Abschnitt betitelt „Sensor-Konfiguration“Die Auflistung findet sich auf einer eigenen Seite:
Sensor-Konfiguration des Dashboards.
Veraltete Angaben
Abschnitt betitelt „Veraltete Angaben“Frühere Versionen von SOLECTRUS haben folgende Umgebungsvariablen verwendet, die mittlerweile veraltet sind und gefahrlos entfernt werden können:
ELECTRICITY_PRICE(Strompreise, wird jetzt in der Web-Oberfläche konfiguriert)FEED_IN_TARIFF(Einspeisevergütung, wird jetzt in der Web-Oberfläche konfiguriert)