fotobox/wled_controller_async.py

34 lines
1.2 KiB
Python

import requests
import aiohttp
class WLEDController:
def __init__(self, ip_address):
"""Initialisiert das WLED-Gerät mit der angegebenen IP-Adresse."""
self.ip = ip_address
self.url = f"http://{self.ip}/json/state"
async def set_preset(self, preset_id):
"""Wechselt zu einem bestimmten Preset anhand der ID."""
payload = {"ps": preset_id}
try:
async with aiohttp.ClientSession() as session:
async with session.post(self.url, json=payload) as response:
if response.status == 200:
print(f"Preset {preset_id} aktiviert.")
else:
text = await response.text()
print(f"Fehler beim Setzen des Presets {preset_id}: {text}")
except Exception as e:
print(f"Fehler bei der Verbindung: {str(e)}")
async def phase1(self):
"""Aktiviert das Preset Phase 1 (ID 4)."""
await self.set_preset(4)
async def phase2(self):
"""Aktiviert das Preset Phase 2 (ID 5)."""
await self.set_preset(5)
async def blitz(self):
"""Aktiviert das Preset Blitz (ID 6)."""
await self.set_preset(6)