Zum Inhalt springen

Konfiguration des SENEC-Chargers

Der SENEC-Charger wird üblicherweise in die Gesamtkonfiguration von SOLECTRUS integriert, d.h. die bestehenden Dateien compose.yaml und .env sind zu erweitern.

In der compose.yaml wird ein neuer Service namens senec-charger hinzugefügt. Dieser sollte so aussehen:

services:
# ...
senec-charger:
image: ghcr.io/solectrus/senec-charger:latest
environment:
- TZ
- SENEC_HOST
- SENEC_SCHEMA
- CHARGER_INTERVAL
- CHARGER_PRICE_MAX
- CHARGER_PRICE_TIME_RANGE
- CHARGER_FORECAST_THRESHOLD
- CHARGER_DRY_RUN
- INFLUX_HOST
- INFLUX_SCHEMA
- INFLUX_PORT
- INFLUX_TOKEN=${INFLUX_TOKEN_READ}
- INFLUX_ORG
- INFLUX_BUCKET
- INFLUX_MEASUREMENT_PRICES
- INFLUX_MEASUREMENT_FORECAST
logging:
driver: 'json-file'
options:
max-size: 10m
max-file: '3'
restart: unless-stopped
depends_on:
influxdb:
condition: service_healthy
links:
- influxdb
labels:
- com.centurylinklabs.watchtower.scope=solectrus
# ...

Zeitzone gemäß Liste

Beispiel
TZ=Europe/Rome

Hostname des SENEC-Stromspeichers. Dies ist üblicherweise eine IP-Adresse, kann aber auch eine lokale Domain sein. Es darf kein http:// oder https:// enthalten sein!

Beispiel
SENEC_HOST=192.168.1.42

Protokoll für die Verbindung zum SENEC-Stromspeicher.

Beispiel
SENEC_SCHEMA=http

Intervall, in dem der Charger die Strompreise prüft und Ladeentscheidungen trifft, in Sekunden.

Beispiel
CHARGER_INTERVAL=1800

Maximaler Durchschnittspreis (in Prozent bezogen auf den Durchschnittspreis der nächsten 24 Stunden), unterhalb dessen der Speicher geladen werden soll.

Beispiel
CHARGER_PRICE_MAX=60

Ungefähre Dauer (in Stunden), die der Speicher für eine volle Beladung benötigt. Das hängt vor allem von der Kapazität des Speichers und der maximalen Ladeleistung ab.

Für diese Zeitspanne wird der erwartete Preis berechnet und mit den Preisen danach verglichen.

Beispiel
CHARGER_PRICE_TIME_RANGE=3

Obere Grenze für den erwarteten PV-Ertrag (in kWh) in den nächsten 24 Stunden, unterhalb derer das Laden aus dem Netz erfolgen soll.

Beispiel
CHARGER_FORECAST_THRESHOLD=25

Trockenlauf-Modus: Wenn aktiviert, werden alle Berechnungen durchgeführt und protokolliert, aber der Ladevorgang wird nicht tatsächlich gestartet. Das ist nützlich zum Testen der Konfiguration.

Beispiel
CHARGER_DRY_RUN=true

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. Dieser Token muss die Berechtigung haben, Daten aus dem angegebenen Bucket zu lesen.

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, aus der die Messwerte gelesen werden sollen.

Beispiel
INFLUX_ORG=solectrus

Bucket in InfluxDB, aus dem die Messwerte gelesen werden sollen.

Beispiel
INFLUX_BUCKET=solectrus

Name des Measurements in InfluxDB, aus dem die Strompreise gelesen werden sollen.

Beispiel
INFLUX_MEASUREMENT_PRICES=prices

Name des Measurements in InfluxDB, aus dem die Wettervorhersage gelesen werden soll.

Beispiel
INFLUX_MEASUREMENT_FORECAST=forecast