1 """Platform to retrieve Islamic prayer times information for Home Assistant."""
3 from datetime
import datetime
8 SensorEntityDescription,
15 from .
import IslamicPrayerTimesConfigEntry
16 from .const
import DOMAIN, NAME
17 from .coordinator
import IslamicPrayerDataUpdateCoordinator
19 SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
22 translation_key=
"fajr",
26 translation_key=
"sunrise",
30 translation_key=
"dhuhr",
34 translation_key=
"asr",
38 translation_key=
"maghrib",
42 translation_key=
"isha",
46 translation_key=
"midnight",
53 config_entry: IslamicPrayerTimesConfigEntry,
54 async_add_entities: AddEntitiesCallback,
56 """Set up the Islamic prayer times sensor platform."""
58 coordinator = config_entry.runtime_data
61 for description
in SENSOR_TYPES
66 CoordinatorEntity[IslamicPrayerDataUpdateCoordinator], SensorEntity
68 """Representation of an Islamic prayer time sensor."""
70 _attr_device_class = SensorDeviceClass.TIMESTAMP
71 _attr_has_entity_name =
True
75 coordinator: IslamicPrayerDataUpdateCoordinator,
76 description: SensorEntityDescription,
78 """Initialize the Islamic prayer time sensor."""
81 self.
_attr_unique_id_attr_unique_id = f
"{coordinator.config_entry.entry_id}-{description.key}"
83 identifiers={(DOMAIN, coordinator.config_entry.entry_id)},
85 entry_type=DeviceEntryType.SERVICE,
90 """Return the state of the sensor."""
datetime native_value(self)
None __init__(self, IslamicPrayerDataUpdateCoordinator coordinator, SensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, IslamicPrayerTimesConfigEntry config_entry, AddEntitiesCallback async_add_entities)