diff --git a/homeassistant/components/airthings_ble/strings.json b/homeassistant/components/airthings_ble/strings.json index 6f17b9a317e..4b38923384a 100644 --- a/homeassistant/components/airthings_ble/strings.json +++ b/homeassistant/components/airthings_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/aranet/strings.json b/homeassistant/components/aranet/strings.json index 918cfc1d384..ac8d1907770 100644 --- a/homeassistant/components/aranet/strings.json +++ b/homeassistant/components/aranet/strings.json @@ -11,7 +11,7 @@ "description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]" } }, - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "error": { "unknown": "[%key:common::config_flow::error::unknown%]" }, diff --git a/homeassistant/components/bluemaestro/strings.json b/homeassistant/components/bluemaestro/strings.json index 9dc500980a6..8f84456d3a7 100644 --- a/homeassistant/components/bluemaestro/strings.json +++ b/homeassistant/components/bluemaestro/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/bluetooth/config_flow.py b/homeassistant/components/bluetooth/config_flow.py index 2b5980fbcd6..6802bdc37c0 100644 --- a/homeassistant/components/bluetooth/config_flow.py +++ b/homeassistant/components/bluetooth/config_flow.py @@ -6,8 +6,10 @@ from typing import Any, cast from bluetooth_adapters import ( ADAPTER_ADDRESS, + ADAPTER_MANUFACTURER, AdapterDetails, adapter_human_name, + adapter_model, adapter_unique_name, get_adapters, ) @@ -35,6 +37,22 @@ OPTIONS_FLOW = { } +def adapter_display_info(adapter: str, details: AdapterDetails) -> str: + """Return the adapter display info.""" + name = adapter_human_name(adapter, details[ADAPTER_ADDRESS]) + model = adapter_model(details) + manufacturer = details[ADAPTER_MANUFACTURER] or "Unknown" + return f"{name} {manufacturer} {model}" + + +def adapter_title(adapter: str, details: AdapterDetails) -> str: + """Return the adapter title.""" + unique_name = adapter_unique_name(adapter, details[ADAPTER_ADDRESS]) + model = adapter_model(details) + manufacturer = details[ADAPTER_MANUFACTURER] or "Unknown" + return f"{manufacturer} {model} ({unique_name})" + + class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): """Config flow for Bluetooth.""" @@ -45,6 +63,7 @@ class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): self._adapter: str | None = None self._details: AdapterDetails | None = None self._adapters: dict[str, AdapterDetails] = {} + self._placeholders: dict[str, str] = {} async def async_step_integration_discovery( self, discovery_info: DiscoveryInfoType @@ -54,11 +73,23 @@ class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): self._details = cast(AdapterDetails, discovery_info[CONF_DETAILS]) await self.async_set_unique_id(self._details[ADAPTER_ADDRESS]) self._abort_if_unique_id_configured() - self.context["title_placeholders"] = { - "name": adapter_human_name(self._adapter, self._details[ADAPTER_ADDRESS]) - } + details = self._details + self._async_set_adapter_info(self._adapter, details) return await self.async_step_single_adapter() + @callback + def _async_set_adapter_info(self, adapter: str, details: AdapterDetails) -> None: + """Set the adapter info.""" + name = adapter_human_name(adapter, details[ADAPTER_ADDRESS]) + model = adapter_model(details) + manufacturer = details[ADAPTER_MANUFACTURER] + self._placeholders = { + "name": name, + "model": model, + "manufacturer": manufacturer or "Unknown", + } + self.context["title_placeholders"] = self._placeholders + async def async_step_single_adapter( self, user_input: dict[str, Any] | None = None ) -> ConfigFlowResult: @@ -67,6 +98,7 @@ class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): details = self._details assert adapter is not None assert details is not None + assert self._placeholders is not None address = details[ADAPTER_ADDRESS] @@ -74,12 +106,12 @@ class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): await self.async_set_unique_id(address, raise_on_progress=False) self._abort_if_unique_id_configured() return self.async_create_entry( - title=adapter_unique_name(adapter, address), data={} + title=adapter_title(adapter, details), data={} ) return self.async_show_form( step_id="single_adapter", - description_placeholders={"name": adapter_human_name(adapter, address)}, + description_placeholders=self._placeholders, ) async def async_step_multiple_adapters( @@ -89,11 +121,12 @@ class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): if user_input is not None: assert self._adapters is not None adapter = user_input[CONF_ADAPTER] - address = self._adapters[adapter][ADAPTER_ADDRESS] + details = self._adapters[adapter] + address = details[ADAPTER_ADDRESS] await self.async_set_unique_id(address, raise_on_progress=False) self._abort_if_unique_id_configured() return self.async_create_entry( - title=adapter_unique_name(adapter, address), data={} + title=adapter_title(adapter, details), data={} ) configured_addresses = self._async_current_ids() @@ -116,6 +149,7 @@ class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): if len(unconfigured_adapters) == 1: self._adapter = list(self._adapters)[0] self._details = self._adapters[self._adapter] + self._async_set_adapter_info(self._adapter, self._details) return await self.async_step_single_adapter() return self.async_show_form( @@ -124,8 +158,8 @@ class BluetoothConfigFlow(ConfigFlow, domain=DOMAIN): { vol.Required(CONF_ADAPTER): vol.In( { - adapter: adapter_human_name( - adapter, self._adapters[adapter][ADAPTER_ADDRESS] + adapter: adapter_display_info( + adapter, self._adapters[adapter] ) for adapter in sorted(unconfigured_adapters) } diff --git a/homeassistant/components/bluetooth/strings.json b/homeassistant/components/bluetooth/strings.json index 4b168126251..c28bd3cc65e 100644 --- a/homeassistant/components/bluetooth/strings.json +++ b/homeassistant/components/bluetooth/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "{name}", + "flow_title": "{name} {manufacturer} {model}", "step": { "user": { "description": "Choose a device to set up", @@ -18,7 +18,7 @@ } }, "single_adapter": { - "description": "Do you want to set up the Bluetooth adapter {name}?" + "description": "Do you want to set up the Bluetooth adapter {name} {manufacturer} {model}?" } }, "abort": { diff --git a/homeassistant/components/bthome/strings.json b/homeassistant/components/bthome/strings.json index 50c5c7bada6..c64028229b3 100644 --- a/homeassistant/components/bthome/strings.json +++ b/homeassistant/components/bthome/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/dormakaba_dkey/strings.json b/homeassistant/components/dormakaba_dkey/strings.json index 480f021b126..1fdc7cb359f 100644 --- a/homeassistant/components/dormakaba_dkey/strings.json +++ b/homeassistant/components/dormakaba_dkey/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/eufylife_ble/strings.json b/homeassistant/components/eufylife_ble/strings.json index aaeeeb85f67..72f0e7b5973 100644 --- a/homeassistant/components/eufylife_ble/strings.json +++ b/homeassistant/components/eufylife_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/govee_ble/strings.json b/homeassistant/components/govee_ble/strings.json index 4003debbbeb..4e12a84b653 100644 --- a/homeassistant/components/govee_ble/strings.json +++ b/homeassistant/components/govee_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/improv_ble/strings.json b/homeassistant/components/improv_ble/strings.json index b5713910134..be157b8070d 100644 --- a/homeassistant/components/improv_ble/strings.json +++ b/homeassistant/components/improv_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/inkbird/strings.json b/homeassistant/components/inkbird/strings.json index 4003debbbeb..4e12a84b653 100644 --- a/homeassistant/components/inkbird/strings.json +++ b/homeassistant/components/inkbird/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/kegtron/strings.json b/homeassistant/components/kegtron/strings.json index d1d544c2381..16a80220a20 100644 --- a/homeassistant/components/kegtron/strings.json +++ b/homeassistant/components/kegtron/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/leaone/strings.json b/homeassistant/components/leaone/strings.json index 6391c754dec..bb684941147 100644 --- a/homeassistant/components/leaone/strings.json +++ b/homeassistant/components/leaone/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/medcom_ble/strings.json b/homeassistant/components/medcom_ble/strings.json index 56cfb5a1dd7..4f2b29b7269 100644 --- a/homeassistant/components/medcom_ble/strings.json +++ b/homeassistant/components/medcom_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/moat/strings.json b/homeassistant/components/moat/strings.json index 4003debbbeb..4e12a84b653 100644 --- a/homeassistant/components/moat/strings.json +++ b/homeassistant/components/moat/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/mopeka/strings.json b/homeassistant/components/mopeka/strings.json index d1d544c2381..16a80220a20 100644 --- a/homeassistant/components/mopeka/strings.json +++ b/homeassistant/components/mopeka/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/oralb/strings.json b/homeassistant/components/oralb/strings.json index f60fd56a9a4..775bbedac74 100644 --- a/homeassistant/components/oralb/strings.json +++ b/homeassistant/components/oralb/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/private_ble_device/strings.json b/homeassistant/components/private_ble_device/strings.json index 9e20a9476ec..c35775a4843 100644 --- a/homeassistant/components/private_ble_device/strings.json +++ b/homeassistant/components/private_ble_device/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "What is the IRK (Identity Resolving Key) of the BLE device you want to track?", diff --git a/homeassistant/components/qingping/strings.json b/homeassistant/components/qingping/strings.json index d1d544c2381..16a80220a20 100644 --- a/homeassistant/components/qingping/strings.json +++ b/homeassistant/components/qingping/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/rapt_ble/strings.json b/homeassistant/components/rapt_ble/strings.json index 4003debbbeb..4e12a84b653 100644 --- a/homeassistant/components/rapt_ble/strings.json +++ b/homeassistant/components/rapt_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/ruuvitag_ble/strings.json b/homeassistant/components/ruuvitag_ble/strings.json index d1d544c2381..16a80220a20 100644 --- a/homeassistant/components/ruuvitag_ble/strings.json +++ b/homeassistant/components/ruuvitag_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/sensirion_ble/strings.json b/homeassistant/components/sensirion_ble/strings.json index d1d544c2381..16a80220a20 100644 --- a/homeassistant/components/sensirion_ble/strings.json +++ b/homeassistant/components/sensirion_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/sensorpro/strings.json b/homeassistant/components/sensorpro/strings.json index d1d544c2381..16a80220a20 100644 --- a/homeassistant/components/sensorpro/strings.json +++ b/homeassistant/components/sensorpro/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/sensorpush/strings.json b/homeassistant/components/sensorpush/strings.json index 4003debbbeb..4e12a84b653 100644 --- a/homeassistant/components/sensorpush/strings.json +++ b/homeassistant/components/sensorpush/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/snooz/strings.json b/homeassistant/components/snooz/strings.json index b38e105260c..5a31cea6cac 100644 --- a/homeassistant/components/snooz/strings.json +++ b/homeassistant/components/snooz/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/thermobeacon/strings.json b/homeassistant/components/thermobeacon/strings.json index d1d544c2381..16a80220a20 100644 --- a/homeassistant/components/thermobeacon/strings.json +++ b/homeassistant/components/thermobeacon/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/thermopro/strings.json b/homeassistant/components/thermopro/strings.json index 4003debbbeb..4e12a84b653 100644 --- a/homeassistant/components/thermopro/strings.json +++ b/homeassistant/components/thermopro/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/tilt_ble/strings.json b/homeassistant/components/tilt_ble/strings.json index 4003debbbeb..4e12a84b653 100644 --- a/homeassistant/components/tilt_ble/strings.json +++ b/homeassistant/components/tilt_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/homeassistant/components/xiaomi_ble/strings.json b/homeassistant/components/xiaomi_ble/strings.json index 2f2b705ff60..8ee8bac3fea 100644 --- a/homeassistant/components/xiaomi_ble/strings.json +++ b/homeassistant/components/xiaomi_ble/strings.json @@ -1,6 +1,6 @@ { "config": { - "flow_title": "[%key:component::bluetooth::config::flow_title%]", + "flow_title": "{name}", "step": { "user": { "description": "[%key:component::bluetooth::config::step::user::description%]", diff --git a/tests/components/bluetooth/test_config_flow.py b/tests/components/bluetooth/test_config_flow.py index 89243223129..f9bbbcd2d0e 100644 --- a/tests/components/bluetooth/test_config_flow.py +++ b/tests/components/bluetooth/test_config_flow.py @@ -65,7 +65,7 @@ async def test_async_step_user_macos(hass: HomeAssistant, macos_adapter: None) - result["flow_id"], user_input={} ) assert result2["type"] is FlowResultType.CREATE_ENTRY - assert result2["title"] == "Core Bluetooth" + assert result2["title"] == "Apple Unknown MacOS Model (Core Bluetooth)" assert result2["data"] == {} assert len(mock_setup_entry.mock_calls) == 1 @@ -81,6 +81,11 @@ async def test_async_step_user_linux_one_adapter( ) assert result["type"] is FlowResultType.FORM assert result["step_id"] == "single_adapter" + assert result["description_placeholders"] == { + "name": "hci0 (00:00:00:00:00:01)", + "model": "Bluetooth Adapter 5.0 (cc01:aa01)", + "manufacturer": "ACME", + } with ( patch("homeassistant.components.bluetooth.async_setup", return_value=True), patch( @@ -91,7 +96,9 @@ async def test_async_step_user_linux_one_adapter( result["flow_id"], user_input={} ) assert result2["type"] is FlowResultType.CREATE_ENTRY - assert result2["title"] == "00:00:00:00:00:01" + assert ( + result2["title"] == "ACME Bluetooth Adapter 5.0 (cc01:aa01) (00:00:00:00:00:01)" + ) assert result2["data"] == {} assert len(mock_setup_entry.mock_calls) == 1 @@ -107,6 +114,10 @@ async def test_async_step_user_linux_two_adapters( ) assert result["type"] is FlowResultType.FORM assert result["step_id"] == "multiple_adapters" + assert result["data_schema"].schema["adapter"].container == { + "hci0": "hci0 (00:00:00:00:00:01) ACME Bluetooth Adapter 5.0 (cc01:aa01)", + "hci1": "hci1 (00:00:00:00:00:02) ACME Bluetooth Adapter 5.0 (cc01:aa01)", + } with ( patch("homeassistant.components.bluetooth.async_setup", return_value=True), patch( @@ -117,7 +128,9 @@ async def test_async_step_user_linux_two_adapters( result["flow_id"], user_input={CONF_ADAPTER: "hci1"} ) assert result2["type"] is FlowResultType.CREATE_ENTRY - assert result2["title"] == "00:00:00:00:00:02" + assert ( + result2["title"] == "ACME Bluetooth Adapter 5.0 (cc01:aa01) (00:00:00:00:00:02)" + ) assert result2["data"] == {} assert len(mock_setup_entry.mock_calls) == 1 @@ -153,6 +166,11 @@ async def test_async_step_integration_discovery(hass: HomeAssistant) -> None: data={CONF_ADAPTER: "hci0", CONF_DETAILS: details}, ) assert result["type"] is FlowResultType.FORM + assert result["description_placeholders"] == { + "name": "hci0 (00:00:00:00:00:01)", + "model": "Unknown", + "manufacturer": "ACME", + } assert result["step_id"] == "single_adapter" with ( patch("homeassistant.components.bluetooth.async_setup", return_value=True), @@ -164,7 +182,7 @@ async def test_async_step_integration_discovery(hass: HomeAssistant) -> None: result["flow_id"], user_input={} ) assert result2["type"] is FlowResultType.CREATE_ENTRY - assert result2["title"] == "00:00:00:00:00:01" + assert result2["title"] == "ACME Unknown (00:00:00:00:00:01)" assert result2["data"] == {} assert len(mock_setup_entry.mock_calls) == 1 @@ -196,7 +214,7 @@ async def test_async_step_integration_discovery_during_onboarding_one_adapter( data={CONF_ADAPTER: "hci0", CONF_DETAILS: details}, ) assert result["type"] is FlowResultType.CREATE_ENTRY - assert result["title"] == "00:00:00:00:00:01" + assert result["title"] == "ACME Unknown (00:00:00:00:00:01)" assert result["data"] == {} assert len(mock_setup_entry.mock_calls) == 1 assert len(mock_onboarding.mock_calls) == 1 @@ -240,11 +258,11 @@ async def test_async_step_integration_discovery_during_onboarding_two_adapters( data={CONF_ADAPTER: "hci1", CONF_DETAILS: details2}, ) assert result["type"] is FlowResultType.CREATE_ENTRY - assert result["title"] == "00:00:00:00:00:01" + assert result["title"] == "ACME Unknown (00:00:00:00:00:01)" assert result["data"] == {} assert result2["type"] is FlowResultType.CREATE_ENTRY - assert result2["title"] == "00:00:00:00:00:02" + assert result2["title"] == "ACME Unknown (00:00:00:00:00:02)" assert result2["data"] == {} assert len(mock_setup_entry.mock_calls) == 2 @@ -278,7 +296,7 @@ async def test_async_step_integration_discovery_during_onboarding( data={CONF_ADAPTER: "Core Bluetooth", CONF_DETAILS: details}, ) assert result["type"] is FlowResultType.CREATE_ENTRY - assert result["title"] == "Core Bluetooth" + assert result["title"] == "ACME Unknown (Core Bluetooth)" assert result["data"] == {} assert len(mock_setup_entry.mock_calls) == 1 assert len(mock_onboarding.mock_calls) == 1 diff --git a/tests/components/bluetooth/test_init.py b/tests/components/bluetooth/test_init.py index 65962ac8f21..e68ccc94d19 100644 --- a/tests/components/bluetooth/test_init.py +++ b/tests/components/bluetooth/test_init.py @@ -3015,12 +3015,14 @@ async def test_discover_new_usb_adapters( "hw_version": "usb:v1D6Bp0246d053F", "passive_scan": False, "sw_version": "homeassistant", + "manufacturer": "ACME", }, "hci1": { "address": "00:00:00:00:00:02", "hw_version": "usb:v1D6Bp0246d053F", "passive_scan": False, "sw_version": "homeassistant", + "manufacturer": "ACME", }, }, ), @@ -3088,12 +3090,14 @@ async def test_discover_new_usb_adapters_with_firmware_fallback_delay( "hw_version": "usb:v1D6Bp0246d053F", "passive_scan": False, "sw_version": "homeassistant", + "manufacturer": "ACME", }, "hci1": { "address": "00:00:00:00:00:02", "hw_version": "usb:v1D6Bp0246d053F", "passive_scan": False, "sw_version": "homeassistant", + "manufacturer": "ACME", }, }, ),