mirror of
https://github.com/home-assistant/core.git
synced 2026-06-08 16:37:30 +01:00
Fix Tuya siren entity naming to avoid incorrect main entity assignment (#170008)
Co-authored-by: mik-laj <12058428+mik-laj@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
This commit is contained in:
@@ -27,21 +27,25 @@ SIRENS: dict[DeviceCategory, tuple[SirenEntityDescription, ...]] = {
|
||||
SirenEntityDescription(
|
||||
key=DPCode.ALARM_SWITCH,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
translation_key="siren",
|
||||
),
|
||||
),
|
||||
DeviceCategory.DGNBJ: (
|
||||
SirenEntityDescription(
|
||||
key=DPCode.ALARM_SWITCH,
|
||||
translation_key="siren",
|
||||
),
|
||||
),
|
||||
DeviceCategory.SGBJ: (
|
||||
SirenEntityDescription(
|
||||
key=DPCode.ALARM_SWITCH,
|
||||
name=None,
|
||||
),
|
||||
),
|
||||
DeviceCategory.SP: (
|
||||
SirenEntityDescription(
|
||||
key=DPCode.SIREN_SWITCH,
|
||||
translation_key="siren",
|
||||
),
|
||||
),
|
||||
}
|
||||
@@ -84,7 +88,6 @@ class TuyaSirenEntity(TuyaEntity, SirenEntity):
|
||||
"""Tuya Siren Entity."""
|
||||
|
||||
_attr_supported_features = SirenEntityFeature.TURN_ON | SirenEntityFeature.TURN_OFF
|
||||
_attr_name = None
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
|
||||
@@ -917,6 +917,11 @@
|
||||
"name": "[%key:component::sensor::entity_component::wind_direction::name%]"
|
||||
}
|
||||
},
|
||||
"siren": {
|
||||
"siren": {
|
||||
"name": "[%key:component::siren::title%]"
|
||||
}
|
||||
},
|
||||
"switch": {
|
||||
"anion": {
|
||||
"name": "Anion"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# serializer version: 1
|
||||
# name: test_platform_setup_and_discovery[siren.aqi-entry]
|
||||
# name: test_platform_setup_and_discovery[siren.aqi_siren-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': list([
|
||||
None,
|
||||
@@ -13,7 +13,7 @@
|
||||
'disabled_by': None,
|
||||
'domain': 'siren',
|
||||
'entity_category': <EntityCategory.CONFIG: 'config'>,
|
||||
'entity_id': 'siren.aqi',
|
||||
'entity_id': 'siren.aqi_siren',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
@@ -21,36 +21,36 @@
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'object_id_base': None,
|
||||
'object_id_base': 'Siren',
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': None,
|
||||
'original_name': 'Siren',
|
||||
'platform': 'tuya',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
'translation_key': None,
|
||||
'translation_key': 'siren',
|
||||
'unique_id': 'tuya.iks13mcaiyie3rryjb2ocalarm_switch',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_platform_setup_and_discovery[siren.aqi-state]
|
||||
# name: test_platform_setup_and_discovery[siren.aqi_siren-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'friendly_name': 'AQI',
|
||||
'friendly_name': 'AQI Siren',
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'siren.aqi',
|
||||
'entity_id': 'siren.aqi_siren',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_platform_setup_and_discovery[siren.burocam-entry]
|
||||
# name: test_platform_setup_and_discovery[siren.burocam_siren-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': list([
|
||||
None,
|
||||
@@ -64,7 +64,7 @@
|
||||
'disabled_by': None,
|
||||
'domain': 'siren',
|
||||
'entity_category': None,
|
||||
'entity_id': 'siren.burocam',
|
||||
'entity_id': 'siren.burocam_siren',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
@@ -72,36 +72,36 @@
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'object_id_base': None,
|
||||
'object_id_base': 'Siren',
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': None,
|
||||
'original_name': 'Siren',
|
||||
'platform': 'tuya',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
'translation_key': None,
|
||||
'translation_key': 'siren',
|
||||
'unique_id': 'tuya.svjjuwykgijjedurpssiren_switch',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_platform_setup_and_discovery[siren.burocam-state]
|
||||
# name: test_platform_setup_and_discovery[siren.burocam_siren-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'friendly_name': 'Bürocam',
|
||||
'friendly_name': 'Bürocam Siren',
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'siren.burocam',
|
||||
'entity_id': 'siren.burocam_siren',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_platform_setup_and_discovery[siren.c9-entry]
|
||||
# name: test_platform_setup_and_discovery[siren.c9_siren-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': list([
|
||||
None,
|
||||
@@ -115,7 +115,7 @@
|
||||
'disabled_by': None,
|
||||
'domain': 'siren',
|
||||
'entity_category': None,
|
||||
'entity_id': 'siren.c9',
|
||||
'entity_id': 'siren.c9_siren',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
@@ -123,36 +123,36 @@
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'object_id_base': None,
|
||||
'object_id_base': 'Siren',
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': None,
|
||||
'original_name': 'Siren',
|
||||
'platform': 'tuya',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
'translation_key': None,
|
||||
'translation_key': 'siren',
|
||||
'unique_id': 'tuya.fjdyw5ld2f5f5ddspssiren_switch',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_platform_setup_and_discovery[siren.c9-state]
|
||||
# name: test_platform_setup_and_discovery[siren.c9_siren-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'friendly_name': 'C9',
|
||||
'friendly_name': 'C9 Siren',
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'siren.c9',
|
||||
'entity_id': 'siren.c9_siren',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_platform_setup_and_discovery[siren.security_camera-entry]
|
||||
# name: test_platform_setup_and_discovery[siren.security_camera_siren-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': list([
|
||||
None,
|
||||
@@ -166,7 +166,7 @@
|
||||
'disabled_by': None,
|
||||
'domain': 'siren',
|
||||
'entity_category': None,
|
||||
'entity_id': 'siren.security_camera',
|
||||
'entity_id': 'siren.security_camera_siren',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
@@ -174,29 +174,29 @@
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'object_id_base': None,
|
||||
'object_id_base': 'Siren',
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': None,
|
||||
'original_name': 'Siren',
|
||||
'platform': 'tuya',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
'translation_key': None,
|
||||
'translation_key': 'siren',
|
||||
'unique_id': 'tuya.xihygtyd0d1faknkpssiren_switch',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_platform_setup_and_discovery[siren.security_camera-state]
|
||||
# name: test_platform_setup_and_discovery[siren.security_camera_siren-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'friendly_name': 'Security Camera',
|
||||
'friendly_name': 'Security Camera Siren',
|
||||
'supported_features': <SirenEntityFeature: 3>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'siren.security_camera',
|
||||
'entity_id': 'siren.security_camera_siren',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
|
||||
@@ -82,7 +82,7 @@ async def test_selective_state_update(
|
||||
mock_device,
|
||||
notification_helper,
|
||||
freezer,
|
||||
entity_id="siren.c9",
|
||||
entity_id="siren.c9_siren",
|
||||
dpcode="siren_switch",
|
||||
initial_state="off",
|
||||
updates=updates,
|
||||
@@ -117,7 +117,7 @@ async def test_action(
|
||||
expected_commands: list[dict[str, Any]],
|
||||
) -> None:
|
||||
"""Test siren action."""
|
||||
entity_id = "siren.c9"
|
||||
entity_id = "siren.c9_siren"
|
||||
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
|
||||
|
||||
state = hass.states.get(entity_id)
|
||||
|
||||
Reference in New Issue
Block a user