Zum Inhalt springen

Was ist der Shelly-Collector?

Der Shelly-Collector sammelt den Stromverbrauch, der von einem Shelly-Stromzähler gemessen wird, und schreibt diesen in die InfluxDB.

Der Collector ruft die Messwerte entweder direkt vom Gerät (über die HTTP-Rest-API) oder über die Shelly-Cloud ab. Über die Cloud läuft der Collector auch außerhalb des lokalen Netzwerks, etwa auf einem Cloud-Server.

Unterstützt werden Shelly-Geräte der ersten, zweiten und dritten Generation. Erfolgreich getestet wurden die folgenden Geräte:

  • Shelly Pro 3EM
  • Shelly Pro EM-50
  • Shelly Pro 1PM
  • Shelly Pro 4PM
  • Shelly 3EM
  • Shelly Plus Plug S
  • Shelly PM Mini Gen3
  • Shelly Plug S (Gen3)
  • Shelly Plug 2
  • Shelly EM

Der Collector schreibt die folgenden Messwerte als Field in das angegebene Measurement der InfluxDB:

FieldBeschreibung
powerLeistung, in W
power_aLeistung Phase A, in W
power_bLeistung Phase B, in W
power_cLeistung Phase C, in W
power_dLeistung Kanal 4, in W
tempTemperatur, in °C
response_durationDauer der Antwort, in ms

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

Shelly collector for SOLECTRUS, Version v0.13.0, built at 2026-06-19T05:08:20.190Z
https://github.com/solectrus/shelly-collector
Copyright (c) 2024-2026 Georg Ledermann, released under the MIT License
Using Ruby 4.0.5 on platform aarch64-linux-musl
InfluxDB at http://influxdb:8086, bucket solectrus
Device (local, every 5s):
http://192.168.178.83 => Heatpump (no auth)
Wait until InfluxDB is ready ... OK
#1 - 11:44:52, Power 430.9 W, Temperature 46.2 °C (75 ms)
Successfully pushed record #1 to InfluxDB
...

Sind mehrere Geräte konfiguriert, listet der Collector sie beim Start alle auf und fasst ihre Messwerte je Durchlauf zusammen.

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

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