<filename>asyncsleepiq/light.py
"""Light representation for SleepIQ API."""
from __future__ import annotations

from .api import SleepIQAPI


class SleepIQLight:
    """Light representation for SleepIQ API."""

    def __init__(self, api: SleepIQAPI, bed_id: str, outlet_id: int) -> None:
        """Initialize light object."""
        self._api = api
        self.bed_id = bed_id
        self.is_on = False
        self.outlet_id = outlet_id

    def __str__(self) -> str:
        """Return string representation."""
        return f"SleepIQLight[{self.outlet_id}]: {'On' if self.is_on else 'Off'}"

    def __repr__(self) -> str:
        """Return string representation."""
        return f"SleepIQLight[{self.outlet_id}]: {'On' if self.is_on else 'Off'}"

    async def turn_on(self) -> None:
        """Turn on light through API."""
        await self.set_light(True)
        self.is_on = True

    async def turn_off(self) -> None:
        """Turn off light through API."""
        await self.set_light(False)
        self.is_on = False

    async def set_light(self, setting: bool) -> None:
        """Set light state through API."""
        data = {"outletId": self.outlet_id, "setting": 1 if setting else 0}
        await self._api.put(f"bed/{self.bed_id}/foundation/outlet", data)

    async def update(self) -> None:
        """Update light state from API."""
        params = {"outletId": self.outlet_id}
        status = await self._api.get(
            f"bed/{self.bed_id}/foundation/outlet", params=params
        )
        self.is_on = status["setting"] == 1

<filename>asyncsleepiq/light.py
"""Light representation for SleepIQ API."""
from __future__ import annotations

from .api import SleepIQAPI


class SleepIQLight:
    """Light representation for SleepIQ API."""

    def __init__(self, api: SleepIQAPI, bed_id: str, outlet_id: int) -> None:
        """Initialize light object."""
        self._api = api
        self.bed_id = bed_id
        self.is_on = False
        self.outlet_id = outlet_id

    def __str__(self) -> str:
        """Return string representation."""
        return f"SleepIQLight[{self.outlet_id}]: {'On' if self.is_on else 'Off'}"

    def __repr__(self) -> str:
        """Return string representation."""
        return f"SleepIQLight[{self.outlet_id}]: {'On' if self.is_on else 'Off'}"

    async def turn_on(self) -> None:
        """Turn on light through API."""
        await self.set_light(True)
        self.is_on = True

    async def turn_off(self) -> None:
        """Turn off light through API."""
        await self.set_light(False)
        self.is_on = False

    async def set_light(self, setting: bool) -> None:
        """Set light state through API."""
        data = {"outletId": self.outlet_id, "setting": 1 if setting else 0}
        await self._api.put(f"bed/{self.bed_id}/foundation/outlet", data)

    async def update(self) -> None:
        """Update light state from API."""
        params = {"outletId": self.outlet_id}
        status = await self._api.get(
            f"bed/{self.bed_id}/foundation/outlet", params=params
        )
        self.is_on = status["setting"] == 1

Light representation for SleepIQ API. Light representation for SleepIQ API. Initialize light object. Return string representation. Return string representation. Turn on light through API. Turn off light through API. Set light state through API. Update light state from API.