Skip to main content

Asynchrone Library für WiZ-Geräte mit RGB, Szenen und zirkadianem Rhythmus

Project description

Simple WiZ Control 💡Eine moderne, vollständig asynchrone Python-Library zur Steuerung von WiZ-Geräten (Steckdosen, Lampen, LED-Streifen). Diese Library wurde entwickelt, um eine leichtgewichtige und performante Alternative für Smart-Home-Enthusiasten zu bieten.FeaturesVollständig Asynchron: Basierend auf asyncio für maximale Performance ohne Blockierung des Haupt-Threads.Duale Discovery: Findet Geräte parallel über WiZ-UDP-Broadcast und Matter/mDNS (Zeroconf).Echtzeit-Status (Push): Empfängt sofortige Status-Updates von Geräten (z. B. bei manueller Schaltung), ohne Polling zu benötigen.Umfassende Steuerung:An/Aus & Dimmen (10-100%).RGB-Farbauswahl (0-255).Farbtemperatur (Kelvin).Über 30 vordefinierte Licht-Szenen.Zirkadianer Rhythmus: Aktivierung des biologischen Lichtmodus mit einem Befehl.Robustes Networking: Nutzt SO_REUSEADDR, um Port-Konflikte mit anderen WiZ-Apps zu minimieren.InstallationInstalliere die Library einfach via pip:pip install simple-wiz-control SchnellstartHier ist ein einfaches Beispiel, wie du Geräte im Netzwerk findest und steuerst:import asyncio from wiz_light import SimpleWizScanner, WizScene

async def main(): # 1. Geräte suchen print("Suche Geräte...") devices = await SimpleWizScanner.discover(timeout=2.0)

if not devices:
    print("Keine Geräte gefunden.")
    return

# Das erste gefundene Gerät nehmen
device = devices[0]
print(f"Steuere Gerät: {device.ip}")

# 2. Aktionen ausführen
await device.turn_on()
await device.set_brightness(50)
await asyncio.sleep(2)

# Auf eine Szene schalten
await device.set_scene(WizScene.OCEAN)

# Zurück zu Warmweiß
await device.set_color_temp(2700)

if name == "main": asyncio.run(main()) Echtzeit-Updates (Push-Listener)Anstatt den Status ständig abzufragen (Polling), kann diese Library auf "Push-Nachrichten" der Geräte lauschen. Das spart Netzwerkbandbreite und reagiert sofort.import asyncio from wiz_light import start_push_listener

async def handle_update(ip, params): state = "AN" if params.get("state") else "AUS" power = params.get("power", 0) / 1000 print(f"🔔 Update von {ip}: Status ist {state}, Verbrauch: {power}W")

async def run_listener(): # Startet den Server auf Port 38899 transport = await start_push_listener(handle_update) print("Lausche auf Live-Updates... (Strg+C zum Beenden)")

try:
    await asyncio.Event().wait()
except KeyboardInterrupt:
    transport.close()

if name == "main": asyncio.run(run_listener()) Szenen-ÜbersichtVerwende das WizScene Enum für eine einfache Auswahl:WizScene.OCEANWizScene.ROMANCEWizScene.PARTYWizScene.FIREPLACEWizScene.COZYWizScene.FOREST... und viele mehr.LizenzDieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE Datei für Details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wizlight_simple-0.1.2.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wizlight_simple-0.1.2-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file wizlight_simple-0.1.2.tar.gz.

File metadata

  • Download URL: wizlight_simple-0.1.2.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for wizlight_simple-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f1e3a63189e1fab31667a7b660d9c840750f3f26d23ad92b3588728c2b37a526
MD5 d831ab44e4e2fcb027d2c2b4c5259b84
BLAKE2b-256 df4f4f06fd800f77bb1e2e70e188e725f153186e1d0690eea585f684eb6250f5

See more details on using hashes here.

File details

Details for the file wizlight_simple-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for wizlight_simple-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b58edd27a2be6e91ef51ba3c4fe8fe2adcc96a19acc557d86894da830c44389d
MD5 80e0629f3ef8257bded9525145231d4d
BLAKE2b-256 d2c3f2701605036269484a32bf4572a9c6d703e8ac6950e441ef5c4938a880ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page