Zum Inhalt springen

Konfiguration des SENEC-Collectors

Der SENEC-Collector 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-collector hinzugefügt. Dieser sollte so aussehen:

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
- SENEC_TOTP_URI
- INFLUX_HOST
- INFLUX_SCHEMA
- INFLUX_PORT
- INFLUX_TOKEN=${INFLUX_TOKEN_WRITE}
- INFLUX_ORG
- INFLUX_BUCKET
- INFLUX_MEASUREMENT=${INFLUX_MEASUREMENT_SENEC}
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
# ...

Betriebsmodus des Collectors. Bestimmt, ob die Daten lokal vom SENEC-Gerät oder aus der SENEC-Cloud abgerufen werden.

Beispiel
SENEC_ADAPTER=cloud

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

Das zu verwendende Protokoll für die Verbindung zum SENEC-Stromspeicher.

Beispiel
SENEC_SCHEMA=http

Die Sprache, die für Status-Texte verwendet werden soll.

Beispiel
SENEC_LANGUAGE=de

E-Mail-Adresse für die Anmeldung bei mein-senec.de.

Beispiel
SENEC_USERNAME=mail@example.com

Passwort für die Anmeldung bei mein-senec.de.

Beispiel
SENEC_PASSWORD=my-secret-password

URI für die Multi-Faktor-Authentifizierung (MFA) bei mein-senec.de (sofern aktiviert). Anzugeben ist der vollständige String, sinnvollerweise mit Anführungszeichen.

Hat man den initialen QR-Code von SENEC vorliegen oder verwendet den Google Authenticator, so lässt sich die URI mit dem QR Code Secret Decoder ermitteln.

Beispiel
SENEC_TOTP_URI="otpauth://totp/SENEC:mail%40example.com?secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&digits=6&algorithm=SHA1&issuer=SENEC&period=30"

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 zunä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.

Beispiel
SENEC_SYSTEM_ID=12345

Das Intervall in Sekunden für die Häufigkeit der Datenabfrage.

Beispiel
SENEC_INTERVAL=10

Deaktivieren bestimmter Messwerte, die nicht an InfluxDB gesendet werden sollen. Dies kann nützlich sein, 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

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 in den angegebenen Bucket 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

Name des Measurements in InfluxDB, das die Messwerte aufnehmen soll.

Beispiel
INFLUX_MEASUREMENT=power_storage

Zeitzone gemäß Liste

Beispiel
TZ=Europe/Rome