Zum Inhalt springen

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.

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:
# ...

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.

Beispiel
POWER_SPLITTER_INTERVAL=300

Zeitzone gemäß Liste

Beispiel
TZ=Europe/Rome

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.

Beispiel
INFLUX_HOST=influxdb

Schema für die Verbindung zu InfluxDB. Bei Verwendung einer externen InfluxDB, die über TLS abgesichert ist, muss dieser Wert auf https gesetzt werden.

Beispiel
INFLUX_SCHEMA=https

Port für die Verbindung zu InfluxDB. Bei Verwendung einer externen, per TLS abgesicherten InfluxDB kann z.B. 443 eingestellt werden.

Beispiel
INFLUX_PORT=443

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.

Beispiel
INFLUX_TOKEN=my-super-secret-admin-token

Organisation in InfluxDB, in der die Messwerte gespeichert werden sollen.

Beispiel
INFLUX_ORG=solectrus

Bucket in InfluxDB, in der die Messwerte gespeichert werden sollen.

Beispiel
INFLUX_BUCKET=solectrus

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.

Beispiel
REDIS_URL=redis://redis:6379/1

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.

Beispiel
DB_HOST=postgresql

Benutzername für die PostgreSQL-Datenbank, normalerweise postgres.

Beispiel
DB_USER=postgres

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}.

Beispiel
DB_PASSWORD=ExAmPl3PA55W0rD

Datum der Installation von SOLECTRUS. Wird benötigt, um bei einer Neuberechnung einen definierten Startpunkt zu haben.

Beispiel
INSTALLATION_DATE=2020-11-27

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_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

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.

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.