fix rain sensor for some rare velux windows (#160504)

This commit is contained in:
wollew
2026-01-08 12:19:40 +01:00
committed by GitHub
parent dd84b52c7b
commit a1edf0a77c
2 changed files with 22 additions and 6 deletions
+17 -3
View File
@@ -49,15 +49,29 @@ async def test_rain_sensor_state(
assert state is not None
assert state.state == STATE_ON
# simulate rain detected (other Velux models report 93)
# simulate rain detected (most Velux models report 93)
mock_window.get_limitation.return_value.min_value = 93
await update_polled_entities(hass, freezer)
state = hass.states.get(test_entity_id)
assert state is not None
assert state.state == STATE_ON
# simulate rain detected (other Velux models report 89)
mock_window.get_limitation.return_value.min_value = 89
await update_polled_entities(hass, freezer)
state = hass.states.get(test_entity_id)
assert state is not None
assert state.state == STATE_ON
# simulate other limits which do not indicate rain detected
mock_window.get_limitation.return_value.min_value = 88
await update_polled_entities(hass, freezer)
state = hass.states.get(test_entity_id)
assert state is not None
assert state.state == STATE_OFF
# simulate no rain detected again
mock_window.get_limitation.return_value.min_value = 95
mock_window.get_limitation.return_value.min_value = 0
await update_polled_entities(hass, freezer)
state = hass.states.get(test_entity_id)
assert state is not None
@@ -144,7 +158,7 @@ async def test_rain_sensor_unavailability(
# Simulate recovery
mock_window.get_limitation.side_effect = None
mock_window.get_limitation.return_value.min_value = 95
mock_window.get_limitation.return_value.min_value = 0
await update_polled_entities(hass, freezer)
# Entity should be available again