Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """KIRA interface to receive UDP packets from an IR-IP bridge."""
2 
3 from __future__ import annotations
4 
5 import logging
6 
7 from homeassistant.components.sensor import SensorEntity
8 from homeassistant.const import CONF_DEVICE, CONF_NAME, STATE_UNKNOWN
9 from homeassistant.core import HomeAssistant
10 from homeassistant.helpers.entity_platform import AddEntitiesCallback
11 from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
12 
13 from . import CONF_SENSOR, DOMAIN
14 
15 _LOGGER = logging.getLogger(__name__)
16 
17 
19  hass: HomeAssistant,
20  config: ConfigType,
21  add_entities: AddEntitiesCallback,
22  discovery_info: DiscoveryInfoType | None = None,
23 ) -> None:
24  """Set up a Kira sensor."""
25  if discovery_info is not None:
26  name = discovery_info.get(CONF_NAME)
27  device = discovery_info.get(CONF_DEVICE)
28  kira = hass.data[DOMAIN][CONF_SENSOR][name]
29 
30  add_entities([KiraReceiver(device, kira)])
31 
32 
34  """Implementation of a Kira Receiver."""
35 
36  _attr_force_update = True # repeated states have meaning in Kira
37  _attr_icon = "mdi:remote"
38  _attr_should_poll = False
39 
40  def __init__(self, name, kira):
41  """Initialize the sensor."""
42  self._attr_name_attr_name = name
43  self._attr_extra_state_attributes_attr_extra_state_attributes = {CONF_DEVICE: STATE_UNKNOWN}
44 
45  kira.registerCallback(self._update_callback_update_callback)
46 
47  def _update_callback(self, code):
48  code_name, device = code
49  _LOGGER.debug("Kira Code: %s", code_name)
50  self._attr_native_value_attr_native_value = code_name
51  self._attr_extra_state_attributes_attr_extra_state_attributes[CONF_DEVICE] = device
52  self.schedule_update_ha_stateschedule_update_ha_state()
None schedule_update_ha_state(self, bool force_refresh=False)
Definition: entity.py:1244
def add_entities(account, async_add_entities, tracked)
Definition: sensor.py:40
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)
Definition: sensor.py:23