Home Assistant Unofficial Reference 2024.12.1
update.py
Go to the documentation of this file.
1 """Update entity for myUplink."""
2 
4  UpdateDeviceClass,
5  UpdateEntity,
6  UpdateEntityDescription,
7 )
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.entity_platform import AddEntitiesCallback
10 
11 from . import MyUplinkConfigEntry, MyUplinkDataCoordinator
12 from .entity import MyUplinkEntity
13 
14 UPDATE_DESCRIPTION = UpdateEntityDescription(
15  key="update",
16  device_class=UpdateDeviceClass.FIRMWARE,
17 )
18 
19 
21  hass: HomeAssistant,
22  config_entry: MyUplinkConfigEntry,
23  async_add_entities: AddEntitiesCallback,
24 ) -> None:
25  """Set up update entity."""
26  coordinator = config_entry.runtime_data
27 
30  coordinator=coordinator,
31  device_id=device_id,
32  entity_description=UPDATE_DESCRIPTION,
33  unique_id_suffix="upd",
34  )
35  for device_id in coordinator.data.devices
36  )
37 
38 
40  """Representation of a myUplink device update entity."""
41 
42  def __init__(
43  self,
44  coordinator: MyUplinkDataCoordinator,
45  device_id: str,
46  entity_description: UpdateEntityDescription,
47  unique_id_suffix: str,
48  ) -> None:
49  """Initialize the update entity."""
50  super().__init__(
51  coordinator=coordinator,
52  device_id=device_id,
53  unique_id_suffix=unique_id_suffix,
54  )
55 
56  self.entity_descriptionentity_description = entity_description
57 
58  @property
59  def installed_version(self) -> str | None:
60  """Return installed_version."""
61  return self.coordinator.data.devices[self.device_iddevice_id].firmwareCurrent
62 
63  @property
64  def latest_version(self) -> str | None:
65  """Return latest_version."""
66  return self.coordinator.data.devices[self.device_iddevice_id].firmwareDesired