diff --git a/homeassistant/components/onewire/onewirehub.py b/homeassistant/components/onewire/onewirehub.py index a8d8dd06034..d65d7a90950 100644 --- a/homeassistant/components/onewire/onewirehub.py +++ b/homeassistant/components/onewire/onewirehub.py @@ -58,6 +58,7 @@ class OneWireHub: owproxy: protocol._Proxy devices: list[OWDeviceDescription] + _version: str def __init__(self, hass: HomeAssistant, config_entry: OneWireConfigEntry) -> None: """Initialize.""" @@ -73,6 +74,7 @@ class OneWireHub: port = self._config_entry.data[CONF_PORT] _LOGGER.debug("Initializing connection to %s:%s", host, port) self.owproxy = protocol.proxy(host, port) + self._version = self.owproxy.read(protocol.PTH_VERSION).decode() self.devices = _discover_devices(self.owproxy) async def initialize(self) -> None: @@ -85,6 +87,7 @@ class OneWireHub: """Populate the device registry.""" device_registry = dr.async_get(self._hass) for device in devices: + device.device_info["sw_version"] = self._version device_registry.async_get_or_create( config_entry_id=self._config_entry.entry_id, **device.device_info, diff --git a/tests/components/onewire/__init__.py b/tests/components/onewire/__init__.py index 9c025fe33af..595b660b722 100644 --- a/tests/components/onewire/__init__.py +++ b/tests/components/onewire/__init__.py @@ -13,7 +13,9 @@ from .const import ATTR_INJECT_READS, MOCK_OWPROXY_DEVICES def setup_owproxy_mock_devices(owproxy: MagicMock, device_ids: list[str]) -> None: """Set up mock for owproxy.""" dir_side_effect: dict[str, list] = {} - read_side_effect: dict[str, list] = {} + read_side_effect: dict[str, list] = { + "/system/configuration/version": [b"3.2"], + } # Setup directory listing dir_side_effect["/"] = [[f"/{device_id}/" for device_id in device_ids]] diff --git a/tests/components/onewire/snapshots/test_diagnostics.ambr b/tests/components/onewire/snapshots/test_diagnostics.ambr index 6c5631331ca..c60d0a9748b 100644 --- a/tests/components/onewire/snapshots/test_diagnostics.ambr +++ b/tests/components/onewire/snapshots/test_diagnostics.ambr @@ -15,6 +15,7 @@ 'model_id': 'HB_HUB', 'name': 'EF.111111111113', 'serial_number': '111111111113', + 'sw_version': '3.2', }), 'family': 'EF', 'id': 'EF.111111111113', diff --git a/tests/components/onewire/snapshots/test_init.ambr b/tests/components/onewire/snapshots/test_init.ambr index ee5d6d99158..5666dab6383 100644 --- a/tests/components/onewire/snapshots/test_init.ambr +++ b/tests/components/onewire/snapshots/test_init.ambr @@ -27,7 +27,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -59,7 +59,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -91,7 +91,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -123,7 +123,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': , }) # --- @@ -155,7 +155,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -187,7 +187,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -219,7 +219,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -251,7 +251,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -283,7 +283,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -315,7 +315,7 @@ 'primary_config_entry': , 'serial_number': '222222222222', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -347,7 +347,7 @@ 'primary_config_entry': , 'serial_number': '222222222223', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -379,7 +379,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -411,7 +411,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -443,7 +443,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -475,7 +475,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -507,7 +507,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -539,7 +539,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -571,7 +571,7 @@ 'primary_config_entry': , 'serial_number': '222222222222', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -603,7 +603,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -635,7 +635,7 @@ 'primary_config_entry': , 'serial_number': '111111111111', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -667,7 +667,7 @@ 'primary_config_entry': , 'serial_number': '111111111112', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # --- @@ -699,7 +699,7 @@ 'primary_config_entry': , 'serial_number': '111111111113', 'suggested_area': None, - 'sw_version': None, + 'sw_version': '3.2', 'via_device_id': None, }) # ---