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)