Home Assistant Unofficial Reference 2024.12.1
switch.py
Go to the documentation of this file.
1 """Support for Fibaro switches."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from pyfibaro.fibaro_device import DeviceModel
8 
9 from homeassistant.components.switch import ENTITY_ID_FORMAT, SwitchEntity
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.const import Platform
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.entity_platform import AddEntitiesCallback
14 
15 from . import FibaroController
16 from .const import DOMAIN
17 from .entity import FibaroEntity
18 
19 
21  hass: HomeAssistant,
22  entry: ConfigEntry,
23  async_add_entities: AddEntitiesCallback,
24 ) -> None:
25  """Set up the Fibaro switches."""
26  controller: FibaroController = hass.data[DOMAIN][entry.entry_id]
28  [FibaroSwitch(device) for device in controller.fibaro_devices[Platform.SWITCH]],
29  True,
30  )
31 
32 
34  """Representation of a Fibaro Switch."""
35 
36  def __init__(self, fibaro_device: DeviceModel) -> None:
37  """Initialize the Fibaro device."""
38  super().__init__(fibaro_device)
39  self.entity_identity_identity_id = ENTITY_ID_FORMAT.format(self.ha_idha_id)
40 
41  def turn_on(self, **kwargs: Any) -> None:
42  """Turn device on."""
43  self.call_turn_oncall_turn_on()
44  self._attr_is_on_attr_is_on = True
45 
46  def turn_off(self, **kwargs: Any) -> None:
47  """Turn device off."""
48  self.call_turn_offcall_turn_off()
49  self._attr_is_on_attr_is_on = False
50 
51  def update(self) -> None:
52  """Update device state."""
53  super().update()
54  self._attr_is_on_attr_is_on = self.current_binary_statecurrent_binary_state
None __init__(self, DeviceModel fibaro_device)
Definition: switch.py:36
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: switch.py:24