|
|
@@ -5,6 +5,7 @@ from datetime import date, datetime, time
|
|
|
|
|
|
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
|
|
|
from homeassistant.config_entries import ConfigEntry
|
|
|
+from homeassistant.const import EntityCategory
|
|
|
from homeassistant.core import HomeAssistant
|
|
|
from homeassistant.helpers.device_registry import DeviceInfo
|
|
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
|
|
@@ -57,14 +58,14 @@ async def async_setup_entry(
|
|
|
name=device_name,
|
|
|
)
|
|
|
entities += [
|
|
|
- GuestNameSensor(coordinator, entry, slot, device_info, "Guest Name", "guest_name", "mdi:account-convert"),
|
|
|
- ReservationDateTimeSensor(coordinator, entry, slot, device_info, "Arrival", "check_in_date", "check_in_time", "mdi:calendar-start"),
|
|
|
- ReservationTimeSensor(coordinator, entry, slot, device_info, "Check In", "check_in_time", "mdi:timer-check-outline"),
|
|
|
- ReservationDateTimeSensor(coordinator, entry, slot, device_info, "Departure", "check_out_date", "check_out_time", "mdi:calendar-end"),
|
|
|
- ReservationTimeSensor(coordinator, entry, slot, device_info, "Check Out", "check_out_time", "mdi:timer-cancel-outline"),
|
|
|
- ReservationStrSensor(coordinator, entry, slot, device_info, "WiFi SSID", "wifi_ssid", "mdi:wifi"),
|
|
|
+ GuestNameSensor(coordinator, entry, slot, device_info, "guest_name", "guest_name", "mdi:account-convert"),
|
|
|
+ ReservationDateTimeSensor(coordinator, entry, slot, device_info, "arrival", "check_in_date", "check_in_time", "mdi:calendar-start"),
|
|
|
+ ReservationTimeSensor(coordinator, entry, slot, device_info, "check_in", "check_in_time", "mdi:timer-check-outline"),
|
|
|
+ ReservationDateTimeSensor(coordinator, entry, slot, device_info, "departure", "check_out_date", "check_out_time", "mdi:calendar-end"),
|
|
|
+ ReservationTimeSensor(coordinator, entry, slot, device_info, "check_out", "check_out_time", "mdi:timer-cancel-outline"),
|
|
|
+ ReservationStrSensor(coordinator, entry, slot, device_info, "wifi_ssid", "wifi_ssid", "mdi:wifi"),
|
|
|
WiFiKeySensor(coordinator, entry, slot, device_info),
|
|
|
- ReservationStrSensor(coordinator, entry, slot, device_info, "Door Code", "door_code", "mdi:door-closed-lock"),
|
|
|
+ ReservationStrSensor(coordinator, entry, slot, device_info, "door_code", "door_code", "mdi:door-closed-lock"),
|
|
|
LastUpdatedSensor(coordinator, entry, slot, device_info),
|
|
|
]
|
|
|
|
|
|
@@ -73,8 +74,9 @@ async def async_setup_entry(
|
|
|
|
|
|
class SyncSourceSensor(SensorEntity):
|
|
|
_attr_has_entity_name = True
|
|
|
- _attr_name = "Sync Source"
|
|
|
+ _attr_translation_key = "sync_source"
|
|
|
_attr_icon = "mdi:sync"
|
|
|
+ _attr_entity_category = EntityCategory.DIAGNOSTIC
|
|
|
|
|
|
def __init__(self, entry: ConfigEntry, room_name: str, device_info: DeviceInfo) -> None:
|
|
|
self._entry = entry
|
|
|
@@ -106,14 +108,14 @@ class _ReservationSensor(CoordinatorEntity[RoomCalCoordinator], SensorEntity):
|
|
|
entry: ConfigEntry,
|
|
|
slot: str,
|
|
|
device_info: DeviceInfo,
|
|
|
- name: str,
|
|
|
+ translation_key: str,
|
|
|
field: str,
|
|
|
icon: str | None = None,
|
|
|
) -> None:
|
|
|
super().__init__(coordinator)
|
|
|
self._slot = slot
|
|
|
self._field = field
|
|
|
- self._attr_name = name
|
|
|
+ self._attr_translation_key = translation_key
|
|
|
self._attr_unique_id = f"{entry.entry_id}_{slot}_{field}"
|
|
|
self._attr_device_info = device_info
|
|
|
self._attr_icon = icon
|
|
|
@@ -152,7 +154,7 @@ class GuestNameSensor(ReservationStrSensor):
|
|
|
|
|
|
class WiFiKeySensor(_ReservationSensor):
|
|
|
def __init__(self, coordinator, entry, slot, device_info) -> None:
|
|
|
- super().__init__(coordinator, entry, slot, device_info, "WiFi Key", "wifi_key", "mdi:wifi-lock")
|
|
|
+ super().__init__(coordinator, entry, slot, device_info, "wifi_key", "wifi_key", "mdi:wifi-lock")
|
|
|
|
|
|
@property
|
|
|
def native_value(self) -> str | None:
|
|
|
@@ -229,9 +231,10 @@ class ReservationDateTimeSensor(_ReservationSensor):
|
|
|
|
|
|
class LastUpdatedSensor(CoordinatorEntity[RoomCalCoordinator], SensorEntity):
|
|
|
_attr_has_entity_name = True
|
|
|
- _attr_name = "Last Updated"
|
|
|
+ _attr_translation_key = "last_updated"
|
|
|
_attr_device_class = SensorDeviceClass.TIMESTAMP
|
|
|
_attr_icon = "mdi:clock-edit-outline"
|
|
|
+ _attr_entity_category = EntityCategory.DIAGNOSTIC
|
|
|
|
|
|
def __init__(
|
|
|
self,
|
|
|
@@ -267,8 +270,9 @@ class LastUpdatedSensor(CoordinatorEntity[RoomCalCoordinator], SensorEntity):
|
|
|
|
|
|
class ApiHealthSensor(CoordinatorEntity[RoomCalCoordinator], SensorEntity):
|
|
|
_attr_has_entity_name = True
|
|
|
- _attr_name = "API Health"
|
|
|
+ _attr_translation_key = "api_health"
|
|
|
_attr_icon = "mdi:api"
|
|
|
+ _attr_entity_category = EntityCategory.DIAGNOSTIC
|
|
|
|
|
|
def __init__(
|
|
|
self,
|