# Was ist der Shelly-Collector?

> Der Shelly-Collector liest den Stromverbrauch von Shelly-Geräten aus, lokal oder über die Shelly-Cloud, und schreibt ihn in die InfluxDB.

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

## Erfasste Messwerte

Der Collector schreibt die folgenden Messwerte als _Field_ in das angegebene _Measurement_ der InfluxDB:

| Field               | Beschreibung             |
| :------------------ | :----------------------- |
| `power`             | Leistung, in W           |
| `power_a`           | Leistung Phase A, in W   |
| `power_b`           | Leistung Phase B, in W   |
| `power_c`           | Leistung Phase C, in W   |
| `power_d`           | Leistung Kanal 4, in W   |
| `temp`              | Temperatur, in °C        |
| `response_duration` | Dauer der Antwort, in ms |

> **Hinweis**
>
>
> Die Verfügbarkeit einzelner Messwerte hängt vom verwendeten Shelly-Gerät ab. Nicht alle Geräte liefern alle Messwerte.
>

## Logging

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

```log
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.

## Quelltext

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