Zum Hauptinhalt springen

stromleser.one lokale API

Die stromleser.one lokale API ermöglicht den direkten Zugriff auf deine Stromzählerdaten über das lokale Netzwerk. Diese API ist nur lokal verfügbar und kann nicht über das Internet erreicht werden.

Hinweis

Für allgemeine Informationen über lokale APIs siehe Lokale API Übersicht.

API-Endpunkt

Die API ist über die folgende URL erreichbar:

http://[GERÄT_IP]/v1/data

Beispiel:

http://192.168.1.100/v1/data

Rate Limiting

Die API hat eine Ratenbegrenzung implementiert:

  • 1 Anfrage alle 8 Sekunden
  • Bei Überschreitung des Limits wird die Anfrage abgelehnt
Ratenbegrenzung beachten

Stelle sicher, dass deine Anwendung nicht öfter als einmal alle 8 Sekunden Anfragen sendet.

API-Response

Die API gibt JSON-Daten zurück, deren Inhalt vollständig von deinem Stromzähler abhängig ist. Je nachdem, welche Werte dein Zähler unterstützt und sendet, werden diese in der API-Response angezeigt.

Beispiel-Response

{
"device_id": "STROM_ONE_7211674295",
"timestamp": "1761908828",
"1.8.0": "22641332.800 Wh",
"1.8.1": "22641332.800 Wh",
"1.8.2": "0.000 Wh",
"2.8.0": "37307808.400 Wh",
"2.8.1": "37307808.400 Wh",
"2.8.2": "0.000 Wh",
"16.7.0": "3.000 W",
"36.7.0": "0.000 W",
"56.7.0": "0.000 W",
"76.7.0": "3.000 W",
"RSSI": "-54dBm"
}

Standard-Felder

FeldTypBeschreibung
device_idStringEindeutige Geräte-ID des stromleser.one
timestampStringUnix-Zeitstempel der Messung
RSSIStringWLAN-Signalstärke in dBm

Wert-Format

Wichtig: Alle Messwerte (OBIS-Codes) werden als String mit Einheit zurückgegeben. Die Einheit wird direkt vom Stromzähler übermittelt und ist Teil des Wertes.

Format: "<Zahlenwert> <Einheit>"

Beispiele:

  • "22641332.800 Wh" - Energie in Wattstunden
  • "3.000 W" - Leistung in Watt
  • "22.641 kWh" - Energie in Kilowattstunden (falls vom Zähler so gesendet)

Die Einheiten sind nicht fest vorgegeben und können je nach Stromzähler-Modell variieren.

Unterstützte OBIS-Codes

stromleser.one kann die folgenden SML OBIS-Codes dekodieren. Wichtig: Nur Werte, die dein Stromzähler tatsächlich sendet, erscheinen in der API-Response.

Energiebezug (Verbrauch)

OBIS-CodeBeschreibung
1.8.0Gesamtenergiebezug (Summe aller Tarife)
1.8.1Energiebezug Tarif 1 (Hochtarif / HT)
1.8.2Energiebezug Tarif 2 (Niedrigtarif / NT)
1.8.3Energiebezug Tarif 3
1.8.4Energiebezug Tarif 4

Typische Einheit: Wattstunden (Wh) oder Kilowattstunden (kWh)

Energieeinspeisung (z.B. Solaranlage)

OBIS-CodeBeschreibung
2.8.0Gesamtenergieeinspeisung (Summe aller Tarife)
2.8.1Energieeinspeisung Tarif 1 (Hochtarif / HT)
2.8.2Energieeinspeisung Tarif 2 (Niedrigtarif / NT)
2.8.3Energieeinspeisung Tarif 3
2.8.4Energieeinspeisung Tarif 4

Typische Einheit: Wattstunden (Wh) oder Kilowattstunden (kWh)

Momentanleistung

OBIS-CodeBeschreibung
16.7.0Aktuelle Wirkleistung (netto, kann +/- sein)
15.7.0Absolute aktuelle Wirkleistung
1.7.0Positive aktuelle Wirkleistung (Bezug)
2.7.0Negative aktuelle Wirkleistung (Einspeisung)
16.7Aktuelle Leistung (Alias für 16.7.0)

Typische Einheit: Watt (W) oder Kilowatt (kW)

Hauptwert

16.7.0 ist der meistgenutzte Wert und zeigt die aktuelle Gesamt-Wirkleistung an. Positive Werte = Bezug, negative Werte = Einspeisung.

Phasenspezifische Leistung (3-Phasen-Zähler)

OBIS-CodeBeschreibung
36.7.0Aktuelle Wirkleistung Phase L1
56.7.0Aktuelle Wirkleistung Phase L2
76.7.0Aktuelle Wirkleistung Phase L3

Typische Einheit: Watt (W) oder Kilowatt (kW)

Verfügbarkeit

Diese Werte sind nur bei 3-Phasen-Stromzählern verfügbar, die diese Informationen liefern.

Was wird bei mir angezeigt?

Die Verfügbarkeit der Werte hängt von deinem Stromzähler ab:

  • Moderne Smart Meter: Liefern meist viele OBIS-Codes inkl. Phasen-Daten
  • Ältere digitale Zähler: Oft nur Basis-Werte wie Gesamtverbrauch und aktuelle Leistung
  • Zweirichtungszähler (mit Solar): Zusätzlich Einspeisewerte (2.8.x)
  • Mehrtarifzähler: Separate Werte für HT/NT (1.8.1 und 1.8.2)
Tipp

Rufe die API einmal auf, um zu sehen, welche Werte dein Zähler liefert. Dies sind die Werte, die du in deinen Anwendungen verwenden kannst.

Fehlerbehandlung

Häufige Fehler

  • 429 Too Many Requests: Rate Limit überschritten, 10 Sekunden warten
  • 404 Not Found: API-Endpunkt nicht verfügbar oder falsche URL
  • Timeout: Gerät nicht erreichbar, Netzwerkverbindung prüfen

Fehlerbehebung

  1. IP-Adresse verifizieren: Korrekte Geräte-IP verwenden
  2. Netzwerkverbindung testen: Ping zum Gerät ausführen
  3. Rate Limiting einhalten: Mindestens 10 Sekunden zwischen Anfragen warten
  4. Browser-Test: Rufe http://[IP]/v1/data im Browser auf

Integration mit Home Assistant

Für die Integration in Home Assistant siehe stromleser.one Home Assistant Integration.

Werte verarbeiten

Da alle Werte als String mit Einheit geliefert werden, musst du sie parsen:

def parse_value(value_string):
"""
Parst einen Wert mit Einheit.
Beispiel: "22641332.800 Wh" -> (22641332.800, "Wh")
"""
parts = value_string.split()
if len(parts) >= 2:
number = float(parts[0])
unit = parts[1]
return number, unit
return None, None

# Beispiel-Verwendung
if '1.8.0' in data:
value, unit = parse_value(data['1.8.0'])
if value is not None:
print(f"Gesamtverbrauch: {value} {unit}")

# Optional: Umrechnung, falls in Wh
if unit == "Wh":
kwh = value / 1000
print(f"Gesamtverbrauch: {kwh:.3f} kWh")

# Leistungswerte interpretieren
if '16.7.0' in data:
power, unit = parse_value(data['16.7.0'])
if power is not None:
if power > 0:
print(f"Bezug: {power} {unit}")
elif power < 0:
print(f"Einspeisung: {abs(power)} {unit}")
else:
print("Kein Verbrauch/Einspeisung")

Sicherheitshinweise

  • Die API ist nur im lokalen Netzwerk verfügbar
  • Keine Authentifizierung erforderlich
  • Stelle sicher, dass dein Netzwerk sicher ist
  • Verwende Firewall-Regeln bei Bedarf
  • Exponiere das Gerät nicht direkt zum Internet