Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for Acmeda Roller Blind Batteries."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
6 from homeassistant.const import PERCENTAGE
7 from homeassistant.core import HomeAssistant, callback
8 from homeassistant.helpers.dispatcher import async_dispatcher_connect
9 from homeassistant.helpers.entity_platform import AddEntitiesCallback
10 
11 from . import AcmedaConfigEntry
12 from .const import ACMEDA_HUB_UPDATE
13 from .entity import AcmedaEntity
14 from .helpers import async_add_acmeda_entities
15 
16 
18  hass: HomeAssistant,
19  config_entry: AcmedaConfigEntry,
20  async_add_entities: AddEntitiesCallback,
21 ) -> None:
22  """Set up the Acmeda Rollers from a config entry."""
23  hub = config_entry.runtime_data
24 
25  current: set[int] = set()
26 
27  @callback
28  def async_add_acmeda_sensors() -> None:
30  hass, AcmedaBattery, config_entry, current, async_add_entities
31  )
32 
33  hub.cleanup_callbacks.append(
35  hass,
36  ACMEDA_HUB_UPDATE.format(config_entry.entry_id),
37  async_add_acmeda_sensors,
38  )
39  )
40 
41 
43  """Representation of an Acmeda cover sensor."""
44 
45  _attr_device_class = SensorDeviceClass.BATTERY
46  _attr_native_unit_of_measurement = PERCENTAGE
47 
48  @property
49  def native_value(self) -> float | int | None:
50  """Return the state of the device."""
51  return self.rollerroller.battery # type: ignore[no-any-return]
None async_add_acmeda_entities(HomeAssistant hass, type entity_class, AcmedaConfigEntry config_entry, set[int] current, AddEntitiesCallback async_add_entities)
Definition: helpers.py:27
None async_setup_entry(HomeAssistant hass, AcmedaConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:21
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)
Definition: dispatcher.py:103