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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wizlight_simple-0.1.1.tar.gz.
File metadata
- Download URL: wizlight_simple-0.1.1.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9eab62cbcca03f6a883f5dfedeee640fb7b446b38126f1de464eddc0f7bb58c1
|
|
| MD5 |
71da6f4b2d70a34c4d73339906b2ce47
|
|
| BLAKE2b-256 |
9cf183c466b5554364de8d54751aca985ba9825704a822effcb806a6388c45fe
|
File details
Details for the file wizlight_simple-0.1.1-py3-none-any.whl.
File metadata
- Download URL: wizlight_simple-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b44ff0e894eee8a6a0573332e599622894a80d24d5ba5860cca8c720a1700eec
|
|
| MD5 |
ccf67aa6c386faa9c3065f00bf36562c
|
|
| BLAKE2b-256 |
0bd6dc160c69b9a175c3e5e7a40c5939d5b5ac18f66c98b52759b536d00f9f34
|