Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
2912026
Bump version to 2025.11.0-dev
jesserockz Oct 8, 2025
8bf06dc
[esp32] Describe the framework source variable in more detail. (#5460)
j9brown Oct 9, 2025
a095ff2
Merge branch 'current' into next
jesserockz Oct 9, 2025
caa2c51
Merge branch 'beta' into next
jesserockz Oct 9, 2025
0507bdc
[usb_host] Fix transfer slot exhaustion at high data rates and add co…
bdraco Oct 12, 2025
f70cb2d
Merge branch 'current' into next
jesserockz Oct 12, 2025
1c8296d
Merge branch 'beta' into next
jesserockz Oct 12, 2025
5577280
[esp32] Update migration guide for Arduino-as-IDF-component changes (…
bdraco Oct 14, 2025
1749c1e
Merge branch 'beta' into next
jesserockz Oct 14, 2025
38ded1a
Merge branch 'beta' into next
jesserockz Oct 14, 2025
b6a6e65
Merge branch 'current' into next
jesserockz Oct 15, 2025
6f52a34
[esp32] Document disable_libc_locks_in_iram option (#5425)
bdraco Oct 15, 2025
46819fe
[mipi_spi] Document `transform: disabled` (#5478)
clydebarrow Oct 15, 2025
1b50e22
Merge branch 'current' into next
jesserockz Oct 16, 2025
a9c2e85
[ina2xx_base] add doc for reset-on-boot disablement option (#5382)
joshuaboniface Oct 17, 2025
0c3aafe
Docs for new Toshiba AC IR (#5098)
exotime Oct 17, 2025
c91567f
BH1900NUX documentation added (new integration) (#4843)
B48D81EFCC Oct 17, 2025
5a1042a
Update the xgzp6xx docs page. (#5310)
ned14 Oct 18, 2025
0164fca
docs(remote): Add Symphony IR protocol (receiver + transmitter) (#5376)
leodrivera Oct 18, 2025
bb927ab
[thermostat] Add humidity support documentation (#5488)
kbx81 Oct 19, 2025
f27001b
[nrf52] NUS (#5174)
tomaszduda23 Oct 19, 2025
7d2c10e
[script] Document new default max_runs=5 for queued mode (#5492)
bdraco Oct 19, 2025
1e7b49e
Document extend/remove with substitutions and Jinja (#5489)
jpeletier Oct 19, 2025
6953a29
Merge branch 'current' into next
jesserockz Oct 20, 2025
0ff4f2d
Merge branch 'current' into next
jesserockz Oct 20, 2025
2085e28
Document `analyze-memory` CLI command (#5499)
bdraco Oct 20, 2025
7ed7b83
[uponor_smatrix] Use combined 32 bit addresses instead of separate 16…
kroimon Oct 20, 2025
586d8b9
[mipi_rgb] Add doc for Waveshare 5 LCD (#5476)
clydebarrow Oct 20, 2025
18b9bb9
[esp32_improv] adding next_url variable documentation (#5369)
amankrokx Oct 20, 2025
ff07c8e
Espnow packet transport (#5458)
EasilyBoredEngineer Oct 20, 2025
89f4d7c
Add includes_c docs (#5505)
swoboda1337 Oct 21, 2025
b6dd4f1
Improve Heartbeat filter (#5451)
pkejval Oct 21, 2025
a30054b
[esp32] Document advanced VFS options for flash optimization (#5507)
bdraco Oct 21, 2025
b66581f
Docs for HDC2010 temperature and humidity sensor (#5513)
optimusprimespace Oct 23, 2025
cdff755
Merge branch 'current' into next
jesserockz Oct 23, 2025
a36f251
Merge branch 'current' into next
jesserockz Oct 24, 2025
49d3b50
[remote_base] add decoder for Dyson cool AM07 tower fan IR codes (#5422)
aanban Oct 28, 2025
80f4809
[mipi_rgb] [mipi_spi] Document `transform: disabled` (#5533)
clydebarrow Oct 29, 2025
547c4b2
[remote_transmitter] Add non-blocking mode (#5525)
swoboda1337 Oct 29, 2025
deddf55
[lvgl] Document on_draw_start and on_draw_end (#5545)
clydebarrow Nov 1, 2025
83901b5
[component] Document `is_idle` condition (#5546)
clydebarrow Nov 3, 2025
fd5fae2
[nrf52,i2c] update doc (#5539)
tomaszduda23 Nov 3, 2025
271f1cf
[esp32] Make the loop task's stack size configurable (#5330)
idstein Nov 3, 2025
6f076dd
[epaper_spi] Update docs for code revisions (#5535)
clydebarrow Nov 3, 2025
7c0271f
[lvgl] Document new layout options (#5541)
clydebarrow Nov 3, 2025
ebfd717
[tinyusb] New component documentation (#5554)
kbx81 Nov 4, 2025
24190f6
Merge branch 'current' into next
jesserockz Nov 4, 2025
7fe3799
Merge branch 'current' into next
jesserockz Nov 4, 2025
89cb7d2
[psram] Document change in mode option (#5553)
clydebarrow Nov 4, 2025
486f4fc
[gp8403] Add gp8413 (15 bits) DAC model (#4415)
SeByDocKy Nov 4, 2025
b4acdf2
[dallas_temp] Add index parameter (#5500)
leejoow Nov 5, 2025
2cf7f66
[esp32_hosted] Add update docs (#5532)
swoboda1337 Nov 5, 2025
562a766
[lvgl] Document `if_nan` text format option (#5560)
clydebarrow Nov 6, 2025
b80571b
[gdk101] Fix fw version reporting (#5447)
Szewcson Nov 6, 2025
6049ed7
[openthread] add poll period for mtd devices (#5514)
rwrozelle Nov 6, 2025
b5a45e1
Add new mcp3221 analog sensor docs (#4942)
philippderdiedas Nov 7, 2025
7500f03
[psram] Document new ignore_not_found option (#5502)
kahrendt Nov 7, 2025
adb7cda
Add HLK-FM22x Face Recognition Module documentation (#4573)
OnFreund Nov 10, 2025
e2f567c
Add RX8130 RTC Component Documentation (#5315)
Beormund Nov 11, 2025
2e4414e
[rx8130] Fix documentation build error with note shortcode (#5591)
bdraco Nov 11, 2025
ad4919f
Merge branch 'current' into next
jesserockz Nov 11, 2025
bcad145
Merge branch 'current' into next
jesserockz Nov 11, 2025
16f08a6
[wifi] Document priority type change to integer (#5590)
bdraco Nov 11, 2025
a8f0f86
[wifi] Document min_auth_mode configuration option (#5588)
bdraco Nov 11, 2025
0a5ab1b
[network, speaker] Document network optimization changes (#5599)
kahrendt Nov 12, 2025
655b58b
Fix bug (#5572)
swoboda1337 Nov 11, 2025
5a46fda
[st7701s] [mipi_rgb] Document deprecation of st7701s in favor of mipi…
jspiros Nov 11, 2025
136c4d9
Bump version to 2025.12.0-dev
swoboda1337 Nov 12, 2025
7f872d9
Merge branch 'current' into next
swoboda1337 Nov 12, 2025
6f768c2
Bump version to 2025.11.0b1
swoboda1337 Nov 12, 2025
97fbdae
Update changelog for 2025.11.0b1
swoboda1337 Nov 12, 2025
26e77c5
Fix pr description
swoboda1337 Nov 12, 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
1 change: 1 addition & 0 deletions all_automations.json
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,7 @@
"remote_transmitter.transmit_dish",
"remote_transmitter.transmit_dooya",
"remote_transmitter.transmit_drayton",
"remote_transmitter.transmit_dyson",
"remote_transmitter.transmit_haier",
"remote_transmitter.transmit_jvc",
"remote_transmitter.transmit_keeloq",
Expand Down
16 changes: 15 additions & 1 deletion content/automations/actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,21 @@ on_...:

- **condition** (**Required**, [condition](#all-conditions)): The condition to check.

{{< anchor "lambda_condition" >}}
### `component.is_idle` Condition

This condition checks if a given component is idle. A component is considered to be idle if it has completed
setup, has not been marked as failed, and is not currently being called by the loop task. This is useful for
synchronizing actions with the state of the component, for example, an e-paper display component that requires
a significant amount of time to update the display panel.

```yaml
on_...:
then:
- if:
condition:
component.is_idle: some_component
# ...
```

### `lambda` Condition

Expand Down
1 change: 1 addition & 0 deletions content/automations/all_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ title: ""
- **dfrobot_sen0395:** `reset`, `settings`
- **display_menu:** `down`, `enter`, `hide`, `left`, `right`, `show`, `show_main`, `up`
- **ds1307:** `read_time`, `write_time`
- **rx8130:** `read_time`, `write_time`
- **esp32_ble_tracker:** `start_scan`, `stop_scan`
- **event:** `trigger`
- **ezo_pmp:** `arbitrary_command`, `change_i2c_address`, `clear_calibration`, `clear_total_volume_dosed`, `dose_continuously`, `dose_volume`, `dose_volume_over_time`, `dose_with_constant_flow_rate`, `find`, `pause_dosing`, `set_calibration_volume`, `stop_dosing`
Expand Down
567 changes: 567 additions & 0 deletions content/changelog/2025.11.0.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content/changelog/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ description: "Changelog"
title: "Changelog"
---

{{< redirect url="/changelog/2025.10.0.html" >}}
{{< redirect url="/changelog/2025.11.0.html" >}}
Binary file added content/changelog/images/changelog-2025.11.0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions content/components/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ ESPHome-specific components or components supporting ESPHome device provisioning
"ESP32 BLE Server","components/esp32_ble_server","bluetooth.svg","dark-invert"
"Bluetooth Proxy","components/bluetooth_proxy","bluetooth.svg","dark-invert"
"Improv via BLE","components/esp32_improv","improv.svg","dark-invert"
"Nordic UART Service (NUS)","components/ble_nus","uart.svg",""
{{< /imgtable >}}

## Management and Monitoring
Expand Down Expand Up @@ -166,6 +167,7 @@ Create update entities simplifying management of OTA updates.
"I²S Audio","components/i2s_audio","i2s_audio.svg",""
"OpenTherm","components/opentherm","opentherm.png",""
"SPI Bus","components/spi","spi.svg",""
"TinyUSB","components/tinyusb","usb.svg","dark-invert"
"UART","components/uart","uart.svg",""
"USB Host","components/usb_host","usb.svg","dark-invert"
"USB UART","components/usb_uart","usb.svg","dark-invert"
Expand Down Expand Up @@ -272,6 +274,7 @@ Sensors are organized into categories; if a given sensor fits into more than one
"CD74HC4067","components/sensor/cd74hc4067","cd74hc4067.jpg","16-channel analog multiplexer",""
"MCP3008","components/sensor/mcp3008","mcp3008.jpg","8-channel ADC",""
"MCP3204 / MCP3208","components/sensor/mcp3204","mcp3204.jpg","4-channel ADC",""
"MCP3221","components/sensor/mcp3221","mcp3221.png","ADC",""
"NAU7802","components/sensor/nau7802","nau7802.jpg","ADC",""
"Resistance","components/sensor/resistance","omega.svg","dark-invert",""
{{< /imgtable >}}
Expand Down Expand Up @@ -377,6 +380,7 @@ Sensors are organized into categories; if a given sensor fits into more than one
"ENS160","components/sensor/ens160","ens160.jpg","eCO₂ & Air Quality",""
"ENS210","components/sensor/ens210","ens210.jpg","Temperature & Humidity",""
"HDC1080","components/sensor/hdc1080","hdc1080.jpg","Temperature & Humidity",""
"HDC2010","components/sensor/hdc2010","hdc2010.png","Temperature & Humidity",""
"HHCCJCY10 (MiFlora Pink)","components/sensor/xiaomi_hhccjcy10","xiaomi_hhccjcy10.jpg","Soil moisture & Temperature & Light",""
"Honeywell ABP","components/sensor/honeywellabp","honeywellabp.jpg","Pressure & Temperature",""
"Honeywell ABP2 I2C","components/sensor/honeywellabp2_i2c","honeywellabp.jpg","Pressure & Temperature",""
Expand Down Expand Up @@ -994,6 +998,7 @@ at the {{< docref "light/fastled" "FastLED Light" >}}.
{{< imgtable >}}
"Time Core","components/time/index","clock-outline.svg","dark-invert"
"DS1307 RTC","components/time/ds1307","clock-outline.svg","dark-invert"
"RX8130 RTC","components/time/rx8130","clock-outline.svg","dark-invert"
"GPS Time","components/time/gps","crosshairs-gps.svg","dark-invert"
"Home Assistant Time","components/time/homeassistant","home-assistant.svg","dark-invert"
"PCF85063 RTC","components/time/pcf85063","clock-outline.svg","dark-invert"
Expand Down Expand Up @@ -1047,6 +1052,7 @@ ESPHome to cellular networks. **Does not encompass Wi-Fi.**
"Exposure Notifications","components/exposure_notifications","exposure_notifications.png",""
"GPS","components/gps","crosshairs-gps.svg","dark-invert"
"Grow Fingerprint Reader","components/fingerprint_grow","fingerprint.svg","dark-invert"
"HLK-FM22x Face Recognition Module","components/hlk_fm22x","face.svg","dark-invert"
"Modbus Controller","components/modbus_controller","modbus.png",""
"Sprinkler","components/sprinkler","sprinkler-variant.svg","dark-invert"
"Status LED","components/status_led","led-on.svg","dark-invert"
Expand Down
39 changes: 39 additions & 0 deletions content/components/ble_nus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
description: "Nordic UART Service (NUS)"
title: "Nordic UART Service (NUS)"
params:
seo:
description: BLE UART support using Nordic UART Service (NUS) for ESPHome logging and communication.
image: uart.svg
---

The BLE NUS component provides a Bluetooth Low Energy UART interface based on the Nordic UART Service.
It can be used to stream logs or enable custom bidirectional communication with ESPHome.

```yaml
# Example configuration entry
ble_nus:
type: logs
```

## Configuration variables

- **type** (**Required**, string): Mode of operation. Must be set to ``logs`` to stream ESPHome logs over the BLE UART.

## Usage

To connect and view logs from the device over BLE:

```bash
esphome logs d.yaml --device BLE
```

Or connect to a specific BLE address:

```bash
esphome logs d.yaml --device 00:11:22:33:44:55
```

## See Also

- Nordic UART Service <https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/libraries/bluetooth/services/nus.html>
16 changes: 15 additions & 1 deletion content/components/climate/climate_ir.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,11 +216,12 @@ climate:

### `toshiba`

- **model** (*Optional*, string): There are two valid models
- **model** (*Optional*, string): There are four valid models:

- `GENERIC` : Temperature range is from 17 to 30 (default)
- `RAC-PT1411HWRU-C` : Temperature range is from 16 to 30; unit displays temperature in degrees Celsius
- `RAC-PT1411HWRU-F` : Temperature range is from 16 to 30; unit displays temperature in degrees Fahrenheit
- `RAS-2819T` : Temperature range is from 18 to 30; supports two-packet IR protocol

> [!NOTE]
>
Expand All @@ -237,9 +238,22 @@ climate:
> internal temperature sensor; a value of 30 seconds seems to work well. See {{< docref "/components/sensor" >}}
> for more information.
>
> - The `RAS-2819T` model uses a two-packet IR protocol where most commands send a primary packet (containing
> temperature, mode, and fan speed) followed by a secondary packet (containing fan speed confirmation and
> mode-specific data). Single-packet commands are used for power-off and swing toggle operations.
>
> - This climate IR component is also known to work with Midea model MAP14HS1TBL and may work with other similar
> models, as well. (Midea acquired Toshiba's product line and re-branded it.)

```yaml
# Example configuration entry for RAS-2819T
climate:
- platform: toshiba
name: "Toshiba AC"
model: RAS-2819T
sensor: room_temperature
```

{{< anchor "whirlpool" >}}

### `whirlpool`
Expand Down
28 changes: 24 additions & 4 deletions content/components/climate/thermostat.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,8 @@ Got all that? Great. Let's take a closer look at some configuration.
The thermostat controller uses the sensor to determine whether it should heat or cool.

- **sensor** (**Required**, [ID](/guides/configuration-types#id)): The sensor that is used to measure the current temperature.
- **humidity_sensor** (*Optional*, [ID](/guides/configuration-types#id)): If specified, this sensor is used to measure the current humidity.
This is used for information only and does not influence temperature control.
- **humidity_sensor** (*Optional*, [ID](/guides/configuration-types#id)): If specified, this sensor is used to measure
the current humidity. This may be used for humidity control; see [Humidity Control Actions](#humidity-control-actions).

### Heating and Cooling Actions

Expand Down Expand Up @@ -296,6 +296,20 @@ These should be used to control the fan only, if available.
- **swing_both_action** (*Optional*, [Action](/automations/actions#all-actions)): The action to call when the fan
should oscillate in horizontal and vertical directions.

### Humidity Control Actions

These are triggered when the humidity control action is changed by the thermostat controller. It can trigger actions
to activate humidification **or** dehumidification.

- **humidity_control_dehumidify_action** (*Optional*, [Action](#config-action)): The action to call when
dehumidification is required.

- **humidity_control_humidify_action** (*Optional*, [Action](#config-action)): The action to call when
humidification is required.

- **humidity_control_off_action** (*Optional*, [Action](#config-action)): The action to call when
(de)humidification should stop. This action is **required** when either of the above actions are configured.

## Advanced Configuration/Behavior

### Set Point Options/Behavior
Expand Down Expand Up @@ -467,8 +481,11 @@ climate:

### Additional Actions/Behavior

- **target_temperature_change_action** (*Optional*, [Action](/automations/actions#all-actions)): The action to call when the
thermostat's target temperature(s) is/are changed.
- **target_humidity_change_action** (*Optional*, [Action](/automations/actions#all-actions)): The action to call when
the thermostat's target humidity is changed.

- **target_temperature_change_action** (*Optional*, [Action](/automations/actions#all-actions)): The action to call when
the thermostat's target temperature(s) is/are changed.

- **startup_delay** (*Optional*, boolean): If set to `true`, when ESPHome starts, `min_cooling_off_time`,
`min_fanning_off_time`, and `min_heating_off_time` must elapse before each respective action may be invoked.
Expand Down Expand Up @@ -544,6 +561,9 @@ the range of allowed temperature values in the thermostat component. See {{< doc
- **heat_overrun** (*Optional*, float): The minimum temperature differential (heating beyond the set point)
before calling the idle [action](/automations/actions#all-actions). Defaults to 0.5 °C.

- **humidity_hysteresis** (*Optional*, float): The maximum humidity differential (above/below the set point)
before calling the respective humidity control [action](#config-action). Defaults to 1%.

> [!NOTE]
>
> - While this platform uses the term temperature everywhere, it can also be used to regulate other values.
Expand Down
30 changes: 18 additions & 12 deletions content/components/display/epaper_spi.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,34 @@ better integration with ESPHome's async architecture.
The communication method uses 4-wire [SPI](/components/spi), so you need to have an `spi:` section in your
configuration.

The driver supports a number of displays and there are also specific configurations for ESP32 boards with integrated displays.
For those boards the predefined configuration will set the correct pins and dimensions for the display.

```yaml
display:
- platform: epaper_spi
cs_pin: GPIOXX
dc_pin: GPIOXX
busy_pin: GPIOXX
reset_pin: GPIOXX
model: 7.3in-spectra-e6
model: Seeed-reTerminal-E1002
lambda: |-
it.filled_circle(it.get_width() / 2, it.get_height() / 2, 50, Color::BLACK);
```

## Configuration variables
## Supported displays

- **cs_pin** (**Required**, [Pin Schema](/guides/configuration-types#pin-schema)): The CS pin.
- **dc_pin** (**Required**, [Pin Schema](/guides/configuration-types#pin-schema)): The DC pin.
- **model** (**Required**): The model of the ePaper display. Currently supported:
| Model name | Manufacturer | Product Description |
| ---------------------- | ------------ | ---------------------------------------------------------- |
| Spectra-E6 | Eink | <https://www.eink.com/brand/detail/Spectra6> |
| Seeed-reTerminal-E1002 | Seeed Studio | <https://www.seeedstudio.com/reTerminal-E1002-p-6533.html> |

## Configuration variables

- `7.3in-spectra-e6` - 7.3" Spectra E6 6-color display (800×480 pixels)
When using a model defining an integrated ESP32 display board most of the configuration such as the pins and dimensions will be set by default,
but can be overridden if needed.

- **busy_pin** (*Optional*, [Pin Schema](/guides/configuration-types#pin-schema)): The BUSY pin. Defaults to not connected.
- **reset_pin** (*Optional*, [Pin Schema](/guides/configuration-types#pin-schema)): The RESET pin. Defaults to not connected.
- **model** (**Required**): The model of the ePaper display. See the table above for options.
- **cs_pin** (**Required**, [Pin Schema](/guides/configuration-types#pin-schema)): The CS pin. Predefined for integrated boards.
- **dc_pin** (**Required**, [Pin Schema](/guides/configuration-types#pin-schema)): The DC pin. Predefined for integrated boards.
- **busy_pin** (*Optional*, [Pin Schema](/guides/configuration-types#pin-schema)): The BUSY pin, if used.
- **reset_pin** (*Optional*, [Pin Schema](/guides/configuration-types#pin-schema)): The RESET pin, if used.
Make sure you pull this pin high (by connecting it to 3.3V with a resistor) if not connected to a GPIO pin.

- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in `lambda:` will be rotated
Expand Down
5 changes: 3 additions & 2 deletions content/components/display/mipi_rgb.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,16 @@ These boards have completely pre-filled configurations for the display driver, s
option is `model`.

| Board | Driver Chip | Manufacturer | Product link |
| ---------------------------- | ----------- | ------------ | ---------------------------------------------------------------- |
|------------------------------| ----------- | ------------ | ---------------------------------------------------------------- |
| GUITION-4848S040 | ST7701s | Guition | <https://devices.esphome.io/devices/Guition-ESP32-S3-4848S040> |
| T-PANEL-S3 | ST7701s | Lilygo | <https://lilygo.cc/products/t-panel-s3> |
| T-RGB-2.1 | ST7701s | Lilygo | <https://lilygo.cc/products/t-rgb> |
| T-RGB-2.8 | ST7701s | Lilygo | <https://lilygo.cc/products/t-rgb> |
| SEEED-INDICATOR-D1 | ST7701s | Seeed Studio | <https://www.seeedstudio.com/SenseCAP-Indicator-D1L-p-5646.html> |
| ESP32-S3-TOUCH-LCD-4.3 | RPI | Waveshare | <https://www.waveshare.com/esp32-s3-touch-lcd-4.3.htm> |
| ESP32-S3-TOUCH-LCD-7-800X480 | RPI | Waveshare | <https://www.waveshare.com/esp32-s3-touch-lcd-7.htm> |
| WAVESHARE-4-480x480 | RPI | Waveshare | <https://www.waveshare.com/esp32-s3-touch-lcd-4.htm> |
| WAVESHARE-4-480X480 | RPI | Waveshare | <https://www.waveshare.com/esp32-s3-touch-lcd-4.htm> |
| WAVESHARE-5-1024X600 | RPI | Waveshare | <https://www.waveshare.com/esp32-s3-touch-lcd-5.htm> |

## Usage

Expand Down
Loading