Zum Hauptinhalt springen

Gasleser lokale API

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

Firmware-Anforderungen

Die lokale API-Funktion ist nur mit gasleser Firmware-Version 1.0.21 und höher verfügbar.

API-Endpunkt

Die API ist über die folgende URL erreichbar:

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

Beispiel:

http://192.168.2.132/v1/data

Rate Limiting

Die API hat eine Ratenbegrenzung implementiert:

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

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

API-Response

Die API gibt JSON-Daten im folgenden Format zurück:

{
"device_id": "GAS_2329790123",
"timestamp": "1758798550",
"total_consumption": 12345.8,
"current_flow_rate": 0.0
}

Response-Felder

FeldTypBeschreibung
device_idStringEindeutige Geräte-ID des Gaslesers
timestampStringUnix-Zeitstempel der Messung
total_consumptionFloatGesamtverbrauch in Kubikmetern (die große Zahl auf dem Gaszähler)
current_flow_rateFloatAktueller Durchflussrate in m³/h

Durchflussrate Details

Die current_flow_rate ist ein berechneter Wert mit folgenden Eigenschaften:

  • Einheit: Kubikmeter pro Stunde (m³/h)
  • Zweck: Live-Visualisierung des aktuellen Gasverbrauchs
  • Algorithmus: Verwendet einen graduellen Abfall-Algorithmus für eine glatte Kurve
  • Hinweis: Dient nur zur Illustration und visuellen Darstellung
Verwendungszweck

Der current_flow_rate Wert ist primär für die Live-Visualisierung gedacht und zeigt eine geglättete Darstellung des aktuellen Verbrauchs.

Beispiel-Integration

Python-Beispiel

import requests
import time

def get_gasleser_data(device_ip):
try:
response = requests.get(f"http://{device_ip}/v1/data", timeout=5)
if response.status_code == 200:
return response.json()
else:
print(f"Fehler: HTTP {response.status_code}")
return None
except requests.exceptions.RequestException as e:
print(f"Verbindungsfehler: {e}")
return None

# Beispiel-Verwendung
device_ip = "192.168.2.132"
data = get_gasleser_data(device_ip)

if data:
print(f"Gerät: {data['device_id']}")
print(f"Gesamtverbrauch: {data['total_consumption']} m³")
print(f"Aktuelle Durchflussrate: {data['current_flow_rate']} m³/h")

# Rate Limiting beachten
time.sleep(10) # 10 Sekunden warten

curl-Beispiel

curl -X GET http://192.168.2.132/v1/data

Fehlerbehandlung

Häufige Fehler

  • 429 Too Many Requests: Rate Limit überschritten, 10 Sekunden warten
  • 404 Not Found: API-Endpunkt nicht verfügbar (Firmware < 1.0.21)
  • Timeout: Gerät nicht erreichbar, Netzwerkverbindung prüfen

Fehlerbehebung

  1. Firmware-Version überprüfen: Stellen Sie sicher, dass Version 1.0.21+ installiert ist
  2. Netzwerkverbindung testen: Ping zum Gerät ausführen
  3. IP-Adresse verifizieren: Korrekte Geräte-IP verwenden
  4. Rate Limiting einhalten: Mindestens 10 Sekunden zwischen Anfragen warten

Integration mit Home Assistant

Für die Integration in Home Assistant siehe Gasleser Home Assistant Integration.

Sicherheitshinweise

  • Die API ist nur im lokalen Netzwerk verfügbar
  • Keine Authentifizierung erforderlich
  • Stellen Sie sicher, dass Ihr Netzwerk sicher ist
  • Verwenden Sie Firewall-Regeln bei Bedarf