Konfigurieren des SENEC-Collectors
Der Shelly-Collector wird üblicherweise in die Gesamtkonfiguration von SOLECTRUS integriert, d.h. die bestehenden Dateien compose.yaml
und .env
sind zu erweitern.
compose.yaml
services:
senec-collector:
image: ghcr.io/solectrus/senec-collector:latest
environment:
- TZ
- SENEC_ADAPTER
- SENEC_HOST
- SENEC_SCHEMA
- SENEC_INTERVAL
- SENEC_LANGUAGE
- SENEC_USERNAME
- SENEC_PASSWORD
- INFLUX_HOST
- INFLUX_SCHEMA
- INFLUX_PORT
- INFLUX_TOKEN=${INFLUX_TOKEN_WRITE}
- INFLUX_ORG
- INFLUX_BUCKET
- INFLUX_MEASUREMENT=${INFLUX_MEASUREMENT_SENEC}
restart: unless-stopped
logging:
options:
max-size: 10m
max-file: '3'
depends_on:
influxdb:
condition: service_healthy
links:
- influxdb
labels:
- com.centurylinklabs.watchtower.scope=solectrus
influxdb:
# ...
watchtower:
# ...
Die beiden Variablen INFLUX_TOKEN
und INFLUX_MEASUREMENT
werden anders lautenden Umgebungsvariablen entnommen. Dies ermöglicht eine Nutzung von Variablen für verschiedene Container und vermeidet Redundanzen.
Umgebungsvariablen
SENEC_ADAPTER
Betriebsmodus des Collectors
Erlaubte Werte: local
oder cloud
Standard: local
SENEC_HOST
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!
Wird nur verwendet, wenn SENEC_ADAPTER
auf local
gesetzt ist.
SENEC_SCHEMA
Das zu verwendende Protokoll für die Verbindung zum SENEC-Stromspeicher.
Erlaubte Werte: http
, https
Standard: https
Wird nur verwendet, wenn SENEC_ADAPTER
auf local
gesetzt ist.
SENEC_LANGUAGE
Die Sprache, die für Status-Texte verwendet werden soll.
Erlaubte Werte: de
(Deutsch), en
(Englisch), it
(Italienisch)
Standard: de
Wird nur verwendet, wenn SENEC_ADAPTER
auf local
gesetzt ist.
SENEC_USERNAME
E-Mail-Adresse für die Anmeldung bei mein-senec.de
.
Wird nur verwendet, wenn SENEC_ADAPTER
auf cloud
gesetzt ist.
SENEC_PASSWORD
Passwort für die Anmeldung bei mein-senec.de
.
Wird nur verwendet, wenn SENEC_ADAPTER
auf cloud
gesetzt ist.
SENEC_SYSTEM_ID
Die System-ID des SENEC-Geräts. Kann leer bleiben, wenn es nur ein System gibt. Der Collector ermittelt dann die verfügbaren IDs, listet sie im Protokoll auf und verwendet die erste.
Um eine andere als die erste ID zu verwenden, sollte die Angabe nächst leer bleiben, der Collector gestartet und die ID aus dem Protokoll entnommen werden. Die gewünschte ID kann dann in die Umgebungsvariablen eingetragen werden und wird beim nächsten Start verwendet.
Wird nur verwendet, wenn SENEC_ADAPTER
auf cloud
gesetzt ist.
SENEC_INTERVAL
Das Intervall in Sekunden für die Häufigkeit der Datenabfrage
Wenn SENEC_ADAPTER
auf cloud
gesetzt ist, ist das Minimum 30 Sekunden, Standard ist 60 Sekunden. Wenn SENEC_ADAPTER
auf local
gesetzt ist, ist das Minimum 5 Sekunden, Standard ist 5 Sekunden.
SENEC_IGNORE
Deaktivieren bestimmter Messwerte, die nicht an InfluxDB gesendet werden sollen. Dies ist nützlich, wenn einzelne Messwerte (z.B. der Wallbox) aus einer anderen Quelle entnommen werden sollen.
Komma-getrennte Liste von Feldern, keine Leerzeichen. Beispiel:
SENEC_IGNORE=wallbox_charge_power,grid_power_minus
Optional, Standard ist leer (d.h. alle Messwerte werden gesendet)
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.
Optional, Standard ist 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 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.
INFLUX_MEASUREMENT
Name des Measurements in InfluxDB, das die Messwerte aufnehmen soll.
Optional, Standard ist SENEC
Beispielhafte .env
SENEC_ADAPTER=local
SENEC_HOST=192.168.178.29
SENEC_INTERVAL=5
SENEC_IGNORE=wallbox_charge_power
INFLUX_MEASUREMENT_SENEC=SENEC
INFLUX_HOST=influxdb
INFLUX_SCHEMA=http
INFLUX_PORT=8086
INFLUX_TOKEN_WRITE=my-super-secret-admin-token
INFLUX_ORG=solectrus
INFLUX_BUCKET=solectrus