Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
16b4b02
Add sensor platform to PlayStation Network integration (#39699)
tr4nt0r Jun 25, 2025
40528cb
Add cover platform to Qbus integration (#39686)
thomasddn Jun 25, 2025
cfdef08
Add Zooz integration page (#39709)
joostlek Jun 25, 2025
61a9364
Add exclude entities params to area card (#39710)
piitaya Jun 25, 2025
1901851
Remove model from speak options in Google AI TTS (#39705)
tronikos Jun 26, 2025
b9549bf
Support variables, icon, and picture for all template platforms (#39634)
Petro31 Jun 26, 2025
1a1a65a
Add humidifer and led for switchbot integration (#39722)
zerzhang Jun 26, 2025
d3a8a80
Remove deprecated dweet integration (#39738)
tr4nt0r Jun 27, 2025
cd2f47e
Rewrite Tesla Fleet changes (#39736)
Bre77 Jun 27, 2025
303d0b4
Add Documentation for Manual Charge Switch for Kostal Plenticore (#39…
Schlauer-Hax Jun 27, 2025
120b257
Binary sensor templates can return unknown state (#39739)
epenet Jun 30, 2025
77e19ab
Document zabbix publish_string_states config (#36734)
rusitschka Jun 30, 2025
8f49732
Add sensor last online to PlayStation Network integration (#39769)
tr4nt0r Jun 30, 2025
adf7251
Document Assist satellite ask_question (#39733)
synesthesiam Jun 30, 2025
fb57fb8
Z-Wave: update steps to enable debug logging (#39790)
c0ffeeca7 Jul 1, 2025
34b96e0
Modbus default slave in actions (#39793)
crug80 Jul 1, 2025
c523e14
Add Sensor.Community firmware support information to Nettigo Air Moni…
bieniu Jul 1, 2025
b2af350
Update-compensation (#39373)
Petro31 Jul 2, 2025
7ddf3ed
Remove the old interface parameter for velbus (#39808)
cereal2nd Jul 2, 2025
03d6438
Add sensor Online status to PlayStation Network integration (#39787)
tr4nt0r Jul 2, 2025
b2ed9d7
Improve the description of the state field of Template Lock (#39784)
nadimz Jul 2, 2025
f47e1e1
Merge branch 'current' into next
frenck Jul 2, 2025
bba763e
Z-Wave controllers: rename to adapter (#39806)
c0ffeeca7 Jul 3, 2025
a91291e
Remove STANDBY state from media player states (#39849)
thecode Jul 4, 2025
399f77f
Add weekdays to time trigger (#39707)
frenck Jul 4, 2025
9ac8089
Update yalexs_ble documentation for secure mode support (#39695)
michaelp1742 Jul 4, 2025
378a354
Number selector UoM translation key (#39848)
karwosts Jul 5, 2025
86016c5
Add Binary Sensor Platform to PlayStation Network documentation (#39755)
JackJPowell Jul 5, 2025
ea4c369
Add price indices service to Nord Pool (#39869)
gjohansson-ST Jul 7, 2025
4f9b0dd
Remove stale binary sensor documentation (#39870)
JackJPowell Jul 7, 2025
2cc9c15
Add AI Task docs (#39883)
balloob Jul 7, 2025
85ca296
Update `authentication` field for Telegram bot actions (#39882)
hanwg Jul 8, 2025
978cd9e
Add play media support to Russound RIO (#39873)
noahhusby Jul 9, 2025
3d04a1f
Update pi_hole.markdown for API V6 (#39459)
HarvsG Jul 9, 2025
e4137f4
Pihole v6 (#39933)
c0ffeeca7 Jul 9, 2025
4be1d24
Add silver quality scale to Mealie (#39937)
andrew-codechimp Jul 9, 2025
3e2620f
Remove deprecation note
andrew-codechimp Jul 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions source/_docs/automation/trigger.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -825,6 +825,101 @@ blueprint:

{% endraw %}

### Weekday filtering

Time triggers can be filtered to fire only on specific days of the week using the `weekday` option. This allows you to create automations that only run on certain days, such as weekdays or weekends.

The `weekday` option accepts:
- A single weekday as a string: `"mon"`, `"tue"`, `"wed"`, `"thu"`, `"fri"`, `"sat"`, `"sun"`
- A list of weekdays using the expanded format

#### Single weekday

This example will turn on the lights only on Mondays at 8:00 AM:

```yaml
automation:
- triggers:
- trigger: time
at: "08:00:00"
weekday: "mon"
actions:
- action: light.turn_on
target:
entity_id: light.bedroom
```

#### Multiple weekdays

This example will run a morning routine only on weekdays (Monday through Friday) at 6:30 AM:

```yaml
automation:
- triggers:
- trigger: time
at: "06:30:00"
weekday:
- "mon"
- "tue"
- "wed"
- "thu"
- "fri"
actions:
- action: script.morning_routine
```

#### Weekend example

This example demonstrates a different wake-up time for weekends:

```yaml
automation:
- alias: "Weekday alarm"
triggers:
- trigger: time
at: "06:30:00"
weekday:
- "mon"
- "tue"
- "wed"
- "thu"
- "fri"
actions:
- action: script.weekday_morning

- alias: "Weekend alarm"
triggers:
- trigger: time
at: "08:00:00"
weekday:
- "sat"
- "sun"
actions:
- action: script.weekend_morning
```

#### Combined with input datetime

The `weekday` option works with all time formats, including input datetime entities:

```yaml
automation:
- triggers:
- trigger: time
at: input_datetime.work_start_time
weekday:
- "mon"
- "tue"
- "wed"
- "thu"
- "fri"
actions:
- action: notify.mobile_app
data:
title: "Work Day!"
message: "Time to start working"
```

## Time pattern trigger

With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value (when using the web interface this is required, the fields cannot be left empty).
Expand Down
9 changes: 9 additions & 0 deletions source/_docs/blueprint/selectors.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -1140,6 +1140,15 @@ mode:
type: string
required: false
default: slider
translation_key:
description: >
Allows translations provided by an integration where `translation_key`
is the translation key that is providing the unit_of_measurement string
translation. See the documentation on
[Backend Localization](https://developers.home-assistant.io/docs/internationalization/core/#selectors)
for more information.
type: string
required: false
{% endconfiguration %}

The output of this selector is a number, for example: `42`
Expand Down
35 changes: 15 additions & 20 deletions source/_docs/z-wave/controllers.markdown
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
title: "Z-Wave Controllers"
description: "Extended instructions how to setup Z-Wave."
title: "Z-Wave adapters"
description: "Extended instructions how to set up Z-Wave."
related:
- docs: /integrations/zwave_js/
title: Z-Wave integration
---

## Supported Z-Wave USB Sticks & Hardware Modules
## Supported Z-Wave adapters

You need to have a compatible Z-Wave stick or module installed. The following devices have been confirmed to work with Z-Wave JS:
You need to have a compatible Z-Wave adapter installed. The following devices have been confirmed to work with Z-Wave JS:

{% warning %}

The firmwares of 700 and 800 series Z-Wave controllers have several bugs which impact the stability of the mesh and can cause the controller to become unresponsive. Because there is no known firmware version that is completely fixed, it is recommended to choose a firmware based on the following criteria:
The firmwares of 700 and 800 series Z-Wave adapters have several bugs which impact the stability of the mesh and can cause the adapter to become unresponsive. Because there is no known firmware version that is completely fixed, it is recommended to choose a firmware based on the following criteria:

- 700 series:
- prefer SDK versions 7.17.2 to 7.18.x or 7.21.6 and newer
Expand All @@ -32,7 +32,7 @@ The SDK version does not have to match the firmware version. If you are unsure w
{% endnote %}

{% important %}
You should upgrade the firmware on all 700 and 800 series controllers to a recommended version.
You should upgrade the firmware on all 700 and 800 series adapters to a recommended version.
{% endimportant %}

Firmware can be upgraded using the below directions:
Expand All @@ -44,19 +44,19 @@ Firmware can be upgraded using the below directions:

{% endwarning %}

- 800 series controllers (with some caveats, see notes)
- 800 series USB adapters (with some caveats, see notes)
- HomeSeer SmartStick G8
- Zooz 800 Series Z-Wave Long Range S2 Stick (ZST39 LR)

- 700 series controllers
- 700 series USB adapters
- Aeotec Z-Stick 7 USB stick (ZWA010) (the EU version is not recommended due to RF performance issues)
- HomeSeer SmartStick+ G3
- HomeSeer Z-NET G3
- Silicon Labs UZB-7 USB Stick (Silabs SLUSB7000A / SLUSB001A)
- Zooz S2 Stick 700 (ZST10 700)
- Z-Wave.Me Z-Station

- 500 series controllers
- 500 series USB adapters
- Aeotec Z-Stick Gen5 (see note below)
- Everspring USB stick - Gen 5
- GoControl HUSBZB-1 stick
Expand All @@ -66,39 +66,34 @@ Firmware can be upgraded using the below directions:
- HomeSeer SmartStick+ G2
- HomeSeer Z-NET G2

- Raspberry Pi modules
- Raspberry Pi HAT adapters
- Aeotec Z-Pi 7 Raspberry Pi HAT/Shield (ZWA025, 700 series)
- Z-Wave.Me RaZberry 7 (ZME_RAZBERRY7, 700 series)
- Z-Wave.Me RaZberry 7 Pro (ZMEERAZBERRY7_PRO or ZMEURAZBERRY7_PRO, 700 series)
- Z-Wave.Me Razberry 2 (500 series)
- Z-Wave.Me Razberry 1 (300 series)

If you are just starting out, we recommend that you purchase a 700 series controller or a Raspberry Pi module. The 700 series controllers are the more recent version (when compared to the 500 series). The 700 series controllers support SmartStart, which allows you to add a device by scanning a QR code.

If you are just starting out, we recommend that you purchase an 800 series adapter (with firmware updated to ≥ 7.23.2). The 800 series adapters are the most future-proof and offer the best RF performance.
{% tip %}
It's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
{% endtip %}

## Stick alternatives
## Third-party hubs

The alternative to a stick is a hub that supports Z-Wave. Home Assistant supports the following hubs with Z-Wave support:
For the best experience, it is recommended to use an adapter directly with Home Assistant. If this doesn't work for you, you can use a hub that supports Z-Wave. Home Assistant supports the following third-party hubs with Z-Wave support:

- [Vera](/integrations/vera/)
- [Fibaro](/integrations/fibaro/)
- [SmartThings](/integrations/smartthings/)
- [Z-Wave.Me Z-Way](/integrations/zwave_me)

## Controller notes

### 800 Series Controllers

Z-Wave JS does not support Z-Wave Long Range yet.
## Adapter notes

### Aeotec Z-Stick

{% note %}

The Aeotec Z-Stick and some of its variants (e.g. Z-Wave.Me UZB1) are known to have compatibility issues with the Linux kernel because of their [non-compliant behavior](https://forums.raspberrypi.com/viewtopic.php?f=28&t=245031#p1502030). Plugging these controllers through a USB hub can serve as a workaround that sometimes mitigates the issue.
The Aeotec Z-Stick and some of its variants (e.g. Z-Wave.Me UZB1) are known to have compatibility issues with the Linux kernel because of their [non-compliant behavior](https://forums.raspberrypi.com/viewtopic.php?f=28&t=245031#p1502030). Plugging these adapters through a USB hub can serve as a workaround that sometimes mitigates the issue.

{% endnote %}

Expand Down
117 changes: 117 additions & 0 deletions source/_integrations/ai_task.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
---
title: AI Task
description: Instructions on how to setup AI task entities with Home Assistant.
ha_category:
- AI
ha_release: '2025.7'
ha_quality_scale: internal
ha_domain: ai_task
ha_codeowners:
- '@home-assistant/core'
ha_integration_type: entity
---

The **AI Task** {% term integration %} allows you to use AI to help you configure Home Assistant.

{% include integrations/building_block_integration.md %}

For each task, you can set a preferred AI task entity. This allows you to use different AI models for different purposes, such as generating text, summarizing information, or even controlling devices. When the entity ID is omitted in the action, the preferred AI task entity will be used.

## The state of an AI task entity

The {% term state %} of an AI task {% term entity %} is a timestamp showing the date and time when the AI task was last used.

## Action `ai_task.generate_data`

Generates data using AI.

| Data attribute | Optional | Description |
| ---------------------- | -------- | --------------------------------------------------------------------------------------------------------------- |
| `task_name` | no | String that identifies the type of text generation task (for example, "home summary", "alert notification"). |
| `instructions` | no | String containing the specific instructions for the AI to follow when generating the text. |
| `entity_id` | yes | String that points at an `entity_id` of an LLM task entity. If not specified, uses the default LLM task. |
| `structure` | yes | Dictionary defining the structure of the output data. When set, the AI will return structured data with the specified fields. Each field can have a `description`, `selector`, and optional `required` property. |
| `attachments` | yes | List of attachments to include in the task. Each attachment is the output of the [Media Selector](https://www.home-assistant.io/docs/blueprint/selectors/#media-selector).

The response variable is a dictionary with the following keys:

- `data`: The generated text or structured data (depending on whether `structure` is specified).
- `conversation_id`: The ID of the conversation used for the task.

## Examples

### Structured output example

{% raw %}

```yaml
# Example: Generate structured user profile data
script:
- alias: "Create fake user profile"
sequence:
- action: ai_task.generate_data
data:
task_name: "user profile generation"
instructions: "Generate a profile for a new user"
structure:
name:
description: "First and last name of the user"
required: true
selector:
text:
age:
description: "Age of the user"
required: true
selector:
number:
min: 0
max: 120
interests:
description: "List of user interests"
required: true
selector:
select:
options:
- "Technology"
- "Sports"
- "Music"
- "Travel"
multiple: true
attachments:
- media_content_id: "media-source://user_profile_image.jpg"
media_content_type: "image/jpeg"
response_variable: user_profile
- action: notify.persistent_notification
data:
title: "New User Profile"
message: "Name: {{ user_profile.data.name }}, Age: {{ user_profile.data.age }}, Interests: {{ user_profile.data.interests | join(', ') }}"
```

{% endraw %}

### Simple text generation example

{% raw %}

```yaml
# Example: Generate a notification when garage door is left open
automation:
- alias: "Garage door notification"
triggers:
- trigger: state
entity_id: cover.garage_door
to: 'on'
for:
minutes: 10
actions:
- action: ai_task.generate_data
data:
task_name: "garage door left open comment"
instructions: "Generate a funny notification that garage door was left open"
response_variable: generated_text
- action: notify.persistent_notification
data:
message: "{{ generated_text.data }}"
```

{% endraw %}
Loading