mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Fix Lutron Caseta area names by ignoring root area during area name retrieval (#80576)
This commit is contained in:
parent
03bf37e12c
commit
3f3518e29d
@ -375,19 +375,25 @@ def _handle_none_keypad_serial(keypad_device: dict, bridge_serial: int) -> str:
|
||||
return keypad_device["serial"] or f"{bridge_serial}_{keypad_device['device_id']}"
|
||||
|
||||
|
||||
def _area_name_from_id(areas: dict[str, dict], area_id: str) -> str:
|
||||
def _area_name_from_id(areas: dict[str, dict], area_id: str | None) -> str:
|
||||
"""Return the full area name including parent(s)."""
|
||||
|
||||
if area_id is None:
|
||||
return UNASSIGNED_AREA
|
||||
return _construct_area_name_from_id(areas, area_id, [])
|
||||
|
||||
|
||||
def _construct_area_name_from_id(
|
||||
areas: dict[str, dict], area_id: str, labels: list[str]
|
||||
) -> str:
|
||||
"""Recursively construct the full area name including parent(s)."""
|
||||
area = areas[area_id]
|
||||
if "parent_id" in area:
|
||||
parent_area = area["parent_id"]
|
||||
if parent_area is not None:
|
||||
return f"{_area_name_from_id(areas, parent_area)} {area['name']}"
|
||||
parent_area_id = area["parent_id"]
|
||||
if parent_area_id is None:
|
||||
# This is the root area, return last area
|
||||
return " ".join(labels)
|
||||
|
||||
return area["name"]
|
||||
labels.insert(0, area["name"])
|
||||
return _construct_area_name_from_id(areas, parent_area_id, labels)
|
||||
|
||||
|
||||
@callback
|
||||
|
@ -2,7 +2,7 @@
|
||||
"domain": "lutron_caseta",
|
||||
"name": "Lutron Cas\u00e9ta",
|
||||
"documentation": "https://www.home-assistant.io/integrations/lutron_caseta",
|
||||
"requirements": ["pylutron-caseta==0.16.0"],
|
||||
"requirements": ["pylutron-caseta==0.17.1"],
|
||||
"config_flow": true,
|
||||
"zeroconf": ["_leap._tcp.local."],
|
||||
"homekit": {
|
||||
|
@ -1688,7 +1688,7 @@ pylitejet==0.3.0
|
||||
pylitterbot==2022.10.2
|
||||
|
||||
# homeassistant.components.lutron_caseta
|
||||
pylutron-caseta==0.16.0
|
||||
pylutron-caseta==0.17.1
|
||||
|
||||
# homeassistant.components.lutron
|
||||
pylutron==0.2.8
|
||||
|
@ -1189,7 +1189,7 @@ pylitejet==0.3.0
|
||||
pylitterbot==2022.10.2
|
||||
|
||||
# homeassistant.components.lutron_caseta
|
||||
pylutron-caseta==0.16.0
|
||||
pylutron-caseta==0.17.1
|
||||
|
||||
# homeassistant.components.mailgun
|
||||
pymailgunner==1.4
|
||||
|
@ -129,13 +129,14 @@ class MockBridge:
|
||||
def load_areas(self):
|
||||
"""Loak mock areas into self.areas."""
|
||||
return {
|
||||
"898": {"id": "898", "name": "Basement", "parent_id": None},
|
||||
"3": {"id": "3", "name": "House", "parent_id": None},
|
||||
"898": {"id": "898", "name": "Basement", "parent_id": "3"},
|
||||
"822": {"id": "822", "name": "Bedroom", "parent_id": "898"},
|
||||
"910": {"id": "910", "name": "Bathroom", "parent_id": "898"},
|
||||
"1024": {"id": "1024", "name": "Master Bedroom", "parent_id": None},
|
||||
"1025": {"id": "1025", "name": "Kitchen", "parent_id": None},
|
||||
"1026": {"id": "1026", "name": "Dining Room", "parent_id": None},
|
||||
"1205": {"id": "1205", "name": "Hallway", "parent_id": None},
|
||||
"1024": {"id": "1024", "name": "Master Bedroom", "parent_id": "3"},
|
||||
"1025": {"id": "1025", "name": "Kitchen", "parent_id": "3"},
|
||||
"1026": {"id": "1026", "name": "Dining Room", "parent_id": "3"},
|
||||
"1205": {"id": "1205", "name": "Hallway", "parent_id": "3"},
|
||||
}
|
||||
|
||||
def load_devices(self):
|
||||
|
@ -41,13 +41,14 @@ async def test_diagnostics(hass, hass_client) -> None:
|
||||
assert diag == {
|
||||
"bridge_data": {
|
||||
"areas": {
|
||||
"898": {"id": "898", "name": "Basement", "parent_id": None},
|
||||
"3": {"id": "3", "name": "House", "parent_id": None},
|
||||
"898": {"id": "898", "name": "Basement", "parent_id": "3"},
|
||||
"822": {"id": "822", "name": "Bedroom", "parent_id": "898"},
|
||||
"910": {"id": "910", "name": "Bathroom", "parent_id": "898"},
|
||||
"1024": {"id": "1024", "name": "Master Bedroom", "parent_id": None},
|
||||
"1025": {"id": "1025", "name": "Kitchen", "parent_id": None},
|
||||
"1026": {"id": "1026", "name": "Dining Room", "parent_id": None},
|
||||
"1205": {"id": "1205", "name": "Hallway", "parent_id": None},
|
||||
"1024": {"id": "1024", "name": "Master Bedroom", "parent_id": "3"},
|
||||
"1025": {"id": "1025", "name": "Kitchen", "parent_id": "3"},
|
||||
"1026": {"id": "1026", "name": "Dining Room", "parent_id": "3"},
|
||||
"1205": {"id": "1205", "name": "Hallway", "parent_id": "3"},
|
||||
},
|
||||
"buttons": {
|
||||
"111": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user