Zum Hauptinhalt springen

gasleser.pulse lokale API

Die lokale API des gasleser.pulse 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.

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 0,5 Sekunden
  • Bei Überschreitung des Limits wird die Anfrage abgelehnt
Ratenbegrenzung beachten

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

API-Response

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

{
"device_id": "GAS_PULSE_4466926439",
"timestamp": "1785224596",
"count": 603,
"total_consumption": 37030.67,
"today_consumption": 0.00,
"current_flow_rate": 0.01,
"signal_strength": "84 %",
"rssi": "-51"
}

Response-Felder

FeldTypBeschreibung
device_idStringEindeutige Geräte-ID des gasleser.pulse
timestampStringUnix-Zeitstempel der Messung
countIntegerAnzahl der seit dem letzten Neustart gezählten Impulse
total_consumptionFloatGesamtverbrauch in Kubikmetern (die große Zahl auf dem Gaszähler)
today_consumptionFloatVerbrauch des heutigen Tages in Kubikmetern
current_flow_rateFloatAktuelle Durchflussrate in m³/h
signal_strengthStringWLAN-Signalstärke in Prozent
rssiStringWLAN-Signalstärke in dBm (RSSI)

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_pulse_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_pulse_data(device_ip)

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

# Rate Limiting beachten
time.sleep(0.5) # 0,5 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, 0,5 Sekunden warten
  • 404 Not Found: API-Endpunkt nicht verfügbar, Firmware-Version prüfen
  • Timeout: Gerät nicht erreichbar, Netzwerkverbindung prüfen

Fehlerbehebung

  1. Firmware-Version überprüfen: Stelle sicher, dass die aktuelle Firmware 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 0,5 Sekunden zwischen Anfragen warten

Integration mit Home Assistant

Für die Integration in Home Assistant siehe gasleser.pulse Home Assistant Integration.

Sicherheitshinweise

  • Die API ist nur im lokalen Netzwerk verfügbar
  • Keine Authentifizierung erforderlich
  • Stelle sicher, dass dein Netzwerk sicher ist
  • Verwende bei Bedarf Firewall-Regeln