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
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_EXCLUDE_FROM_HOUSE_POWER
- REDIS_URL
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:
# ...
Die Variable INFLUX_TOKEN
wird anders lautenden Umgebungsvariablen entnommen. Dies ermöglicht eine Nutzung von Variablen für verschiedene Container und vermeidet Redundanzen.
Umgebungsvariablen
POWER_SPLITTER_INTERVAL
Häufigkeit der Berechnung durch den Power-Splitter. 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. Beim Standardwert von 3600
ist der dargestellte Wert um bis zu einer Stunde veraltet.
Ein niedriger Wert führt zu einer etwas höheren Auslastung des Systems, die Standardvorgabe ist daher konservativ gewählt. Das Minimum beträgt 300
(5 Minuten).
INFLUX_HOST
Hostname des InfluxDB-Servers. Im Normalfall, wenn InfluxDB im gleichen Docker-Netzwerk läuft, ist das der Name des Containers (z.B. influxdb
). Es kann aber auch ein externer InfluxDB-Server sein, z.B. influxdb.example.com
.
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.
Standardwert: http
INFLUX_PORT
Port für die Verbindung zu InfluxDB.
Optional, Standard ist 8086
Bei Verwendung einer externen, per TLS abgesicherten InfluxDB kann z.B. 443
eingestellt werden.
INFLUX_TOKEN
Token für den Zugriff auf InfluxDB. Dieser Token muss in InfluxDB erstellt werden und die Berechtigung haben, Daten in den angegebenen Bucket zu lesen und zu schreiben.
INFLUX_ORG
Organisation in InfluxDB, in der die Messwerte gespeichert werden sollen.
INFLUX_BUCKET
Bucket in InfluxDB, in der die Messwerte gespeichert werden sollen.
REDIS_URL
URL für den Redis-Cache. Wird benötigt, um nach dem ersten Durchlauf einmalig den Cache leeren zu können.
Beispielhafte .env
POWER_SPLITTER_INTERVAL=300
INFLUX_SENSOR_GRID_IMPORT_POWER=SENEC:grid_power_plus
INFLUX_SENSOR_HOUSE_POWER=SENEC:house_power
INFLUX_SENSOR_WALLBOX_POWER=SENEC:wallbox_charge_power
INFLUX_SENSOR_HEATPUMP_POWER=DAIKIN:power
INFLUX_HOST=influxdb
INFLUX_SCHEMA=http
INFLUX_PORT=8086
INFLUX_ADMIN_TOKEN=my-super-secret-admin-token
INFLUX_ORG=solectrus
INFLUX_BUCKET=solectrus
REDIS_URL=redis://redis:6379/1
Sensor-Mapping
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_POWER
INFLUX_SENSOR_HOUSE_POWER
INFLUX_SENSOR_WALLBOX_POWER
INFLUX_SENSOR_HEATPUMP_POWER
INFLUX_EXCLUDE_FROM_HOUSE_POWER
Es genügt also, wenn man diese fünf Variablen in der compose.yml
aufführt und somit den Zugriff ermöglicht. Es ist nicht notwendig und auch nicht sinnvoll, für den Power-Splitter eigene Werte zu definieren.
Entscheidend ist aber, dass eine Sensor-Konfiguration vorhanden ist. Bei einer älteren Installation von SOLECTRUS (begonnen vor Version 0.15
) ist das nicht unbedingt und der Fall und muss nachgeholt werden.