1 """Support for Twente Milieu sensors."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
6 from datetime
import date
8 from twentemilieu
import WasteType
13 SensorEntityDescription,
20 from .const
import DOMAIN
21 from .entity
import TwenteMilieuEntity
24 @dataclass(frozen=True, kw_only=True)
26 """Describe an Twente Milieu sensor."""
31 SENSORS: tuple[TwenteMilieuSensorDescription, ...] = (
34 translation_key=
"christmas_tree_pickup",
35 waste_type=WasteType.TREE,
36 device_class=SensorDeviceClass.DATE,
40 translation_key=
"non_recyclable_waste_pickup",
41 waste_type=WasteType.NON_RECYCLABLE,
42 device_class=SensorDeviceClass.DATE,
46 translation_key=
"organic_waste_pickup",
47 waste_type=WasteType.ORGANIC,
48 device_class=SensorDeviceClass.DATE,
52 translation_key=
"paper_waste_pickup",
53 waste_type=WasteType.PAPER,
54 device_class=SensorDeviceClass.DATE,
58 translation_key=
"packages_waste_pickup",
59 waste_type=WasteType.PACKAGES,
60 device_class=SensorDeviceClass.DATE,
68 async_add_entities: AddEntitiesCallback,
70 """Set up Twente Milieu sensor based on a config entry."""
77 """Defines a Twente Milieu sensor."""
79 entity_description: TwenteMilieuSensorDescription
84 description: TwenteMilieuSensorDescription,
86 """Initialize the Twente Milieu entity."""
89 self.
_attr_unique_id_attr_unique_id = f
"{DOMAIN}_{entry.data[CONF_ID]}_{description.key}"
93 """Return the state of the sensor."""
94 if not (dates := self.coordinator.data[self.
entity_descriptionentity_description.waste_type]):
None __init__(self, ConfigEntry entry, TwenteMilieuSensorDescription description)
date|None native_value(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)