From 8952f3944b89c51179408822f9b32f8fc8ecf485 Mon Sep 17 00:00:00 2001 From: Adam Kingsley Date: Wed, 23 Oct 2024 15:31:51 +0200 Subject: [PATCH] Use lowercase for window position. --- pyproject.toml | 2 +- .../devices/window_door_sensor.py | 18 +++++++++++------- tests/test_window_door_sensor.py | 6 +++--- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b5089a4..6753441 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ packages = ["src/abbfreeathome"] [project] name = "local-abbfreeathome" -version = "1.9.0" +version = "1.9.1" authors = [ { name="Adam Kingsley", email="adam@kingsley.io" }, ] diff --git a/src/abbfreeathome/devices/window_door_sensor.py b/src/abbfreeathome/devices/window_door_sensor.py index cfd95d1..7532629 100644 --- a/src/abbfreeathome/devices/window_door_sensor.py +++ b/src/abbfreeathome/devices/window_door_sensor.py @@ -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): @@ -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, @@ -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 diff --git a/tests/test_window_door_sensor.py b/tests/test_window_door_sensor.py index e3fb922..effe742 100644 --- a/tests/test_window_door_sensor.py +++ b/tests/test_window_door_sensor.py @@ -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 @@ -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(