mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-05-12 22:19:00 +00:00

* u-z integrations: apply sentence-style caps to categories * Apply suggestions from code review Co-authored-by: Joakim Sørensen <joasoe@gmail.com> * Add references to glossary terms * Update source/_integrations/universal.markdown Co-authored-by: Joakim Sørensen <joasoe@gmail.com> * Update source/_integrations/universal.markdown Co-authored-by: Joakim Sørensen <joasoe@gmail.com> * linter: change vizio to VIZIO - as per product website https://www.vizio.com/en/smartcast * remove term refs from YAML * VIZIO: change spelling according to website - https://www.vizio.com/en/t * Update source/_integrations/vizio.markdown * Update source/_integrations/universal.markdown * Apply suggestions from code review Co-authored-by: Joakim Sørensen <joasoe@gmail.com> * Update source/_integrations/unifiprotect.markdown Co-authored-by: Joakim Sørensen <joasoe@gmail.com> * Apply suggestions from code review Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Apply suggestions from code review Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Fix some more to sentence-style caps * Update source/_integrations/unifiprotect.markdown Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Update source/_integrations/unifiprotect.markdown Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Update source/_integrations/unifiprotect.markdown Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> --------- Co-authored-by: Joakim Sørensen <joasoe@gmail.com> Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
156 lines
6.1 KiB
Markdown
156 lines
6.1 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
|
|
---
|
|
|
|
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.
|
|
|
|
The state of the update {% term entity %} indicates if there is an update pending or not,
|
|
and if there is an update available, more information on that update can be
|
|
provided by an integration to the {% term entity %}. For example, the version that is
|
|
available, a summary of the release notes, and even links that provide more
|
|
information on the available update.
|
|
|
|
Lastly, there are two services available for the update {% term entity %}. If possible and
|
|
made available by the integration providing the update {% term entity %}, triggering
|
|
the actual update from Home Assistant. The other service exposed allows for
|
|
skipping the offered update.
|
|
|
|
{% 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`.
|
|
|
|
Additionally, 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 classes
|
|
|
|
The way these update entities are displayed in the frontend depend on their
|
|
device classes. The following device classes are supported for switches:
|
|
|
|
- **`None`**: A generic software update. This is the default and doesn't need
|
|
to be set.
|
|
- **`firmware`**: This update {% term integration %} provides firmwares.
|
|
|
|
## Services
|
|
|
|
The update {% term entity %} exposes two services that can be used to install or skip
|
|
an offered software update.
|
|
|
|
### Service {% my developer_call_service service="update.install" %}
|
|
|
|
The {% my developer_call_service service="update.install" %} service can be used
|
|
to install an offered update to the device or service.
|
|
|
|
This service is only available for an update {% term entity %} if an {% term integration %} provides
|
|
this capability. Additionally, if allowed by the {% term integration %}, the service
|
|
provides for installing a specific version and even could make a
|
|
backup before installing the update.
|
|
|
|
| Service data attribute | Optional | Description |
|
|
| ---------------------- | -------- | ----------- |
|
|
| `entity_id` | no | String or list of strings that point at `entity_id`s of updates. To target all updates, set `entity_id` to `all`.
|
|
| `version` | yes | A specific update version to install, if not provided, the latest available update will be installed. Availability of this atrribute is dependent on the {% term integration %}.
|
|
| `backup` | yes | If set to `true`, a backup will be made before installing the update. Availability of this attribute is dependent on the {% term integration %}.
|
|
|
|
Example service call:
|
|
|
|
```yaml
|
|
service: update.install
|
|
target:
|
|
entity_id:
|
|
- update.my_light_bulb
|
|
```
|
|
|
|
### Service {% my developer_call_service service="update.skip" %}
|
|
|
|
The {% my developer_call_service service="update.skip" %} service 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
|
|
service: 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` service on the entity
|
|
will still install the latest version.
|
|
|
|
### Service {% my developer_call_service service="update.clear_skipped" %}
|
|
|
|
The {% my developer_call_service service="update.clear_skipped" %} service 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` service, the skipped version marker can be
|
|
removed and thus the entity will return to the `on` state and the update
|
|
notification will return.
|
|
|
|
```yaml
|
|
service: 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"
|
|
trigger:
|
|
platform: state
|
|
entity_id: update.my_light_bulb
|
|
to: "on"
|
|
action:
|
|
alias: "Send notification to my phone about the update"
|
|
service: notify.iphone
|
|
data:
|
|
title: "New update available"
|
|
message: "New update available for my_light_bulb!"
|
|
```
|