diff --git a/homeassistant/components/whirlpool/sensor.py b/homeassistant/components/whirlpool/sensor.py index 5b83c35cca4..de415035c76 100644 --- a/homeassistant/components/whirlpool/sensor.py +++ b/homeassistant/components/whirlpool/sensor.py @@ -296,9 +296,9 @@ class WasherDryerTimeClass(RestoreSensor): ) if ( - isinstance(self._attr_native_value, datetime) + self._attr_native_value is None + or isinstance(self._attr_native_value, datetime) and abs(new_timestamp - self._attr_native_value) > timedelta(seconds=60) - or self._attr_native_value is None ): self._attr_native_value = new_timestamp self._async_write_ha_state() diff --git a/tests/components/whirlpool/test_sensor.py b/tests/components/whirlpool/test_sensor.py index 063ebd49c4c..be78b0e2df8 100644 --- a/tests/components/whirlpool/test_sensor.py +++ b/tests/components/whirlpool/test_sensor.py @@ -311,10 +311,11 @@ async def test_no_restore_state( await init_integration(hass) # restore from cache state = hass.states.get(entity_id) - state.state = "unknown" + assert state.state == "unknown" + mock_sensor1_api.get_machine_state.return_value = MachineState.RunningMainCycle state = await update_sensor_state(hass, entity_id, mock_sensor1_api) - state.state = datetime.now().isoformat() + assert state.state != "unknown" async def test_callback(