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()