Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for Fast.com internet speed testing sensor."""
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 UnitOfDataRate
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 from homeassistant.helpers.update_coordinator import CoordinatorEntity
16 
17 from .const import DOMAIN
18 from .coordinator import FastdotcomDataUpdateCoordinator
19 
20 
22  hass: HomeAssistant,
23  entry: ConfigEntry,
24  async_add_entities: AddEntitiesCallback,
25 ) -> None:
26  """Set up the Fast.com sensor."""
27  coordinator: FastdotcomDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
28  async_add_entities([SpeedtestSensor(entry.entry_id, coordinator)])
29 
30 
31 class SpeedtestSensor(CoordinatorEntity[FastdotcomDataUpdateCoordinator], SensorEntity):
32  """Implementation of a Fast.com sensor."""
33 
34  _attr_translation_key = "download"
35  _attr_device_class = SensorDeviceClass.DATA_RATE
36  _attr_native_unit_of_measurement = UnitOfDataRate.MEGABITS_PER_SECOND
37  _attr_state_class = SensorStateClass.MEASUREMENT
38  _attr_should_poll = False
39  _attr_has_entity_name = True
40 
41  def __init__(
42  self, entry_id: str, coordinator: FastdotcomDataUpdateCoordinator
43  ) -> None:
44  """Initialize the sensor."""
45  super().__init__(coordinator)
46  self._attr_unique_id_attr_unique_id = entry_id
47  self._attr_device_info_attr_device_info = DeviceInfo(
48  identifiers={(DOMAIN, entry_id)},
49  entry_type=DeviceEntryType.SERVICE,
50  configuration_url="https://www.fast.com",
51  )
52 
53  @property
55  self,
56  ) -> float:
57  """Return the state of the sensor."""
58  return self.coordinator.data
None __init__(self, str entry_id, FastdotcomDataUpdateCoordinator coordinator)
Definition: sensor.py:43
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:25