Home Assistant Unofficial Reference 2024.12.1
switch.py
Go to the documentation of this file.
1 """Support for SleepIQ switches."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from asyncsleepiq import SleepIQBed
8 
9 from homeassistant.components.switch import SwitchEntity
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.core import HomeAssistant, callback
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 
14 from .const import DOMAIN
15 from .coordinator import SleepIQData, SleepIQPauseUpdateCoordinator
16 from .entity import SleepIQBedEntity
17 
18 
20  hass: HomeAssistant,
21  entry: ConfigEntry,
22  async_add_entities: AddEntitiesCallback,
23 ) -> None:
24  """Set up the sleep number switches."""
25  data: SleepIQData = hass.data[DOMAIN][entry.entry_id]
27  SleepNumberPrivateSwitch(data.pause_coordinator, bed)
28  for bed in data.client.beds.values()
29  )
30 
31 
33  SleepIQBedEntity[SleepIQPauseUpdateCoordinator], SwitchEntity
34 ):
35  """Representation of SleepIQ privacy mode."""
36 
37  def __init__(
38  self, coordinator: SleepIQPauseUpdateCoordinator, bed: SleepIQBed
39  ) -> None:
40  """Initialize the switch."""
41  super().__init__(coordinator, bed)
42  self._attr_name_attr_name = f"SleepNumber {bed.name} Pause Mode"
43  self._attr_unique_id_attr_unique_id = f"{bed.id}-pause-mode"
44 
45  async def async_turn_on(self, **kwargs: Any) -> None:
46  """Turn on switch."""
47  await self.bed.set_pause_mode(True)
48  self._handle_coordinator_update()
49 
50  async def async_turn_off(self, **kwargs: Any) -> None:
51  """Turn off switch."""
52  await self.bed.set_pause_mode(False)
53  self._handle_coordinator_update()
54 
55  @callback
56  def _async_update_attrs(self) -> None:
57  """Update switch attributes."""
58  self._attr_is_on_attr_is_on = self.bed.paused
None __init__(self, SleepIQPauseUpdateCoordinator coordinator, SleepIQBed bed)
Definition: switch.py:39
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: switch.py:23