Skip to content

Commit

Permalink
Use lowercase for window position.
Browse files Browse the repository at this point in the history
  • Loading branch information
kingsleyadam committed Oct 23, 2024
1 parent f2d543c commit 8952f39
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 11 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ packages = ["src/abbfreeathome"]

[project]
name = "local-abbfreeathome"
version = "1.9.0"
version = "1.9.1"
authors = [
{ name="Adam Kingsley", email="[email protected]" },
]
Expand Down
18 changes: 11 additions & 7 deletions src/abbfreeathome/devices/window_door_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@


class WindowDoorSensorPosition(enum.Enum):
"""An Enum class for window/door sensor possible positions."""
"""
An Enum class for window/door sensor possible positions.
UNKNOWN = None
CLOSED = "0"
TILTED = "33"
OPEN = "100"
Home Assistant requires the name to be all lowercase.
"""

unknown = None
closed = "0"
tilted = "33"
open = "100"


class WindowDoorSensor(Base):
Expand All @@ -39,7 +43,7 @@ def __init__(
) -> None:
"""Initialize the Free@Home SwitchSensor class."""
self._state: bool | None = None
self._position: WindowDoorSensorPosition = WindowDoorSensorPosition.UNKNOWN
self._position: WindowDoorSensorPosition = WindowDoorSensorPosition.unknown

super().__init__(
device_id,
Expand Down Expand Up @@ -77,6 +81,6 @@ def _refresh_state_from_output(self, output: dict[str, Any]) -> bool:
try:
self._position = WindowDoorSensorPosition(output.get("value"))
except ValueError:
self._position = WindowDoorSensorPosition.UNKNOWN
self._position = WindowDoorSensorPosition.unknown
return True
return False
6 changes: 3 additions & 3 deletions tests/test_window_door_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def window_door_sensor(mock_api):
async def test_initial_state(window_door_sensor):
"""Test the intial state of the window-door-sensor."""
assert window_door_sensor.state is True
assert window_door_sensor.position == "TILTED"
assert window_door_sensor.position == "tilted"


@pytest.mark.asyncio
Expand All @@ -68,12 +68,12 @@ def test_refresh_state_from_output(window_door_sensor):
window_door_sensor._refresh_state_from_output(
output={"pairingID": 41, "value": "100"},
)
assert window_door_sensor.position == "OPEN"
assert window_door_sensor.position == "open"

window_door_sensor._refresh_state_from_output(
output={"pairingID": 41, "value": "NOTVALID"},
)
assert window_door_sensor.position == "UNKNOWN"
assert window_door_sensor.position == "unknown"

# Check output that NOT affects the state.
window_door_sensor._refresh_state_from_output(
Expand Down

0 comments on commit 8952f39

Please sign in to comment.