From cad8af474bc2ae065e5456aa98184be3340d7d5e Mon Sep 17 00:00:00 2001 From: ia74 <68617740+ia74@users.noreply.github.com> Date: Fri, 25 Jul 2025 09:01:11 -0500 Subject: [PATCH] Don't show mission start time, if it's a previous command and not active --- .../roomba_rest980/manifest.json | 2 +- custom_components/roomba_rest980/sensor.py | 28 +++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/custom_components/roomba_rest980/manifest.json b/custom_components/roomba_rest980/manifest.json index a2badec..7518e08 100644 --- a/custom_components/roomba_rest980/manifest.json +++ b/custom_components/roomba_rest980/manifest.json @@ -4,7 +4,7 @@ "codeowners": [ "@ia74" ], - "version": "1.7.1", + "version": "1.8.0", "config_flow": true, "dependencies": [], "dhcp": [ diff --git a/custom_components/roomba_rest980/sensor.py b/custom_components/roomba_rest980/sensor.py index b933bbe..4fd2bf4 100644 --- a/custom_components/roomba_rest980/sensor.py +++ b/custom_components/roomba_rest980/sensor.py @@ -288,17 +288,27 @@ class RoombaMissionStartTime(RoombaSensor): """Update sensor when coordinator data changes.""" data = self.coordinator.data or {} status = data.get("cleanMissionStatus", {}) - missionStartTime = status.get("mssnStrtTm") # Unix timestamp in seconds? + # Mission State + phase = status.get("phase") + battery = data.get("batPct") - if missionStartTime: - self._attr_available = True - try: - self._attr_native_value = dt_util.utc_from_timestamp(missionStartTime) - except (TypeError, ValueError): - self._attr_native_value = None - else: - self._attr_native_value = None + if phase == "charge" and battery == 100: self._attr_available = False + self._attr_native_value = None + else: + missionStartTime = status.get("mssnStrtTm") # Unix timestamp in seconds? + + if missionStartTime: + self._attr_available = True + try: + self._attr_native_value = dt_util.utc_from_timestamp( + missionStartTime + ) + except (TypeError, ValueError): + self._attr_native_value = None + else: + self._attr_native_value = None + self._attr_available = False self.async_write_ha_state()