|
@@ -43,7 +43,7 @@ async def async_setup_entry(
|
|
|
name=device_name,
|
|
name=device_name,
|
|
|
)
|
|
)
|
|
|
entities += [
|
|
entities += [
|
|
|
- ReservationStrSensor(coordinator, entry, slot, device_info, "Guest Name", "guest_name", "mdi:account-convert"),
|
|
|
|
|
|
|
+ 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"),
|
|
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"),
|
|
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"),
|
|
ReservationDateTimeSensor(coordinator, entry, slot, device_info, "Departure", "check_out_date", "check_out_time", "mdi:calendar-end"),
|
|
@@ -99,6 +99,27 @@ class ReservationStrSensor(_ReservationSensor):
|
|
|
return getattr(self._reservation(), self._field)
|
|
return getattr(self._reservation(), self._field)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+class GuestNameSensor(ReservationStrSensor):
|
|
|
|
|
+ @property
|
|
|
|
|
+ def extra_state_attributes(self) -> dict[str, str | None] | None:
|
|
|
|
|
+ full: str | None = self._reservation().guest_name
|
|
|
|
|
+ if full is None:
|
|
|
|
|
+ return None
|
|
|
|
|
+ parts = full.rsplit(" ", 1)
|
|
|
|
|
+ first_name = parts[0]
|
|
|
|
|
+ last_name = parts[1] if len(parts) > 1 else None
|
|
|
|
|
+ first_abbr = first_name[0].upper() if first_name else None
|
|
|
|
|
+ last_abbr = last_name[0].upper() if last_name else None
|
|
|
|
|
+ public = f"{first_name} {last_abbr}." if last_abbr else full
|
|
|
|
|
+ return {
|
|
|
|
|
+ "first_name": first_name,
|
|
|
|
|
+ "first_abbr": first_abbr,
|
|
|
|
|
+ "last_name": last_name,
|
|
|
|
|
+ "last_abbr": last_abbr,
|
|
|
|
|
+ "public": public,
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
class WiFiKeySensor(_ReservationSensor):
|
|
class WiFiKeySensor(_ReservationSensor):
|
|
|
def __init__(self, coordinator, entry, slot, device_info) -> None:
|
|
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")
|