From c5baece02fd454a78387014d393e17b2b8d25331 Mon Sep 17 00:00:00 2001 From: Gord <31004434+googanhiem@users.noreply.github.com> Date: Tue, 1 Apr 2025 18:40:02 +0100 Subject: [PATCH] Fixes for 2025-04 release notes (#38320) --- .../_posts/2025-04-02-release-20254.markdown | 107 +++++++++--------- .../2025-04/areas-experimental-dialog.png | Bin 0 -> 31144 bytes 2 files changed, 52 insertions(+), 55 deletions(-) create mode 100644 source/images/blog/2025-04/areas-experimental-dialog.png diff --git a/source/_posts/2025-04-02-release-20254.markdown b/source/_posts/2025-04-02-release-20254.markdown index 7de5e06b69e..be523aee41f 100644 --- a/source/_posts/2025-04-02-release-20254.markdown +++ b/source/_posts/2025-04-02-release-20254.markdown @@ -76,14 +76,15 @@ Enjoy the (beta) release! - [BETA Feedback! Automation \& script variable scopes](#beta-feedback-automation--script-variable-scopes) -- [Introducing the areas dashboard (experimental)](#introducing-the-areas-dashboard-experimental) +- [Smarter dashboards!](#smarter-dashboards) + - [A new experimental Areas dashboard](#a-new-experimental-areas-dashboard) - [Time for a new card!](#time-for-a-new-card) - [Voice](#voice) - [Improved Voice Wizard](#improved-voice-wizard) - [Continued conversation with LLMs](#continued-conversation-with-llms) - [Starting conversations](#starting-conversations) - [Pre-announce sound](#pre-announce-sound) -- [Restoring backup from Home Assistant Cloud during onboarding](#restoring-backup-from-home-assistant-cloud-during-onboarding) +- [Onboarding with a Home Assistant Cloud backup](#onboarding-with-a-home-assistant-cloud-backup) - [Integrations](#integrations) - [New integrations](#new-integrations) - [Noteworthy improvements to existing integrations](#noteworthy-improvements-to-existing-integrations) @@ -148,23 +149,31 @@ behavior, or if it just works just like before in our #beta channel on Discord. While the change is huge, we do expect the impact to be limited. We want to learn from your experiences if this assumption is correct. -## Introducing the areas dashboard (experimental) +## Smarter dashboards! -This release we are introducing a new, _experimental_, automatically generated -dashboard that is based on the areas in your Home! +We’re making dashboards smarter—automagically! +Dashboards allow users to monitor and control different aspects of their homes through smart home devices or external data. They are one of the main interfaces for interacting with Home Assistant, and a key contributor to what we call the Home Approval Factor—how useful and welcoming your smart home feels to everyone who lives in it. + +Over the past year, we have focused on making dashboards easier to create and customize with the introduction of the powerful drag-and-drop sections view and plenty of new tile card features. Now, we’re going a step further by delivering a dashboard that’s immediately relevant, saving users time and effort while still leaving room for personal touches. + +### A new experimental Areas dashboard + +Until now, our default dashboard has served as a simple starting point—a list of entities grouped by area or device domains. While helpful for early beginners, it quickly becomes too limited as a smart home grows. We've learned that while some users enjoy building their own dashboards, many simply want something that works for their household. TODO: Replace. -The overview page of the dashboard shows the areas in your home with the -most important information about them. Selecting the area header, will take -you to a detailed view of the area, showing everything you have in that area. +The new experimental Areas Dashboard will generate a ready-to-use dashboard based on the areas you've defined in your home. It uses sections and tile cards to deliver a modern, clean, and intuitive look instantly. No more starting from a blank slate! -To use this dashboard today, select the "Areas" option from the list when -you add a new dashboard. Please note, that this dashboard is currently marked -as experimental, and we are looking for your feedback on it! +Each area in your home now has its own dedicated page, giving you a clear and organized view of the devices in that space. Entities are automatically grouped by domain, such as lights, covers, cameras, and more, so you can easily locate the entities you need. Want to tweak it? Yes, you can! You can rearrange, show, or hide entities to suit your preferences. Moreover, at the top of each area page, you'll find temperature and humidity badges that give you a quick glance at comfort levels in the room. You can configure which sensors to use in the area settings. -Our goal is to iterate on this dashboard and keep improving it, until it -potentially makes it to become the default dashboard in the future. +On top of all that, the Overview page brings it all together, showing all your areas in one place. Each section corresponds to a room in your home, and just like with the area pages, you can rearrange, show, or hide areas to reflect your priorities. +If you haven’t already, now’s the perfect time to start organizing your devices into areas - it’s the key to unlocking this new experience. To get started with the Areas dashboard, go to Settings > Dashboard, and select the “Areas (experimental)” option under the Add Dashboard dialog: + +Add Dashboard dialog, including Areas dashboard + +The new experimental Areas Dashboard is a preview of what’s more to come. We’ve learned from our users that they organize their homes in different ways—by rooms, by function, by device, and more, and they often combine all of the above, and therefore, our upcoming default dashboard will accommodate all these methods of organization. Over time, this foundation will grow into a flexible system that adapts to your priorities, whether that’s keeping an eye on security, managing energy use, going through your family calendar and chores, learning about the weather, or simply watching your pets. + +Please note that this is experimental, meaning it is subject to change and may not always work as intended. If you do notice some aspects we can improve, we would love your feedback. It was the community’s dashboards shared over the years that helped us shape this design, and we would love to see how it works with a wide variety of your homes. Even if you have the perfect dashboards already built for your home, give it a try! **Use [this feedback form](https://forms.gle/gJ6HiNbE1GXDv5g18) to give us your thoughts!** ## Time for a new card! @@ -178,7 +187,7 @@ Yeah, the card is "just" showing the current time, but it is a really nice addition to our card collection. It might be a great card for dashboards you are showing on things like a wall mounted tablet! -It supports a few time formats, and of course, comes in a different sizes to +It supports a few time formats, displaying different timezones, and of course, can be resized to match your needs. **TODO**: Link to documentation @@ -204,27 +213,22 @@ choices for your use case. TODO: Replace. -The wizard will now help you making the right choice, based on the language -you are using, the device you are setting up, and the capabilities of your -device. This will help you to get the best experience out of your voice -assistant. +The wizard will now help you make a more informed decision based on your language, desired functionality, and device capabilities, ensuring you get the best experience with your voice assistant. [pve]: /voice-pe/ ### Continued conversation with LLMs -Ever tried to have a conversation with your voice assistant that is hooked up -to an LLM like ChatGPT? It isn't fun, as before each sentence/answer you have -to say _"Ok Nabu"_, in order to get the assistant to listen to you. +Ever tried to have a conversation with your voice assistant that is hooked up to an LLM like ChatGPT? It’s good fun. However, having to say _"Ok Nabu"_, whenever you answer one of Assist’s questions can really slow things down. This release introduces the ability to have a continued conversation with LLMs. -If the LLM is returning a question, we will detect that and keep the +If the LLM returns with a question, we will detect that and keep the conversation going, without the need for you to say _"Ok Nabu"_ again. This is a great way to have a more natural conversation with your voice -assistants, and it works with all LLMs that are supported by Home Assistant. +assistants, and it works with all LLMs supported by Home Assistant. ### Starting conversations @@ -235,53 +239,46 @@ conversation](/blog/2025/02/13/voice-chapter-9-speech-to-phrase/#home-assistant- As of this release, this feature is now available for ESPHome based voice assistant, like the [Home Assistant Voice Preview Edition][pve]! -This is an amazing feature, as it allows you to build your own automations -that will initiate interaction from a voice assistant, instead of you having -to trigger the conversion by saying the wake work. +This is an amazing feature, as it allows you to build your own automations that can send out voice prompts from your voice assistant and listen for a response, instead of you having to trigger the conversation by saying the wake word. _**TODO:**_ Add a demo video here. -Imaging, for example, you have left the garage door open, and a few minutes -later, your says: "Hey, I noticed you left the garage door open, do you want me +Imagine, for example, you have left the garage door open, and a few minutes +later, your assistant says: "Hey, I noticed you left the garage door open, do you want me to close it for you?" And you can just say "yes" or "no" to the assistant, and it will close the door for you... 🤯 Or maybe you come home from a long day at work, and your assistant says: -Welcome home Frenck! Hope you had a great day! Want to hear the news? Or +"Welcome home Frenck! Hope you had a great day! Want to hear the news? Or maybe you are in the mood for some music?" and answering that? This is unbelievably powerful, and opens up a whole new world of possibilities for your voice assistant. This power is currently only available when using -LLMs, but we are working on making this available for all other cases as well. +LLMs, but we are working on making this available in other places it would be useful. [pve]: /voice-pe/ ### Pre-announce sound -The above feature is great, but having something starting talking out of nowhere -might be a bit scary for some people 🫣. To help with that, it is possible to -add a pre-announce sound when starting a conversation or doing an announcement. +Having your assistant start a conversation is great, but having it start talking out of nowhere might be a bit scary for some people 🫣. To help with that, it is possible to add a pre-announce sound when starting a conversation or making an announcement. -Using this, you can play a little sounds before the assistant starts talking, +Using this, you can play a little sound before the assistant starts talking, preventing the "jump scare" effect. _**TODO:**_ Add a demo video here. -Hmmm... this might be cool for different sound effects, depending on the -situation. Like a doorbell when the doorbell is rang, or the the railroad -announcement sounds to announce your train this morning is delayed (so you -have a little more time to grab your coffee before you leave). +Hmmm… this might be cool for different sound effects, depending on the situation. Like a doorbell chime when the doorbell rings, or a train station-style announcement jingle when your morning commute is delayed (so you have a little more time to grab your coffee before you leave ☕). -## Restoring backup from Home Assistant Cloud during onboarding +## Onboarding with a Home Assistant Cloud backup If you are a user of [Home Assistant Cloud by Nabu Casa][cloud], it means you can safely store a backup of your Home Assistant installation in the cloud -as part of your subscription. A really convenient service that ensure you always -have a secure and worry free backup of your Home Assistant installation, no +as part of your subscription. A really convenient service that ensures you always +have a secure and worry-free backup of your Home Assistant installation, no matter what happens. Now, let's say something did happen, maybe a hardware failure, or maybe you -are migrating to a new Home Assistant Green, as of this release, you can +are migrating to a new [Home Assistant Green](/green/), as of this release, you can directly restore your backup from the Home Assistant Cloud during the onboarding process of your new Home Assistant installation. @@ -338,23 +335,23 @@ changes to existing integrations: - The [OpenAI conversation integration] has a new service to generate content, thanks to [@timlaing], **and** it can now search the web! Nice [@Shulyaka]! -- [@joostlek] has absolute been rocking the [SmartThings integration]! The list +- [@joostlek] has absolutely been rocking the [SmartThings integration]! The list of improvements is extremely long, but it includes support for firmware updates through Home Assistant, support for event entities, PM0.1 sensors, washer rinse cycle settings, TV and media player support, and improved device handling. Awesome work there! - Not only SmartThings is receiving love, [@Diegorro98] has been constantly at work improving and tuning the [Home Connect] integration. Thank you so much! -- The [Roborock integration] has been extend to support dryer controls and button +- The [Roborock integration] has been extended to support dryer controls and button entities to start routines. Thanks [@Lash-L] and [@regevbr]! -- [Reolink] cannot be missing in this list. This release adds support for their +- [Reolink] cannot be left out of this list. This release adds support for their smart AI sensors, and adds a day/night state sensor. Nice work [@starkillerOG]! - [@tr4nt0r] extended the actions [Habitica integration] with lots of new - and improved actions to managed your habits, rewards and dailies. Thanks! + and improved actions to manage your habits, rewards, and dailies. Thanks! - The [Microsoft OneDrive integration] has a new action that allows you to upload files to OneDrive. Nice [@zweckj]!] - [@andrewsayre] extended [HEOS] with support for browsing media, allowing - your to browse things like TuneIn and play them on your HEOS devices. + you to browse things like TuneIn and play them on your HEOS devices. [@andrewsayre]: https://github.com/andrewsayre [@Diegorro98]: https://github.com/Diegorro98 @@ -403,7 +400,7 @@ noteworthy changes this release: - Variables in automations & scripts have been greatly simplified and fixed by [@arturpragacz]. All variables are now accessible anywhere in the script or automation, greatly simplifying the use of variables. Amazing! -- We now have support for adding additional interactions to card! Hold and +- We now have support for adding additional interactions to cards! Hold and double tap actions are now available through the UI. Thanks [@piitaya]! [@arturpragacz]: https://github.com/arturpragacz @@ -427,11 +424,11 @@ To start with the [template integration]. The light and switch templates have been migrated to support the new and modern YAML style. Thanks [@Petro31] for this one! -More noteworthy are the addition of a series of new template function to make +More noteworthy is the addition of a series of new template functions to make working with data a lot easier: - [`combine`](/docs/configuration/templating/#combining-dictionaries) - which can combine multiple dictionaries. -- [`difference`](/docs/configuration/templating/#find-elements-in-first-list-not-in-second-list) - find elements that are in first list, but not in second list. +- [`difference`](/docs/configuration/templating/#find-elements-in-first-list-not-in-second-list) - find elements that are in the first list, but not in the second list. - [`flatten`](/docs/configuration/templating/#flatten-a-list-of-lists) - is able to flatten a list of lists. - [`floor_entities`](/docs/configuration/templating/#floors) - returns a list of entities associated with a floor. - [`intersect`](/docs/configuration/templating/#find-common-elements-between-lists) - find common elements between lists. @@ -456,7 +453,7 @@ devices in your energy configuration. TODO: Replace. -This is, for example, great if you have a breaker that is monitoring the energy +This is great if, for example, you have a breaker that is monitoring the energy consumption of a whole circuit, but also have individual devices on that circuit that are also monitored. @@ -510,8 +507,8 @@ actions: # Note: previously it would be: x=1, y=1, z undefined ``` -If you have automations or scripts which use the same variable name in -different (previously isolated) scopes will need to update them: simply use +If you have automations or scripts that use the same variable name in +different (previously isolated) scopes, you will need to update them: simply use distinct variable names to prevent any conflicts. ([@arturpragacz] - [#141114]) @@ -538,7 +535,7 @@ adopt them to this change. {% details "Persistent notifications" %} Persistent notifications with `notification_id` `config_entry_reconfigure` are -no longer created when an integration fail to authenticate. +no longer created when an integration fails to authenticate. Automations [triggering on such persistent notification](/integrations/persistent_notification/#automation) will thus no longer work. @@ -556,7 +553,7 @@ Reolink app and desktop client also have this 31 password character limit. If you configured your Reolink password years ago, it is possible it is longer than 31 characters. In that case you will get a reauthentication flow asking you to change the password. Passwords longer than 31 characters can cause issues in the -latests Reolink API. +latest Reolink API. ([@starkillerOG] - [#140789]) ([documentation](/integrations/reolink)) diff --git a/source/images/blog/2025-04/areas-experimental-dialog.png b/source/images/blog/2025-04/areas-experimental-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd43623f040fd2192e08f1cae7026a730c511a7 GIT binary patch literal 31144 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 literal 0 HcmV?d00001