Skip to content

Commit 4e44ebb

Browse files
committed
Fix identifiers
1 parent 3420d3f commit 4e44ebb

10 files changed

Lines changed: 16 additions & 16 deletions

File tree

custom_components/redsea/binary_sensor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ def device_info(self) -> DeviceInfo:
475475
domain, ident = next(iter(cast(set[tuple[str, str]], base_identifiers)))
476476

477477
di_dict: dict[str, Any] = {
478-
"identifiers": {(domain, f"{ident}_head_{self._head}")},
478+
"identifiers": {(domain, ident, f"head_{self._head}")},
479479
"name": f"{self._device.title} head {self._head}",
480480
}
481481

custom_components/redsea/button.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ def device_info(self) -> DeviceInfo:
625625
domain, ident = next(iter(cast(set[tuple[str, str]], base_identifiers)))
626626

627627
di_dict: dict[str, Any] = {
628-
"identifiers": {(domain, f"{ident}_head_{self._head}")},
628+
"identifiers": {(domain, ident, f"head_{self._head}")},
629629
"name": f"{self._device.title} head {self._head}",
630630
}
631631

custom_components/redsea/number.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,7 @@ def __init__(
783783
domain, ident = next(iter(cast(set[tuple[str, str]], base_identifiers)))
784784

785785
di_dict: dict[str, Any] = {
786-
"identifiers": {(domain, f"{ident}_head_{self._head}")},
786+
"identifiers": {(domain, ident, f"head_{self._head}")},
787787
"name": f"{self._device.title} head {self._head}",
788788
}
789789

@@ -833,8 +833,8 @@ async def async_added_to_hass(self) -> None:
833833
base_identifiers = base_di.get("identifiers") or {(DOMAIN, self._device.serial)}
834834
domain, ident = next(iter(cast(set[tuple[str, str]], base_identifiers)))
835835
via_device = base_di.get("via_device")
836-
di: DeviceInfo = {
837-
"identifiers": {(domain, f"{ident}_head_{head}")},
836+
di_dict: dict[str, Any] = {
837+
"identifiers": {(domain, ident, f"head_{head}")},
838838
"name": f"{self._device.title} head {head}",
839839
"manufacturer": base_di.get("manufacturer"),
840840
"model": base_di.get("model"),
@@ -843,8 +843,8 @@ async def async_added_to_hass(self) -> None:
843843
"sw_version": base_di.get("sw_version"),
844844
}
845845
if via_device is not None:
846-
di["via_device"] = via_device
847-
self._attr_device_info = di
846+
di_dict["via_device"] = via_device
847+
self._attr_device_info = cast(DeviceInfo, di_dict)
848848

849849

850850
# REEFRUN

custom_components/redsea/select.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ def device_info(self) -> DeviceInfo:
470470
# DeviceInfo is a TypedDict; copying values from a generic dict makes mypy/pyright
471471
# widen types to object | None, so we guard and only assign strings (or omit keys).
472472
di_dict: dict[str, Any] = {
473-
"identifiers": {(domain, f"{ident}_head_{self._head}")},
473+
"identifiers": {(domain, ident, f"head_{self._head}")},
474474
"name": f"{self._device.title} head {self._head}",
475475
}
476476

custom_components/redsea/sensor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1422,7 +1422,7 @@ def device_info(self) -> DeviceInfo:
14221422
# DeviceInfo is a TypedDict; copying values from a generic dict makes mypy/pyright
14231423
# widen types to object | None, so we guard and only assign strings (or omit keys).
14241424
di_dict: dict[str, Any] = {
1425-
"identifiers": {(domain, f"{ident}_head_{self._head}")},
1425+
"identifiers": {(domain, ident, f"head_{self._head}")},
14261426
"name": f"{self._device.title} head {self._head}",
14271427
}
14281428

custom_components/redsea/switch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ def device_info(self) -> DeviceInfo:
749749
# DeviceInfo is a TypedDict; copying values from a generic dict makes mypy/pyright
750750
# widen types to object | None, so we guard and only assign strings (or omit keys).
751751
di_dict: dict[str, Any] = {
752-
"identifiers": {(domain, f"{ident}_head_{self._head}")},
752+
"identifiers": {(domain, ident, f"head_{self._head}")},
753753
"name": f"{self._device.title} head {self._head}",
754754
}
755755

custom_components/redsea/text.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ def device_info(self) -> DeviceInfo:
261261
# DeviceInfo is a TypedDict; copying values from a generic dict makes mypy/pyright
262262
# widen types to object | None, so we guard and only assign strings (or omit keys).
263263
di_dict: dict[str, Any] = {
264-
"identifiers": {(domain, f"{ident}_head_{self._head}")},
264+
"identifiers": {(domain, ident, f"head_{self._head}")},
265265
"name": f"{self._device.title} head {self._head}",
266266
}
267267

tests/test_binary_sensor_dose_unit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def test_dose_device_info_builds_head_device_and_copies_fields_and_via_device()
101101
ent = ReefDoseBinarySensorEntity(cast(Any, device), desc)
102102
di = cast(dict[str, Any], ent.device_info)
103103

104-
assert di["identifiers"] == {("redsea", "IDENT_head_3")}
104+
assert di["identifiers"] == {("redsea", "IDENT", "head_3")}
105105
assert di["name"] == "Dose head 3"
106106
assert di["manufacturer"] == "Red Sea"
107107
assert di["model"] is None
@@ -128,4 +128,4 @@ def test_dose_device_info_falls_back_to_default_identifiers_when_missing() -> No
128128
ent = ReefDoseBinarySensorEntity(cast(Any, device), desc)
129129
di = cast(dict[str, Any], ent.device_info)
130130

131-
assert di["identifiers"] == {("redsea", "SER123_head_1")}
131+
assert di["identifiers"] == {("redsea", "SER123", "head_1")}

tests/test_select_dose_unit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def test_reefdose_select_device_info_builds_head_device_and_copies_fields(
111111
ent = ReefDoseSelectEntity(cast(Any, device), desc)
112112

113113
di = cast(DeviceInfo, ent.device_info)
114-
assert ("redsea", "IDENT_head_1") in (di.get("identifiers") or set())
114+
assert ("redsea", "IDENT", "head_1") in (di.get("identifiers") or set())
115115
assert di.get("name") == "Dose head 1"
116116

117117
assert di.get("manufacturer") == "Red Sea"

tests/test_text_unit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def test_reefdose_text_device_info_builds_head_device_and_copies_fields_and_via_
260260
ent = ReefDoseTextEntity(cast(Any, device), desc)
261261
di = cast(dict[str, Any], ent.device_info)
262262

263-
assert di["identifiers"] == {("redsea", "IDENT_head_3")}
263+
assert di["identifiers"] == {("redsea", "IDENT", "head_3")}
264264
assert di["name"] == "Dose head 3"
265265
assert di["manufacturer"] == "Red Sea"
266266
assert di["model"] is None
@@ -288,7 +288,7 @@ def test_reefdose_text_device_info_falls_back_to_default_identifiers_when_missin
288288
ent = ReefDoseTextEntity(cast(Any, device), desc)
289289
di = cast(dict[str, Any], ent.device_info)
290290

291-
assert di["identifiers"] == {("redsea", "SER123_head_1")}
291+
assert di["identifiers"] == {("redsea", "SER123", "head_1")}
292292

293293

294294
def test_reefbeat_text_restore_value_returns_state() -> None:

0 commit comments

Comments
 (0)