You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/changelog/2025.10.0.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -159,7 +159,7 @@ If you manage multiple devices, the dashboard will feel noticeably faster and mo
159
159
160
160
## Device Onboarding Improvements
161
161
162
-
Getting your ESPHome devices online has never been easier. This release brings major improvements to the initial setup experience, particularly for ESP32-IDF devices and the [Made for ESPHome](https://esphome.io/guides/made_for_esphome/) program.
162
+
Getting your ESPHome devices online has never been easier. This release brings major improvements to the initial setup experience, particularly for ESP32-IDF devices and the [Made for ESPHome](/guides/made_for_esphome/) program.
163
163
164
164
### Captive Portal for ESP-IDF
165
165
@@ -179,9 +179,9 @@ This brings ESP-IDF up to feature parity with Arduino for onboarding, and since
179
179
180
180
**Why passive scanning matters:** Many home automation systems and BLE scanners only support passive scanning (not active scanning). Making the device name visible to passive scanners means your devices show up in more scanning apps and are easier to identify during setup.
181
181
182
-
These improvements directly support the [Made for ESPHome program](https://esphome.io/guides/made_for_esphome/), which requires Improv provisioning via BLE for Wi-Fi projects to ensure a consistent, high-quality setup experience across all ESPHome-compatible products.
182
+
These improvements directly support the [Made for ESPHome program](/guides/made_for_esphome/), which requires Improv provisioning via BLE for Wi-Fi projects to ensure a consistent, high-quality setup experience across all ESPHome-compatible products.
183
183
184
-
The Made for ESPHome program requires Improv BLE provisioning for Wi-Fi projects. See the [certification requirements](https://esphome.io/guides/made_for_esphome/) for details.
184
+
The Made for ESPHome program requires Improv BLE provisioning for Wi-Fi projects. See the [certification requirements](/guides/made_for_esphome/) for details.
- [HDC2010](https://esphome.io/components/sensor/hdc2010.html) ([#6674](https://github.com/esphome/esphome/pull/6674)) - Texas Instruments temperature and humidity sensor
146
-
- [MCP3221](https://esphome.io/components/sensor/mcp3221.html) ([#7764](https://github.com/esphome/esphome/pull/7764)) - I2C A-D converter with configurable reference voltage
147
-
- [HLK-FM22X](https://esphome.io/components/hlk_fm22x.html) ([#8059](https://github.com/esphome/esphome/pull/8059)) - Face recognition module family
148
-
- [BH1900NUX](https://esphome.io/components/sensor/bh1900nux.html) ([#8631](https://github.com/esphome/esphome/pull/8631)) - Rohm Semiconductor temperature sensor
- [BLE NUS Logger](https://esphome.io/components/logger.html#ble-logging) ([#9846](https://github.com/esphome/esphome/pull/9846)) - Logging over BLE for nRF52 platform
151
-
- [TinyUSB](https://esphome.io/components/tinyusb.html) ([#11678](https://github.com/esphome/esphome/pull/11678)) - USB device functionality foundation for ESP32-S2/S3
145
+
- [HDC2010](/components/sensor/hdc2010) ([#6674](https://github.com/esphome/esphome/pull/6674)) - Texas Instruments temperature and humidity sensor
146
+
- [MCP3221](/components/sensor/mcp3221) ([#7764](https://github.com/esphome/esphome/pull/7764)) - I2C A-D converter with configurable reference voltage
147
+
- [HLK-FM22X](/components/hlk_fm22x) ([#8059](https://github.com/esphome/esphome/pull/8059)) - Face recognition module family
148
+
- [BH1900NUX](/components/sensor/bh1900nux) ([#8631](https://github.com/esphome/esphome/pull/8631)) - Rohm Semiconductor temperature sensor
- [BLE NUS Logger](/components/ble_nus) ([#9846](https://github.com/esphome/esphome/pull/9846)) - Logging over BLE for nRF52 platform
151
+
- [TinyUSB](/components/tinyusb) ([#11678](https://github.com/esphome/esphome/pull/11678)) - USB device functionality foundation for ESP32-S2/S3
152
152
153
153
**Extended Hardware Support:**
154
154
@@ -518,6 +518,22 @@ The 2025.11 release blog posts include comprehensive migration examples for comm
518
518
519
519
<!-- markdownlint-disable MD013 -->
520
520
521
+
## Release 2025.11.2 - November 27
522
+
523
+
<details>
524
+
<summary></summary>
525
+
526
+
- [nextion] Do not set alternative baud rate when not specified or `<= 0` [esphome#12097](https://github.com/esphome/esphome/pull/12097) by [@edwardtfn](https://github.com/edwardtfn)
527
+
- [esp32] Fix platformio flash size print [esphome#12099](https://github.com/esphome/esphome/pull/12099) by [@swoboda1337](https://github.com/swoboda1337)
528
+
- [script] Fix script.wait hanging when triggered from on_boot [esphome#12102](https://github.com/esphome/esphome/pull/12102) by [@bdraco](https://github.com/bdraco)
529
+
- [lvgl] Allow multiple widgets per grid cell [esphome#12091](https://github.com/esphome/esphome/pull/12091) by [@clydebarrow](https://github.com/clydebarrow) (new-feature)
530
+
- [lvgl] Fix position of errors in widget config [esphome#12111](https://github.com/esphome/esphome/pull/12111) by [@clydebarrow](https://github.com/clydebarrow)
531
+
- [esp32] Fix hosted update when there is no wifi [esphome#12123](https://github.com/esphome/esphome/pull/12123) by [@swoboda1337](https://github.com/swoboda1337)
532
+
- [wifi] Restore blocking setup until connected for RP2040 [esphome#12142](https://github.com/esphome/esphome/pull/12142) by [@clydebarrow](https://github.com/clydebarrow)
533
+
- [scheduler] Fix use-after-move crash in heap operations [esphome#12124](https://github.com/esphome/esphome/pull/12124) by [@bdraco](https://github.com/bdraco)
Copy file name to clipboardExpand all lines: content/components/lvgl/_index.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -147,15 +147,15 @@ The following configuration variables apply to the main `lvgl` component, in ord
147
147
- **widgets** (*Optional*, list): A list of {{< docref "/components/lvgl/widgets" >}} to be drawn on the root display. May not be used if `pages` (below) is configured.
148
148
- **pages** (*Optional*, list): A list of page IDs. Each page acts as a parent for widgets placed on it. May not be used with `widgets` (above). Options for each page:
149
149
- **skip** (*Optional*, boolean): Option to skip this page when navigating between them with [`lvgl.page.next`, `lvgl.page.previous`](#lvgl-page-next-previous-action).
150
-
- **layout** (*Optional*): See [Layouts](#lvgl-layouts) for details. Defaults to `NONE`.
150
+
- **layout** (*Optional*): See [Layouts](/components/lvgl/layouts#lvgl-layouts) for details. Defaults to `NONE`.
151
151
- **widgets** (*Optional*, list): A list of {{< docref "/components/lvgl/widgets" >}} to be drawn on the page.
152
152
- All other options from [Style properties](#lvgl-styling) to be applied to this page.
153
153
- **page_wrap** (*Optional*, boolean): Wrap from the last to the first page when navigating between them with [`lvgl.page.next`, `lvgl.page.previous`](#lvgl-page-next-previous-action). Defaults to `true`.
154
154
- **top_layer** (*Optional*, list): A special kind of *Always on Top* page, which acts as a parent for widgets placed on it. It's shown above all the pages, which may be useful for widgets which always need to be visible.
155
-
- **layout** (*Optional*): See [Layouts](#lvgl-layouts) for details. Defaults to `NONE`.
155
+
- **layout** (*Optional*): See [Layouts](/components/lvgl/layouts#lvgl-layouts) for details. Defaults to `NONE`.
156
156
- **widgets** (*Optional*, list): A list of {{< docref "/components/lvgl/widgets" >}} to be drawn on the page.
157
157
- All other options from [Style properties](#lvgl-styling) to be applied to this page.
158
-
- **layout** (*Optional*): See [Layouts](#lvgl-layouts) for details. Defaults to `NONE`.
158
+
- **layout** (*Optional*): See [Layouts](/components/lvgl/layouts#lvgl-layouts) for details. Defaults to `NONE`.
159
159
- All other options from [Style properties](#lvgl-styling) to be applied to all widgets directly.
160
160
161
161
**Example:**
@@ -832,11 +832,11 @@ This [trigger](/components/lvgl/widgets#lvgl-automation-triggers) is triggered a
832
832
833
833
### `on_draw_start`
834
834
835
-
This [trigger](#lvgl-automation-triggers) is executed before each LVGL drawing operation.
835
+
This [trigger](/components/lvgl/widgets#lvgl-automation-triggers) is executed before each LVGL drawing operation.
836
836
837
837
### `on_draw_end`
838
838
839
-
This [trigger](#lvgl-automation-triggers) is executed after LVGL has completed drawing all updated screen elements. It
839
+
This [trigger](/components/lvgl/widgets#lvgl-automation-triggers) is executed after LVGL has completed drawing all updated screen elements. It
840
840
may be used for example to trigger an update of a display component like an e-paper screen that requires the buffer
Copy file name to clipboardExpand all lines: content/components/lvgl/widgets.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ The properties below are common to all widgets.
22
22
> [!NOTE]
23
23
> By default, the `x` and `y` coordinates are measured from the *top left corner* of the parent's content area. [Important](/components/lvgl#lvgl-styling): content area starts *after the padding* thus if the parent has a non-zero padding value, position will be shifted with that. Percentage values are calculated from the parent's content area size.
24
24
>
25
-
> If specifying `align`, `x` and `y` can be used as an offset to the calculated position (can also be negative). They are ignored if [Layouts](/components/lvgl#lvgl-layouts) are used on the parent.
25
+
> If specifying `align`, `x` and `y` can be used as an offset to the calculated position (can also be negative). They are ignored if [Layouts](/components/lvgl/layouts#lvgl-layouts) are used on the parent.
26
26
27
27
-**height** (*Optional*): Height of the widget in pixels or a percentage, or `SIZE_CONTENT`.
28
28
-**width** (*Optional*): Width of the widget in pixels or a percentage, or `SIZE_CONTENT`.
@@ -49,7 +49,7 @@ The properties below are common to all widgets.
-**group** (*Optional*, string): The name of the group of widgets which will interact with a {{< docref "/components/sensor/rotary_encoder" >}}. In every group there is always one focused widget which receives the encoder actions. You need to associate an input device with a group. An input device can send key events to only one group but a group can receive data from more than one input device. If no group is specified for a widget or an encoder, an unnamed default group will be assigned, so in most cases where only one encoder is used it will not be necessary to explicitly specify a group.
52
-
-**layout** (*Optional*): See [Layouts](/components/lvgl#lvgl-layouts) for details. Defaults to `NONE`.
52
+
-**layout** (*Optional*): See [Layouts](/components/lvgl/layouts#lvgl-layouts) for details. Defaults to `NONE`.
53
53
-**styles** (*Optional*, [ID](/guides/configuration-types#id)): The ID of a *style definition* from the main component configuration to override the theme styles.
54
54
-**theme** (*Optional*, list): A list of styles to apply to the widget and children. Same configuration option as at the main component.
55
55
-**widgets** (*Optional*, list): A list of LVGL widgets to be drawn as children of this widget. Same configuration option as at the main component.
@@ -808,7 +808,7 @@ it is invisible. It has a default width and height of 100%.
808
808
809
809
**Configuration variables:**
810
810
811
-
- Style options from [Style properties](#lvgl-styling).
811
+
- Style options from [Style properties](/components/lvgl#lvgl-styling).
812
812
813
813
**Triggers:**
814
814
@@ -1040,7 +1040,7 @@ A label is the basic widget type that is used to display text.
1040
1040
1041
1041
**Configuration variables:**
1042
1042
1043
-
- **long_mode** (*Optional*, list): By default, the width and height of the label is set to `SIZE_CONTENT`. Therefore, the size of the label is automatically expanded to the text size. Otherwise, if the `width` or `height` are explicitly set (or set by [Layouts](/components/lvgl#lvgl-layouts)), the lines wider than the label's width can be manipulated according to the long mode policies below. These policies can be applied if the height of the text is greater than the height of the label.
1043
+
- **long_mode** (*Optional*, list): By default, the width and height of the label is set to `SIZE_CONTENT`. Therefore, the size of the label is automatically expanded to the text size. Otherwise, if the `width` or `height` are explicitly set (or set by [Layouts](/components/lvgl/layouts#lvgl-layouts)), the lines wider than the label's width can be manipulated according to the long mode policies below. These policies can be applied if the height of the text is greater than the height of the label.
1044
1044
- `WRAP` : Wrap lines which are too long. If the height is `SIZE_CONTENT`, the label's height will be expanded, otherwise the text will be clipped (default).
1045
1045
- `DOT` : Replaces the last 3 characters from bottom right corner of the label with dots.
1046
1046
- `SCROLL` : If the text is wider than the label, scroll the text horizontally back and forth. If it's higher, scroll vertically. Text will scroll in only one direction; horizontal scrolling has higher precedence.
Copy file name to clipboardExpand all lines: content/components/openthread.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,7 +64,7 @@ openthread:
64
64
- **mesh_local_prefix** (ipv6network): Used to build Mesh-Local IPv6 addresses (ML-EIDs), which are unique to each Thread device within the network partition
65
65
- **use_address** (*Optional*, string): Manually override what address to use to connect
66
66
to the ESP. Defaults to auto-generated value.
67
-
- **poll_period** (*Optional*, [Time](#config-time)): When Poll_Period is set on an MTD device, the parent router will enqueue any messages and wait for the child to submit a poll data request
67
+
- **poll_period** (*Optional*, [Time](/guides/configuration-types#config-time)): When Poll_Period is set on an MTD device, the parent router will enqueue any messages and wait for the child to submit a poll data request
68
68
69
69
> [!NOTE]
70
70
> esphome.ota does not work when poll_period > 0, instead use http_request.ota, timeout and watchdog_timeout need to be tested to find the correct values. Values greater than 100sec may be required.
Copy file name to clipboardExpand all lines: content/components/ota/esphome.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ ota:
31
31
- **password** (*Optional*, string): The password to use for updates.
32
32
33
33
> [!IMPORTANT]
34
-
> Always use strong, unique passwords for OTA updates. See the [Security Best Practices](/guides/security_best_practices#ota-password-protection) guide for more information.
34
+
> Always use strong, unique passwords for OTA updates. See the [Security Best Practices](/guides/security_best_practices#3-ota-password-protection) guide for more information.
35
35
36
36
- **port** (*Optional*, int): The port to use for OTA updates. Defaults:
0 commit comments