Home Assistant Unofficial Reference 2024.12.1
switch.py
Go to the documentation of this file.
1 """The Nibe Heat Pump switch."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from nibe.coil import Coil, CoilData
8 
9 from homeassistant.components.switch import ENTITY_ID_FORMAT, SwitchEntity
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.const import EntityCategory
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.entity_platform import AddEntitiesCallback
14 
15 from .const import DOMAIN
16 from .coordinator import CoilCoordinator
17 from .entity import CoilEntity
18 
19 
21  hass: HomeAssistant,
22  config_entry: ConfigEntry,
23  async_add_entities: AddEntitiesCallback,
24 ) -> None:
25  """Set up platform."""
26 
27  coordinator: CoilCoordinator = hass.data[DOMAIN][config_entry.entry_id]
28 
30  Switch(coordinator, coil)
31  for coil in coordinator.coils
32  if coil.is_writable and coil.is_boolean
33  )
34 
35 
37  """Switch entity."""
38 
39  _attr_entity_category = EntityCategory.CONFIG
40 
41  def __init__(self, coordinator: CoilCoordinator, coil: Coil) -> None:
42  """Initialize entity."""
43  super().__init__(coordinator, coil, ENTITY_ID_FORMAT)
44 
45  def _async_read_coil(self, data: CoilData) -> None:
46  self._attr_is_on_attr_is_on = data.value == "ON"
47 
48  async def async_turn_on(self, **kwargs: Any) -> None:
49  """Turn the entity on."""
50  await self._async_write_coil_async_write_coil("ON")
51 
52  async def async_turn_off(self, **kwargs: Any) -> None:
53  """Turn the entity off."""
54  await self._async_write_coil_async_write_coil("OFF")
None _async_read_coil(self, CoilData data)
Definition: switch.py:45
None __init__(self, CoilCoordinator coordinator, Coil coil)
Definition: switch.py:41
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: switch.py:24