Stromverbrauch messen mit ESP32 & Home Assistant
DIY Energiemonitor mit ESP32 und SCT-013 Stromsensor bauen. Stromverbrauch in Echtzeit messen und in Home Assistant auswerten.
- Stand
- Erstellt
- Lesezeit
- 10 Min.
- Blatt
- 12 von 52
- Thema
- ESPHome

Werbung / Affiliate-Links: Mit * markierte Links sind Affiliate-Links. Beim Kauf über diese Links erhalten wir eine kleine Provision — für dich ändert sich am Preis nichts. Als Amazon-Partner verdienen wir an qualifizierten Verkäufen.
Was kostet dein Kühlschrank im Jahr? Wie viel Strom zieht die Wärmepumpe wirklich? Welches Gerät frisst heimlich Standby-Strom? Die meisten wissen es nicht — weil der Stromzähler im Keller nur eine Gesamtzahl zeigt. Mit einem ESP32, einem Stromsensor und Home Assistant baust du dir in ein bis zwei Stunden einen Energiemonitor, der dir den Verbrauch in Echtzeit anzeigt.
Warum selber bauen?
Fertige Energiemonitore gibt es natürlich auch — Shelly Pro 3EM, Shelly Plug S, oder kommerzielle Ganzhaus-Lösungen. Aber der DIY-Weg hat klare Vorteile:
- Günstiger: 20-25 € statt rund 125 € (Shelly Pro 3EM) oder 200 €+ (kommerzielle Lösungen)
- Flexibler: Messe einzelne Leitungen, alle drei Phasen, oder beides
- Lerneffekt: Du verstehst, wie Strommessung funktioniert
- Erweiterbar: Später weitere Sensoren oder Kanäle ergänzen, ohne neues Gerät zu kaufen
- Kein Cloud-Zwang: Alles bleibt lokal
Was du brauchst
| Komponente | Preis (ca.) | Beschreibung |
|---|---|---|
| ESP32 DevKit | 5–8 € | Mikrocontroller mit ADC |
| SCT-013-030 | 8–12 € | Nicht-invasiver Stromsensor (30A) |
| 10µF Kondensator | 0,50 € | Stabilisiert die Mittelspannung (Bias) |
| 2x 10kΩ Widerstände | 0,50 € | Spannungsteiler (Bias) |
| 3,5mm Klinkenbuchse | 1 € | Anschluss für den SCT-013 |
| Breadboard + Kabel | 5 € | Zum Aufbauen |
Gesamtkosten: ca. 20–25 €
Die beiden Hauptbauteile: ESP32 DevKit auf Amazon* | SCT-013-030 Stromwandler 30A/1V*
Welchen SCT-013 nehmen?
Es gibt verschiedene Varianten:
| Modell | Messbereich | Output | Für |
|---|---|---|---|
| SCT-013-030 | 0-30A | 0-1V | Einzelne Sicherungskreise (empfohlen) |
| SCT-013-050 | 0-50A | 0-1V | Größere Verbraucher |
| SCT-013-000 | 0-100A | 0-50mA | Nicht für diese Schaltung: Stromausgang, braucht externen Bürde-Widerstand |
Für den Einstieg ist der SCT-013-030 die beste Wahl. Er hat den Bürde-Widerstand bereits eingebaut und gibt direkt eine Spannung aus (1 V bei 30 A), die der ESP32 ohne zusätzlichen Widerstand lesen kann. Der SCT-013-000 liefert dagegen einen Strom: Ohne passenden Bürde-Widerstand betrieben, können an seinen Anschlüssen gefährlich hohe Spannungen entstehen. Er passt nicht zu der Schaltung in diesem Artikel.
Wie funktioniert das?
Der SCT-013 ist ein Stromwandler (Current Transformer, CT). Du klemmst ihn um einen stromführenden Leiter — ohne ihn aufzutrennen. Das ist der entscheidende Vorteil gegenüber Messgeräten, die in die Leitung geschaltet werden.
Sicherheit: An eine einzelne Ader kommst du praktisch nur im Sicherungskasten oder an einer abgemantelten Leitung — und das ist Arbeit am 230-V-Netz. Das Anbringen der Stromwandler im Verteiler darf nur durch eine Elektrofachkraft erfolgen. Mantel niemals selbst an einer Netzleitung entfernen.
Das Prinzip:
- Strom durch ein Kabel erzeugt ein Magnetfeld
- Der SCT-013 umschließt das Kabel und misst dieses Magnetfeld
- Er wandelt es in ein proportionales elektrisches Signal um
- Der ESP32 liest das Signal über den ADC (Analog-Digital-Wandler) ein
- ESPHome rechnet den ADC-Wert in Ampere/Watt um
Wichtig: Der SCT-013 wird um eine einzelne Ader geklemmt, nicht um das ganze Kabel. Bei einem dreiadrigen Kabel (Phase, Null, Erde) misst du nur die Phase (braun oder schwarz). Wenn du das ganze Kabel umschließt, heben sich die Magnetfelder auf und du misst: nichts.
Schaltung aufbauen
Der SCT-013-030 gibt ein Wechselspannungssignal aus — es pendelt um 0V (bei 30 A etwa ±1,4 V Spitze). Aber der ADC des ESP32 kann nur positive Spannungen (0–3,3V) messen. Deshalb brauchen wir einen Spannungsteiler, der eine Mittelspannung (Bias) von 1,65V erzeugt. Der Stromwandler liegt in Reihe zwischen dieser Mittelspannung und dem ADC-Pin, sodass sein Signal um 1,65V pendelt:
3.3V ──[10kΩ]──┬──[10kΩ]── GND
│
├──[10µF]── GND
│
Klinkenbuchse, Anschluss 1
│
(SCT-013-030)
│
Klinkenbuchse, Anschluss 2
│
GPIO36 (ADC1_CH0, VP)
Verkabelung Schritt für Schritt
- Klinkenbuchse auf dem Breadboard platzieren
- Spannungsteiler: Ein 10kΩ Widerstand von 3.3V zum Mittelpunkt, ein 10kΩ vom Mittelpunkt zu GND
- Kondensator: 10µF zwischen Mittelpunkt und GND — er hält die Mittelspannung stabil (beim Elko: Minus an GND)
- SCT-013-030, Anschluss 1: einen der beiden Signalkontakte der Klinkenbuchse mit dem Mittelpunkt verbinden
- SCT-013-030, Anschluss 2: den anderen Signalkontakt mit GPIO36 (VP) des ESP32 verbinden — das ist ein ADC1-Pin, der auch bei aktivem WLAN funktioniert
Welche Kontakte der Buchse der Wandler belegt, prüfst du mit einem Multimeter (Durchgangsprüfung am abgeklemmten Wandler); beim SCT-013 sind es üblicherweise Spitze und Hülse des Klinkensteckers.
GPIO-Auswahl: Verwende unbedingt einen ADC1-Pin (GPIO32-GPIO39). ADC2-Pins (GPIO0, 2, 4, 12-15, 25-27) funktionieren nicht wenn WLAN aktiv ist — und das ist bei ESPHome immer der Fall.
Fotos / Fritzing-Diagramm
Wenn du unsicher bist: Suche nach „SCT-013 ESP32 Fritzing” — es gibt dutzende Schaltpläne und Fotos in der Community.
ESPHome Konfiguration
Erstelle ein neues Gerät im ESPHome-Dashboard oder ergänze deine bestehende YAML:
sensor:
# ADC-Rohwert einlesen
- platform: adc
pin: GPIO36
id: adc_sensor
attenuation: auto
update_interval: 1s
# CT-Clamp: ADC-Wert in Ampere umrechnen
- platform: ct_clamp
sensor: adc_sensor
name: "Stromstärke"
id: current_sensor
update_interval: 5s
filters:
- calibrate_linear:
# Nennwerte SCT-013-030 (1 V bei 30 A), danach kalibrieren
- 0.0 -> 0
- 0.167 -> 5.0
- 0.333 -> 10.0
# Leistung berechnen (Strom × Spannung)
- platform: template
name: "Leistung"
id: power_sensor
unit_of_measurement: "W"
device_class: power
state_class: measurement
lambda: |-
return id(current_sensor).state * 230.0;
update_interval: 5s
# Tagesverbrauch in kWh (setzt um Mitternacht zurück, braucht time:)
- platform: total_daily_energy
name: "Tagesverbrauch"
power_id: power_sensor
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.001 # W → kWh
# Diagnostik: WLAN-Signal
- platform: wifi_signal
name: "Energiemonitor WLAN"
update_interval: 120s
# Uhrzeit von Home Assistant, damit der Tageszähler um Mitternacht zurücksetzt
time:
- platform: homeassistant
id: homeassistant_time
Was die einzelnen Sensoren machen:
- adc: Liest den Rohwert vom GPIO (0-3.3V als Float)
- ct_clamp: Rechnet die ADC-Schwankung in RMS-Strom (Ampere) um
- template (Leistung): Multipliziert Strom × 230V. Genau genommen ist das die Scheinleistung: Ohne Spannungsmessung kennt der ESP32 weder die echte Netzspannung noch den Leistungsfaktor. Bei ohmschen Lasten (Wasserkocher, Heizlüfter) passt das gut, bei Motoren und Schaltnetzteilen liegt die tatsächliche Wirkleistung darunter
- total_daily_energy: Summiert die Leistung über den Tag auf → kWh. Damit der Zähler um Mitternacht zurückgesetzt wird, braucht ESPHome die
time:-Komponente
Kalibrierung — der wichtigste Schritt
Die Genauigkeit steht und fällt mit der Kalibrierung. Ohne Kalibrierung können die Werte deutlich abweichen — Community-Berichte nennen 10–30 %.
Schritt-für-Schritt:
- Referenzgerät besorgen — z.B. ein Shelly Plug S oder ein günstiges Energiemessgerät aus der Steckdose (~10 €)
- Kein Verbraucher einschalten → ADC-Wert in den ESPHome-Logs ablesen (Null-Punkt, sollte nahe 0 sein)
- Bekannte Last einschalten — Wasserkocher (~2000W), Heizlüfter, oder ähnliches mit konstantem Verbrauch
- ADC-Wert ablesen — im ESPHome-Log den
ct_clamp-Rohwert lesen (dafür dencalibrate_linear-Filter vorübergehend auskommentieren) - Referenz-Stromstärke berechnen: 2000W ÷ 230V = 8,7A
calibrate_linearanpassen:
filters:
- calibrate_linear:
- 0.0 -> 0 # Kein Strom → 0A
- 0.290 -> 8.7 # Dein gemessener Wert → berechnete Ampere
- Zweiten Messpunkt mit einem anderen Verbraucher prüfen — wenn die Werte passen, bist du fertig
Tipp: Für genauere Kalibrierung nutze 3 Messpunkte (0W, ~500W, ~2000W). Bei mehr als zwei Punkten berechnet
calibrate_linearstandardmäßig per Methode der kleinsten Quadrate eine Ausgleichsgerade durch alle Punkte — Messfehler einzelner Punkte mitteln sich so heraus.
Integration in Home Assistant
Nach dem Flash tauchen die Sensoren automatisch in Home Assistant auf.
Energie-Dashboard
Das eingebaute Energie-Dashboard ist perfekt für deinen DIY-Monitor:
- Einstellungen → Dashboards → Energie
- Im Bereich Einzelne elektrische Geräte → Gerät hinzufügen → deinen Sensor „Tagesverbrauch” auswählen
- Kosten berechnet das Energie-Dashboard nur für den Netzbezug (Bereich Stromnetz); für einen einzelnen Stromkreis nutzt du den Kostensensor im nächsten Abschnitt
- Die ersten Werte erscheinen nach ein bis zwei Stunden, weil das Energie-Dashboard mit stündlichen Statistiken arbeitet
Stromkosten-Tracking
Mit einem festen Arbeitspreis (hier 0,30 €/kWh) rechnet ein Template-Sensor die Tageskosten aus:
template:
- sensor:
- name: "Stromkosten heute"
unit_of_measurement: "€"
device_class: monetary
state: >
{{ (states('sensor.tagesverbrauch') | float(0) * 0.30) | round(2) }}
Bei dynamischen Tarifen wie Tibber oder aWATTar ändert sich der Preis stündlich; dann reicht eine einfache Multiplikation nicht. Hinterlege in diesem Fall im Energie-Dashboard beim Netzanschluss die Preis-Entität deines Anbieters.
Automationen
Warnung bei hohem Verbrauch:
automation:
- alias: "Hoher Stromverbrauch"
triggers:
- trigger: numeric_state
entity_id: sensor.leistung
above: 3000
for: "00:05:00"
actions:
- action: notify.mobile_app_dein_handy
data:
title: "⚡ Hoher Stromverbrauch!"
message: "Über 3000W seit 5 Minuten. Aktuell: {{ states('sensor.leistung') }}W"
Standby-Vampir erkennen:
automation:
- alias: "Standby-Verbrauch erkennen"
triggers:
- trigger: numeric_state
entity_id: sensor.leistung
above: 5
below: 20
for: "02:00:00"
conditions:
- condition: time
after: "01:00:00"
before: "05:00:00"
actions:
- action: notify.mobile_app_dein_handy
data:
title: "🧛 Standby-Vampir!"
message: "Nachts {{ states('sensor.leistung') }}W Grundlast. Lohnt sich zu prüfen."
Erweiterungsmöglichkeiten
Alle drei Phasen messen
In Deutschland hat jeder Hausanschluss drei Phasen (L1, L2, L3). Für eine Gesamtmessung brauchst du drei SCT-013:
sensor:
- platform: ct_clamp
sensor: adc_l1
name: "Phase L1"
id: current_l1
# ... (gleiche Config wie oben)
- platform: ct_clamp
sensor: adc_l2
name: "Phase L2"
id: current_l2
- platform: ct_clamp
sensor: adc_l3
name: "Phase L3"
id: current_l3
- platform: template
name: "Gesamtleistung" # Scheinleistung, siehe oben
lambda: |-
return (id(current_l1).state + id(current_l2).state + id(current_l3).state) * 230.0;
Smart Meter auslesen (Alternative)
Viele moderne Stromzähler haben eine IR-Schnittstelle (die blinkende LED oder den optischen Port). Mit einem ESP32 und einem Fototransistor kannst du den Zähler direkt auslesen — genauer als jeder CT-Clamp und ohne Kalibrierung.
Suche nach „Home Assistant Glow” oder „SML Lesekopf” — beides populäre DIY-Projekte dafür.
Kosten vs. fertige Lösungen
| Lösung | Preis | Genauigkeit | Phasen | Aufwand |
|---|---|---|---|---|
| DIY (ESP32 + SCT-013) | 20–25 € | grob ±5% nach Kalibrierung (Richtwert) | 1 (3 möglich) | Hoch |
| Home Assistant Glow | ~10 € | wie der Zähler | Gesamt | Mittel |
| Shelly Plug S Gen3 | rund 20 € | laut Hersteller ±1% | 1 Gerät | Niedrig |
| Shelly Pro 3EM (120A) V2 | rund 125 € | laut Hersteller ±1% | Alle 3 | Niedrig (Einbau durch Elektrofachkraft) |
| SML Lesekopf | ~15 € | wie der Zähler | Gesamt | Mittel |
Glow und Lesekopf lesen die Werte des geeichten Stromzählers aus und sind damit so genau wie der Zähler selbst. Die Preise sind gerundete Richtwerte (Stand: September 2026).
Empfehlung: Für den Gesamtverbrauch ist der Home Assistant Glow oder ein SML-Lesekopf die einfachste und genaueste Lösung. Der SCT-013-Weg lohnt sich, wenn du einzelne Sicherungskreise messen willst (z.B. Küche, Wärmepumpe, Server).
Sicherheitshinweise
- Nie das Kabel aufschneiden — der SCT-013 wird nur drumherum geklemmt
- Nie den SCT-013 öffnen, während er an einer stromführenden Leitung klemmt — das kann zu Spannungsspitzen führen
- Arbeiten im Sicherungskasten — auch das Anklemmen der Stromwandler — nur durch eine Elektrofachkraft
- Keine Garantie für Genauigkeit — für die Abrechnung mit dem Energieversorger gilt nur der offizielle Zähler
Weiterführende Artikel
- ESP32 mit ESPHome einbinden — Der Einstieg in DIY-Sensoren
- Shelly Plug S — Steckdosen-Energiemonitoring ohne Basteln
- Home Assistant Automationen — Automatisch auf Verbrauch reagieren
- MQTT Broker einrichten — Alternative Anbindung
Fazit
Für 20–25 € weißt du endlich, wohin dein Strom fließt. Die Kombination aus ESP32, SCT-013 und Home Assistant gibt dir Echtzeit-Daten, Langzeit-Statistiken und die Möglichkeit, auf Basis deines Verbrauchs zu automatisieren. Ist die Kalibrierung einmal gemacht, läuft das Ding weitgehend wartungsfrei im Hintergrund. Und ja — es macht süchtig, den eigenen Verbrauch zu optimieren.


