mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-06-24 11:06:51 +00:00
161 lines
5.7 KiB
Markdown
161 lines
5.7 KiB
Markdown
---
|
|
title: Update
|
|
description: Instructions on how to use update entities with Home Assistant.
|
|
ha_category: []
|
|
ha_release: 2022.4
|
|
ha_quality_scale: internal
|
|
ha_domain: update
|
|
ha_codeowners:
|
|
- '@home-assistant/core'
|
|
ha_integration_type: entity
|
|
related:
|
|
- docs: /docs/configuration/customizing-devices/
|
|
title: Customizing devices
|
|
- docs: /dashboards/
|
|
title: Dashboard
|
|
---
|
|
|
|
An update {% term entity %} is an entity that indicates if an update is available for a
|
|
device or service. This can be any update, including update of a firmware
|
|
for a device like a light bulb or router, or software updates for things like
|
|
add-ons or containers.
|
|
|
|
{% include integrations/building_block_integration.md %}
|
|
|
|
For a list of {% term integrations %} offering update entities, on the integrations page, select the ["Update" category](/integrations/#update).
|
|
|
|
## The state of an update entity
|
|
|
|
The state of an update {% term entity %} reflects whether an update is available or not.
|
|
When the state is **On**, it means there is an update available; when everything
|
|
is up-to-date, the state is **Off**.
|
|
|
|
In addition, the entity can have the following states:
|
|
|
|
- **Unavailable**: The entity is currently unavailable.
|
|
- **Unknown**: The state is not yet known.
|
|
|
|
The following state attributes are exposed to provide more
|
|
information on the update state:
|
|
|
|
- `title`: The title/name of the available software or firmware. As the device
|
|
name or entity name can be changed in Home Assistant, this title will provide
|
|
the actual name of the software or firmware.
|
|
- `installed_version`: The current version that is currently installed and in use.
|
|
- `latest_version`: The latest version that is available for installation.
|
|
- `skipped_version`: If a version update is skipped, this attribute will be set
|
|
and contains the actual version that was skipped.
|
|
- `release_summary`: A summary of the release notes for the update available.
|
|
- `release_url`: A link to the full release announcement for the update available.
|
|
|
|
## Device class
|
|
|
|
{% include integrations/device_class_intro.md %}
|
|
|
|
The following device classes are supported for update entities:
|
|
|
|
- **`None`**: A generic software update. This is the default and doesn't need
|
|
to be set.
|
|
- **`firmware`**: This update {% term integration %} provides firmwares.
|
|
|
|
## Actions
|
|
|
|
The update {% term entity %} exposes two actions that can be used to install or skip
|
|
an offered software update.
|
|
|
|
### Action {% my developer_call_service service="update.install" %}
|
|
|
|
The {% my developer_call_service service="update.install" %} action can be used
|
|
to install an offered update to the device or service.
|
|
|
|
This action is only available for an update {% term entity %} if an {% term integration %} provides
|
|
this capability. Additionally, if allowed by the {% term integration %}, the action
|
|
provides for installing a specific version and even could make a
|
|
backup before installing the update.
|
|
|
|
#### Action data attributes
|
|
|
|
{% configuration_basic %}
|
|
entity_id (required):
|
|
description: "String or list of strings that point at `entity_id`s of updates. To target all updates, set `entity_id` to `all`."
|
|
version:
|
|
description: "A specific update version to install, if not provided, the latest available update will be installed. Availability of this attribute is dependent on the {% term integration %}."
|
|
backup:
|
|
description: "If set to `true`, a backup will be made before installing the update. Availability of this attribute is dependent on the {% term integration %}."
|
|
{% endconfiguration_basic %}
|
|
|
|
Example action:
|
|
|
|
```yaml
|
|
action: update.install
|
|
target:
|
|
entity_id:
|
|
- update.my_light_bulb
|
|
```
|
|
|
|
### Action {% my developer_call_service service="update.skip" %}
|
|
|
|
The {% my developer_call_service service="update.skip" %} action can be used
|
|
to skip an offered update to the device or service.
|
|
|
|
After skipping an offered update, the {% term entity %} will return to the `off` state,
|
|
which means there is no update available.
|
|
|
|
```yaml
|
|
action: update.skip
|
|
target:
|
|
entity_id:
|
|
- update.my_light_bulb
|
|
```
|
|
|
|
Even if an update is skipped and shows as `off` (meaning no update), if there
|
|
is a newer version available, calling the `update.install` action on the entity
|
|
will still install the latest version.
|
|
|
|
### Action {% my developer_call_service service="update.clear_skipped" %}
|
|
|
|
The {% my developer_call_service service="update.clear_skipped" %} action can
|
|
be used to remove skipped version marker of a previously skipped an offered
|
|
update to the device or service.
|
|
|
|
After skipping an offered update, the {% term entity %} will return to the `off` state,
|
|
but will not return to it until a newer version becomes available again.
|
|
|
|
Using the `update.clear_skipped` action, the skipped version marker can be
|
|
removed and thus the entity will return to the `on` state and the update
|
|
notification will return.
|
|
|
|
```yaml
|
|
action: update.clear_skipped
|
|
target:
|
|
entity_id:
|
|
- update.my_light_bulb
|
|
```
|
|
|
|
This can be helpful to, for example, in an automation that weekly unskips
|
|
all updates you have previously marked as skipped; as a reminder to update.
|
|
|
|
## Example: Sending update available notifications
|
|
|
|
A common use case for using update entities is to notify you if an update
|
|
has become available for installation. Using the update entities,
|
|
this is fairly straightforward to do.
|
|
|
|
This is a YAML example for an automation that sends out a notification when
|
|
the update for a light bulb becomes available.
|
|
|
|
```yaml
|
|
automation:
|
|
- alias: "Send notification when update available"
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: update.my_light_bulb
|
|
to: "on"
|
|
actions:
|
|
- alias: "Send notification to my phone about the update"
|
|
action: notify.iphone
|
|
data:
|
|
title: "New update available"
|
|
message: "New update available for my_light_bulb!"
|
|
```
|