1 """Support for getting statistical data from a Pi-hole system."""
3 from __future__
import annotations
14 from .
import PiHoleConfigEntry
15 from .entity
import PiHoleEntity
17 SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
19 key=
"ads_blocked_today",
20 translation_key=
"ads_blocked_today",
23 key=
"ads_percentage_today",
24 translation_key=
"ads_percentage_today",
25 native_unit_of_measurement=PERCENTAGE,
28 key=
"clients_ever_seen",
29 translation_key=
"clients_ever_seen",
32 key=
"dns_queries_today", translation_key=
"dns_queries_today"
35 key=
"domains_being_blocked",
36 translation_key=
"domains_being_blocked",
40 key=
"queries_forwarded", translation_key=
"queries_forwarded"
49 entry: PiHoleConfigEntry,
50 async_add_entities: AddEntitiesCallback,
52 """Set up the Pi-hole sensor."""
53 name = entry.data[CONF_NAME]
54 hole_data = entry.runtime_data
58 hole_data.coordinator,
63 for description
in SENSOR_TYPES
69 """Representation of a Pi-hole sensor."""
71 entity_description: SensorEntityDescription
72 _attr_has_entity_name =
True
77 coordinator: DataUpdateCoordinator[
None],
79 server_unique_id: str,
80 description: SensorEntityDescription,
82 """Initialize a Pi-hole sensor."""
83 super().
__init__(api, coordinator, name, server_unique_id)
86 self.
_attr_unique_id_attr_unique_id = f
"{self._server_unique_id}/{description.key}"
90 """Return the state of the device."""
StateType native_value(self)
None __init__(self, Hole api, DataUpdateCoordinator[None] coordinator, str name, str server_unique_id, SensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, PiHoleConfigEntry entry, AddEntitiesCallback async_add_entities)