Home Assistant Unofficial Reference 2024.12.1
sensor_device.py
Go to the documentation of this file.
1 """Support for the Philips Hue sensor devices."""
2 
3 from homeassistant.helpers import entity
4 from homeassistant.helpers.device_registry import DeviceInfo
5 
6 from ..const import (
7  CONF_ALLOW_UNREACHABLE,
8  DEFAULT_ALLOW_UNREACHABLE,
9  DOMAIN as HUE_DOMAIN,
10 )
11 
12 
13 class GenericHueDevice(entity.Entity): # pylint: disable=hass-enforce-class-module
14  """Representation of a Hue device."""
15 
16  def __init__(self, sensor, name, bridge, primary_sensor=None):
17  """Initialize the sensor."""
18  self.sensorsensor = sensor
19  self._name_name = name
20  self._primary_sensor_primary_sensor = primary_sensor
21  self.bridgebridge = bridge
22  self.allow_unreachableallow_unreachable = bridge.config_entry.options.get(
23  CONF_ALLOW_UNREACHABLE, DEFAULT_ALLOW_UNREACHABLE
24  )
25 
26  @property
27  def primary_sensor(self):
28  """Return the primary sensor entity of the physical device."""
29  return self._primary_sensor_primary_sensor or self.sensorsensor
30 
31  @property
32  def device_id(self):
33  """Return the ID of the physical device this sensor is part of."""
34  return self.unique_idunique_id[:23]
35 
36  @property
37  def unique_id(self):
38  """Return the ID of this Hue sensor."""
39  return self.sensorsensor.uniqueid
40 
41  @property
42  def name(self):
43  """Return a friendly name for the sensor."""
44  return self._name_name
45 
46  @property
47  def swupdatestate(self):
48  """Return detail of available software updates for this device."""
49  return self.primary_sensorprimary_sensor.raw.get("swupdate", {}).get("state")
50 
51  @property
52  def device_info(self) -> DeviceInfo:
53  """Return the device info.
54 
55  Links individual entities together in the hass device registry.
56  """
57  return DeviceInfo(
58  identifiers={(HUE_DOMAIN, self.device_iddevice_id)},
59  manufacturer=self.primary_sensorprimary_sensor.manufacturername,
60  model=(self.primary_sensorprimary_sensor.productname or self.primary_sensorprimary_sensor.modelid),
61  name=self.primary_sensorprimary_sensor.name,
62  sw_version=self.primary_sensorprimary_sensor.swversion,
63  via_device=(HUE_DOMAIN, self.bridgebridge.api.config.bridgeid),
64  )
def __init__(self, sensor, name, bridge, primary_sensor=None)
web.Response get(self, web.Request request, str config_key)
Definition: view.py:88