Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
8b90035
Jewish Calendar: migrate count the Omer action to a dedicated page (#…
frenck Jun 24, 2026
a8fbdfc
Bump dropbox to silver quality (#46470)
bdr99 Jun 25, 2026
0283329
Volvo: migrate actions to dedicated action pages (#46172)
frenck Jun 25, 2026
a2b585e
Remove Mycroft (#46484)
tr4nt0r Jun 26, 2026
c5bb21b
Remove ThermoWorks Smoke (#46483)
tr4nt0r Jun 26, 2026
be2be74
Document disabling the container log file (#46489)
adamsteen Jun 26, 2026
dd81d04
Remove Greenwave Reality (#46496)
tr4nt0r Jun 26, 2026
9f99b6e
Add Low-Power mode option for Synology DSM fan speed (#46494)
mib1185 Jun 27, 2026
d6c4dad
Remove Logentries (#46499)
tr4nt0r Jun 27, 2026
24f1528
Remove ATEN Rack PDU (#46500)
tr4nt0r Jun 27, 2026
5a1425a
Update hypontech.markdown (#45928)
jcisio Jun 27, 2026
3d90dc0
Add remaining charging/discharging time to Indevolt (#46440)
Xirt Jun 27, 2026
7094cd4
Remove Dovado integration (#46498)
tr4nt0r Jun 27, 2026
6bb248e
Remove BlinkStick (#46507)
tr4nt0r Jun 27, 2026
fcde460
Remove Watson TTS (#46509)
tr4nt0r Jun 27, 2026
dd540f2
Remove Microsoft Face (#46513)
tr4nt0r Jun 27, 2026
5699aa0
Remove Clementine Music Player (#46510)
tr4nt0r Jun 27, 2026
a789ddb
Remove Microsoft Teams integration (#45927)
tr4nt0r Jun 27, 2026
c53dba6
Remove UniFi LED integration documentation (#44776)
RaHehl Jun 27, 2026
52217ec
Revise STIEBEL ELTRON integration modes and instructions (#46518)
ThyMYthOS Jun 27, 2026
628cfb6
Limit amount of ProxmoxVE entities enabled by default (#46516)
CoMPaTech Jun 28, 2026
cbf5e1f
Add diagnostics for CentriConnect (#46522)
gresrun Jun 30, 2026
531f020
Document bluetooth proxy support (#46472)
tl-sl Jun 30, 2026
22b428c
Add reply and quote posts support to Mastodon (#46541)
tr4nt0r Jun 30, 2026
300c470
Add IoTorero virtual integration (#46552)
joostlek Jun 30, 2026
11e1b89
Remove Gitter integration (#46519)
tr4nt0r Jun 30, 2026
a769025
Document Sonarr calendar entity (#46407)
seanpasino Jul 1, 2026
d29c787
Rework MQTT config flow (#46087)
jbouwh Jul 1, 2026
fee27e6
Add SwitchBot Candle Warmer Lamp documentation (#45904)
Onero-testdev Jul 1, 2026
845cc57
Infrared: add remote adapter, add terminology (#46548)
c0ffeeca7 Jul 2, 2026
a196f3f
Add RADON device class for sensor and number (#46628)
abmantis Jul 2, 2026
d74d874
Rename Modbus integration to Manual Modbus (#46629)
balloob Jul 2, 2026
9b042af
Add LLM integration documentation (#46325)
balloob Jul 3, 2026
26c8b64
Update netatmo.markdown (#46637)
cgtobi Jul 3, 2026
9ac55e5
Update template light temperature docs to reflect Kelvin values (#46645)
frenck Jul 3, 2026
9688871
Update Imou docs for switch platform (#46487)
Imou-OpenPlatform Jul 3, 2026
222c396
Document seat cooler select entities for Teslemetry (#46635)
Bre77 Jul 3, 2026
3918dcb
Add select charger mode to V2C (#45199)
dgomes Jul 3, 2026
1ebe29e
Add sensor platform documentation for Cielo Home integration (#45753)
btajuddin Jul 3, 2026
d41f5a6
Add llama.cpp documentation (#46664)
allenporter Jul 4, 2026
7069e56
Document per-API MCP server endpoint (#46665)
balloob Jul 4, 2026
37cb48c
Add Modbus Connection integration documentation (#46632)
balloob Jul 6, 2026
65d2d91
Document Hypontech plant status binary sensor (#46363)
jcisio Jul 6, 2026
4dee5e0
Add more documentation details to Alexa Devices (#46681)
chemelli74 Jul 6, 2026
209fe1a
Update SMLIGHT Infrared section with IR receiver (#46559)
tl-sl Jul 6, 2026
df6b21c
Document vizio remote key aliases (#44642)
raman325 Jul 7, 2026
7cc4a09
data_grand_lyon: add tcl park and rides (#46403)
Crocmagnon Jul 7, 2026
b2e7614
Document options flow for SMLIGHT ble scanner mode (#46705)
tl-sl Jul 7, 2026
2751e8a
Add Google Health integration documentation (#46634)
allenporter Jul 7, 2026
ab71f71
Add get_prices_for_date service action to OMIE (#46702)
abmantis Jul 8, 2026
b28cae4
Remove deprecated event bus documentation in HTML5 Push Notifications…
tr4nt0r Jul 9, 2026
020e7e9
Add neopool integration documentation (#45990)
svasek Jul 9, 2026
f55ae0f
Add cover platform to Liebherr (#46740)
mettolen Jul 9, 2026
4ad1e38
Default play media username to the calling user in Music Assistant (#…
arturpragacz Jul 9, 2026
9151211
Document Fronius backup mode and battery standby binary sensors (#46745)
farmio Jul 9, 2026
7b06063
Add wildcard upload to onedrive (#46671)
zweckj Jul 9, 2026
b055165
Portainer add update platform (#43706)
erwindouna Jul 9, 2026
863383c
Document new Subaru sensors (vehicle state, recommended tire pressure…
jpettitt Jul 9, 2026
3974107
Documentation for rain sensor limitation in the Velux integration (#4…
wollew Jul 9, 2026
6dcbc75
MELCloud Home add number platform (#46426)
erwindouna Jul 9, 2026
9ecb323
Remove options section from ScreenLogic documentation (#46663)
Pinball3D Jul 9, 2026
2384581
Document capability-based UniFi Protect sense entities and the leak s…
RaHehl Jul 9, 2026
c8922ea
Add documentation for wmspro.set_cover_position_and_tilt action (#46485)
mback2k Jul 9, 2026
79c0b17
docs(energieleser): upgrade to gold quality scale (#46756)
AjinkyaGokhale Jul 9, 2026
286eaa4
Add proposed sensors to WeatherFlow doc (#45168)
inventor7777 Jul 9, 2026
a482a0a
gree docs: add swing modes (#45045)
greengreenblue Jul 10, 2026
eacf6e0
Add navigation destination text entity to Tessie docs (#45007)
Mattheinrichs Jul 10, 2026
d65cd21
Add docs for NINA actions (#44227)
DeerMaximum Jul 10, 2026
7abd51c
Add button documentation for Yardian (#45829)
aeon-matrix Jul 10, 2026
b291ab5
Add ScorpionTrack integration page (#46343)
Herbertmt978 Jul 10, 2026
5f5d698
Add Fuelprices.dk documentation (#43710)
MTrab Jul 10, 2026
f9070d1
Add Enphase_envoy manual token entry description (#44209)
catsmanac Jul 10, 2026
5f9843e
docs: Update iZone integration documentation for multi-controller con…
Swamp-Ig Jul 10, 2026
2d026b8
Refer to Network settings for HTTP options (#46765)
fdmarcin Jul 10, 2026
167d0ee
Add section about rollover sensors to the UPnP integration documentat…
StevenLooman Jul 10, 2026
b9b87b5
Add Lyngdorf integration documentation (#43439)
fishloa Jul 10, 2026
c70fcd8
Add Reolink Pre-siren and Pre-siren on event (#46776)
starkillerOG Jul 12, 2026
3599549
Add Kiosker Reauthentication Documentation (#46468)
Claeysson Jul 12, 2026
348d0ba
remove permobil (#45215)
IsakNyberg Jul 12, 2026
915cd5a
Fix indentation of Supported functionality section (#46801)
mback2k Jul 13, 2026
cb5f75b
Update luci integration documentation (#46782)
kristbaum Jul 13, 2026
b1f3edf
Document HTTP server UI configuration (#46764)
fdmarcin Jul 13, 2026
0d543de
Document HomeKit climate accessory type option (#46577)
bdraco Jul 13, 2026
f3da1cd
Add Harman Luxury Audio integration (#46677)
sbesh91 Jul 13, 2026
b1543b0
Add sensors information for Mikrotik (#46597)
chemelli74 Jul 13, 2026
d5160e5
Add sensors to Steam integration (#46767)
tr4nt0r Jul 13, 2026
5e1a184
Update Tesla Wall Connector docs (#46718)
sarabveer Jul 13, 2026
0cc9793
Nobo hub reconfiguration flow (#45090)
oyvindwe Jul 13, 2026
b88e42d
KNX switch state restoration (#46822)
farmio Jul 13, 2026
2f931f8
Document Whirlpool oven light (#46805)
matthewdias Jul 13, 2026
0dfcf80
Add documentation for LED Infrared integration (#46600)
tr4nt0r Jul 13, 2026
6516ec8
Add S3000 Pro support to Edifier Infrared (#46773)
horjulf Jul 13, 2026
3c3dd7b
Remove Energy section from ohme.markdown (#46464)
dan-r Jul 14, 2026
cba9416
Add estimated arrival sensor to Picnic (#46788)
ronlimon Jul 14, 2026
371055d
Add GPT-5.6 pro mode (#46840)
Shulyaka Jul 14, 2026
ec892f3
Expand Nobø Ecohub documentation toward gold quality scale (#46838)
oyvindwe Jul 14, 2026
355eb50
Nobø Ecohub: add automation examples (#46849)
oyvindwe Jul 14, 2026
28cce8e
Add Karakeep documentation (#46337)
sli-cka Jul 14, 2026
cf2b0a5
Add documention for new integration Gatus (#46533)
TN-1 Jul 14, 2026
c7fc567
Whirlpool: document oven cook mode select (#46717)
bdlcalvin Jul 15, 2026
3621d58
KNX date, datetime, time, number, text, select state restoration (#46…
farmio Jul 16, 2026
d1b21b7
Add vibration triggers documentation (#46827)
nielsrowinbik Jul 16, 2026
86395b2
Added documentation for PTDevices battery binary sensor (#45194)
frogman85978 Jul 16, 2026
2fa9c32
Add moon triggers documentation (#46828)
nielsrowinbik Jul 16, 2026
c0b72c0
Remove Modbus Connection integration documentation (#46884)
balloob Jul 16, 2026
6dd916a
Rename Modbus integration documentation back to Modbus (#46885)
balloob Jul 16, 2026
9f3a7f5
Add vibration conditions documentation (#46880)
nielsrowinbik Jul 17, 2026
c11c765
Add moon conditions documentation (#46882)
nielsrowinbik Jul 17, 2026
b640e8f
Add port change warning for mobile apps (#46902)
fdmarcin Jul 17, 2026
b648d75
Whirlpool: document oven target temperature number (#46716)
bdlcalvin Jul 17, 2026
615bf28
Update denon_rs232.markdown with tuner controls (#46893)
koszoaron Jul 17, 2026
2f38f4b
Add manufacturer, model, and model_id filtering to entity filter sele…
Skaronator Jul 18, 2026
7805df9
Add LiteLLM integration documentation (#45740)
luismalves Jul 18, 2026
aa18f14
Document Duco ventilation temperature sensors (#46890)
ronaldvdmeer Jul 18, 2026
70fa100
Update Gatus Docs to add Reconfiguration flow (#46896)
TN-1 Jul 18, 2026
b3e74af
Add diagnostics section to Gatus docs (#46912)
TN-1 Jul 18, 2026
217ebd2
Add information about Shelly Enhanced Security (#46883)
bieniu Jul 19, 2026
52534ce
Add pressure tank units to Gardena Bluetooth documentation (#46921)
icereed Jul 19, 2026
24ed181
Document Imou sensor platform (#46747)
Imou-OpenPlatform Jul 20, 2026
f8b343b
Add documentation for new integration Midea LAN (#40785)
chemelli74 Jul 21, 2026
0b8012f
Add button information to Mikrotik (#46835)
chemelli74 Jul 21, 2026
e17ab8c
Add onboarding survey redirect (#46969)
maartenla Jul 21, 2026
3828798
Merge branch 'current' into next
frenck Jul 22, 2026
33dab65
Document new Lyric binary sensors and sensors
clutch2sft Jul 22, 2026
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
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,7 @@ source/_integrations/garage_door.markdown @home-assistant/core
source/_integrations/garages_amsterdam.markdown @klaasnicolaas
source/_integrations/gardena_bluetooth.markdown @elupus
source/_integrations/gate.markdown @home-assistant/core
source/_integrations/gatus.markdown @TN-1
source/_integrations/gaviota.markdown @starkillerOG
source/_integrations/gdacs.markdown @exxamalte
source/_integrations/generic.markdown @davet2001
Expand Down Expand Up @@ -792,7 +793,6 @@ source/_integrations/peco.markdown @IceBotYT
source/_integrations/peco_opower.markdown @tronikos
source/_integrations/pegel_online.markdown @mib1185
source/_integrations/pepco.markdown @tronikos
source/_integrations/permobil.markdown @IsakNyberg
source/_integrations/persistent_notification.markdown @home-assistant/core
source/_integrations/pge.markdown @tronikos
source/_integrations/pglab.markdown @pglab-electronics
Expand Down
88 changes: 58 additions & 30 deletions source/_actions/jewish_calendar.count_omer.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ domain: jewish_calendar
description: "Returns the phrase for counting the Omer on a given date."
---

Use this action to get the phrase for counting the Omer on a given date.
The **Count the Omer** action returns the phrase for counting the Omer on a given date.

This is useful when you want an automation or script to announce or display the daily Omer count, for example as part of an evening routine during the Omer period.

This action does not support targets. In the UI, you are not prompted to choose an area, device, entity, or label. Instead, you provide the date and tradition to count for.

{% include actions/ui_header.md %}

Expand All @@ -15,32 +19,30 @@ To count the Omer from an automation or a script:
2. Open an existing automation or script, or select **Create automation** > **Create new automation**.
3. If you're setting up a new automation, add a trigger in the **When** section. Scripts don't need a trigger. They run when something else calls them.
4. In the **Then do** section, select **Add action**.
5. Select **Jewish Calendar: Count the Omer**.
6. Set the nusach and other options.
5. From the search box, search for and select **Jewish Calendar: Count the Omer**.
6. Select the **Nusach**, and optionally set the **Date**, **After sunset**, and **Language**.
7. Select **Save**.

### Options in the UI

{% options_ui %}
Date:
description: The date for which to get the Omer count. If unset, the action uses today.
description: The date to count the Omer for. Defaults to today.
required: false
After sunset:
description: If enabled and a date is provided, the action calculates the Omer count based on the Hebrew date, which starts after sunset. Ignored if no date is specified.
description: Uses the next Hebrew day, which starts at sunset, for the given date. This option is ignored if the date is empty. Defaults to on.
required: false
default: true
Nusach:
description: The nusach, or tradition, of the Omer blessing.
default: sfarad
description: The nusach (tradition) to count the Omer in. One of Sfarad, Ashkenaz, Adot Mizrah, or Italian.
required: true
Language:
description: The language to return. Supported languages are English, Hebrew, and French.
description: The language to count the Omer in. Supported languages are English, Hebrew, and French. Defaults to Hebrew.
required: false
default: he
{% endoptions_ui %}

{% include actions/yaml_header.md %}

In YAML, refer to this action as `jewish_calendar.count_omer`. Store the result in a response variable so you can use it in later steps:
In YAML, refer to this action as `jewish_calendar.count_omer`. Because this action returns data, use `response_variable` to capture the result. A basic example looks like this:

{% example %}
action: |
Expand All @@ -49,63 +51,89 @@ action: |
nusach: sfarad
date: "2025-05-20"
language: en
response_variable: omer_count
response_variable: omer
{% endexample %}

This returns the Omer count for May 20, 2025, in English.
This counts the Omer for the given date and stores the result in the `omer` variable.

### Options in YAML

{% options_yaml %}
date:
description: The date for which to get the Omer count. If unset, the action uses today.
description: >
The date to count the Omer for. Defaults to today.
required: false
type: string
type: date
after_sunset:
description: If true and a date is provided, the action calculates the Omer count based on the Hebrew date, which starts after sunset. Ignored if no date is specified.
description: >
Uses the next Hebrew day, which starts at sunset, for the given date.
This option is ignored if the date is empty.
required: false
type: boolean
default: true
nusach:
description: The nusach, or tradition, of the Omer blessing. Supported values are `sfarad`, `ashkenaz`, `adot_mizrah`, and `italian`.
description: >
The nusach (tradition) to count the Omer in. One of `sfarad`,
`ashkenaz`, `adot_mizrah`, or `italian`.
required: true
type: string
default: sfarad
language:
description: The language to return. Supported values are `en`, `he`, and `fr`.
description: >
The language to count the Omer in. Supported values are `en`, `he`,
and `fr`. Defaults to Hebrew.
required: false
type: string
default: he
{% endoptions_yaml %}

This action does not support targets.

## Response data

The action response includes the following fields:
The action returns the following data:

- `message`: The phrase for counting the Omer. If there is no Omer count on the given day, this value is empty.
- `weeks`: The number of complete weeks.
- `days`: The number of days after the complete weeks.
- `total_days`: The total number of Omer days.
- `message`: The phrase for counting the Omer. Empty when there is no Omer count on the given day.
- `weeks`: The number of complete weeks counted.
- `days`: The number of days counted beyond the complete weeks.
- `total_days`: The total number of days counted.

## Good to know
For the example above, the response looks similar to this:

- If there is no Omer count on the given day, the message is empty.
- The Hebrew date starts after sunset.
{% example %}
output: |
message: >-
Today is the thirty-seventh day, which are five weeks and two days of the
Omer
weeks: 5
days: 2
total_days: 37
{% endexample %}

{% include actions/more_examples.md %}

### Minimal count in Hebrew
### Count today's Omer in Hebrew

For a minimal call, provide only the required nusach. With no date, the action counts the current Hebrew day, taking the current time relative to sunset into account, and returns the text in Hebrew by default.

{% example %}
action: |
action: jewish_calendar.count_omer
data:
nusach: sfarad
response_variable: omer_count
response_variable: omer
{% endexample %}

This returns a response similar to:

{% example %}
output: |
message: היום ארבעה עשר יום שהם שני שבועות לעומר
weeks: 2
days: 0
total_days: 14
{% endexample %}

{% include actions/try_it.md %}

{% include actions/stuck.md %}

{% include actions/related.md %}
16 changes: 16 additions & 0 deletions source/_actions/mastodon.post.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ Media description:
Media warning:
description: Mark the attached media as sensitive.
required: false
In reply to:
description: The ID of the status to reply to. Setting this makes the new post a reply, allowing you to create or continue a thread.
required: false
Quote:
description: The ID of the status to quote in this post.
required: false
{% endoptions_ui %}

{% include actions/yaml_header.md %}
Expand Down Expand Up @@ -136,6 +142,16 @@ media_warning:
required: false
type: boolean
default: false
in_reply_to:
description: >
The ID of the status to reply to. Setting this makes the new post a reply, allowing you to create or continue a thread.
required: false
type: string
quoted_status:
description: >
The ID of the status to quote in this post.
required: false
type: string
{% endoptions_yaml %}

{% note %}
Expand Down
4 changes: 2 additions & 2 deletions source/_actions/music_assistant.play_media.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Enqueue:
Enable radio mode:
description: Turns on radio mode to auto-generate a playlist based on the selection.
Username:
description: Use this Music Assistant user to adjust the playlog entry. If the specified user has provider filtering configured, the media item selection will be made accordingly. For example, this has an effect on the resume point retrieval of an audiobook.
description: Use this Music Assistant user to adjust the playlog entry. If the specified user has provider filtering configured, the media item selection will be made accordingly. For example, this has an effect on the resume point retrieval of an audiobook. When left empty, it defaults to the Home Assistant user that made the request, if their username matches a Music Assistant user. When you call this action from an automation or script, set the username explicitly so the request is attributed to the right user.
{% endoptions_ui %}

{% include actions/yaml_header.md %}
Expand Down Expand Up @@ -84,7 +84,7 @@ radio_mode:
type: boolean
default: false
username:
description: Use this Music Assistant user to adjust the playlog entry. If provider filtering is used, the media item will be selected accordingly.
description: Use this Music Assistant user to adjust the playlog entry. If the specified user has provider filtering configured, the media item selection will be made accordingly. For example, this has an effect on the resume point retrieval of an audiobook. When left empty, it defaults to the Home Assistant user that made the request, if their username matches a Music Assistant user. When you call this action from an automation or script, set the username explicitly so the request is attributed to the right user.
required: false
type: string
{% endoptions_yaml %}
Expand Down
106 changes: 106 additions & 0 deletions source/_actions/omie.get_prices_for_date.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
title: "Get prices for date"
action: omie.get_prices_for_date
domain: omie
description: "Retrieves OMIE electricity spot prices for a specific date, for Spain, Portugal, or both."
---

Use this action to retrieve the day-ahead electricity spot prices for a specific date, for Spain, Portugal, or both countries.

The OMIE sensors always reflect the current price. This action lets you fetch the prices for any published date instead, which is useful when you want to look ahead. For example, you can compare tomorrow's prices or schedule an appliance to run during the cheapest hours.

This action returns its result in a response variable, which you can use in later steps of the same automation or script.

Prices for the next day are published daily at around 13:30 CET/CEST. If you request a date that has not been published yet, the action reports that the prices are not available. Similarly if you request a date that is previous to the date when quarter-hourly prices became available, the action reports that no prices exist for that date and tells you the earliest date you can request.

{% include actions/ui_header.md %}

To get prices from an automation or a script:

1. Go to {% my automations title="**Settings** > **Automations & scenes**" %}.
2. Open an existing automation or script, or select **Create automation** > **Create new automation**.
3. If you're setting up a new automation, add a trigger in the **When** section. Scripts don't need a trigger. They run when something else calls them.
4. In the **Then do** section, select **Add action**.
5. From the search box, search for and select **OMIE - Spain and Portugal electricity prices: Get prices for date**.
6. Select the **Date** you want, and choose the **Countries** to get prices for.
7. In the **Response variable** field, enter a name to store the data in, such as `prices`.
8. Select **Save**.

### Options in the UI

{% options_ui %}
Date:
description: The date to get the prices for.
required: true
Countries:
description: The countries to get the prices for. Choose Spain, Portugal, or both. Both are selected by default.
required: true
{% endoptions_ui %}

{% include actions/yaml_header.md %}

In YAML, refer to this action as `omie.get_prices_for_date`. Store the result in a response variable so you can use it in later steps:

{% example %}
action: |
action: omie.get_prices_for_date
data:
date: "2026-07-08"
countries:
- es
- pt
response_variable: prices
{% endexample %}

This fetches the prices for both Spain and Portugal on the given date.

### Options in YAML

{% options_yaml %}
date:
description: >
The date to get the prices for, in YYYY-MM-DD format.
required: true
type: date
countries:
description: >
The countries to get the prices for. A list containing es, pt, or both.
Defaults to both.
required: true
type: list
{% endoptions_yaml %}

## Response data

The response contains a key for each requested country: `es` for Spain and `pt` for Portugal. If you request both countries, both keys are present.

Each key holds a list of quarter-hourly intervals. Each interval includes the following fields:

- `start`: The start time of the interval, in CET/CEST.
- `end`: The end time of the interval, in CET/CEST.
- `price`: The electricity spot price for the interval, in €/kWh.

A shortened example of the response looks like this:

```yaml
es:
- start: "2026-07-08T00:00:00+02:00"
end: "2026-07-08T00:15:00+02:00"
price: 0.03415
- start: "2026-07-08T00:15:00+02:00"
end: "2026-07-08T00:30:00+02:00"
price: 0.03521
pt:
- start: "2026-07-08T00:00:00+02:00"
end: "2026-07-08T00:15:00+02:00"
price: 0.0361
- start: "2026-07-08T00:15:00+02:00"
end: "2026-07-08T00:30:00+02:00"
price: 0.0372
```

{% include actions/try_it.md %}

{% include actions/stuck.md %}

{% include actions/related.md %}
29 changes: 29 additions & 0 deletions source/_actions/onedrive.upload.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ filename:
description: >
One or more paths to the files you want to upload. The path must be in
the `allowlist_external_dirs` of your `homeassistant:` configuration.
Wildcards (glob patterns) are supported, so you can upload several files
at once. When you use a wildcard, the folder part before the first
wildcard must be in `allowlist_external_dirs`.
required: true
type: [string, list]
destination_folder:
Expand Down Expand Up @@ -104,6 +107,32 @@ action: |

{% enddetails %}

### Upload files using wildcards

The `filename` option supports wildcards (glob patterns), so you can upload several files without listing each one:

- `*` matches any number of characters within a single folder level. For example, `/media/snapshots/*.jpg` uploads every JPG file in the `snapshots` folder.
- `**` matches folders recursively. For example, `/media/snapshots/**/*.jpg` uploads every JPG file in the `snapshots` folder and all of its subfolders.
- `?` matches a single character.
- `[` starts a character range, such as `[0-9]`.

When a wildcard matches files in subfolders, those subfolders are recreated inside the `destination_folder` on OneDrive, preserving the original structure.

If a wildcard pattern does not match any files, the action fails with an error listing the patterns that had no matches. The characters `*`, `?`, and `[` are always treated as wildcards.

{% details "Upload files using a wildcard" %}

{% example %}
action: |
action: onedrive.upload
data:
config_entry_id: a1bee602deade2b09bc522749bbce48e
filename: /media/snapshots/**/*.jpg
destination_folder: Snapshots/2025
{% endexample %}

{% enddetails %}

{% include actions/stuck.md %}

{% include actions/related.md %}
Loading