From 42372fb270e44a2d4d65126b110eb8ca043faf25 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 30 Jul 2025 07:58:55 +0000 Subject: [PATCH] Some progress --- .../_posts/2025-08-08-release-20258.markdown | 68 ++++++++++-------- .../2025-08/temp-time-trigger-weekday.png | Bin 0 -> 22487 bytes 2 files changed, 39 insertions(+), 29 deletions(-) create mode 100644 source/images/blog/2025-08/temp-time-trigger-weekday.png diff --git a/source/_posts/2025-08-08-release-20258.markdown b/source/_posts/2025-08-08-release-20258.markdown index 0ca97c67550..323716d4d58 100644 --- a/source/_posts/2025-08-08-release-20258.markdown +++ b/source/_posts/2025-08-08-release-20258.markdown @@ -85,7 +85,7 @@ Enjoy the (beta) release! - [Integration quality scale achievements](#integration-quality-scale-achievements) - [Now available to set up from the UI](#now-available-to-set-up-from-the-ui) - [Other noteworthy changes](#other-noteworthy-changes) -- [Lorem ipsum](#lorem-ipsum) + - [Weekdays in time trigger](#weekdays-in-time-trigger) - [Need help? Join the community!](#need-help-join-the-community) - [Backward-incompatible changes](#backward-incompatible-changes) - [All changes](#all-changes) @@ -96,13 +96,13 @@ We introduced our first AI integration in Home Assistant 2023.2 in which users c Last year we sat down to determine how all these use cases, all complicated to achieve, could be made accessible to everyone. The first thing that came out of this was [integration sub-entries](/blog/2025/07/02/release-20257/#integration-sub-entries), which we shipped last release. It allows users to configure their Ollama server or API key for OpenAI *once*, and create many different agents using different models or configuration underneath. This release we’re building two things on top of that: AI tasks and Suggest with AI. We’re also introducing a new integration, OpenRouter, which is a unified LLM interface giving access to over 400 extra LLM models. -Big thanks to our AI community contributors: [@AllenPorter], [@shulyaka], [@tronikos], [@IvanLH], and [@JoostLek]! +Big thanks to our AI community contributors: [@AllenPorter], [@shulyaka], [@tronikos], [@IvanLH], and [@joostlek]! [@AllenPorter]: https://github.com/AllenPorter [@shulyaka]: https://github.com/shulyaka [@tronikos]: https://github.com/tronikos [@IvanLH]: https://github.com/IvanLH -[@JoostLek]: https://github.com/JoostLek +[@joostlek]: https://github.com/joostlek ### Streaming Text-to-Speech for Home Assistant Cloud @@ -152,7 +152,6 @@ To help get started with AI task, we’ve prepared a blueprint to analyze camera {% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/ai-camera-analysis/911634" %} - ### Work faster with Suggest with AI buttons The AI task integration has one extra feature under its belt: default entities. You can go to [Settings \-\> System \-\> General](https://my.home-assistant.io/redirect/config_ai_task/) and configure what AI task entity you want to use as the default. With a default set, you no longer have to specify an entity when generating data, making it easier to share blueprints. @@ -249,6 +248,11 @@ Potential candidates, processed up to PR 149626 - Add notify platform to PlayStation Network integration ([@tr4nt0r] - [#149557]) ([playstation_network docs]) (new-platform) - Add YoLink YS6614 support. ([@matrixd2] - [#149153]) ([yolink docs]) - Add OSO Energy Custom Away Mode Service ([@osohotwateriot] - [#149612]) ([osoenergy docs]) +- Allow picture card to serve media images (#26291) @karwosts +- Add download device info button (#26278) @balloob +- Improve ZHA routes vizualization (#26270) @MindFreeze +- Add handle to axis pointer in charts on mobile (#26088) @MindFreeze +- Add features to light & cover groups more-info (#26187) @MindFreeze ### Integration quality scale achievements @@ -319,35 +323,41 @@ The following integration is now available via the Home Assistant UI: There are many more improvements in this release; here are some of the other noteworthy changes: -- [@frenck] added support for slipsum to [Lorem ipsum]! Nice! - -[@frenck]: https://github.com/frenck -[Lorem ipsum]: /integrations/lorem +[@mib1185] added a new device class for **absolute humidity** with support for both sensor and number {% term entities %}. Nice! +- Group management was improved by [@piitaya], who added the ability to reorder members within a group, making it easier to organize your device groups exactly how you want them. Thanks! +- System diagnostics was extended by [@balloob] with the addition of a device analytics dump download feature. Awesome! +- The [History Stats] {% term integration %} now includes a preview in the options flow, thanks to [@karwosts]. This makes it easier to configure your history statistics. +- The [Template] {% term integration %} received a massive update from [@Petro31]! Here's what's new: + - Trigger-based numeric sensors can now be set to unknown state + - Availability templates are now supported in the template helper config flow + - Preview functionality has been added to the config flow for alarm control panel, image, and select platforms + - Template locks now support the opening state + - Optimistic options have been added to YAML configuration for multiple platforms: switches, vacuums, fans, lights, locks, and alarm control panels -Possible candidates: +[@balloob]: https://github.com/balloob +[@karwosts]: https://github.com/karwosts +[@Petro31]: https://github.com/Petro31 +[@piitaya]: https://github.com/piitaya +[History Stats]: /integrations/history_stats +[Template]: /integrations/template -- Add support for opening state in template lock ([@nadimz] - [#147813]) ([template docs]) -- Allow trigger based numeric sensors to be set to unknown ([@Petro31] - [#137047]) ([template docs]) -- Set assist_satellite preannounce default to True ([@abmantis] - [#148060]) ([assist_satellite docs]) -- Add AI task structured output ([@allenporter] - [#148083]) ([ai_task docs]) -- Add weekdays to time trigger ([@frenck] - [#147505]) ([homeassistant docs]) -- Add a preview to history_stats options flow ([@karwosts] - [#145721]) ([history_stats docs]) -- Support all Energy units in Energy integration ([@karwosts] - [#148566]) ([energy docs]) -- Add new device class for absolute humidity ([@mib1185] - [#148567]) ([sensor docs]) ([number docs]) (noteworthy) -- Add a preview to template config flow for alarm control panel, image, and select platforms ([@Petro31] - [#148441]) -- Add availability template to template helper config flow ([@Petro31] - [#147623]) ([template docs]) -- Allow downloading a device analytics dump ([@balloob] - [#149376]) ([analytics docs]) -- Allow to reorder members within a group ([@piitaya] - [#149003]) ([group docs]) -- Add assumed optimistic functionality to lock platform ([@Petro31] - [#149397]) ([template docs]) -- Add optimistic option to switch yaml ([@Petro31] - [#149402]) ([template docs]) -- Add optimism to vacuum platform ([@Petro31] - [#149425]) ([template docs]) -- Add optimistic option to fan yaml ([@Petro31] - [#149390]) ([template docs]) -- Add optimistic option to light yaml ([@Petro31] - [#149395]) ([template docs]) -- Add optimistic option to alarm control panel yaml ([@Petro31] - [#149334]) ([template docs]) +### Weekdays in time trigger -## Lorem ipsum +The [time trigger](/docs/automation/trigger/#time-trigger) is already very +useful, but [@hmmbob] had [a feature request] that could imrpove it even more. -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +He suggested to add the ability to specify weekdays in the time trigger, +allowing users to create automations that only trigger on a specific time +on specific days of the week. + +TODO: Replace image + +This feature has been implemented in this release, allowing you to specify +the weekdays in the time trigger. This is especially useful for automations +that need to run on specific days, such as weekdays or weekends. + +[a feature request]: https://github.com/orgs/home-assistant/discussions/26 +[@hmmbob]: https://github.com/hmmbob ## Need help? Join the community! diff --git a/source/images/blog/2025-08/temp-time-trigger-weekday.png b/source/images/blog/2025-08/temp-time-trigger-weekday.png new file mode 100644 index 0000000000000000000000000000000000000000..2edda023b85197f55d82b0507f3eb35e88f4c33b GIT binary patch literal 22487 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