diff --git a/homeassistant/components/fritz/common.py b/homeassistant/components/fritz/common.py index 81fdcde236a..cdea8ebee54 100644 --- a/homeassistant/components/fritz/common.py +++ b/homeassistant/components/fritz/common.py @@ -6,6 +6,7 @@ from dataclasses import dataclass, field from datetime import datetime, timedelta from functools import partial import logging +import re from types import MappingProxyType from typing import Any, TypedDict, cast @@ -259,7 +260,12 @@ class FritzBoxTools( self._unique_id = info.serial_number self._model = info.model_name - self._current_firmware = info.software_version + if ( + version_normalized := re.search(r"^\d+\.[0]?(.*)", info.software_version) + ) is not None: + self._current_firmware = version_normalized.group(1) + else: + self._current_firmware = info.software_version ( self._update_available, diff --git a/tests/components/fritz/const.py b/tests/components/fritz/const.py index c19327fbf5e..dc27e8aab96 100644 --- a/tests/components/fritz/const.py +++ b/tests/components/fritz/const.py @@ -29,7 +29,7 @@ MOCK_HOST = "fake_host" MOCK_IPS = {"fritz.box": "192.168.178.1", "printer": "192.168.178.2"} MOCK_MODELNAME = "FRITZ!Box 7530 AX" MOCK_FIRMWARE = "256.07.29" -MOCK_FIRMWARE_AVAILABLE = "256.07.50" +MOCK_FIRMWARE_AVAILABLE = "7.50" MOCK_FIRMWARE_RELEASE_URL = ( "http://download.avm.de/fritzbox/fritzbox-7530-ax/deutschland/fritz.os/info_de.txt" ) diff --git a/tests/components/fritz/test_diagnostics.py b/tests/components/fritz/test_diagnostics.py index f7e5980720d..760b5f32d0c 100644 --- a/tests/components/fritz/test_diagnostics.py +++ b/tests/components/fritz/test_diagnostics.py @@ -50,7 +50,7 @@ async def test_entry_diagnostics( for _, device in avm_wrapper.devices.items() ], "connection_type": "WANPPPConnection", - "current_firmware": "256.07.29", + "current_firmware": "7.29", "discovered_services": [ "DeviceInfo1", "Hosts1", diff --git a/tests/components/fritz/test_update.py b/tests/components/fritz/test_update.py index 915a6bb6fd0..99ca7a3b6c5 100644 --- a/tests/components/fritz/test_update.py +++ b/tests/components/fritz/test_update.py @@ -9,7 +9,6 @@ from homeassistant.core import HomeAssistant from homeassistant.setup import async_setup_component from .const import ( - MOCK_FIRMWARE, MOCK_FIRMWARE_AVAILABLE, MOCK_FIRMWARE_RELEASE_URL, MOCK_USER_DATA, @@ -60,7 +59,7 @@ async def test_update_available( update = hass.states.get("update.mock_title_fritz_os") assert update is not None assert update.state == "on" - assert update.attributes.get("installed_version") == MOCK_FIRMWARE + assert update.attributes.get("installed_version") == "7.29" assert update.attributes.get("latest_version") == MOCK_FIRMWARE_AVAILABLE assert update.attributes.get("release_url") == MOCK_FIRMWARE_RELEASE_URL @@ -83,8 +82,8 @@ async def test_no_update_available( update = hass.states.get("update.mock_title_fritz_os") assert update is not None assert update.state == "off" - assert update.attributes.get("installed_version") == MOCK_FIRMWARE - assert update.attributes.get("latest_version") == MOCK_FIRMWARE + assert update.attributes.get("installed_version") == "7.29" + assert update.attributes.get("latest_version") == "7.29" async def test_available_update_can_be_installed(