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
| Feld | Typ | Beschreibung |
|---|---|---|
device_id | String | Eindeutige Geräte-ID des gasleser.pulse |
timestamp | String | Unix-Zeitstempel der Messung |
count | Integer | Anzahl der seit dem letzten Neustart gezählten Impulse |
total_consumption | Float | Gesamtverbrauch in Kubikmetern (die große Zahl auf dem Gaszähler) |
today_consumption | Float | Verbrauch des heutigen Tages in Kubikmetern |
current_flow_rate | Float | Aktuelle Durchflussrate in m³/h |
signal_strength | String | WLAN-Signalstärke in Prozent |
rssi | String | WLAN-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
- Firmware-Version überprüfen: Stelle sicher, dass die aktuelle Firmware installiert ist
- Netzwerkverbindung testen: Ping zum Gerät ausführen
- IP-Adresse verifizieren: Korrekte Geräte-IP verwenden
- 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