Skip to content

Commit 470053c

Browse files
committed
fix sensor states typing
1 parent 3432023 commit 470053c

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

sensor.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def __init__(self, coordinator, _id: int, spc: SurePetcareAPI) -> None:
173173
self._attr_state = LockState(locking["mode"]).name.casefold()
174174

175175
@property
176-
def state(self) -> str:
176+
def state(self) -> str | None:
177177
"""Return battery level in percent."""
178178
if (
179179
state := cast(SureFlap, self.coordinator.data[self._id])
@@ -182,8 +182,6 @@ def state(self) -> str:
182182
):
183183
return LockState(state["locking"]["mode"]).name.casefold()
184184

185-
return "Unknown"
186-
187185

188186
class Felaqua(SurePetcareSensor):
189187
"""Sure Petcare Felaqua."""
@@ -196,10 +194,10 @@ def __init__(self, coordinator, _id: int, spc: SurePetcareAPI):
196194
self._attr_unit_of_measurement = VOLUME_MILLILITERS
197195

198196
@property
199-
def state(self) -> int | None:
197+
def state(self) -> float | None:
200198
"""Return the remaining water."""
201199
if felaqua := cast(SureFelaqua, self.coordinator.data[self._id]):
202-
return max(0, int(felaqua.water_remaining or 0))
200+
return int(felaqua.water_remaining) if felaqua.water_remaining else None
203201

204202
@property
205203
def extra_state_attributes(self) -> dict[str, Any]:
@@ -284,10 +282,13 @@ def __init__(
284282
self._attr_unit_of_measurement = MASS_GRAMS
285283

286284
@property
287-
def state(self) -> int | None:
285+
def state(self) -> float | None:
288286
"""Return the remaining water."""
289-
if feeder := cast(SureFeeder, self.coordinator.data[self.feeder_id]):
290-
return max(0, int(feeder.bowls[self.bowl_id].weight))
287+
288+
if (feeder := cast(SureFeeder, self.coordinator.data[self.feeder_id])) and (
289+
weight := feeder.bowls[self.bowl_id].weight
290+
):
291+
return int(weight) if weight and weight > 0 else None
291292

292293

293294
class Feeder(SurePetcareSensor):
@@ -301,10 +302,10 @@ def __init__(self, coordinator, _id: int, spc: SurePetcareAPI):
301302
self._attr_unit_of_measurement = MASS_GRAMS
302303

303304
@property
304-
def state(self) -> int | None:
305+
def state(self) -> float | None:
305306
"""Return the total remaining food."""
306307
if feeder := cast(SureFeeder, self.coordinator.data[self._id]):
307-
return int(feeder.total_weight)
308+
return int(feeder.total_weight) if feeder.total_weight else None
308309

309310
@property
310311
def device_info(self):
@@ -349,10 +350,8 @@ def __init__(self, coordinator, _id: int, spc: SurePetcareAPI):
349350
@property
350351
def state(self) -> int | None:
351352
"""Return battery level in percent."""
352-
if (
353-
battery := cast(SurepyDevice, self.coordinator.data[self._id])
354-
) and battery.battery_level:
355-
return max(0, battery.battery_level)
353+
if battery := cast(SurepyDevice, self.coordinator.data[self._id]):
354+
return int(battery.battery_level) if battery.battery_level else None
356355

357356
@property
358357
def extra_state_attributes(self) -> dict[str, Any]:

0 commit comments

Comments
 (0)