Zum Hauptinhalt springen

Lokale API Übersicht

Die Geräte stromleser.one, gasleser und wasserleser verfügen über eine lokale API, die den direkten Zugriff auf Gerätedaten ermöglicht. Diese APIs sind nur im lokalen Netzwerk verfügbar und nicht über das Internet erreichbar.

Gemeinsame API-Eigenschaften​

Lokaler Zugriff​

  • Nur lokales Netzwerk: Die APIs sind ausschließlich innerhalb des lokalen Netzwerks erreichbar
  • Keine Cloud-Verbindung: Es erfolgt keine Datenübertragung über externe Server
  • Direkter Gerätezugriff: Die Kommunikation findet direkt mit dem jeweiligen Gerät statt

API-Endpunkte​

Homepage​

http://[GERÄTE_IP]/

Unter der jeweiligen IP-Adresse stellt jedes Gerät eine einfache Übersichtsseite bereit.

Daten-API​

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

Der standardisierte Endpunkt zum Abrufen der Gerätedaten.

Gerätespezifische APIs​

Jedes Gerät stellt unterschiedliche Datenstrukturen über die /v1/data API zur Verfügung:

stromleser.one​

Für detaillierte Informationen zur stromleser.one API siehe:

gasleser​

Für detaillierte Informationen zur gasleser API siehe:

wasserleser​

Die wasserleser API verwendet die gleiche Struktur wie die anderen Geräte-APIs. Für allgemeine Informationen siehe die obigen Abschnitte.

Allgemeine Verwendung​

IP-Adresse ermitteln​

  1. Router-Interface: Überprüfe die verbundenen Geräte in deinem Router
  2. Network-Scanner: Verwende Tools wie nmap oder mobile Apps
  3. Geräte-Display: Einige Geräte zeigen die IP-Adresse im Display an

Einfacher Test​

# Ping-Test
ping [GERÄTE_IP]

# Homepage aufrufen
curl http://[GERÄTE_IP]/

# API-Daten abrufen
curl http://[GERÄTE_IP]/v1/data

Rate Limiting beachten​

import requests
import time

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

# Rate Limiting einhalten
data = get_device_data("192.168.1.100")
time.sleep(10) # 10 Sekunden warten

Sicherheit​

Netzwerksicherheit​

  • Die APIs sind nur innerhalb des lokalen Netzwerks verfügbar
  • Es ist keine Authentifizierung erforderlich
  • Achte darauf, dass dein lokales Netzwerk sicher ist
  • Verwende Firewall-Regeln bei Bedarf

Best Practices​

  • Regelmäßige Updates: Halte die Geräte-Firmware auf dem neuesten Stand
  • Netzwerk-Segmentierung: Isoliere IoT-Geräte in einem separaten VLAN
  • Monitoring: Überwache ungewöhnliche API-Zugriffe regelmäßig

Fehlerbehebung​

Häufige Probleme​

Gerät nicht erreichbar​

  • Überprüfe die Netzwerkverbindung
  • Stelle sicher, dass das Gerät eingeschaltet ist
  • Überprüfe, ob die IP-Adresse korrekt ist

API antwortet nicht​

  • Überprüfe die Firmware-Version (lokale API möglicherweise nicht verfügbar)
  • Teste zunächst die Homepage (http://[IP]/)
  • Überprüfe die Firewall-Einstellungen

Rate Limit erreicht​

  • Warte mindestens 10 Sekunden zwischen Anfragen
  • Implementiere im Code eine entsprechende Wartezeit
  • Überprüfe, ob andere Anwendungen parallel auf das Gerät zugreifen

Debugging-Tools​

# Netzwerk-Test
ping [GERÄTE_IP]

# Port-Test
telnet [GERÄTE_IP] 80

# HTTP-Test
curl -v http://[GERÄTE_IP]/v1/data

Integration in Smart Home Systeme​

Die lokalen APIs können in verschiedene Smart-Home-Systeme integriert werden:

  • Home Assistant: Über REST-Sensoren oder MQTT
  • Node-RED: Durch direkte HTTP-Anfragen
  • OpenHAB: Über das HTTP-Binding
  • Custom Scripts: Mit Python, JavaScript oder anderen Programmiersprachen

Für spezifische Integrationshilfen siehe die gerätespezifischen Dokumentationen.