-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
docs: Add WeAct 3-color e-paper displays to epaper_spi documentation #6052
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: J. Nick Koston <nick@koston.org>
* [hub75] Update scan enum values * add SCAN_1_8_40PX_HIGH
* Fix Made for ESPHome logo links and add missing PNGs - Move logo files from content/guides/images/ to static/images/ for simpler absolute path references - Generate missing PNG versions of logos (white-on-black, black-on-transparent, white-on-transparent) - Update markdown to use absolute paths (/images/...) instead of relative paths that resolved incorrectly - Fix SEO image path in frontmatter Fixes esphome#5894 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Skip absolute /images/ paths in internal link validation Allow links to static image assets like /images/foo.png in markdown without triggering the internal link checker. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…me#5918) Move images from static/images/ to content/images/ (which is mounted as assets/) so Hugo's resource pipeline can find them. The img shortcode uses resources.Get which searches in assets/, not static/. This fixes warnings like: "Unresolved image 'captive_portal-ui.png' in page..." Images moved: - captive_portal-ui.png - factory-rst-ui.png - gpio-ui.png - haier-climate.jpg - output-ui.png - safemode-ui.png - shutdown-ui.png Also change warnf to errorf in the image partial so CI will catch missing images by failing the build. Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Add reference to water heater template documentation * Remove empty line in water heater index file
…mperature documentation (esphome#5949) * [water_heater] Fix incorrect Home Assistant integration and target_temperature documentation * Update content/changelog/2026.1.0.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com>
…me#5454) Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com> Co-authored-by: dcgrove <dcgrove@gmail.com>
Add a skill that teaches Claude Code the proper procedures for creating pull requests in esphome-docs, including: - Basing branches on upstream (not fork) - Using the correct PR template - Choosing the right base branch (current vs next) - Filling in all required template sections Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Add WeAct-2.9in-3c and WeAct-4.2in-3c models to supported display panels table. Related: esphome/esphome#13894
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As this is a feature matched with a PR in https://github.com/esphome/esphome, please target your PR to the next branch and rebase.
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
✅ Deploy Preview for esphome ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
WalkthroughThis release documentation update for version 2026.1.0b2 introduces new component documentation (SY6970 Battery IC), adds support for additional e-paper display models and boards, updates configuration options with behavior clarifications, and provides enhanced guidance for existing components across sensor filters, climate, display, and binary sensor platforms. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
🤖 Fix all issues with AI agents
In `@content/components/climate/climate_ir.md`:
- Line 353: The phrase "third party" in the sentence referencing
Arduino-HeatpumpIR should be hyphenated as a compound modifier; update the text
that reads "No support can be provided for Arduino-HeatpumpIR, because it is a
third party library." to "No support can be provided for Arduino-HeatpumpIR,
because it is a third-party library." so the compound modifier is correct (look
for the sentence containing "Arduino-HeatpumpIR" / "third party library").
In `@content/components/select/_index.md`:
- Around line 63-68: Update the link text that currently reads "lambda calls" to
match the renamed section title "Using Selects in Lambdas": change the anchor
link text in the paragraph that mentions id(select_id).current_option() so it
reads "Using Selects in Lambdas" and keep or adjust the href
(`#select-lambda_calls`) to match the actual heading anchor if that was renamed;
ensure the link target and display text both reflect "Using Selects in Lambdas".
In `@content/components/sensor/filter/delta.md`:
- Around line 67-83: Replace the incorrect top-level YAML key "sensors:" with
the singular "sensor:" so the ESPHome config is valid; locate the sensor blocks
that start with platform: copy (the entries containing source_id:
my_sensor_to_be_filtered, id: baseline, and id: filter_baseline_max) and change
the parent key to sensor: ensuring the rest of the entries (filters, name, ids)
remain unchanged.
In `@content/components/sensor/xiaomi_ble.md`:
- Around line 190-191: In the [!NOTE] block that currently reads 'PVVX firmare
deprecated any other advertisment format other than "BTHome v2" starting with
version 6.0.', correct the typos by changing "firmare" to "firmware" and
"advertisment" to "advertisement" so the sentence reads e.g. 'PVVX firmware
deprecated any other advertisement format other than "BTHome v2" starting with
version 6.0.'; update that exact note text in
content/components/sensor/xiaomi_ble.md.
- Around line 596-599: The text uses the config key name `bind_key` which is
inconsistent with the rest of the docs; update the phrase to use `bindkey`
instead (replace the backticked `bind_key` occurrence with `bindkey`) so the
documentation consistently references the correct config key `bindkey`.
- Around line 521-522: The YAML example uses an unquoted bindkey value; update
the example so the bindkey is a quoted 32-character hex string like the other
examples (i.e., change bindkey: 00112233445566778899aabbccddeeff to bindkey:
"00112233445566778899aabbccddeeff"), leaving mac_address unchanged to maintain
consistency with existing examples.
🧹 Nitpick comments (8)
content/components/binary_sensor/status.md (2)
13-13: Replace legacy{{< img >}}shortcode with Markdown image syntax.Guidelines require standard Markdown images in
*.md.✅ Proposed change
-{{< img src="status-ui.png" alt="Image" width="80.0%" class="align-center" >}} +As per coding guidelines "Hugo shortcode
{{< img >}}is legacy and should be replaced with standard Markdown image syntax".
24-31: Replace legacy{{< docref >}}shortcodes with Markdown links.Guidelines require standard Markdown links in
*.md.✅ Proposed change
-- **update_interval** (*Optional*, {{< docref "/guides/configuration-types#time" "Time" >}}): The interval +- **update_interval** (*Optional*, [Time](/guides/configuration-types#time)): The interval @@ -- {{< docref "/components/binary_sensor" >}} -- {{< docref "/components/mqtt" >}} +- [Binary Sensor](/components/binary_sensor) +- [MQTT](/components/mqtt)As per coding guidelines "Hugo shortcode
{{< docref >}}is legacy and should be replaced with standard Markdown links".content/components/sensor/filter/delta.md (1)
8-10: Tighten phrasing to reduce wordiness (optional).Current wording is a bit heavy; consider a shorter phrasing for readability.
✍️ Suggested wording
-This difference can be calculated in two ways an absolute difference or a percentage difference, and -with respect to a minimum, `min_value` and maximum value, `max_value`. +This difference can be absolute or percentage-based, with a minimum (`min_value`) and maximum (`max_value`).content/components/sensor/xiaomi_ble.md (1)
627-627: Replace legacy Hugoimgshortcode with Markdown image syntax.
Project guidelines require standard Markdown links/images instead of{{< img >}}.As per coding guidelines: “Hugo shortcode `{{< img >}}` is legacy and should be replaced with standard Markdown image syntax”.♻️ Suggested replacement
-{{< img src="telink_flasher.jpg" alt="Image" caption="Telink flasher application." width="100.0%" class="align-center" >}} +content/components/display/mipi_dsi.md (2)
66-66: Legacy Hugo shortcode should be replaced with standard Markdown.Line 66 uses the legacy
{{< img >}}Hugo shortcode. As per coding guidelines, this should be replaced with standard Markdown image syntax.📝 Proposed replacement with standard Markdown
-{{< img src="tab5-version-label.jpg" alt="Tab5 version label showing model identification" width="50%" class="align-center" >}} +Note: The
widthandclassattributes would need to be handled through CSS or other means if exact sizing control is required.
56-56: Consider adding comma after year for style guide compliance.Some style guides recommend placing a comma after the year in month-day-year date format: "October 14, 2025,".
📝 Proposed fix
-Units manufactured before October 14, 2025 use the ILI9881C display driver with separate GT911 touch driver (use `M5STACK-TAB5`). +Units manufactured before October 14, 2025, use the ILI9881C display driver with separate GT911 touch driver (use `M5STACK-TAB5`).content/components/sensor/sy6970.md (2)
262-262: Minor grammar nit: hyphenate compound adjective.Per static analysis hint, "I²C controlled" should be "I²C-controlled" when used as a compound adjective before a noun.
Proposed fix
-The SY6970 is an I²C controlled battery management IC with the following features: +The SY6970 is an I²C-controlled battery management IC with the following features:
10-10: Datasheet link points to a GitHub-hosted PDF rather than an official source.The datasheet is linked from the LilyGo repository rather than the manufacturer's site. This is fine as a practical reference, but the link may break if the repository is reorganized. Consider noting this is an unofficial mirror if an official source isn't available.
| The `heatpumpir` platform supports dozens of manufacturers and hundreds of AC units by utilising the [Arduino-HeatpumpIR library](https://github.com/ToniA/arduino-heatpumpir). | ||
|
|
||
| This platform compiles only under `arduino` framework or LibreTiny, and should only be used if your AC unit is not supported by any of the other (native) platforms from above. No support can be provided for Arduino-HeatpumpIR, because it is a third party library. | ||
| This platform works with the `arduino` framework and ESP-IDF (on ESP32), and should only be used if your AC unit is not supported by any of the other (native) platforms from above. No support can be provided for Arduino-HeatpumpIR, because it is a third party library. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hyphenate compound modifier "third-party".
The phrase "third party" should be hyphenated when used as a compound modifier before a noun.
✏️ Proposed fix
-This platform works with the `arduino` framework and ESP-IDF (on ESP32), and should only be used if your AC unit is not supported by any of the other (native) platforms from above. No support can be provided for Arduino-HeatpumpIR, because it is a third party library.
+This platform works with the `arduino` framework and ESP-IDF (on ESP32), and should only be used if your AC unit is not supported by any of the other (native) platforms from above. No support can be provided for Arduino-HeatpumpIR, because it is a third-party library.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| This platform works with the `arduino` framework and ESP-IDF (on ESP32), and should only be used if your AC unit is not supported by any of the other (native) platforms from above. No support can be provided for Arduino-HeatpumpIR, because it is a third party library. | |
| This platform works with the `arduino` framework and ESP-IDF (on ESP32), and should only be used if your AC unit is not supported by any of the other (native) platforms from above. No support can be provided for Arduino-HeatpumpIR, because it is a third-party library. |
🧰 Tools
🪛 LanguageTool
[grammar] ~353-~353: Use a hyphen to join words.
Context: ...rduino-HeatpumpIR, because it is a third party library. This platform utilises t...
(QB_NEW_EN_HYPHEN)
🤖 Prompt for AI Agents
In `@content/components/climate/climate_ir.md` at line 353, The phrase "third
party" in the sentence referencing Arduino-HeatpumpIR should be hyphenated as a
compound modifier; update the text that reads "No support can be provided for
Arduino-HeatpumpIR, because it is a third party library." to "No support can be
provided for Arduino-HeatpumpIR, because it is a third-party library." so the
compound modifier is correct (look for the sentence containing
"Arduino-HeatpumpIR" / "third party library").
| ### Accessing the current option | ||
|
|
||
| You can access the most recent state of the select in [lambdas](/automations/templates#config-lambda) using | ||
| `id(select_id).current_option()`. | ||
| For more information on using lambdas with select, see [lambda calls](#select-lambda_calls). | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Align the link text with the renamed section title.
The section is now titled “Using Selects in Lambdas,” but the link text still says “lambda calls,” which is slightly confusing.
🔧 Suggested tweak
-For more information on using lambdas with select, see [lambda calls](`#select-lambda_calls`).
+For more information on using lambdas with select, see [Using Selects in Lambdas](`#select-lambda_calls`).📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ### Accessing the current option | |
| You can access the most recent state of the select in [lambdas](/automations/templates#config-lambda) using | |
| `id(select_id).current_option()`. | |
| For more information on using lambdas with select, see [lambda calls](#select-lambda_calls). | |
| ### Accessing the current option | |
| You can access the most recent state of the select in [lambdas](/automations/templates#config-lambda) using | |
| `id(select_id).current_option()`. | |
| For more information on using lambdas with select, see [Using Selects in Lambdas](`#select-lambda_calls`). |
🤖 Prompt for AI Agents
In `@content/components/select/_index.md` around lines 63 - 68, Update the link
text that currently reads "lambda calls" to match the renamed section title
"Using Selects in Lambdas": change the anchor link text in the paragraph that
mentions id(select_id).current_option() so it reads "Using Selects in Lambdas"
and keep or adjust the href (`#select-lambda_calls`) to match the actual heading
anchor if that was renamed; ensure the link target and display text both reflect
"Using Selects in Lambdas".
| sensors: | ||
| # This sensor just calculates the baseline. | ||
| - platform: copy | ||
| source_id: my_sensor_to_be_filtered | ||
| id: baseline | ||
| filters: | ||
| - median: | ||
| window_size: 6 | ||
| send_every: 1 | ||
| send_first_at: 1 | ||
|
|
||
| # This sensor will publish the values from your sensor with the max delta filter applied. | ||
| - platform: copy | ||
| source_id: my_sensor_to_be_filtered | ||
| name: "Filter Max With Baseline" | ||
| id: filter_baseline_max | ||
| filters: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix YAML top-level key: use sensor: not sensors:.
ESPHome configuration uses the singular sensor: key; sensors: will mislead users.
✅ Proposed fix
-# Example configuration entry
-sensors:
+# Example configuration entry
+sensor:🤖 Prompt for AI Agents
In `@content/components/sensor/filter/delta.md` around lines 67 - 83, Replace the
incorrect top-level YAML key "sensors:" with the singular "sensor:" so the
ESPHome config is valid; locate the sensor blocks that start with platform: copy
(the entries containing source_id: my_sensor_to_be_filtered, id: baseline, and
id: filter_baseline_max) and change the parent key to sensor: ensuring the rest
of the entries (filters, name, ids) remain unchanged.
| > [!NOTE] | ||
| > PVVX firmare deprecated any other advertisment format other than "BTHome v2" starting with version 6.0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix spelling in the PVVX note.
“firmare” → “firmware”, “advertisment” → “advertisement”.
🧰 Tools
🪛 LanguageTool
[grammar] ~191-~191: Ensure spelling is correct
Context: ...ous security reasons. > [!NOTE] > PVVX firmare deprecated any other advertisment forma...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~191-~191: Ensure spelling is correct
Context: ...TE] > PVVX firmare deprecated any other advertisment format other than "BTHome v2" starting ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
In `@content/components/sensor/xiaomi_ble.md` around lines 190 - 191, In the
[!NOTE] block that currently reads 'PVVX firmare deprecated any other
advertisment format other than "BTHome v2" starting with version 6.0.', correct
the typos by changing "firmare" to "firmware" and "advertisment" to
"advertisement" so the sentence reads e.g. 'PVVX firmware deprecated any other
advertisement format other than "BTHome v2" starting with version 6.0.'; update
that exact note text in content/components/sensor/xiaomi_ble.md.
| mac_address: "XX:XX:XX:XX:XX:XX" | ||
| bindkey: 00112233445566778899aabbccddeeff |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quote the bindkey for consistency.
All other examples treat bindkey as a quoted 32‑char string; do the same here.
💡 Suggested fix
- bindkey: 00112233445566778899aabbccddeeff
+ bindkey: "00112233445566778899aabbccddeeff"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| mac_address: "XX:XX:XX:XX:XX:XX" | |
| bindkey: 00112233445566778899aabbccddeeff | |
| mac_address: "XX:XX:XX:XX:XX:XX" | |
| bindkey: "00112233445566778899aabbccddeeff" |
🤖 Prompt for AI Agents
In `@content/components/sensor/xiaomi_ble.md` around lines 521 - 522, The YAML
example uses an unquoted bindkey value; update the example so the bindkey is a
quoted 32-character hex string like the other examples (i.e., change bindkey:
00112233445566778899aabbccddeeff to bindkey:
"00112233445566778899aabbccddeeff"), leaving mac_address unchanged to maintain
consistency with existing examples.
| Follow the instructions on the site using Telink Flasher - best results with a Bluetooth-enabled Android phone. Note that by default there's no encryption set, | ||
| thus no need for `bind_key` in this case, you can just add the sensors to your ESPHome config as described above. However, if you do enable the "Encrypted beacon" | ||
| checkbox, scroll down to the bottom of the page press the “Get BindKey” button to see the key. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use bindkey consistently (not bind_key).
The config key is documented everywhere else as bindkey, so this line reads as a typo.
💡 Suggested fix
- thus no need for `bind_key` in this case, you can just add the sensors to your ESPHome config as described above.
+ thus no need for `bindkey` in this case, you can just add the sensors to your ESPHome config as described above.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Follow the instructions on the site using Telink Flasher - best results with a Bluetooth-enabled Android phone. Note that by default there's no encryption set, | |
| thus no need for `bind_key` in this case, you can just add the sensors to your ESPHome config as described above. However, if you do enable the "Encrypted beacon" | |
| checkbox, scroll down to the bottom of the page press the “Get BindKey” button to see the key. | |
| Follow the instructions on the site using Telink Flasher - best results with a Bluetooth-enabled Android phone. Note that by default there's no encryption set, | |
| thus no need for `bindkey` in this case, you can just add the sensors to your ESPHome config as described above. However, if you do enable the "Encrypted beacon" | |
| checkbox, scroll down to the bottom of the page press the "Get BindKey" button to see the key. |
🤖 Prompt for AI Agents
In `@content/components/sensor/xiaomi_ble.md` around lines 596 - 599, The text
uses the config key name `bind_key` which is inconsistent with the rest of the
docs; update the phrase to use `bindkey` instead (replace the backticked
`bind_key` occurrence with `bindkey`) so the documentation consistently
references the correct config key `bindkey`.
|
Re-creating PR against 'next' branch instead of 'current' |
What does this implement/fix?
Adds documentation for WeAct 2.9" and 4.2" 3-color e-paper displays in the epaper_spi component documentation.
Types of changes
Related issue or feature (if applicable):
Test Environment
N/A - Documentation only
Checklist: