Zum Inhalt

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.

PyPI GitHub

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