Skip to content

Commit 8fdfaf7

Browse files
authored
Merge pull request #5604 from esphome/bump-2025.11.0b1
2025.11.0b1
2 parents d6fb7cd + 26e77c5 commit 8fdfaf7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+2569
-299
lines changed

all_automations.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@
287287
"remote_transmitter.transmit_dish",
288288
"remote_transmitter.transmit_dooya",
289289
"remote_transmitter.transmit_drayton",
290+
"remote_transmitter.transmit_dyson",
290291
"remote_transmitter.transmit_haier",
291292
"remote_transmitter.transmit_jvc",
292293
"remote_transmitter.transmit_keeloq",

content/automations/actions.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,21 @@ on_...:
462462

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

465-
{{< anchor "lambda_condition" >}}
465+
### `component.is_idle` Condition
466+
467+
This condition checks if a given component is idle. A component is considered to be idle if it has completed
468+
setup, has not been marked as failed, and is not currently being called by the loop task. This is useful for
469+
synchronizing actions with the state of the component, for example, an e-paper display component that requires
470+
a significant amount of time to update the display panel.
471+
472+
```yaml
473+
on_...:
474+
then:
475+
- if:
476+
condition:
477+
component.is_idle: some_component
478+
# ...
479+
```
466480

467481
### `lambda` Condition
468482

content/automations/all_actions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ title: ""
2323
- **dfrobot_sen0395:** `reset`, `settings`
2424
- **display_menu:** `down`, `enter`, `hide`, `left`, `right`, `show`, `show_main`, `up`
2525
- **ds1307:** `read_time`, `write_time`
26+
- **rx8130:** `read_time`, `write_time`
2627
- **esp32_ble_tracker:** `start_scan`, `stop_scan`
2728
- **event:** `trigger`
2829
- **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`

content/changelog/2025.11.0.md

Lines changed: 567 additions & 0 deletions
Large diffs are not rendered by default.

content/changelog/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ description: "Changelog"
33
title: "Changelog"
44
---
55

6-
{{< redirect url="/changelog/2025.10.0.html" >}}
6+
{{< redirect url="/changelog/2025.11.0.html" >}}
84.7 KB
Loading

content/components/_index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ ESPHome-specific components or components supporting ESPHome device provisioning
123123
"ESP32 BLE Server","components/esp32_ble_server","bluetooth.svg","dark-invert"
124124
"Bluetooth Proxy","components/bluetooth_proxy","bluetooth.svg","dark-invert"
125125
"Improv via BLE","components/esp32_improv","improv.svg","dark-invert"
126+
"Nordic UART Service (NUS)","components/ble_nus","uart.svg",""
126127
{{< /imgtable >}}
127128

128129
## Management and Monitoring
@@ -166,6 +167,7 @@ Create update entities simplifying management of OTA updates.
166167
"I²S Audio","components/i2s_audio","i2s_audio.svg",""
167168
"OpenTherm","components/opentherm","opentherm.png",""
168169
"SPI Bus","components/spi","spi.svg",""
170+
"TinyUSB","components/tinyusb","usb.svg","dark-invert"
169171
"UART","components/uart","uart.svg",""
170172
"USB Host","components/usb_host","usb.svg","dark-invert"
171173
"USB UART","components/usb_uart","usb.svg","dark-invert"
@@ -272,6 +274,7 @@ Sensors are organized into categories; if a given sensor fits into more than one
272274
"CD74HC4067","components/sensor/cd74hc4067","cd74hc4067.jpg","16-channel analog multiplexer",""
273275
"MCP3008","components/sensor/mcp3008","mcp3008.jpg","8-channel ADC",""
274276
"MCP3204 / MCP3208","components/sensor/mcp3204","mcp3204.jpg","4-channel ADC",""
277+
"MCP3221","components/sensor/mcp3221","mcp3221.png","ADC",""
275278
"NAU7802","components/sensor/nau7802","nau7802.jpg","ADC",""
276279
"Resistance","components/sensor/resistance","omega.svg","dark-invert",""
277280
{{< /imgtable >}}
@@ -377,6 +380,7 @@ Sensors are organized into categories; if a given sensor fits into more than one
377380
"ENS160","components/sensor/ens160","ens160.jpg","eCO₂ & Air Quality",""
378381
"ENS210","components/sensor/ens210","ens210.jpg","Temperature & Humidity",""
379382
"HDC1080","components/sensor/hdc1080","hdc1080.jpg","Temperature & Humidity",""
383+
"HDC2010","components/sensor/hdc2010","hdc2010.png","Temperature & Humidity",""
380384
"HHCCJCY10 (MiFlora Pink)","components/sensor/xiaomi_hhccjcy10","xiaomi_hhccjcy10.jpg","Soil moisture & Temperature & Light",""
381385
"Honeywell ABP","components/sensor/honeywellabp","honeywellabp.jpg","Pressure & Temperature",""
382386
"Honeywell ABP2 I2C","components/sensor/honeywellabp2_i2c","honeywellabp.jpg","Pressure & Temperature",""
@@ -994,6 +998,7 @@ at the {{< docref "light/fastled" "FastLED Light" >}}.
994998
{{< imgtable >}}
995999
"Time Core","components/time/index","clock-outline.svg","dark-invert"
9961000
"DS1307 RTC","components/time/ds1307","clock-outline.svg","dark-invert"
1001+
"RX8130 RTC","components/time/rx8130","clock-outline.svg","dark-invert"
9971002
"GPS Time","components/time/gps","crosshairs-gps.svg","dark-invert"
9981003
"Home Assistant Time","components/time/homeassistant","home-assistant.svg","dark-invert"
9991004
"PCF85063 RTC","components/time/pcf85063","clock-outline.svg","dark-invert"
@@ -1047,6 +1052,7 @@ ESPHome to cellular networks. **Does not encompass Wi-Fi.**
10471052
"Exposure Notifications","components/exposure_notifications","exposure_notifications.png",""
10481053
"GPS","components/gps","crosshairs-gps.svg","dark-invert"
10491054
"Grow Fingerprint Reader","components/fingerprint_grow","fingerprint.svg","dark-invert"
1055+
"HLK-FM22x Face Recognition Module","components/hlk_fm22x","face.svg","dark-invert"
10501056
"Modbus Controller","components/modbus_controller","modbus.png",""
10511057
"Sprinkler","components/sprinkler","sprinkler-variant.svg","dark-invert"
10521058
"Status LED","components/status_led","led-on.svg","dark-invert"

content/components/ble_nus.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
description: "Nordic UART Service (NUS)"
3+
title: "Nordic UART Service (NUS)"
4+
params:
5+
seo:
6+
description: BLE UART support using Nordic UART Service (NUS) for ESPHome logging and communication.
7+
image: uart.svg
8+
---
9+
10+
The BLE NUS component provides a Bluetooth Low Energy UART interface based on the Nordic UART Service.
11+
It can be used to stream logs or enable custom bidirectional communication with ESPHome.
12+
13+
```yaml
14+
# Example configuration entry
15+
ble_nus:
16+
type: logs
17+
```
18+
19+
## Configuration variables
20+
21+
- **type** (**Required**, string): Mode of operation. Must be set to ``logs`` to stream ESPHome logs over the BLE UART.
22+
23+
## Usage
24+
25+
To connect and view logs from the device over BLE:
26+
27+
```bash
28+
esphome logs d.yaml --device BLE
29+
```
30+
31+
Or connect to a specific BLE address:
32+
33+
```bash
34+
esphome logs d.yaml --device 00:11:22:33:44:55
35+
```
36+
37+
## See Also
38+
39+
- Nordic UART Service <https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/libraries/bluetooth/services/nus.html>

content/components/climate/climate_ir.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,11 +216,12 @@ climate:
216216

217217
### `toshiba`
218218

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

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

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

248+
```yaml
249+
# Example configuration entry for RAS-2819T
250+
climate:
251+
- platform: toshiba
252+
name: "Toshiba AC"
253+
model: RAS-2819T
254+
sensor: room_temperature
255+
```
256+
243257
{{< anchor "whirlpool" >}}
244258

245259
### `whirlpool`

content/components/climate/thermostat.md

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,8 @@ Got all that? Great. Let's take a closer look at some configuration.
161161
The thermostat controller uses the sensor to determine whether it should heat or cool.
162162

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

167167
### Heating and Cooling Actions
168168

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

299+
### Humidity Control Actions
300+
301+
These are triggered when the humidity control action is changed by the thermostat controller. It can trigger actions
302+
to activate humidification **or** dehumidification.
303+
304+
- **humidity_control_dehumidify_action** (*Optional*, [Action](#config-action)): The action to call when
305+
dehumidification is required.
306+
307+
- **humidity_control_humidify_action** (*Optional*, [Action](#config-action)): The action to call when
308+
humidification is required.
309+
310+
- **humidity_control_off_action** (*Optional*, [Action](#config-action)): The action to call when
311+
(de)humidification should stop. This action is **required** when either of the above actions are configured.
312+
299313
## Advanced Configuration/Behavior
300314

301315
### Set Point Options/Behavior
@@ -467,8 +481,11 @@ climate:
467481

468482
### Additional Actions/Behavior
469483

470-
- **target_temperature_change_action** (*Optional*, [Action](/automations/actions#all-actions)): The action to call when the
471-
thermostat's target temperature(s) is/are changed.
484+
- **target_humidity_change_action** (*Optional*, [Action](/automations/actions#all-actions)): The action to call when
485+
the thermostat's target humidity is changed.
486+
487+
- **target_temperature_change_action** (*Optional*, [Action](/automations/actions#all-actions)): The action to call when
488+
the thermostat's target temperature(s) is/are changed.
472489

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

564+
- **humidity_hysteresis** (*Optional*, float): The maximum humidity differential (above/below the set point)
565+
before calling the respective humidity control [action](#config-action). Defaults to 1%.
566+
547567
> [!NOTE]
548568
>
549569
> - While this platform uses the term temperature everywhere, it can also be used to regulate other values.

0 commit comments

Comments
 (0)