Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Demo platform that has a couple of fake sensors."""
2 
3 from __future__ import annotations
4 
6  SensorDeviceClass,
7  SensorEntity,
8  SensorStateClass,
9 )
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.const import UnitOfPower
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.device_registry import DeviceInfo
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 from homeassistant.helpers.typing import UNDEFINED, StateType, UndefinedType
16 
17 from . import DOMAIN
18 from .device import async_create_device
19 
20 
22  hass: HomeAssistant,
23  config_entry: ConfigEntry,
24  async_add_entities: AddEntitiesCallback,
25 ) -> None:
26  """Set up the Everything but the Kitchen Sink config entry."""
28  hass,
29  config_entry.entry_id,
30  None,
31  "n_ch_power_strip",
32  {"number_of_sockets": "2"},
33  "2_ch_power_strip",
34  )
35 
37  [
38  DemoSensor(
39  device_unique_id="outlet_1",
40  unique_id="outlet_1_power",
41  device_name="Outlet 1",
42  entity_name=UNDEFINED,
43  state=50,
44  device_class=SensorDeviceClass.POWER,
45  state_class=SensorStateClass.MEASUREMENT,
46  unit_of_measurement=UnitOfPower.WATT,
47  via_device="2_ch_power_strip",
48  ),
49  DemoSensor(
50  device_unique_id="outlet_2",
51  unique_id="outlet_2_power",
52  device_name="Outlet 2",
53  entity_name=UNDEFINED,
54  state=1500,
55  device_class=SensorDeviceClass.POWER,
56  state_class=SensorStateClass.MEASUREMENT,
57  unit_of_measurement=UnitOfPower.WATT,
58  via_device="2_ch_power_strip",
59  ),
60  DemoSensor(
61  device_unique_id="statistics_issues",
62  unique_id="statistics_issue_1",
63  device_name="Statistics issues",
64  entity_name="Issue 1",
65  state=100,
66  device_class=None,
67  state_class=SensorStateClass.MEASUREMENT,
68  unit_of_measurement=UnitOfPower.WATT,
69  ),
70  DemoSensor(
71  device_unique_id="statistics_issues",
72  unique_id="statistics_issue_2",
73  device_name="Statistics issues",
74  entity_name="Issue 2",
75  state=100,
76  device_class=None,
77  state_class=SensorStateClass.MEASUREMENT,
78  unit_of_measurement="dogs",
79  ),
80  DemoSensor(
81  device_unique_id="statistics_issues",
82  unique_id="statistics_issue_3",
83  device_name="Statistics issues",
84  entity_name="Issue 3",
85  state=100,
86  device_class=None,
87  state_class=None,
88  unit_of_measurement=UnitOfPower.WATT,
89  ),
90  ]
91  )
92 
93 
95  """Representation of a Demo sensor."""
96 
97  _attr_has_entity_name = True
98  _attr_should_poll = False
99 
100  def __init__(
101  self,
102  *,
103  device_unique_id: str,
104  unique_id: str,
105  device_name: str,
106  entity_name: str | None | UndefinedType,
107  state: StateType,
108  device_class: SensorDeviceClass | None,
109  state_class: SensorStateClass | None,
110  unit_of_measurement: str | None,
111  via_device: str | None = None,
112  ) -> None:
113  """Initialize the sensor."""
114  self._attr_device_class_attr_device_class = device_class
115  if entity_name is not UNDEFINED:
116  self._attr_name_attr_name = entity_name
117  self._attr_native_unit_of_measurement_attr_native_unit_of_measurement = unit_of_measurement
118  self._attr_native_value_attr_native_value = state
119  self._attr_state_class_attr_state_class = state_class
120  self._attr_unique_id_attr_unique_id = unique_id
121 
122  self._attr_device_info_attr_device_info = DeviceInfo(
123  identifiers={(DOMAIN, device_unique_id)},
124  name=device_name,
125  )
126  if via_device:
127  self._attr_device_info_attr_device_info["via_device"] = (DOMAIN, via_device)
None __init__(self, *str device_unique_id, str unique_id, str device_name, str|None|UndefinedType entity_name, StateType state, SensorDeviceClass|None device_class, SensorStateClass|None state_class, str|None unit_of_measurement, str|None via_device=None)
Definition: sensor.py:112
dr.DeviceEntry async_create_device(HomeAssistant hass, str config_entry_id, str|None device_name, str|None device_translation_key, dict[str, str]|None device_translation_placeholders, str unique_id)
Definition: device.py:18
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:25