Konfiguration des Power-Splitters
Der Power-Splitter 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“services: power-splitter: image: ghcr.io/solectrus/power-splitter:latest environment: - TZ - POWER_SPLITTER_INTERVAL - INFLUX_HOST - INFLUX_SCHEMA - INFLUX_PORT - INFLUX_TOKEN=${INFLUX_ADMIN_TOKEN} - INFLUX_ORG - INFLUX_BUCKET - INFLUX_SENSOR_GRID_IMPORT_POWER - INFLUX_SENSOR_HOUSE_POWER - INFLUX_SENSOR_WALLBOX_POWER - INFLUX_SENSOR_HEATPUMP_POWER - INFLUX_SENSOR_BATTERY_CHARGING_POWER - 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 - REDIS_URL - INSTALLATION_DATE - DB_HOST=postgresql - DB_PASSWORD=${POSTGRES_PASSWORD} - DB_USER=postgres logging: options: max-size: 10m max-file: '3' restart: unless-stopped depends_on: influxdb: condition: service_healthy redis: condition: service_healthy links: - influxdb - redis labels: - com.centurylinklabs.watchtower.scope=solectrus
influxdb: # ...
watchtower: # ...Umgebungsvariablen (.env)
Abschnitt betitelt „Umgebungsvariablen (.env)“POWER_SPLITTER_INTERVAL
Abschnitt betitelt „POWER_SPLITTER_INTERVAL“Häufigkeit der Berechnung durch den Power-Splitter in Sekunden. Bei kleineren Werten wird der Power-Splitter häufiger ausgeführt, was nicht zu einer genaueren Berechnung führt, aber zu einer erhöhten Aktualität. Bemerken wird man den Unterschied nur in der Anzeige des aktuellen Tages im Dashboard.
POWER_SPLITTER_INTERVAL=300Zeitzone gemäß Liste
TZ=Europe/RomeINFLUX_HOST
Abschnitt betitelt „INFLUX_HOST“Hostname des InfluxDB-Servers. 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, per TLS abgesicherten InfluxDB kann z.B. 443 eingestellt werden.
INFLUX_PORT=443INFLUX_TOKEN
Abschnitt betitelt „INFLUX_TOKEN“Token für den Zugriff auf InfluxDB. Dieses Token muss die Berechtigung haben, Daten in den angegebenen Bucket zu lesen und zu schreiben.
Das Token kann manuell in InfluxDB erstellt werden, alternativ kann aber auch das INFLUX_ADMIN_TOKEN verwendet werden.
INFLUX_TOKEN=my-super-secret-admin-tokenINFLUX_ORG
Abschnitt betitelt „INFLUX_ORG“Organisation in InfluxDB, in der die Messwerte gespeichert werden sollen.
INFLUX_ORG=solectrusINFLUX_BUCKET
Abschnitt betitelt „INFLUX_BUCKET“Bucket in InfluxDB, in der die Messwerte gespeichert werden sollen.
INFLUX_BUCKET=solectrusREDIS_URL
Abschnitt betitelt „REDIS_URL“URL für den Redis-Cache. Wird benötigt, um nach dem ersten Durchlauf (oder einer erzwungenen Neuberechnung) einmalig den Cache leeren zu können.
REDIS_URL=redis://redis:6379/1DB_HOST
Abschnitt betitelt „DB_HOST“Hostname der PostgreSQL-Datenbank. Wird benötigt, nach einer Neuberechnung die Tageszusammenfassungen zurücksetzen zu können. Muss dem Namen des Services in der compose.yaml entsprechen, also normalerweise postgresql.
DB_HOST=postgresqlDB_USER
Abschnitt betitelt „DB_USER“Benutzername für die PostgreSQL-Datenbank, normalerweise postgres.
DB_USER=postgresDB_PASSWORD
Abschnitt betitelt „DB_PASSWORD“Passwort für die PostgreSQL-Datenbank. Da die Variable in der .env anders heißt (nämlich POSTGRES_PASSWORD), muss hier der Wert explizit in der compose.yaml zugewiesen werden, also DB_PASSWORD=${POSTGRES_PASSWORD}.
DB_PASSWORD=ExAmPl3PA55W0rDINSTALLATION_DATE
Abschnitt betitelt „INSTALLATION_DATE“Datum der Installation von SOLECTRUS. Wird benötigt, um bei einer Neuberechnung einen definierten Startpunkt zu haben.
INSTALLATION_DATE=2020-11-27Sensor-Definition
Abschnitt betitelt „Sensor-Definition“Der Power-Splitter verwendete einige der Sensoren, die auch vom Dashboard werden und somit bereits in der .env definiert werden. Im Einzelnen sind dies diese Variablen:
INFLUX_SENSOR_GRID_IMPORT_POWERINFLUX_SENSOR_HOUSE_POWERINFLUX_SENSOR_WALLBOX_POWERINFLUX_SENSOR_HEATPUMP_POWERINFLUX_SENSOR_BATTERY_CHARGING_POWERINFLUX_SENSOR_CUSTOM_POWER_01INFLUX_SENSOR_CUSTOM_POWER_02INFLUX_SENSOR_CUSTOM_POWER_03INFLUX_SENSOR_CUSTOM_POWER_04INFLUX_SENSOR_CUSTOM_POWER_05INFLUX_SENSOR_CUSTOM_POWER_06INFLUX_SENSOR_CUSTOM_POWER_07INFLUX_SENSOR_CUSTOM_POWER_08INFLUX_SENSOR_CUSTOM_POWER_09INFLUX_SENSOR_CUSTOM_POWER_10INFLUX_SENSOR_CUSTOM_POWER_11INFLUX_SENSOR_CUSTOM_POWER_12INFLUX_SENSOR_CUSTOM_POWER_13INFLUX_SENSOR_CUSTOM_POWER_14INFLUX_SENSOR_CUSTOM_POWER_15INFLUX_SENSOR_CUSTOM_POWER_16INFLUX_SENSOR_CUSTOM_POWER_17INFLUX_SENSOR_CUSTOM_POWER_18INFLUX_SENSOR_CUSTOM_POWER_19INFLUX_SENSOR_CUSTOM_POWER_20INFLUX_EXCLUDE_FROM_HOUSE_POWER
Es genügt also, wenn man diese Variablen in der compose.yml aufführt und somit den Zugriff ermöglicht (wie oben dargestellt). Es ist nicht notwendig und auch nicht sinnvoll, für den Power-Splitter eigene Sensor-Variablen zu definieren.
Sonstiges
Abschnitt betitelt „Sonstiges“Der Power-Splitter schreibt seine Berechnungen in ein neues Measurement mit der (unveränderlichen) Bezeichnung power_splitter. Daher ist es nicht notwendig, eine eigene Variable für das Measurement zu definieren.