2025.2: Finalize the release notes
@ -78,8 +78,8 @@ _PS: It is almost Valentine's day, did you set up some romantic scenes yet? 🌹
|
||||
|
||||
In the previous release, we [fully revamped the entire backup experience](/blog/2025/01/03/release-20251/#overhaul-of-the-backup-system)
|
||||
and added many new features to make it easier to use. That release set the
|
||||
stage for the next iterations and opened up the ability for integrations to provide
|
||||
locations to store backups.
|
||||
stage for the next iterations and opened up the ability for integrations to
|
||||
provide locations to store backups.
|
||||
|
||||
We've received **a lot** of feedback on the new backup system, which is awesome! ❤️
|
||||
All the feedback helped us prioritize the most requested features, and other
|
||||
@ -90,7 +90,10 @@ This release includes a lot of the most requested improvements and abilities.
|
||||
### Unencrypted backups
|
||||
|
||||
The new backup system came with a lot of security improvements, including
|
||||
encryption of backups. However, as it turns out, many use these backups to extract and restore single files or configurations, a use case in which encryption made things more difficult. In this release we made two changes to the backup system to address this.
|
||||
encryption of backups. However, as it turns out, many use these backups to
|
||||
extract and restore single files or configurations, a use case in which
|
||||
encryption made things more difficult. In this release we made two changes
|
||||
to the backup system to address this.
|
||||
|
||||
#### Ability to turn off encryption for specific locations
|
||||
|
||||
@ -98,45 +101,50 @@ While our default recommendation remains to encrypt backups, as of this
|
||||
release, you can turn off encryption on a per location basis. This allows you
|
||||
to store backups on you local NAS, for example, in an unencrypted format.
|
||||
|
||||
<img class="no-shadow" alt="Temporary screenshot" src="/images/blog/2025-02/encryption-settings.png" />
|
||||
<img class="no-shadow" alt="Screenshot showing the option to turn off encryption for a specific backup location." src="/images/blog/2025-02/backups-turn-off-encryption.png" />
|
||||
|
||||
There is one exception to this, which is [Home Assistant Cloud](/cloud). Backups stored
|
||||
in Home Assistant Cloud will always be encrypted, and encryption cannot be turned off.
|
||||
At Nabu Casa, we take your privacy and security very seriously, and we never
|
||||
ever want to be able to access your data.
|
||||
<img class="no-shadow" alt="Screenshow showing the backup locations, one location indicates that encryption has been turned off." src="/images/blog/2025-02/backups-encryption-turned-off.png" />
|
||||
|
||||
There is one exception to this, which is [Home Assistant Cloud](/cloud). Backups
|
||||
stored in Home Assistant Cloud will always be encrypted, and encryption cannot
|
||||
be turned off. At Nabu Casa, we take your privacy and security very seriously,
|
||||
and we never ever want to be able to access your data.
|
||||
|
||||
#### Downloading backups unencrypted
|
||||
|
||||
When downloading backups from the Home Assistant interface, you will now always download
|
||||
the backup in an unencrypted format that can be extracted using your favorite
|
||||
archive tool.
|
||||
When downloading backups from the Home Assistant interface, you will now always
|
||||
download the backup in an unencrypted format that can be extracted using your
|
||||
favorite archive tool.
|
||||
|
||||
This works for all backups, regardless of the encryption settings of the location
|
||||
in which they are stored. For instance, if you download an encrypted backup from Home Assistant
|
||||
Cloud through the Home Assistant interface, it will decrypt the backup on the fly
|
||||
while you download it.
|
||||
This works for all backups, regardless of the encryption settings of the
|
||||
location in which they are stored. For instance, if you download an encrypted
|
||||
backup from Home Assistant Cloud through the Home Assistant interface,
|
||||
it will decrypt the backup on the fly while you download it.
|
||||
|
||||
### Customize the time of your backups
|
||||
|
||||
The initial iteration of the backup system scheduled backups to run at 4:45 AM, but this time wasn't ideal for everyone. Some, for example, turned off their
|
||||
The initial iteration of the backup system scheduled backups to run at 4:45 AM,
|
||||
but this time wasn't ideal for everyone. Some, for example, turned off their
|
||||
network storage during the night, meaning the backup would fail.
|
||||
|
||||
This release, we added the ability to customize the time of your backups to your
|
||||
liking. Additionally, if you choose to make weekly backups, you can now select
|
||||
the days of the week you want the backup to run.
|
||||
|
||||
<img class="no-shadow" alt="Temporary screenshot" src="/images/blog/2025-02/backup-schedule.png" />
|
||||
<img class="no-shadow" alt="Screenshot showing the backup configuration options, you can now set your own time and select which days to backup." src="/images/blog/2025-02/backups-customize-backups-change.png" />
|
||||
|
||||
### Taking backups on an advanced schedule
|
||||
|
||||
The above backup time changes not flexible enough for you? Well, you are in luck! In this
|
||||
release, we added an action (`backup.automated_backup`) that you can use
|
||||
release, we added an action (`backup.create_automatic`) that you can use
|
||||
to trigger a backup, with your preferred settings, in an automation.
|
||||
|
||||
<img class="no-shadow" alt="Screenshot showing an automation in the automation editor that is using the new action to create an automated backup." src="/images/blog/2025-02/backups-action.png" />
|
||||
|
||||
This allows you to create automated backups on any schedule you like, or even
|
||||
add conditions and actions around it. For example, you could make an automation
|
||||
that triggers on a calendar, wakes up your network storage, waits till it is online, and
|
||||
then starts a backup.
|
||||
that triggers on a calendar, wakes up your network storage, waits till it is
|
||||
online, and then starts a backup.
|
||||
|
||||
### Re-introduction of the backup toggle on update
|
||||
|
||||
@ -144,33 +152,51 @@ If you run Home Assistant OS, you get updates for Home Assistant along with
|
||||
all your add-ons. This used to have a toggle to create a backup before updating,
|
||||
which was removed in the previous release.
|
||||
|
||||
This change was made because this feature was considered redundant when running regular automated backups. However, we’ve received a lot of feedback that many people relied on these backups to ensure they had the latest data, for instance, if they needed to roll back to a previous version of an add-on. We are re-introducing this backup on update toggle in this release, but in a smarter way. We are re-introducing this backup on update toggle in this
|
||||
release, but in a smarter way.
|
||||
This change was made because this feature was considered redundant when running
|
||||
regular automated backups. However, we’ve received a lot of feedback that many
|
||||
people relied on these backups to ensure they had the latest data, for instance,
|
||||
if they needed to roll back to a previous version of an add-on. We are
|
||||
re-introducing this backup on update toggle in this release, but in a smarter
|
||||
way.
|
||||
|
||||
#### Backup on updating Home Assistant
|
||||
|
||||
When updating Home Assistant, the toggle is now turned off by default and
|
||||
shows the last time you made a backup. This allows you to decide whether to make a new backup before updating.
|
||||
shows the last time you made a backup. This allows you to decide whether to make
|
||||
a new backup before updating.
|
||||
|
||||
<img class="no-shadow" alt="Temporary screenshot" src="/images/blog/2025-02/backup-toggle-update.png" />
|
||||
<img class="no-shadow" alt="Screenshot showing an Home Assistant Core update dialog, giving the option to make a backup before update." src="/images/blog/2025-02/backups-before-update-core.png" />
|
||||
|
||||
If you turn the switch on, a full automated backup is created and synced to
|
||||
your configured locations, before the update is started.
|
||||
|
||||
This full sync is done to ensure you have the most recent backup available in case the update causes issues and you need to restore your system. In the rare case a Home Assistant update fatally fails and you can’t access the backup page, if you’ve configured a second backup location, you’ll be able to download it from there.
|
||||
This full sync is done to ensure you have the most recent backup available in
|
||||
case the update causes issues and you need to restore your system. In the rare
|
||||
case a Home Assistant update fatally fails and you can’t access the backup page,
|
||||
if you’ve configured a second backup location, you’ll be able to download it
|
||||
from there.
|
||||
|
||||
#### Backup on updating add-ons
|
||||
|
||||
Things are slightly different when updating add-ons. The toggle exists here too, and is disabled by default. However, when you enable it, only a backup of your add-on and its data is created. That way you can keep around the previous version of the add-on, so you can always roll back to it if needed.
|
||||
Things are slightly different when updating add-ons. The toggle exists here too,
|
||||
and is disabled by default. However, when you enable it, only a backup of your
|
||||
add-on and its data is created. That way you can keep around the previous
|
||||
version of the add-on, so you can always roll back to it if needed.
|
||||
|
||||
To prevent your system from filling up with old add-on backups, we only retain one add-on backup, automatically deleting the previous backup whenever a new one is created.
|
||||
<img class="no-shadow" alt="Screenshot showing an Home Assistant add-on update dialog, giving the option to make a backup before update." src="/images/blog/2025-02/backups-addons-before-update.png" />
|
||||
|
||||
To prevent your system from filling up with old add-on backups, we only retain
|
||||
one add-on backup, automatically deleting the previous backup whenever
|
||||
a new one is created.
|
||||
|
||||
### Improved filenames for backups
|
||||
|
||||
One piece of feedback we’ve seen a lot, is that the filenames created by backups can be a bit cryptic and hard to understand for humans.
|
||||
One piece of feedback we’ve seen a lot, is that the filenames created by backups
|
||||
can be a bit cryptic and hard to understand for humans.
|
||||
|
||||
This feedback was fair, as the filename was a hash and originally not designed
|
||||
to be human-readable. This method was not newly introduced in the last release, but it was made more apparent with the new backup system and locations.
|
||||
to be human-readable. This method was not newly introduced in the last release,
|
||||
but it was made more apparent with the new backup system and locations.
|
||||
|
||||
So, in this release, we've improved the filenames of the backups stored on your
|
||||
backup locations. The filename now includes the date and time the backup was
|
||||
@ -179,58 +205,98 @@ for, even outside of Home Assistant.
|
||||
|
||||
### New locations
|
||||
|
||||
This release also introduces new locations to store your backups. There are new integrations for [Google Drive](/integrations/google_drive/) and [Microsoft OneDrive](/integrations/onedrive/), and backup support was added to the [Synology DSM](/integrations/synology_dsm) integration.
|
||||
This release also introduces new locations to store your backups. There are new
|
||||
integrations for [Google Drive](/integrations/google_drive/) and
|
||||
[Microsoft OneDrive](/integrations/onedrive/), and backup support was added to
|
||||
the [Synology DSM](/integrations/synology_dsm) integration.
|
||||
|
||||
<img class="no-shadow" alt="Temporary screenshot" src="/images/blog/2025-02/backup-locations.png" />
|
||||
<img class="no-shadow" alt="Screenshot showing the backup configuration panel, with all possible backup integration set up!" src="/images/blog/2025-02/backups-new-locations.png" />
|
||||
|
||||
## Voice
|
||||
|
||||
Assist, our [private voice assistant](/voice_control/), is getting a few new features in this release. If you don't have Assist set up yet, check out our [Home Assistant Voice: Preview Edition](/voice-pe/) to get started.
|
||||
Assist, our [private voice assistant](/voice_control/), is getting a few new
|
||||
features in this release. If you don't have Assist set up yet, check out our
|
||||
[Home Assistant Voice: Preview Edition](/voice-pe/) to get started.
|
||||
|
||||
### Home Assistant will be able to call your analog phone to tell you a message
|
||||
|
||||
Remember our tutorial on turning an analog phone into the [world's most private voice assistant](/voice_control/worlds-most-private-voice-assistant/)? Thanks to [Jamin](https://github.com/jaminh), we now have a way to call your analog phone from Home Assistant!
|
||||
Remember our tutorial on turning an analog phone into the
|
||||
[world's most private voice assistant](/voice_control/worlds-most-private-voice-assistant/)?
|
||||
Thanks to [Jamin](https://github.com/jaminh), we now have a way to call
|
||||
your analog phone from Home Assistant!
|
||||
|
||||
You can use [`assist_satellite.announce`](/integrations/assist_satellite#action-assist_satelliteannounce) to have Home Assistant call your phone and play a message when someone picks up the phone.
|
||||
You can use [`assist_satellite.announce`](/integrations/assist_satellite#action-assist_satelliteannounce)
|
||||
to have Home Assistant call your phone and play a message when someone picks up
|
||||
the phone.
|
||||
|
||||
If you use an LLM as the brains for your voice assistant, you can take this one step further with the new [`assist_satellite.start_conversation`](/integrations/assist_satellite#action-assist_satellitestart_conversation) action. Instead of playing an announcement, it starts a conversation between Home Assistant and the user, with Home Assistant saying the first message. Left the garage door open for 30 minutes? No problem, let Home Assistant call and ask if they want to close it.
|
||||
If you use an LLM as the brains for your voice assistant, you can take this one
|
||||
step further with the new [`assist_satellite.start_conversation`](/integrations/assist_satellite#action-assist_satellitestart_conversation)
|
||||
action. Instead of playing an announcement, it starts a conversation between
|
||||
Home Assistant and the user, with Home Assistant saying the first message.
|
||||
Left the garage door open for 30 minutes? No problem, let Home Assistant call
|
||||
and ask if they want to close it.
|
||||
|
||||
_(Starting a conversation with the default conversation agent is a bit more work and did not make it this release)_
|
||||
_(Starting a conversation with the default conversation agent is a bit more work
|
||||
and did not make it this release)_
|
||||
|
||||
### New Broadcast intent
|
||||
|
||||
You can now broadcast messages to every other voice assistant in your home.
|
||||
Try it by saying "Broadcast it is time for dinner".
|
||||
As always with new intents, support may vary [depending on your language](https://home-assistant.github.io/intents/), but our language leaders are working hard on making sure it will be supported soon in your language!
|
||||
Try it by saying _"Broadcast it is time for dinner"_.
|
||||
As always with new intents, support may vary
|
||||
[depending on your language](https://home-assistant.github.io/intents/),
|
||||
but our language leaders are working hard on making sure it will be supported
|
||||
soon in your language!
|
||||
|
||||
### Setting Temperature on Thermostat
|
||||
|
||||
A few releases ago we introduced an intent to get the current temperature from a climate device.
|
||||
As of this release, you can also set the target temperature of your thermostat by voice.
|
||||
By saying "Set the temperature to 19 degrees" this will smartly target the area you are in (if you have a thermostat per area, such as thermostatic valves on your radiators) or the floor you are in (if you only have a central unit). You can also target specific devices by name if you prefer.
|
||||
A few releases ago we introduced an intent to get the current temperature from
|
||||
a climate device. As of this release, you can also set the target temperature
|
||||
of your thermostat by voice.
|
||||
|
||||
By saying _"Set the temperature to 19 degrees"_ this will smartly target the
|
||||
area you are in (if you have a thermostat per area, such as thermostatic valves
|
||||
on your radiators) or the floor you are in (if you only have a central unit).
|
||||
You can also target specific devices by name if you prefer.
|
||||
|
||||
### LLMs meet calendars
|
||||
|
||||
Without complex custom tooling, LLM-based conversation agents previously could not fetch events from your calendar. This release changes that. Out of the box, LLM-based agents can now retrieve today’s and this week’s events from any of your calendars. Don’t forget to [expose your calendar entities](/voice_control/voice_remote_expose_devices/) to enable this functionality.
|
||||
Without complex custom tooling, LLM-based conversation agents previously could
|
||||
not fetch events from your calendar. This release changes that. Out of the box,
|
||||
LLM-based agents can now retrieve today’s and this week’s events from any of
|
||||
your calendars. Don’t forget to
|
||||
[expose your calendar entities](/voice_control/voice_remote_expose_devices/)
|
||||
to enable this functionality.
|
||||
|
||||
### Shared history between the default conversation agent and its LLM-based fallback
|
||||
|
||||
In [2024.12](/blog/2024/12/04/release-202412/) we introduced a lovely feature that allowed you to use our fast and local default conversation agent for most queries while still being able to fall back to a much more powerful LLM-based agent for more complex queries.
|
||||
In [2024.12](/blog/2024/12/04/release-202412/) we introduced a lovely feature
|
||||
that allowed you to use our fast and local default conversation agent for most
|
||||
queries while still being able to fall back to a much more powerful LLM-based
|
||||
agent for more complex queries.
|
||||
|
||||
This introduced some interesting behaviors. From a user perspective, it looked like you were talking to the same assistant, whereas, in reality, nothing was shared between the two agents.
|
||||
This led to some less-than-optimal scenarios, such as this one:
|
||||
This introduced some interesting behaviors. From a user perspective, it looked
|
||||
like you were talking to the same assistant, whereas, in reality, nothing was
|
||||
shared between the two agents. This led to some less-than-optimal scenarios,
|
||||
such as this one:
|
||||
|
||||
<img class="no-shadow" alt="Screenshot of missing history in the conversation" src="/images/blog/2025-02/conversation-history-before.png" />
|
||||
|
||||
The first command is processed locally by our default agent, but the follow-up request is processed by the LLM-based agent. Since no memory is shared, it does not understand what device you want to turn off.
|
||||
The first command is processed locally by our default agent, but the follow-up
|
||||
request is processed by the LLM-based agent. Since no memory is shared, it does
|
||||
not understand what device you want to turn off.
|
||||
|
||||
Starting with this release, both agents now share the same command history, helping address this issue.
|
||||
Starting with this release, both agents now share the same command history,
|
||||
helping address this issue.
|
||||
|
||||
<img class="no-shadow" alt="Screenshot of the new improved behavior" src="/images/blog/2025-02/conversation-history-after.png" />
|
||||
|
||||
### Model Context Protocol
|
||||
|
||||
This release adds the [Model Context Protocol](https://modelcontextprotocol.io/introduction) to Home Assistant thanks to [Allen][@allenporter]. Home Assistant can both be an [MCP server](/integrations/mcp_server/) and an [MCP client](/integrations/mcp/). From the MCP website:
|
||||
This release adds the [Model Context Protocol](https://modelcontextprotocol.io/introduction)
|
||||
to Home Assistant thanks to [Allen][@allenporter]. Home Assistant can both be an
|
||||
[MCP server](/integrations/mcp_server/) and an
|
||||
[MCP client](/integrations/mcp/). From the MCP website:
|
||||
|
||||
> MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.
|
||||
|
||||
|
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 15 KiB |
BIN
source/images/blog/2025-02/backups-action.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
source/images/blog/2025-02/backups-addons-before-update.png
Normal file
After Width: | Height: | Size: 105 KiB |
BIN
source/images/blog/2025-02/backups-before-update-core.png
Normal file
After Width: | Height: | Size: 95 KiB |
BIN
source/images/blog/2025-02/backups-customize-backups-change.png
Normal file
After Width: | Height: | Size: 145 KiB |
BIN
source/images/blog/2025-02/backups-encryption-turned-off.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
source/images/blog/2025-02/backups-new-locations.png
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
source/images/blog/2025-02/backups-turn-off-encryption.png
Normal file
After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 39 KiB |
BIN
source/images/blog/2025-02/social.jpg
Normal file
After Width: | Height: | Size: 213 KiB |