Zum Inhalt

Gerät (ESP32-C6)

Überblick

Der WattWächter basiert auf dem ESP32-C6 Mikrocontroller und liest Energiedaten über einen IR-Lesekopf vom Smart Meter aus. Die Daten werden lokal gespeichert und per REST API, MQTT oder Cloud-Portal bereitgestellt.

Technische Daten

Eigenschaft Wert
Mikrocontroller ESP32-C6 (RISC-V, 160 MHz)
Konnektivität WiFi 6, Bluetooth 5.0 LE
Schnittstelle IR-Lesekopf (SML-Protokoll, D0-Schnittstelle)
Stromversorgung USB-C, 5V
Speicher SPIFFS Dateisystem für History-Daten
Statusanzeige RGB-LED
Hostname ww.local (mDNS)

Funktionsweise

Smart Meter ──IR──▶ WattWächter (ESP32-C6) ──WiFi──▶ Heimnetz / Cloud
                          │
                          ├── REST API (lokal)
                          ├── MQTT (Cloud / Smart Home)
                          └── LED-Statusanzeige
  1. Der IR-Lesekopf empfängt SML-Telegramme vom Smart Meter
  2. Der ESP32-C6 parst die OBIS-Kennzahlen (z.B. 1-0:1.8.0 für Gesamtbezug)
  3. Daten werden im SPIFFS gespeichert (HighRes: 15 Tage, LowRes: 1 Jahr)
  4. Bereitstellung über REST API und/oder MQTT

LED-Statusanzeige

Die RGB-LED zeigt den aktuellen Gerätestatus an. Bei mehreren gleichzeitigen Zuständen wird der mit der höchsten Priorität angezeigt.

Status Farbe Modus Priorität Bedeutung
OK Grün Dauerhaft 1 Normalbetrieb, alles in Ordnung
Startup Gelb Dauerhaft 2 Gerät startet
Info Gelb Gedimmt 3 Informationsmeldung
BLE aktiv Blau Pulsierend 4 Bluetooth wartet auf Verbindung
BLE verbunden Magenta Pulsierend 5 Bluetooth-Gerät verbunden
OTA aktiv Magenta Dauerhaft 6 Firmware-Update läuft
Fehler Rot Pulsierend 7 Fehler aufgetreten
Reset ausstehend Rot Dauerhaft 8 Factory Reset wird ausgeführt

LED deaktivieren

Die LED kann über die API deaktiviert werden:

curl -X POST http://ww.local/api/v1/settings \
  -H "Authorization: Bearer WRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ledEnable": false}'

Datenerfassung

OBIS-Kennzahlen

Der WattWächter liest folgende Werte vom Smart Meter:

OBIS-Code Beschreibung Einheit
1-0:1.8.0 Gesamtbezug (Import) kWh
1-0:2.8.0 Gesamteinspeisung (Export) kWh
1-0:16.7.0 Aktuelle Leistung W

History-Speicher

Auflösung Intervall Speicherdauer Daten
HighRes 15 Minuten 15 Tage Import, Export, Leistung, Deltas
LowRes 1 Tag 1 Jahr Tages-Import, Tages-Export

Authentifizierung

Die API verwendet zwei Token-Typen:

Token Berechtigung Verwendung
READ Token Lesend Daten abrufen, Status prüfen
WRITE Token Schreibend Einstellungen ändern, OTA starten, Reboot

Tokens werden im Header übergeben:

Authorization: Bearer DEIN_TOKEN

API-Auth deaktivieren

Für lokale Entwicklung kann die Authentifizierung deaktiviert werden:

curl -X POST http://ww.local/api/v1/settings \
  -H "Authorization: Bearer WRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"api_auth_required": false}'
Nicht empfohlen für den Dauerbetrieb.

MQTT-Integration

Der WattWächter kann Telemetriedaten per MQTT an einen Broker senden (z.B. für Home Assistant oder ioBroker).

Konfiguration

curl -X POST http://ww.local/api/v1/settings \
  -H "Authorization: Bearer WRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mqtt": {"enable": true, "host": "mqtt.example.com", "port": 8883}}'

TLS mit eigenem CA-Zertifikat

Für MQTT-Broker mit selbstsigniertem Zertifikat kann ein eigenes CA-Zertifikat hochgeladen werden:

curl -X POST http://ww.local/api/v1/mqtt/ca \
  -H "Authorization: Bearer WRITE_TOKEN" \
  -H "Content-Type: text/plain" \
  --data-binary @mein_broker_ca.pem

Fehlerbehebung

Gerät nicht erreichbar

  1. LED-Status prüfen (siehe Tabelle oben)
  2. Ping testen: ping ww.local
  3. IP-Adresse im Router nachschlagen
  4. Bei dauerhaft roter LED: Gerät neu starten (USB trennen/verbinden)

Keine Zählerdaten

  1. IR-Lesekopf sitzt korrekt auf der optischen Schnittstelle?
  2. Smart Meter hat freigeschaltete PIN? (Bei manchen Zählern muss die Datenausgabe beim Netzbetreiber aktiviert werden)
  3. Aktuelle Werte prüfen: curl http://ww.local/api/v1/history/latest

Factory Reset

Reset-Taster 10 Sekunden gedrückt halten. Die LED wechselt zu rot (dauerhaft), dann startet das Gerät im Setup-Modus neu. Alle Einstellungen werden zurückgesetzt.