diff --git a/homeassistant/components/onewire/onewirehub.py b/homeassistant/components/onewire/onewirehub.py index 2fd445a1ca3..deeaaa6283d 100644 --- a/homeassistant/components/onewire/onewirehub.py +++ b/homeassistant/components/onewire/onewirehub.py @@ -8,15 +8,7 @@ import os from pyownet import protocol from homeassistant.config_entries import ConfigEntry -from homeassistant.const import ( - ATTR_IDENTIFIERS, - ATTR_MANUFACTURER, - ATTR_MODEL, - ATTR_NAME, - ATTR_VIA_DEVICE, - CONF_HOST, - CONF_PORT, -) +from homeassistant.const import ATTR_VIA_DEVICE, CONF_HOST, CONF_PORT from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr from homeassistant.helpers.device_registry import DeviceInfo @@ -80,14 +72,9 @@ class OneWireHub: # Populate the device registry device_registry = dr.async_get(self._hass) for device in self.devices: - device_info = device.device_info device_registry.async_get_or_create( config_entry_id=self._config_entry.entry_id, - identifiers=device_info[ATTR_IDENTIFIERS], - manufacturer=device_info[ATTR_MANUFACTURER], - model=device_info[ATTR_MODEL], - name=device_info[ATTR_NAME], - via_device=device_info.get(ATTR_VIA_DEVICE), + **device.device_info, ) @@ -113,7 +100,9 @@ def _discover_devices( identifiers={(DOMAIN, device_id)}, manufacturer=DEVICE_MANUFACTURER.get(device_family, MANUFACTURER_MAXIM), model=device_type, + model_id=device_type, name=device_id, + serial_number=device_id[3:], ) if parent_id: device_info[ATTR_VIA_DEVICE] = (DOMAIN, parent_id) diff --git a/tests/components/onewire/snapshots/test_diagnostics.ambr b/tests/components/onewire/snapshots/test_diagnostics.ambr index f51fca7e988..6c5631331ca 100644 --- a/tests/components/onewire/snapshots/test_diagnostics.ambr +++ b/tests/components/onewire/snapshots/test_diagnostics.ambr @@ -12,7 +12,9 @@ ]), 'manufacturer': 'Hobby Boards', 'model': 'HB_HUB', + 'model_id': 'HB_HUB', 'name': 'EF.111111111113', + 'serial_number': '111111111113', }), 'family': 'EF', 'id': 'EF.111111111113', diff --git a/tests/components/onewire/snapshots/test_init.ambr b/tests/components/onewire/snapshots/test_init.ambr index e2d818534f5..159f3acea42 100644 --- a/tests/components/onewire/snapshots/test_init.ambr +++ b/tests/components/onewire/snapshots/test_init.ambr @@ -21,11 +21,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2405', - 'model_id': None, + 'model_id': 'DS2405', 'name': '05.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -53,11 +53,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18S20', - 'model_id': None, + 'model_id': 'DS18S20', 'name': '10.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -85,11 +85,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2406', - 'model_id': None, + 'model_id': 'DS2406', 'name': '12.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -117,11 +117,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2423', - 'model_id': None, + 'model_id': 'DS2423', 'name': '1D.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': , @@ -149,11 +149,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2409', - 'model_id': None, + 'model_id': 'DS2409', 'name': '1F.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -181,11 +181,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1822', - 'model_id': None, + 'model_id': 'DS1822', 'name': '22.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -213,11 +213,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2438', - 'model_id': None, + 'model_id': 'DS2438', 'name': '26.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -245,11 +245,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', - 'model_id': None, + 'model_id': 'DS18B20', 'name': '28.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -277,11 +277,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', - 'model_id': None, + 'model_id': 'DS18B20', 'name': '28.222222222222', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '222222222222', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -309,11 +309,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', - 'model_id': None, + 'model_id': 'DS18B20', 'name': '28.222222222223', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '222222222223', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -341,11 +341,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2408', - 'model_id': None, + 'model_id': 'DS2408', 'name': '29.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -373,11 +373,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2760', - 'model_id': None, + 'model_id': 'DS2760', 'name': '30.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -405,11 +405,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2413', - 'model_id': None, + 'model_id': 'DS2413', 'name': '3A.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -437,11 +437,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1825', - 'model_id': None, + 'model_id': 'DS1825', 'name': '3B.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -469,11 +469,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS28EA00', - 'model_id': None, + 'model_id': 'DS28EA00', 'name': '42.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -501,11 +501,11 @@ }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0068', - 'model_id': None, + 'model_id': 'EDS0068', 'name': '7E.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -533,11 +533,11 @@ }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0066', - 'model_id': None, + 'model_id': 'EDS0066', 'name': '7E.222222222222', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '222222222222', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -565,11 +565,11 @@ }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2438', - 'model_id': None, + 'model_id': 'DS2438', 'name': 'A6.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -597,11 +597,11 @@ }), 'manufacturer': 'Hobby Boards', 'model': 'HobbyBoards_EF', - 'model_id': None, + 'model_id': 'HobbyBoards_EF', 'name': 'EF.111111111111', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111111', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -629,11 +629,11 @@ }), 'manufacturer': 'Hobby Boards', 'model': 'HB_MOISTURE_METER', - 'model_id': None, + 'model_id': 'HB_MOISTURE_METER', 'name': 'EF.111111111112', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111112', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, @@ -661,11 +661,11 @@ }), 'manufacturer': 'Hobby Boards', 'model': 'HB_HUB', - 'model_id': None, + 'model_id': 'HB_HUB', 'name': 'EF.111111111113', 'name_by_user': None, 'primary_config_entry': , - 'serial_number': None, + 'serial_number': '111111111113', 'suggested_area': None, 'sw_version': None, 'via_device_id': None, diff --git a/tests/components/onewire/test_diagnostics.py b/tests/components/onewire/test_diagnostics.py index ebbd8fdbf02..60b57bd14f7 100644 --- a/tests/components/onewire/test_diagnostics.py +++ b/tests/components/onewire/test_diagnostics.py @@ -23,20 +23,6 @@ def override_platforms() -> Generator[None]: yield -DEVICE_DETAILS = { - "device_info": { - "identifiers": [["onewire", "EF.111111111113"]], - "manufacturer": "Hobby Boards", - "model": "HB_HUB", - "name": "EF.111111111113", - }, - "family": "EF", - "id": "EF.111111111113", - "path": "/EF.111111111113/", - "type": "HB_HUB", -} - - @pytest.mark.parametrize("device_id", ["EF.111111111113"], indirect=True) async def test_entry_diagnostics( hass: HomeAssistant,