1 """Demo platform that has a couple of fake sensors."""
3 from __future__
import annotations
5 from datetime
import datetime, timedelta
6 from typing
import cast
9 DOMAIN
as SENSOR_DOMAIN,
18 CONCENTRATION_PARTS_PER_MILLION,
35 config_entry: ConfigEntry,
36 async_add_entities: AddEntitiesCallback,
38 """Set up the demo sensor platform."""
43 "Outside Temperature",
45 SensorDeviceClass.TEMPERATURE,
46 SensorStateClass.MEASUREMENT,
47 UnitOfTemperature.CELSIUS,
54 SensorDeviceClass.HUMIDITY,
55 SensorStateClass.MEASUREMENT,
64 SensorStateClass.MEASUREMENT,
65 CONCENTRATION_PARTS_PER_MILLION,
72 SensorDeviceClass.CO2,
73 SensorStateClass.MEASUREMENT,
74 CONCENTRATION_PARTS_PER_MILLION,
81 SensorDeviceClass.POWER,
82 SensorStateClass.MEASUREMENT,
90 SensorDeviceClass.ENERGY,
91 SensorStateClass.TOTAL,
92 UnitOfEnergy.KILO_WATT_HOUR,
100 SensorDeviceClass.ENERGY,
101 SensorStateClass.TOTAL,
102 UnitOfEnergy.MEGA_WATT_HOUR,
110 SensorDeviceClass.GAS,
111 SensorStateClass.TOTAL,
112 UnitOfVolume.CUBIC_METERS,
120 SensorDeviceClass.GAS,
121 SensorStateClass.TOTAL,
122 UnitOfVolume.CUBIC_FEET,
127 unique_id=
"sensor_10",
128 device_name=
"Thermostat",
130 device_class=SensorDeviceClass.ENUM,
132 unit_of_measurement=
None,
134 options=[
"away",
"comfort",
"eco",
"sleep"],
135 translation_key=
"thermostat_mode",
142 """Representation of a Demo sensor."""
144 _attr_has_entity_name =
True
146 _attr_should_poll =
False
151 device_name: str |
None,
152 state: float | str |
None,
153 device_class: SensorDeviceClass,
154 state_class: SensorStateClass |
None,
155 unit_of_measurement: str |
None,
157 options: list[str] |
None =
None,
158 translation_key: str |
None =
None,
160 """Initialize the sensor."""
170 identifiers={(DOMAIN, unique_id)},
179 """Representation of a Demo sensor."""
181 _attr_should_poll =
False
182 _attr_native_value: float
188 five_minute_increase: float,
189 device_class: SensorDeviceClass,
190 state_class: SensorStateClass |
None,
191 unit_of_measurement: str |
None,
193 suggested_entity_id: str,
195 """Initialize the sensor."""
205 identifiers={(DOMAIN, unique_id)},
219 """Call when entity about to be added to hass."""
_attr_extra_state_attributes
None __init__(self, str unique_id, str|None device_name, float|str|None state, SensorDeviceClass device_class, SensorStateClass|None state_class, str|None unit_of_measurement, int|None battery, list[str]|None options=None, str|None translation_key=None)
_attr_native_unit_of_measurement
None __init__(self, str unique_id, str device_name, float five_minute_increase, SensorDeviceClass device_class, SensorStateClass|None state_class, str|None unit_of_measurement, int|None battery, str suggested_entity_id)
_attr_extra_state_attributes
_attr_native_unit_of_measurement
None _async_bump_sum(self, datetime now)
None async_added_to_hass(self)
SensorExtraStoredData|None async_get_last_sensor_data(self)
None async_write_ha_state(self)
None async_on_remove(self, CALLBACK_TYPE func)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
CALLBACK_TYPE async_track_time_interval(HomeAssistant hass, Callable[[datetime], Coroutine[Any, Any, None]|None] action, timedelta interval, *str|None name=None, bool|None cancel_on_shutdown=None)