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.0.tar.gz (8.7 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.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wizlight_simple-0.1.0.tar.gz
  • Upload date:
  • Size: 8.7 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.0.tar.gz
Algorithm Hash digest
SHA256 59e6fa385169eabb93417240da7dcb1484d5894fadff81c475d7b182b7632215
MD5 48020f7525f3dc596f1bc60b7106bd4f
BLAKE2b-256 161846b636c0aa5b670148b12df1c068b0933287a8b76b159465c20bb6da3acc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wizlight_simple-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe577cc8f26c0101956aa568a7d39f5e45443ad9f9d830aacd4072a45c078be2
MD5 e78c074f914065d365ec5a3389d81893
BLAKE2b-256 ece089d77db8d398d5604a682ab436b7691219c8e64a3a5cc1c1dcc16f5a97dc

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