old_contents: """Update entities for Netgear devices."""
  from __future__ import annotations
  
  import logging
  from typing import Any
  
  from homeassistant.components.update import (
      UpdateDeviceClass,
      UpdateEntity,
      UpdateEntityFeature,
  )
  from homeassistant.config_entries import ConfigEntry
  from homeassistant.core import HomeAssistant, callback
  from homeassistant.helpers.entity_platform import AddEntitiesCallback
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
  
  from .const import DOMAIN, KEY_COORDINATOR_FIRMWARE, KEY_ROUTER
  from .router import NetgearRouter, NetgearRouterEntity
  
  LOGGER = logging.getLogger(__name__)
  
  
  async def async_setup_entry(
      hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
  ) -> None:
      """Set up update entities for Netgear component."""
      router = hass.data[DOMAIN][entry.entry_id][KEY_ROUTER]
      coordinator = hass.data[DOMAIN][entry.entry_id][KEY_COORDINATOR_FIRMWARE]
      entities = [NetgearUpdateEntity(coordinator, router)]
  
      async_add_entities(entities)
  
  
  class NetgearUpdateEntity(NetgearRouterEntity, UpdateEntity):
      """Update entity for a Netgear device."""
  
      _attr_device_class = UpdateDeviceClass.FIRMWARE
      _attr_supported_features = UpdateEntityFeature.INSTALL
  
      def __init__(
          self,
          coordinator: DataUpdateCoordinator,
          router: NetgearRouter,
      ) -> None:
          """Initialize a Netgear device."""
          super().__init__(coordinator, router)
          self._name = f"{router.device_name} Update"
          self._unique_id = f"{router.serial_number}-update"
  
      @property
      def installed_version(self) -> str | None:
          """Version currently in use."""
          if self.coordinator.data is not None:
              return self.coordinator.data.get("CurrentVersion")
          return None
  
      @property
      def latest_version(self) -> str | None:
          """Latest version available for install."""
          if self.coordinator.data is not None:
              new_version = self.coordinator.data.get("NewVersion")
              if new_version is not None:
                  return new_version
          return self.installed_version
  
      @property
      def release_summary(self) -> str | None:
          """Release summary."""
          if self.coordinator.data is not None:
              return self.coordinator.data.get("ReleaseNote")
          return None
  
      async def async_install(
          self, version: str | None, backup: bool, **kwargs: Any
      ) -> None:
          """Install the latest firmware version."""
          await self._router.async_update_new_firmware()
  
      @callback
      def async_update_device(self) -> None:
          """Update the Netgear device."""
  
new_contents: """Update entities for Netgear devices."""
  from __future__ import annotations
  
  import logging
  from typing import Any
  
  from homeassistant.components.update import (
      UpdateDeviceClass,
      UpdateEntity,
      UpdateEntityFeature,
  )
  from homeassistant.config_entries import ConfigEntry
  from homeassistant.core import HomeAssistant, callback
  from homeassistant.helpers.entity_platform import AddEntitiesCallback
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
  
  from .const import DOMAIN, KEY_COORDINATOR_FIRMWARE, KEY_ROUTER
  from .router import NetgearRouter, NetgearRouterEntity
  
  LOGGER = logging.getLogger(__name__)
  
  
  async def async_setup_entry(
      hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
  ) -> None:
      """Set up update entities for Netgear component."""
      router = hass.data[DOMAIN][entry.entry_id][KEY_ROUTER]
      coordinator = hass.data[DOMAIN][entry.entry_id][KEY_COORDINATOR_FIRMWARE]
      entities = [NetgearUpdateEntity(coordinator, router)]
  
      async_add_entities(entities)
  
  
  class NetgearUpdateEntity(NetgearRouterEntity, UpdateEntity):
      """Update entity for a Netgear device."""
  
      _attr_device_class = UpdateDeviceClass.FIRMWARE
      _attr_supported_features = UpdateEntityFeature.INSTALL
  
      def __init__(
          self,
          coordinator: DataUpdateCoordinator,
          router: NetgearRouter,
      ) -> None:
          """Initialize a Netgear device."""
          super().__init__(coordinator, router)
          self._name = f"{router.device_name} Update"
          self._unique_id = f"{router.serial_number}-update"
  
      @property
      def installed_version(self) -> str | None:
          """Version currently in use."""
          if self.coordinator.data is not None:
              return self.coordinator.data.get("CurrentVersion")
          return None
  
      @property
      def latest_version(self) -> str | None:
          """Latest version available for install."""
          if self.coordinator.data is not None:
              new_version = self.coordinator.data.get("NewVersion")
              if new_version is not None and not new_version.startswith(
                  self.installed_version
              ):
                  return new_version
          return self.installed_version
  
      @property
      def release_summary(self) -> str | None:
          """Release summary."""
          if self.coordinator.data is not None:
              return self.coordinator.data.get("ReleaseNote")
          return None
  
      async def async_install(
          self, version: str | None, backup: bool, **kwargs: Any
      ) -> None:
          """Install the latest firmware version."""
          await self._router.async_update_new_firmware()
  
      @callback
      def async_update_device(self) -> None:
          """Update the Netgear device."""
  
subject: Fix Netgear update entity (#75496)