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.
Metadata
Release files for wizlight-simple 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wizlight_simple-0.1.2.tar.gz | 6.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wizlight_simple-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.2 kB
Release files / wizlight_simple-0.1.2.tar.gz
| Download URL | wizlight_simple-0.1.2.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f1e3a63189e1fab31667a7b660d9c840750f3f26d23ad92b3588728c2b37a526
|
|
BLAKE2b-256 checksum How to use checksums |
df4f4f06fd800f77bb1e2e70e188e725f153186e1d0690eea585f684eb6250f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / wizlight_simple-0.1.2-py3-none-any.whl
| Download URL | wizlight_simple-0.1.2-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b58edd27a2be6e91ef51ba3c4fe8fe2adcc96a19acc557d86894da830c44389d
|
|
BLAKE2b-256 checksum How to use checksums |
d2c3f2701605036269484a32bf4572a9c6d703e8ac6950e441ef5c4938a880ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|