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.
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
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
| Feld | Typ | Beschreibung |
|---|---|---|
device_id | String | Eindeutige Geräte-ID des Gaslesers |
timestamp | String | Unix-Zeitstempel der Messung |
total_consumption | Float | Gesamtverbrauch in Kubikmetern (die große Zahl auf dem Gaszähler) |
current_flow_rate | Float | Aktueller 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
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
- Firmware-Version überprüfen: Stellen Sie sicher, dass Version 1.0.21+ installiert ist
- Netzwerkverbindung testen: Ping zum Gerät ausführen
- IP-Adresse verifizieren: Korrekte Geräte-IP verwenden
- 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