Zum Inhalt springen

Was ist der SENEC-Collector?

Der SENEC-Collector sammelt die Messwerte, die von einem SENEC Stromspeicher gemeldet werden und schreibt diese in die InfluxDB.

Der Collector ist kompatibel mit folgenden Stromspeichern:

  • SENEC.Home V2.1
  • SENEC.Home V3
  • SENEC.Home P4

Grundsätzlich kann der Collector in zwei verschiedenen Betriebsmodi eingesetzt werden:

  • Lokal: Direkter Zugriff auf den SENEC-Stromspeicher über dessen lokale IP-Adresse. Die Daten werden über die lala.cgi-Schnittstelle ausgelesen. Möglich ist das beim V2.1 und V3, nicht aber beim Home P4, denn dieser hat keine lokale Schnittstelle. Ein Auslesen der Messwerte ist in einem kurzen Intervall möglich, standardmäßig sind es 5 Sekunden.

  • Cloud: Abholen der Messwerte aus der SENEC-Cloud aus unter Verwendung der Schnittstelle, die von SENEC für die Mobil-Apps bereitgestellt wird. Für den Zugriff sind SENEC-Zugangsdaten anzugeben (E-Mail und Passwort). Möglich ist das auch für den Home P4. Das Auslesen der Messwerte ist nur einem einem längeren Intervall erlaubt, das vom Gerät abhängt. Beim Home P4 ist eine Abfrage im 1-Minuten-Takt möglich, beim V2.1 und V3 im 5-Minuten-Takt.

LokalCloud
SENEC.Home V2.1Ja (5sec)Ja (5min)
SENEC.Home V3Ja (5sec)Ja (5min)
SENEC.Home P4NeinJa (1min)

Beim V2.1 und V3 ist es also möglich, sich für einen der beiden Adapter zu entscheiden. Dies eröffnet die Möglichkeit, SOLECTRUS vollständig auf einem Cloud-Server zu betreiben, also ohne einen Raspberry o.ä. im lokalen Netzwerk. Diesem Vorteil steht der Nachteil gegenüber, dass die Daten nicht so häufig aktualisiert werden (nur alle 5 Minuten, statt alle 5 Sekunden).

Der Collector schreibt die folgenden Messwerte als Field in das angegebene Measurement der InfluxDB. Einige Messwerte sind nur im lokalen Betrieb verfügbar (also nicht beim P4).

FieldBeschreibungLokalCloud
application_versionVersion der FirmwareJaJa
bat_charge_currentBatterie-Ladestrom, in AJaJa
bat_fuel_chargeBatterie-Ladestand, in %JaJa
bat_power_minusBatterie-Entladeleistung, in WJaJa
bat_power_plusBatterie-Ladeleistung, in WJaJa
bat_voltageBatterie-Spannung, in VJaJa
case_tempGehäuse-Temperatur, in °CJaJa
current_state_codeAktueller Betriebszustand, als ZahlJaNein
current_stateAktueller Betriebszustand, als TextJaNein
current_state_okAktueller Betriebszustand ist Ok (Boolean)JaNein
ev_connectedElektroauto verbunden, Ja/NeinJaJa
grid_power_minusNetzeinspeisung, in WJaJa
grid_power_plusNetzbezug, in WJaJa
house_powerHausverbrauch, in WJaJa
inverter_powerErzeugte Leistung des Wechselrichters, in WJaJa
mpp1_powerLeistung von Strang 1, in WJaNein
mpp2_powerLeistung von Strang 2, in WJaNein
mpp3_powerLeistung von Strang 3, in WJaNein
power_ratioLeistungsbegrenzung, in %JaNein
response_durationDauer der Antwort, in msJaNein
wallbox_charge_powerWallbox-Ladeleistung, in WJaJa
wallbox_charge_power0Wallbox-Ladeleistung für erste Wallbox, in WJaNein
wallbox_charge_power1Wallbox-Ladeleistung für zweite Wallbox, in WJaNein
wallbox_charge_power2Wallbox-Ladeleistung für dritte Wallbox, in WJaNein
wallbox_charge_power3Wallbox-Ladeleistung für vierte Wallbox, in WJaNein

Der Collector schreibt ein Protokoll ins Docker-Log, das im Normalfall so aussieht:

SENEC collector for SOLECTRUS, Version 0.19.2, built at 2025-11-11T06:03:32.524Z
https://github.com/solectrus/senec-collector
Copyright (c) 2020-2025 Georg Ledermann, released under the MIT License
Using Ruby 3.4.7 on platform aarch64-linux-musl
Pushing to InfluxDB at http://influxdb:8086, bucket solectrus, measurement SENEC
Wait until InfluxDB is ready ... OK
Pulling from your local SENEC at https://192.168.178.29 every 5 seconds
Getting state names (language: de) from SENEC by parsing source code...
OK, got 99 state names
Got record #1 at 2025-11-23 07:42:42 +0100 within 14 ms, AKKU LEER, Inverter 0 W, House 894 W, Wallbox 0 W
Successfully pushed record #1 to InfluxDB
...

Das Protokoll kann über folgenden Befehl abgerufen werden:

Terminal-Fenster
docker compose logs senec-collector

Bei Problemen oder Fehlern (z.B. wenn der Stromspeicher oder die InfluxDB nicht erreichbar ist) wird dies ebenfalls protokolliert. Es empfiehlt sich daher, im Zweifelsfall zuerst das Protokoll zu prüfen.

Der SENEC-Collector ist in Ruby implementiert, der Quelltext ist auf GitHub verfügbar:
github.com/solectrus/senec-collector