From c8964494a250135ea14feaa8c34c875aa0b42bcf Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Wed, 27 Aug 2025 01:17:33 +0200 Subject: [PATCH] Move togrill entites to sub devices (#151100) --- .../components/togrill/coordinator.py | 37 ++++-- homeassistant/components/togrill/entity.py | 6 +- homeassistant/components/togrill/event.py | 2 +- homeassistant/components/togrill/number.py | 5 +- homeassistant/components/togrill/sensor.py | 7 +- homeassistant/components/togrill/strings.json | 14 +-- .../togrill/snapshots/test_event.ambr | 72 +++++------ .../togrill/snapshots/test_init.ambr | 4 + .../togrill/snapshots/test_number.ambr | 48 ++++---- .../togrill/snapshots/test_sensor.ambr | 112 +++++++++--------- tests/components/togrill/test_event.py | 4 +- tests/components/togrill/test_number.py | 8 +- 12 files changed, 173 insertions(+), 146 deletions(-) diff --git a/homeassistant/components/togrill/coordinator.py b/homeassistant/components/togrill/coordinator.py index 75964067de7..391561d477a 100644 --- a/homeassistant/components/togrill/coordinator.py +++ b/homeassistant/components/togrill/coordinator.py @@ -32,7 +32,7 @@ from homeassistant.helpers import device_registry as dr from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH, DeviceInfo from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed -from .const import CONF_PROBE_COUNT +from .const import CONF_PROBE_COUNT, DOMAIN type ToGrillConfigEntry = ConfigEntry[ToGrillCoordinator] @@ -74,13 +74,19 @@ class ToGrillCoordinator(DataUpdateCoordinator[dict[tuple[int, int | None], Pack name="ToGrill", update_interval=SCAN_INTERVAL, ) - self.address = config_entry.data[CONF_ADDRESS] + self.address: str = config_entry.data[CONF_ADDRESS] self.data = {} - self.device_info = DeviceInfo( - connections={(CONNECTION_BLUETOOTH, self.address)} - ) self._packet_listeners: list[Callable[[Packet], None]] = [] + device_registry = dr.async_get(self.hass) + device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(CONNECTION_BLUETOOTH, self.address)}, + identifiers={(DOMAIN, self.address)}, + name=config_entry.data[CONF_MODEL], + model_id=config_entry.data[CONF_MODEL], + ) + config_entry.async_on_unload( async_register_callback( hass, @@ -90,6 +96,23 @@ class ToGrillCoordinator(DataUpdateCoordinator[dict[tuple[int, int | None], Pack ) ) + def get_device_info(self, probe_number: int | None) -> DeviceInfo: + """Return device info.""" + + if probe_number is None: + return DeviceInfo( + identifiers={(DOMAIN, self.address)}, + ) + + return DeviceInfo( + translation_key="probe", + translation_placeholders={ + "probe_number": str(probe_number), + }, + identifiers={(DOMAIN, f"{self.address}_{probe_number}")}, + via_device=(DOMAIN, self.address), + ) + @callback def async_add_packet_listener( self, packet_callback: Callable[[Packet], None] @@ -132,9 +155,7 @@ class ToGrillCoordinator(DataUpdateCoordinator[dict[tuple[int, int | None], Pack device_registry = dr.async_get(self.hass) device_registry.async_get_or_create( config_entry_id=config_entry.entry_id, - connections={(CONNECTION_BLUETOOTH, self.address)}, - name=config_entry.data[CONF_MODEL], - model_id=config_entry.data[CONF_MODEL], + identifiers={(DOMAIN, self.address)}, sw_version=get_version_string(packet_a0), ) diff --git a/homeassistant/components/togrill/entity.py b/homeassistant/components/togrill/entity.py index 7d956ac2d57..f744b9f851b 100644 --- a/homeassistant/components/togrill/entity.py +++ b/homeassistant/components/togrill/entity.py @@ -19,10 +19,12 @@ class ToGrillEntity(CoordinatorEntity[ToGrillCoordinator]): _attr_has_entity_name = True - def __init__(self, coordinator: ToGrillCoordinator) -> None: + def __init__( + self, coordinator: ToGrillCoordinator, probe_number: int | None = None + ) -> None: """Initialize coordinator entity.""" super().__init__(coordinator) - self._attr_device_info = coordinator.device_info + self._attr_device_info = coordinator.get_device_info(probe_number) def _get_client(self) -> Client: client = self.coordinator.client diff --git a/homeassistant/components/togrill/event.py b/homeassistant/components/togrill/event.py index d7d67b464d1..a598ec70a3c 100644 --- a/homeassistant/components/togrill/event.py +++ b/homeassistant/components/togrill/event.py @@ -34,7 +34,7 @@ class ToGrillEventEntity(ToGrillEntity, EventEntity): def __init__(self, coordinator: ToGrillCoordinator, probe_number: int) -> None: """Initialize the entity.""" - super().__init__(coordinator=coordinator) + super().__init__(coordinator=coordinator, probe_number=probe_number) self._attr_translation_key = "event" self._attr_translation_placeholders = {"probe_number": f"{probe_number}"} diff --git a/homeassistant/components/togrill/number.py b/homeassistant/components/togrill/number.py index a87fec8d2d3..b649d2ead1b 100644 --- a/homeassistant/components/togrill/number.py +++ b/homeassistant/components/togrill/number.py @@ -39,6 +39,7 @@ class ToGrillNumberEntityDescription(NumberEntityDescription): get_value: Callable[[ToGrillCoordinator], float | None] set_packet: Callable[[float], PacketWrite] entity_supported: Callable[[Mapping[str, Any]], bool] = lambda _: True + probe_number: int | None = None def _get_temperature_target_description( @@ -58,7 +59,6 @@ def _get_temperature_target_description( return ToGrillNumberEntityDescription( key=f"temperature_target_{probe_number}", translation_key="temperature_target", - translation_placeholders={"probe_number": f"{probe_number}"}, device_class=NumberDeviceClass.TEMPERATURE, native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_min_value=0, @@ -67,6 +67,7 @@ def _get_temperature_target_description( set_packet=_set_packet, get_value=_get_value, entity_supported=lambda x: probe_number <= x[CONF_PROBE_COUNT], + probe_number=probe_number, ) @@ -122,7 +123,7 @@ class ToGrillNumber(ToGrillEntity, NumberEntity): ) -> None: """Initialize.""" - super().__init__(coordinator) + super().__init__(coordinator, probe_number=entity_description.probe_number) self.entity_description = entity_description self._attr_unique_id = f"{coordinator.address}_{entity_description.key}" diff --git a/homeassistant/components/togrill/sensor.py b/homeassistant/components/togrill/sensor.py index 1641236bfc1..0b85a09145c 100644 --- a/homeassistant/components/togrill/sensor.py +++ b/homeassistant/components/togrill/sensor.py @@ -34,6 +34,7 @@ class ToGrillSensorEntityDescription(SensorEntityDescription): packet_type: int packet_extract: Callable[[Packet], StateType] entity_supported: Callable[[Mapping[str, Any]], bool] = lambda _: True + probe_number: int | None = None def _get_temperature_description(probe_number: int): @@ -51,8 +52,6 @@ def _get_temperature_description(probe_number: int): return ToGrillSensorEntityDescription( key=f"temperature_{probe_number}", - translation_key="temperature", - translation_placeholders={"probe_number": f"{probe_number}"}, device_class=SensorDeviceClass.TEMPERATURE, native_unit_of_measurement=UnitOfTemperature.CELSIUS, state_class=SensorStateClass.MEASUREMENT, @@ -60,6 +59,7 @@ def _get_temperature_description(probe_number: int): packet_type=PacketA1Notify.type, packet_extract=_get, entity_supported=_supported, + probe_number=probe_number, ) @@ -109,9 +109,8 @@ class ToGrillSensor(ToGrillEntity, SensorEntity): ) -> None: """Initialize sensor.""" - super().__init__(coordinator) + super().__init__(coordinator, entity_description.probe_number) self.entity_description = entity_description - self._attr_device_info = coordinator.device_info self._attr_unique_id = f"{coordinator.address}_{entity_description.key}" @property diff --git a/homeassistant/components/togrill/strings.json b/homeassistant/components/togrill/strings.json index cef758b7d2e..79be7e1780c 100644 --- a/homeassistant/components/togrill/strings.json +++ b/homeassistant/components/togrill/strings.json @@ -22,6 +22,11 @@ "failed_to_read_config": "Failed to read config from device" } }, + "device": { + "probe": { + "name": "Probe {probe_number}" + } + }, "exceptions": { "disconnected": { "message": "The device is disconnected" @@ -34,14 +39,9 @@ } }, "entity": { - "sensor": { - "temperature": { - "name": "Probe {probe_number}" - } - }, "number": { "temperature_target": { - "name": "Target {probe_number}" + "name": "Target temperature" }, "alarm_interval": { "name": "Alarm interval" @@ -49,7 +49,7 @@ }, "event": { "event": { - "name": "Probe {probe_number}", + "name": "Event", "state_attributes": { "event_type": { "state": { diff --git a/tests/components/togrill/snapshots/test_event.ambr b/tests/components/togrill/snapshots/test_event.ambr index 99908cd85c2..e579c0745bc 100644 --- a/tests/components/togrill/snapshots/test_event.ambr +++ b/tests/components/togrill/snapshots/test_event.ambr @@ -1,5 +1,5 @@ # serializer version: 1 -# name: test_setup[no_data][event.pro_05_probe_1-entry] +# name: test_setup[no_data][event.probe_1_event-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -27,7 +27,7 @@ 'disabled_by': None, 'domain': 'event', 'entity_category': None, - 'entity_id': 'event.pro_05_probe_1', + 'entity_id': 'event.probe_1_event', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -39,7 +39,7 @@ }), 'original_device_class': None, 'original_icon': None, - 'original_name': 'Probe 1', + 'original_name': 'Event', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -49,7 +49,7 @@ 'unit_of_measurement': None, }) # --- -# name: test_setup[no_data][event.pro_05_probe_1-state] +# name: test_setup[no_data][event.probe_1_event-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'event_type': None, @@ -67,17 +67,17 @@ 'ambient_cool_down', 'probe_timer_alarm', ]), - 'friendly_name': 'Pro-05 Probe 1', + 'friendly_name': 'Probe 1 Event', }), 'context': , - 'entity_id': 'event.pro_05_probe_1', + 'entity_id': 'event.probe_1_event', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unknown', }) # --- -# name: test_setup[no_data][event.pro_05_probe_2-entry] +# name: test_setup[no_data][event.probe_2_event-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -105,7 +105,7 @@ 'disabled_by': None, 'domain': 'event', 'entity_category': None, - 'entity_id': 'event.pro_05_probe_2', + 'entity_id': 'event.probe_2_event', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -117,7 +117,7 @@ }), 'original_device_class': None, 'original_icon': None, - 'original_name': 'Probe 2', + 'original_name': 'Event', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -127,7 +127,7 @@ 'unit_of_measurement': None, }) # --- -# name: test_setup[no_data][event.pro_05_probe_2-state] +# name: test_setup[no_data][event.probe_2_event-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'event_type': None, @@ -145,17 +145,17 @@ 'ambient_cool_down', 'probe_timer_alarm', ]), - 'friendly_name': 'Pro-05 Probe 2', + 'friendly_name': 'Probe 2 Event', }), 'context': , - 'entity_id': 'event.pro_05_probe_2', + 'entity_id': 'event.probe_2_event', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unknown', }) # --- -# name: test_setup[non_event_packet][event.pro_05_probe_1-entry] +# name: test_setup[non_event_packet][event.probe_1_event-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -183,7 +183,7 @@ 'disabled_by': None, 'domain': 'event', 'entity_category': None, - 'entity_id': 'event.pro_05_probe_1', + 'entity_id': 'event.probe_1_event', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -195,7 +195,7 @@ }), 'original_device_class': None, 'original_icon': None, - 'original_name': 'Probe 1', + 'original_name': 'Event', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -205,7 +205,7 @@ 'unit_of_measurement': None, }) # --- -# name: test_setup[non_event_packet][event.pro_05_probe_1-state] +# name: test_setup[non_event_packet][event.probe_1_event-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'event_type': None, @@ -223,17 +223,17 @@ 'ambient_cool_down', 'probe_timer_alarm', ]), - 'friendly_name': 'Pro-05 Probe 1', + 'friendly_name': 'Probe 1 Event', }), 'context': , - 'entity_id': 'event.pro_05_probe_1', + 'entity_id': 'event.probe_1_event', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unknown', }) # --- -# name: test_setup[non_event_packet][event.pro_05_probe_2-entry] +# name: test_setup[non_event_packet][event.probe_2_event-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -261,7 +261,7 @@ 'disabled_by': None, 'domain': 'event', 'entity_category': None, - 'entity_id': 'event.pro_05_probe_2', + 'entity_id': 'event.probe_2_event', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -273,7 +273,7 @@ }), 'original_device_class': None, 'original_icon': None, - 'original_name': 'Probe 2', + 'original_name': 'Event', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -283,7 +283,7 @@ 'unit_of_measurement': None, }) # --- -# name: test_setup[non_event_packet][event.pro_05_probe_2-state] +# name: test_setup[non_event_packet][event.probe_2_event-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'event_type': None, @@ -301,17 +301,17 @@ 'ambient_cool_down', 'probe_timer_alarm', ]), - 'friendly_name': 'Pro-05 Probe 2', + 'friendly_name': 'Probe 2 Event', }), 'context': , - 'entity_id': 'event.pro_05_probe_2', + 'entity_id': 'event.probe_2_event', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unknown', }) # --- -# name: test_setup[non_known_message][event.pro_05_probe_1-entry] +# name: test_setup[non_known_message][event.probe_1_event-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -339,7 +339,7 @@ 'disabled_by': None, 'domain': 'event', 'entity_category': None, - 'entity_id': 'event.pro_05_probe_1', + 'entity_id': 'event.probe_1_event', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -351,7 +351,7 @@ }), 'original_device_class': None, 'original_icon': None, - 'original_name': 'Probe 1', + 'original_name': 'Event', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -361,7 +361,7 @@ 'unit_of_measurement': None, }) # --- -# name: test_setup[non_known_message][event.pro_05_probe_1-state] +# name: test_setup[non_known_message][event.probe_1_event-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'event_type': None, @@ -379,17 +379,17 @@ 'ambient_cool_down', 'probe_timer_alarm', ]), - 'friendly_name': 'Pro-05 Probe 1', + 'friendly_name': 'Probe 1 Event', }), 'context': , - 'entity_id': 'event.pro_05_probe_1', + 'entity_id': 'event.probe_1_event', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unknown', }) # --- -# name: test_setup[non_known_message][event.pro_05_probe_2-entry] +# name: test_setup[non_known_message][event.probe_2_event-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -417,7 +417,7 @@ 'disabled_by': None, 'domain': 'event', 'entity_category': None, - 'entity_id': 'event.pro_05_probe_2', + 'entity_id': 'event.probe_2_event', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -429,7 +429,7 @@ }), 'original_device_class': None, 'original_icon': None, - 'original_name': 'Probe 2', + 'original_name': 'Event', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -439,7 +439,7 @@ 'unit_of_measurement': None, }) # --- -# name: test_setup[non_known_message][event.pro_05_probe_2-state] +# name: test_setup[non_known_message][event.probe_2_event-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'event_type': None, @@ -457,10 +457,10 @@ 'ambient_cool_down', 'probe_timer_alarm', ]), - 'friendly_name': 'Pro-05 Probe 2', + 'friendly_name': 'Probe 2 Event', }), 'context': , - 'entity_id': 'event.pro_05_probe_2', + 'entity_id': 'event.probe_2_event', 'last_changed': , 'last_reported': , 'last_updated': , diff --git a/tests/components/togrill/snapshots/test_init.ambr b/tests/components/togrill/snapshots/test_init.ambr index b461d103e73..e4208e702cc 100644 --- a/tests/components/togrill/snapshots/test_init.ambr +++ b/tests/components/togrill/snapshots/test_init.ambr @@ -16,6 +16,10 @@ 'hw_version': None, 'id': , 'identifiers': set({ + tuple( + 'togrill', + '00000000-0000-0000-0000-000000000001', + ), }), 'labels': set({ }), diff --git a/tests/components/togrill/snapshots/test_number.ambr b/tests/components/togrill/snapshots/test_number.ambr index 639f2758c69..e38bbd9d133 100644 --- a/tests/components/togrill/snapshots/test_number.ambr +++ b/tests/components/togrill/snapshots/test_number.ambr @@ -58,7 +58,7 @@ 'state': '0', }) # --- -# name: test_setup[no_data][number.pro_05_target_1-entry] +# name: test_setup[no_data][number.probe_1_target_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -76,7 +76,7 @@ 'disabled_by': None, 'domain': 'number', 'entity_category': None, - 'entity_id': 'number.pro_05_target_1', + 'entity_id': 'number.probe_1_target_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -88,7 +88,7 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Target 1', + 'original_name': 'Target temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -98,11 +98,11 @@ 'unit_of_measurement': , }) # --- -# name: test_setup[no_data][number.pro_05_target_1-state] +# name: test_setup[no_data][number.probe_1_target_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Target 1', + 'friendly_name': 'Probe 1 Target temperature', 'max': 250, 'min': 0, 'mode': , @@ -110,14 +110,14 @@ 'unit_of_measurement': , }), 'context': , - 'entity_id': 'number.pro_05_target_1', + 'entity_id': 'number.probe_1_target_temperature', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unknown', }) # --- -# name: test_setup[no_data][number.pro_05_target_2-entry] +# name: test_setup[no_data][number.probe_2_target_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -135,7 +135,7 @@ 'disabled_by': None, 'domain': 'number', 'entity_category': None, - 'entity_id': 'number.pro_05_target_2', + 'entity_id': 'number.probe_2_target_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -147,7 +147,7 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Target 2', + 'original_name': 'Target temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -157,11 +157,11 @@ 'unit_of_measurement': , }) # --- -# name: test_setup[no_data][number.pro_05_target_2-state] +# name: test_setup[no_data][number.probe_2_target_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Target 2', + 'friendly_name': 'Probe 2 Target temperature', 'max': 250, 'min': 0, 'mode': , @@ -169,7 +169,7 @@ 'unit_of_measurement': , }), 'context': , - 'entity_id': 'number.pro_05_target_2', + 'entity_id': 'number.probe_2_target_temperature', 'last_changed': , 'last_reported': , 'last_updated': , @@ -235,7 +235,7 @@ 'state': '5', }) # --- -# name: test_setup[one_probe_with_target_alarm][number.pro_05_target_1-entry] +# name: test_setup[one_probe_with_target_alarm][number.probe_1_target_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -253,7 +253,7 @@ 'disabled_by': None, 'domain': 'number', 'entity_category': None, - 'entity_id': 'number.pro_05_target_1', + 'entity_id': 'number.probe_1_target_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -265,7 +265,7 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Target 1', + 'original_name': 'Target temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -275,11 +275,11 @@ 'unit_of_measurement': , }) # --- -# name: test_setup[one_probe_with_target_alarm][number.pro_05_target_1-state] +# name: test_setup[one_probe_with_target_alarm][number.probe_1_target_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Target 1', + 'friendly_name': 'Probe 1 Target temperature', 'max': 250, 'min': 0, 'mode': , @@ -287,14 +287,14 @@ 'unit_of_measurement': , }), 'context': , - 'entity_id': 'number.pro_05_target_1', + 'entity_id': 'number.probe_1_target_temperature', 'last_changed': , 'last_reported': , 'last_updated': , 'state': '50.0', }) # --- -# name: test_setup[one_probe_with_target_alarm][number.pro_05_target_2-entry] +# name: test_setup[one_probe_with_target_alarm][number.probe_2_target_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -312,7 +312,7 @@ 'disabled_by': None, 'domain': 'number', 'entity_category': None, - 'entity_id': 'number.pro_05_target_2', + 'entity_id': 'number.probe_2_target_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -324,7 +324,7 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Target 2', + 'original_name': 'Target temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, @@ -334,11 +334,11 @@ 'unit_of_measurement': , }) # --- -# name: test_setup[one_probe_with_target_alarm][number.pro_05_target_2-state] +# name: test_setup[one_probe_with_target_alarm][number.probe_2_target_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Target 2', + 'friendly_name': 'Probe 2 Target temperature', 'max': 250, 'min': 0, 'mode': , @@ -346,7 +346,7 @@ 'unit_of_measurement': , }), 'context': , - 'entity_id': 'number.pro_05_target_2', + 'entity_id': 'number.probe_2_target_temperature', 'last_changed': , 'last_reported': , 'last_updated': , diff --git a/tests/components/togrill/snapshots/test_sensor.ambr b/tests/components/togrill/snapshots/test_sensor.ambr index bc55d831500..d92dbca0a04 100644 --- a/tests/components/togrill/snapshots/test_sensor.ambr +++ b/tests/components/togrill/snapshots/test_sensor.ambr @@ -55,7 +55,7 @@ 'state': '45', }) # --- -# name: test_setup[battery][sensor.pro_05_probe_1-entry] +# name: test_setup[battery][sensor.probe_1_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -70,7 +70,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -85,33 +85,33 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 1', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_1', 'unit_of_measurement': , }) # --- -# name: test_setup[battery][sensor.pro_05_probe_1-state] +# name: test_setup[battery][sensor.probe_1_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 1', + 'friendly_name': 'Probe 1 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unavailable', }) # --- -# name: test_setup[battery][sensor.pro_05_probe_2-entry] +# name: test_setup[battery][sensor.probe_2_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -126,7 +126,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -141,26 +141,26 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 2', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_2', 'unit_of_measurement': , }) # --- -# name: test_setup[battery][sensor.pro_05_probe_2-state] +# name: test_setup[battery][sensor.probe_2_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 2', + 'friendly_name': 'Probe 2 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'last_changed': , 'last_reported': , 'last_updated': , @@ -223,7 +223,7 @@ 'state': '0', }) # --- -# name: test_setup[no_data][sensor.pro_05_probe_1-entry] +# name: test_setup[no_data][sensor.probe_1_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -238,7 +238,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -253,33 +253,33 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 1', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_1', 'unit_of_measurement': , }) # --- -# name: test_setup[no_data][sensor.pro_05_probe_1-state] +# name: test_setup[no_data][sensor.probe_1_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 1', + 'friendly_name': 'Probe 1 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'unavailable', }) # --- -# name: test_setup[no_data][sensor.pro_05_probe_2-entry] +# name: test_setup[no_data][sensor.probe_2_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -294,7 +294,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -309,26 +309,26 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 2', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_2', 'unit_of_measurement': , }) # --- -# name: test_setup[no_data][sensor.pro_05_probe_2-state] +# name: test_setup[no_data][sensor.probe_2_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 2', + 'friendly_name': 'Probe 2 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'last_changed': , 'last_reported': , 'last_updated': , @@ -391,7 +391,7 @@ 'state': '0', }) # --- -# name: test_setup[temp_data][sensor.pro_05_probe_1-entry] +# name: test_setup[temp_data][sensor.probe_1_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -406,7 +406,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -421,33 +421,33 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 1', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_1', 'unit_of_measurement': , }) # --- -# name: test_setup[temp_data][sensor.pro_05_probe_1-state] +# name: test_setup[temp_data][sensor.probe_1_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 1', + 'friendly_name': 'Probe 1 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'last_changed': , 'last_reported': , 'last_updated': , 'state': '10', }) # --- -# name: test_setup[temp_data][sensor.pro_05_probe_2-entry] +# name: test_setup[temp_data][sensor.probe_2_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -462,7 +462,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -477,26 +477,26 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 2', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_2', 'unit_of_measurement': , }) # --- -# name: test_setup[temp_data][sensor.pro_05_probe_2-state] +# name: test_setup[temp_data][sensor.probe_2_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 2', + 'friendly_name': 'Probe 2 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'last_changed': , 'last_reported': , 'last_updated': , @@ -559,7 +559,7 @@ 'state': '0', }) # --- -# name: test_setup[temp_data_missing_probe][sensor.pro_05_probe_1-entry] +# name: test_setup[temp_data_missing_probe][sensor.probe_1_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -574,7 +574,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -589,33 +589,33 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 1', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_1', 'unit_of_measurement': , }) # --- -# name: test_setup[temp_data_missing_probe][sensor.pro_05_probe_1-state] +# name: test_setup[temp_data_missing_probe][sensor.probe_1_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 1', + 'friendly_name': 'Probe 1 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_1', + 'entity_id': 'sensor.probe_1_temperature', 'last_changed': , 'last_reported': , 'last_updated': , 'state': '10', }) # --- -# name: test_setup[temp_data_missing_probe][sensor.pro_05_probe_2-entry] +# name: test_setup[temp_data_missing_probe][sensor.probe_2_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -630,7 +630,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -645,26 +645,26 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Probe 2', + 'original_name': 'Temperature', 'platform': 'togrill', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'temperature', + 'translation_key': None, 'unique_id': '00000000-0000-0000-0000-000000000001_temperature_2', 'unit_of_measurement': , }) # --- -# name: test_setup[temp_data_missing_probe][sensor.pro_05_probe_2-state] +# name: test_setup[temp_data_missing_probe][sensor.probe_2_temperature-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'temperature', - 'friendly_name': 'Pro-05 Probe 2', + 'friendly_name': 'Probe 2 Temperature', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.pro_05_probe_2', + 'entity_id': 'sensor.probe_2_temperature', 'last_changed': , 'last_reported': , 'last_updated': , diff --git a/tests/components/togrill/test_event.py b/tests/components/togrill/test_event.py index 6aa6019303a..a42febbe2ce 100644 --- a/tests/components/togrill/test_event.py +++ b/tests/components/togrill/test_event.py @@ -68,11 +68,11 @@ async def test_events( mock_client.mocked_notify(PacketA5Notify(probe=1, message=message)) - state = hass.states.get("event.pro_05_probe_2") + state = hass.states.get("event.probe_2_event") assert state assert state.state == STATE_UNKNOWN - state = hass.states.get("event.pro_05_probe_1") + state = hass.states.get("event.probe_1_event") assert state assert state.state == "2023-10-21T00:00:00.000+00:00" assert state.attributes.get(ATTR_EVENT_TYPE) == slugify(message.name) diff --git a/tests/components/togrill/test_number.py b/tests/components/togrill/test_number.py index f6031e114d1..6cf7dc4d479 100644 --- a/tests/components/togrill/test_number.py +++ b/tests/components/togrill/test_number.py @@ -87,7 +87,7 @@ async def test_setup( temperature_1=50.0, ), ], - "number.pro_05_target_1", + "number.probe_1_target_temperature", 100.0, PacketA301Write(probe=1, target=100), id="probe", @@ -100,7 +100,7 @@ async def test_setup( temperature_1=50.0, ), ], - "number.pro_05_target_1", + "number.probe_1_target_temperature", 0.0, PacketA301Write(probe=1, target=None), id="probe_clear", @@ -203,7 +203,7 @@ async def test_set_number_write_error( ATTR_VALUE: 100, }, target={ - ATTR_ENTITY_ID: "number.pro_05_target_1", + ATTR_ENTITY_ID: "number.probe_1_target_temperature", }, blocking=True, ) @@ -237,7 +237,7 @@ async def test_set_number_disconnected( ATTR_VALUE: 100, }, target={ - ATTR_ENTITY_ID: "number.pro_05_target_1", + ATTR_ENTITY_ID: "number.probe_1_target_temperature", }, blocking=True, )