34 lines
1.2 KiB
Python
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) |