1 """Support for Balboa Spa lights."""
3 from __future__
import annotations
5 from typing
import Any, cast
7 from pybalboa
import SpaControl
8 from pybalboa.enums
import OffOnState, UnknownState
14 from .
import BalboaConfigEntry
15 from .entity
import BalboaEntity
20 entry: BalboaConfigEntry,
21 async_add_entities: AddEntitiesCallback,
23 """Set up the spa's lights."""
24 spa = entry.runtime_data
29 """Representation of a Balboa Spa light entity."""
31 _attr_color_mode = ColorMode.ONOFF
32 _attr_supported_color_modes = {ColorMode.ONOFF}
34 def __init__(self, control: SpaControl) ->
None:
35 """Initialize a Balboa Spa light entity."""
36 super().
__init__(control.client, control.name)
39 "light_of_n" if len(control.client.lights) > 1
else "only_light"
42 "index": f
"{cast(int, control.index) + 1}"
46 """Turn the light off."""
47 await self.
_control_control.set_state(OffOnState.OFF)
50 """Turn the light on."""
51 await self.
_control_control.set_state(OffOnState.ON)
55 """Return true if the light is on."""
56 if self.
_control_control.state == UnknownState.UNKNOWN:
58 return self.
_control_control.state != OffOnState.OFF
_attr_translation_placeholders
None async_turn_on(self, **Any kwargs)
None __init__(self, SpaControl control)
None async_turn_off(self, **Any kwargs)
None async_setup_entry(HomeAssistant hass, BalboaConfigEntry entry, AddEntitiesCallback async_add_entities)