Python-Bibliothek¶
Die offizielle Python-Bibliothek aio-wattwaechter ermöglicht den asynchronen Zugriff auf die WattWächter REST API. Sie deckt alle API-Endpunkte ab und eignet sich sowohl für eigene Skripte als auch als Grundlage für Smart-Home-Integrationen.
Installation¶
pip install aio-wattwaechter
Schnellstart¶
import asyncio
from aio_wattwaechter import Wattwaechter
async def main():
# Ohne Token, wenn Authentifizierung deaktiviert ist (Werkseinstellung)
async with Wattwaechter("192.168.1.100") as client:
# Aktuelle Zählerwerte abrufen
data = await client.meter_data()
if data:
print(f"Leistung: {data.power} W")
print(f"Gesamtverbrauch: {data.total_consumption} kWh")
# Systeminformationen
info = await client.system_info()
print(f"WiFi RSSI: {info.get_value('wifi', 'RSSI')} dBm")
# 15-Minuten-Verlaufsdaten
history = await client.history_high_res("2024-03-08")
for entry in history.items:
print(f" {entry.date}: {entry.power_w} W")
asyncio.run(main())
Authentifizierung¶
Ab Werk ist die Authentifizierung deaktiviert — eine Verbindung ohne Token ist möglich:
client = Wattwaechter("192.168.1.100")
Wenn die Authentifizierung aktiviert ist, werden zwei Token-Stufen unterstützt:
# Nur Lesen (History, Status, Einstellungen anzeigen)
client = Wattwaechter("192.168.1.100", token="dein-read-token")
# Vollzugriff (Einstellungen ändern, OTA, Reboot)
client = Wattwaechter("192.168.1.100", token="dein-write-token")
Automatische Wiederholung¶
Der Client wiederholt Anfragen automatisch bei 429 (Rate Limit) oder 503 (Gerät beschäftigt) und respektiert dabei den Retry-After-Header:
# Standard: 3 Versuche
client = Wattwaechter("192.168.1.100")
# Eigene Konfiguration
client = Wattwaechter("192.168.1.100", max_retries=5)
# Wiederholung deaktivieren
client = Wattwaechter("192.168.1.100", max_retries=1)
API-Abdeckung¶
| Bereich | Methoden |
|---|---|
| System | alive, system_info, led, selftest, wifi_scan, timezones, reboot |
| Zählerdaten | meter_data, history_high_res, history_low_res |
| Logs | logs_rawdump, logs_persistent, logs_ram |
| OTA | ota_check, ota_start |
| Einstellungen | settings, update_settings |
| Auth | generate_tokens, confirm_tokens, setup_token |
| MQTT | mqtt_ca_status, mqtt_ca_upload, mqtt_ca_delete |
| Cloud | cloud_pair, cloud_unpair |
Bestehende Session nutzen¶
Eine bestehende aiohttp.ClientSession kann übergeben werden — nützlich z.B. für Home Assistant-Integrationen:
client = Wattwaechter(
"192.168.1.100",
token="dein-token",
session=existing_session,
)
Home Assistant
Diese Bibliothek ist die Grundlage für die WattWächter Home Assistant-Integration.
Quellcode & Lizenz¶
- PyPI: pypi.org/project/aio-wattwaechter
- GitHub: github.com/SmartCircuits-GmbH/WattWaechter-PyPI
- Lizenz: Apache License 2.0