Просмотр исходного кода

Remove wifi_ssid_changed from GuestStateDiff

wifi_ssid is a stable UniFi network identifier, not a value that changes
between reservations. The only meaningful mid-window wifi signal is
wifi_key_changed. Removed the field, its test, and all coordinator
references.
ZiB 4 месяцев назад
Родитель
Сommit
13062a223c

+ 3 - 3
custom_components/room_cal_ha/coordinator.py

@@ -113,7 +113,7 @@ class RoomCalCoordinator(DataUpdateCoordinator[CoordinatorData]):
         diff = reservation_diff(old_current, backend_current, now_naive)
         if diff.checkout_needed:
           await self._async_run_check_out_actions(diff.departing)
-        if diff.checkin_needed or diff.wifi_key_changed or diff.wifi_ssid_changed:
+        if diff.checkin_needed or diff.wifi_key_changed:
           await self._async_run_check_in_actions(backend_current or self._empty_reservation())
 
     store_current = self._with_defaults(self.store.get(STORE_CURRENT))
@@ -379,7 +379,7 @@ class RoomCalCoordinator(DataUpdateCoordinator[CoordinatorData]):
       diff = reservation_diff(self._override.current, self.store.get(STORE_CURRENT), now_naive)
       if diff.checkout_needed:
         await self._async_run_check_out_actions(diff.departing)
-      if diff.checkin_needed or diff.wifi_key_changed or diff.wifi_ssid_changed:
+      if diff.checkin_needed or diff.wifi_key_changed:
         store_current = self.store.get(STORE_CURRENT)
         await self._async_run_check_in_actions(store_current or self._empty_reservation())
     self._override = None
@@ -462,7 +462,7 @@ class RoomCalCoordinator(DataUpdateCoordinator[CoordinatorData]):
         diff = reservation_diff(stored, new_stored, now_naive)
         if diff.checkout_needed:
           await self._async_run_check_out_actions(diff.departing)
-        if diff.checkin_needed or diff.wifi_key_changed or diff.wifi_ssid_changed:
+        if diff.checkin_needed or diff.wifi_key_changed:
           await self._async_run_check_in_actions(new_stored)
 
   def cancel_mode_sync(self) -> None:

+ 1 - 4
custom_components/room_cal_ha/models.py

@@ -12,18 +12,16 @@ class GuestStateDiff:
   checkout_needed  — run check-out actions for `departing`
   checkin_needed   — run check-in actions for the incoming reservation
   wifi_key_changed — same reservation window, WiFi key changed (re-push key only)
-  wifi_ssid_changed — same reservation window, SSID changed (re-enable + re-push key)
   departing        — the reservation being vacated (set when checkout_needed is True)
   """
   checkout_needed: bool = False
   checkin_needed: bool = False
   wifi_key_changed: bool = False
-  wifi_ssid_changed: bool = False
   departing: ReservationData | None = None
 
   @property
   def has_changes(self) -> bool:
-    return self.checkout_needed or self.checkin_needed or self.wifi_key_changed or self.wifi_ssid_changed
+    return self.checkout_needed or self.checkin_needed or self.wifi_key_changed
 
 
 @dataclass
@@ -124,7 +122,6 @@ def reservation_diff(
 
   return GuestStateDiff(
     wifi_key_changed=old.wifi_key != new.wifi_key,
-    wifi_ssid_changed=old.wifi_ssid != new.wifi_ssid,
   )
 
 

+ 0 - 9
tests/test_models.py

@@ -244,19 +244,10 @@ def test_diff_same_window_wifi_key_changed():
   new = _res(14, 20, wifi_key="new-key")
   diff = reservation_diff(old, new, _DURING)
   assert diff.wifi_key_changed
-  assert not diff.wifi_ssid_changed
   assert not diff.checkin_needed
   assert not diff.checkout_needed
 
 
-def test_diff_same_window_wifi_ssid_changed():
-  old = _res(14, 20, wifi_ssid="OldNet")
-  new = _res(14, 20, wifi_ssid="NewNet")
-  diff = reservation_diff(old, new, _DURING)
-  assert diff.wifi_ssid_changed
-  assert not diff.wifi_key_changed
-
-
 def test_diff_different_window_both_active_returns_checkout_and_checkin():
   old = ReservationData(
     check_in_date=date(2026, 7, 1), check_in_time=time(14, 0),