Skip to content

Commit e42e25a

Browse files
authored
Merge pull request #217 from natekspencer/dev
Adjust LR4 status to handle cat detect/sensor timing more appropriately
2 parents e71afa8 + 46ddb3b commit e42e25a

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

pylitterbot/robot/litterrobot4.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,12 @@ def status(self) -> LitterBoxStatus:
260260
return LitterBoxStatus.OFFLINE
261261
if status := CYCLE_STATE_STATUS_MAP.get(self._data["robotCycleState"]):
262262
return status
263-
if status := DISPLAY_CODE_STATUS_MAP.get(self._data["displayCode"]):
264-
return status
265263
status = LR4_STATUS_MAP.get(self._data["robotStatus"], LitterBoxStatus.UNKNOWN)
266-
if status == LitterBoxStatus.READY and self.is_waste_drawer_full:
267-
return LitterBoxStatus.DRAWER_FULL
264+
if status == LitterBoxStatus.READY:
265+
if display_code := DISPLAY_CODE_STATUS_MAP.get(self._data["displayCode"]):
266+
return display_code
267+
if self.is_waste_drawer_full:
268+
return LitterBoxStatus.DRAWER_FULL
268269
return status
269270

270271
@property

tests/test_litterrobot4.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,17 @@ async def test_litter_robot_4_cleaning(mock_account: Account) -> None:
405405
({"robotStatus": "ROBOT_POWER_OFF"}, LitterBoxStatus.OFF),
406406
({"robotStatus": "ROBOT_POWER_UP"}, LitterBoxStatus.POWER_UP),
407407
({"displayCode": "DC_CAT_DETECT"}, LitterBoxStatus.CAT_DETECTED),
408+
(
409+
{"displayCode": "DC_CAT_DETECT", "robotStatus": "ROBOT_CAT_DETECT_DELAY"},
410+
LitterBoxStatus.CAT_SENSOR_TIMING,
411+
),
412+
(
413+
{
414+
"displayCode": "DC_CAT_DETECT",
415+
"robotCycleState": "CYCLE_STATE_CAT_DETECT",
416+
},
417+
LitterBoxStatus.CAT_SENSOR_INTERRUPTED,
418+
),
408419
],
409420
)
410421
async def test_litter_robot_4_status(

0 commit comments

Comments
 (0)