From 064f96f8fa713f27eb51d9965ab14baa713e93d2 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 14 Mar 2024 12:55:31 +0100 Subject: [PATCH] Add floor support to areas WebSocket API (#113402) --- homeassistant/components/config/area_registry.py | 3 +++ tests/components/config/test_area_registry.py | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/homeassistant/components/config/area_registry.py b/homeassistant/components/config/area_registry.py index 435277c5192..acddf7bb200 100644 --- a/homeassistant/components/config/area_registry.py +++ b/homeassistant/components/config/area_registry.py @@ -40,6 +40,7 @@ def websocket_list_areas( { vol.Required("type"): "config/area_registry/create", vol.Optional("aliases"): list, + vol.Optional("floor_id"): str, vol.Optional("icon"): str, vol.Required("name"): str, vol.Optional("picture"): vol.Any(str, None), @@ -100,6 +101,7 @@ def websocket_delete_area( vol.Required("type"): "config/area_registry/update", vol.Optional("aliases"): list, vol.Required("area_id"): str, + vol.Optional("floor_id"): vol.Any(str, None), vol.Optional("icon"): vol.Any(str, None), vol.Optional("name"): str, vol.Optional("picture"): vol.Any(str, None), @@ -137,6 +139,7 @@ def _entry_dict(entry: AreaEntry) -> dict[str, Any]: return { "aliases": list(entry.aliases), "area_id": entry.id, + "floor_id": entry.floor_id, "icon": entry.icon, "name": entry.name, "picture": entry.picture, diff --git a/tests/components/config/test_area_registry.py b/tests/components/config/test_area_registry.py index fb9c5fd453b..8bedd1a0a29 100644 --- a/tests/components/config/test_area_registry.py +++ b/tests/components/config/test_area_registry.py @@ -30,6 +30,7 @@ async def test_list_areas( aliases={"alias_1", "alias_2"}, icon="mdi:garage", picture="/image/example.png", + floor_id="first_floor", ) await client.send_json_auto_id({"type": "config/area_registry/list"}) @@ -39,6 +40,7 @@ async def test_list_areas( { "aliases": [], "area_id": area1.id, + "floor_id": None, "icon": None, "name": "mock 1", "picture": None, @@ -46,6 +48,7 @@ async def test_list_areas( { "aliases": unordered(["alias_1", "alias_2"]), "area_id": area2.id, + "floor_id": "first_floor", "icon": "mdi:garage", "name": "mock 2", "picture": "/image/example.png", @@ -67,6 +70,7 @@ async def test_create_area( assert msg["result"] == { "aliases": [], "area_id": ANY, + "floor_id": None, "icon": None, "name": "mock", "picture": None, @@ -77,6 +81,7 @@ async def test_create_area( await client.send_json_auto_id( { "aliases": ["alias_1", "alias_2"], + "floor_id": "first_floor", "icon": "mdi:garage", "name": "mock 2", "picture": "/image/example.png", @@ -89,6 +94,7 @@ async def test_create_area( assert msg["result"] == { "aliases": unordered(["alias_1", "alias_2"]), "area_id": ANY, + "floor_id": "first_floor", "icon": "mdi:garage", "name": "mock 2", "picture": "/image/example.png", @@ -158,6 +164,7 @@ async def test_update_area( { "aliases": ["alias_1", "alias_2"], "area_id": area.id, + "floor_id": "first_floor", "icon": "mdi:garage", "name": "mock 2", "picture": "/image/example.png", @@ -170,6 +177,7 @@ async def test_update_area( assert msg["result"] == { "aliases": unordered(["alias_1", "alias_2"]), "area_id": area.id, + "floor_id": "first_floor", "icon": "mdi:garage", "name": "mock 2", "picture": "/image/example.png", @@ -180,6 +188,7 @@ async def test_update_area( { "aliases": ["alias_1", "alias_1"], "area_id": area.id, + "floor_id": None, "icon": None, "picture": None, "type": "config/area_registry/update", @@ -191,6 +200,7 @@ async def test_update_area( assert msg["result"] == { "aliases": ["alias_1"], "area_id": area.id, + "floor_id": None, "icon": None, "name": "mock 2", "picture": None,