Home Assistant Unofficial Reference 2024.12.1
switch.py
Go to the documentation of this file.
1 """Support for INSTEON dimmers via PowerLinc Modem."""
2 
3 from typing import Any
4 
5 from homeassistant.components.switch import SwitchEntity
6 from homeassistant.config_entries import ConfigEntry
7 from homeassistant.const import Platform
8 from homeassistant.core import HomeAssistant, callback
9 from homeassistant.helpers.dispatcher import async_dispatcher_connect
10 from homeassistant.helpers.entity_platform import AddEntitiesCallback
11 
12 from .const import SIGNAL_ADD_ENTITIES
13 from .entity import InsteonEntity
14 from .utils import async_add_insteon_devices, async_add_insteon_entities
15 
16 
18  hass: HomeAssistant,
19  config_entry: ConfigEntry,
20  async_add_entities: AddEntitiesCallback,
21 ) -> None:
22  """Set up the Insteon switches from a config entry."""
23 
24  @callback
25  def async_add_insteon_switch_entities(discovery_info=None):
26  """Add the Insteon entities for the platform."""
28  hass,
29  Platform.SWITCH,
30  InsteonSwitchEntity,
31  async_add_entities,
32  discovery_info,
33  )
34 
35  signal = f"{SIGNAL_ADD_ENTITIES}_{Platform.SWITCH}"
36  async_dispatcher_connect(hass, signal, async_add_insteon_switch_entities)
38  hass,
39  Platform.SWITCH,
40  InsteonSwitchEntity,
41  async_add_entities,
42  )
43 
44 
46  """A Class for an Insteon switch entity."""
47 
48  @property
49  def is_on(self):
50  """Return the boolean response if the node is on."""
51  return bool(self._insteon_device_group_insteon_device_group.value)
52 
53  async def async_turn_on(self, **kwargs: Any) -> None:
54  """Turn switch on."""
55  await self._insteon_device_insteon_device.async_on(group=self._insteon_device_group_insteon_device_group.group)
56 
57  async def async_turn_off(self, **kwargs: Any) -> None:
58  """Turn switch off."""
59  await self._insteon_device_insteon_device.async_off(group=self._insteon_device_group_insteon_device_group.group)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: switch.py:21
None async_add_insteon_devices(HomeAssistant hass, Platform platform, type[InsteonEntity] entity_type, AddEntitiesCallback async_add_entities)
Definition: utils.py:436
None async_add_insteon_entities(HomeAssistant hass, Platform platform, type[InsteonEntity] entity_type, AddEntitiesCallback async_add_entities, dict[str, Any] discovery_info)
Definition: utils.py:420
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)
Definition: dispatcher.py:103