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.1.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.1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

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

Hashes for wizlight_simple-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9eab62cbcca03f6a883f5dfedeee640fb7b446b38126f1de464eddc0f7bb58c1
MD5 71da6f4b2d70a34c4d73339906b2ce47
BLAKE2b-256 9cf183c466b5554364de8d54751aca985ba9825704a822effcb806a6388c45fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wizlight_simple-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b44ff0e894eee8a6a0573332e599622894a80d24d5ba5860cca8c720a1700eec
MD5 ccf67aa6c386faa9c3065f00bf36562c
BLAKE2b-256 0bd6dc160c69b9a175c3e5e7a40c5939d5b5ac18f66c98b52759b536d00f9f34

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