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 4

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 4, denn dieser hat keine lokale Schnittstelle. Der Collector liest in kurzem Intervall aus, standardmäßig alle 5 Sekunden.

  • Cloud: Abholen der Messwerte aus der SENEC-Cloud, über die Schnittstelle, die SENEC für seine Mobil-Apps bereitstellt. Dafür sind die SENEC-Zugangsdaten anzugeben (E-Mail und Passwort). Möglich ist das auch für den Home 4. Neue Werte liefert die Cloud allerdings nur in größeren Abständen: beim Home 4 im 1-Minuten-Takt, beim V2.1 und V3 im 5-Minuten-Takt. Ein kürzeres Abfrageintervall bringt daher nichts, der Collector lässt ohnehin nur mindestens 60 Sekunden zu.

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

Beim V2.1 und V3 sind also beide Betriebsmodi möglich. Über die Cloud läuft SOLECTRUS auch komplett auf einem Cloud-Server, ohne Rechner im lokalen Netzwerk. Dafür kommen die Messwerte 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 Home 4).

In der Cloud hängen vier Felder zusätzlich am Abfragemodus: case_temp, application_version, current_state und current_state_ok liefert der Collector nur bei SENEC_REQUEST_MODE=full. Beim Home 4 bleiben current_state und current_state_ok auch dann leer.

FieldBeschreibungLokalCloud
application_versionVersion der FirmwareJaNur full
bat_charge_currentBatterie-Ladestrom, in AJaNein
bat_fuel_chargeBatterie-Ladestand, in %JaJa
bat_power_minusBatterie-Entladeleistung, in WJaJa
bat_power_plusBatterie-Ladeleistung, in WJaJa
bat_voltageBatterie-Spannung, in VJaNein
case_tempGehäuse-Temperatur, in °CJaNur full
current_state_codeAktueller Betriebszustand, als ZahlJaNein
current_stateAktueller Betriebszustand, als TextJaNur full
current_state_okAktueller Betriebszustand ist OK (Boolean)JaNur full
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 v0.21.0, built at 2026-06-01T11:03:23.082Z
https://github.com/solectrus/senec-collector
Copyright (c) 2020-2026 Georg Ledermann, released under the MIT License
Using Ruby 4.0.5 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 2026-07-14 10:22:29 +0200 within 144 ms, FERNABSCHALTUNG, Inverter 4251 W, House 460 W, Wallbox 0 W
Successfully pushed record #1 to InfluxDB
...

Fehler protokolliert der Collector ebenfalls, etwa wenn der Stromspeicher oder die InfluxDB nicht erreichbar ist.

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