Skip to content

Conversation

nielsnl68
Copy link
Contributor

Description:

Related issue (if applicable): fixes

Pull request in esphome with YAML changes (if applicable):

  • esphome/esphome#

Checklist:

  • I am merging into next because this is new documentation that has a matching pull-request in esphome as linked above.
    or

  • I am merging into current because this is a fix, change and/or adjustment in the current documentation and is not for a new component or feature.

  • Link added in /components/index.rst when creating new documents for new components or cookbook.

New Component Images

If you are adding a new component to ESPHome, you can automatically generate a standardized black and white component name image for the documentation.

To generate a component image:

  1. Comment on this pull request with the following command, replacing COMPONENT_NAME with your component name in UPPER_CASE format with underscores (e.g., BME280, SHT3X, DALLAS_TEMP):

    @esphomebot generate image COMPONENT_NAME
    
  2. The ESPHome bot will respond with a downloadable ZIP file containing the SVG image.

  3. Extract the SVG file and place it in the images/ folder of this repository.

  4. Use the image in your component's index table entry in /components/index.rst.

Example: For a component called "DHT22 Temperature Sensor", use:

@esphomebot generate image DHT22

@esphome esphome bot added the current label Aug 22, 2025
Copy link

netlify bot commented Aug 22, 2025

Deploy Preview for esphome ready!

Name Link
🔨 Latest commit cb21aa0
🔍 Latest deploy log https://app.netlify.com/projects/esphome/deploys/68a86ed15de1fc0008a30386
😎 Deploy Preview https://deploy-preview-5273--esphome.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

coderabbitai bot commented Aug 22, 2025

Walkthrough

Reorganized main navigation and footer in hugo.yaml (renames, reparenting, reweights, and new items including Cookbook, Device database, Contribute, Keeping Up subtree). Added/updated content/cookbook/_index.md with SEO/front-matter and an imgtable; removed two Cookbook imgtable sections from content/components/_index.md. All changes are content/config-only.

Changes

Cohort / File(s) Summary of Changes
Navigation & Footer (site config)
hugo.yaml
Reworked menu: renamed "Next Steps" → Documentation (next-steps), reparented/added entries (Configuration Types, Components, Cookbook, Device database with post icon, Contribute with children Sharing ESPHome Devices and Made for ESPHome), reweighted Keeping Up subtree (Changelog, Discord, Forums, Development, Supporters), and expanded footer with grouped Documentation / Community / Resources items and icons.
Cookbook index page
content/cookbook/_index.md
Updated front matter (description, params.seo with description and image) and page body: added "what can you find here?" header, descriptive paragraph, and an imgtable shortcode listing cookbook entries.
Components index cleanup
content/components/_index.md
Removed two Cookbook sections (each a header plus an imgtable of cookbook entries). Other content unchanged.

Sequence Diagram(s)

No sequence diagrams generated — changes are declarative (navigation/footer/content) and do not alter runtime control flow.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • jesserockz
  • kbx81

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between c0c804a and e3e946d.

📒 Files selected for processing (1)
  • hugo.yaml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

  • Do not generate or add any sequence diagrams

Files:

  • hugo.yaml
🔇 Additional comments (1)
hugo.yaml (1)

56-59: Validate “Cookbook” menu link

It looks like there isn’t a “Cookbook” heading under your Components page, nor a dedicated /cookbook/ page in the content tree. As a result, the current entry

- name: "Cookbook"
  url: "/components/#cookbook"
  weight: 16
  parent: "getting-started"

may point to a missing anchor or a non-existent page. Please:

  • Open content/components/_index.md (or wherever your Components landing page lives) and confirm there’s a heading like
    ## Cookbook
    so that #/components/#cookbook actually resolves.
  • Search for a standalone Cookbook page under content/ (e.g. content/cookbook/index.md or similar). If it exists, change the url to "/cookbook/" for a cleaner direct link.
  • If neither the heading nor a page exists, add the appropriate section or file (and update this nav entry) to avoid a broken menu link.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (3)
content/cookbook/_index.md (3)

7-7: Use a PNG/JPEG for social previews; many platforms don’t render SVG in OG/Twitter cards.

Switch to a raster image (1200×630 recommended) placed under images/. Keep SVG elsewhere if needed.

Apply this diff (ensure the file exists in the repo):

-    image: logo.svg
+    image: images/cookbook-og.png

If you want, I can generate a checklist/script to confirm the image dimensions and presence.


16-26: Minor title casing tweaks for consistency.

Optional copyedits for a more polished index.

Apply this diff:

-"BME280 Environment extras","cookbook/bme280_environment","bme280.jpg",""
+"BME280 Environment Extras","cookbook/bme280_environment","bme280.jpg",""
@@
-"EHMTX a matrix status/text display","cookbook/ehmtx","ehmtx.jpg",""
+"EHMTX: A Matrix Status/Text Display","cookbook/ehmtx","ehmtx.jpg",""

15-27: Consider leading slashes in URLs for uniformity.

If your shortcode doesn’t normalize paths, prefer “/cookbook/slug” to avoid relative URL issues under nested routes.

Apply this diff (if your site config prefers absolute URLs):

-"Lambda Magic - Tips and Tricks","cookbook/lambda_magic","head-lightbulb-outline.svg","dark-invert"
+"Lambda Magic - Tips and Tricks","/cookbook/lambda_magic","head-lightbulb-outline.svg","dark-invert"
@@
-"LVGL Recipes","cookbook/lvgl","lvgl.png",""
+"LVGL Recipes","/cookbook/lvgl","lvgl.png",""
@@
-"Garage Door Template Cover","cookbook/garage-door","garage-variant.svg","dark-invert"
+"Garage Door Template Cover","/cookbook/garage-door","garage-variant.svg","dark-invert"
@@
-"Time & Temperature on OLED Display","cookbook/display_time_temp_oled","display_time_temp_oled_2.jpg",""
+"Time & Temperature on OLED Display","/cookbook/display_time_temp_oled","display_time_temp_oled_2.jpg",""
@@
-"ESP32 Water Leak Detector","cookbook/leak-detector-m5stickC","leak-detector-m5stickC_main_index.jpg",""
+"ESP32 Water Leak Detector","/cookbook/leak-detector-m5stickC","leak-detector-m5stickC_main_index.jpg",""
@@
-"BME280 Environment Extras","cookbook/bme280_environment","bme280.jpg",""
+"BME280 Environment Extras","/cookbook/bme280_environment","bme280.jpg",""
@@
-"Non-Invasive Power Meter","cookbook/power_meter","power_meter.jpg",""
+"Non-Invasive Power Meter","/cookbook/power_meter","power_meter.jpg",""
@@
-"Sonoff Fishpond Pump","cookbook/sonoff-fishpond-pump","cookbook-sonoff-fishpond-pump.jpg",""
+"Sonoff Fishpond Pump","/cookbook/sonoff-fishpond-pump","cookbook-sonoff-fishpond-pump.jpg",""
@@
-"Arduino Port Extender","cookbook/arduino_port_extender","arduino_logo.svg",""
+"Arduino Port Extender","/cookbook/arduino_port_extender","arduino_logo.svg",""
@@
-"EHMTX: A Matrix Status/Text Display","cookbook/ehmtx","ehmtx.jpg",""
+"EHMTX: A Matrix Status/Text Display","/cookbook/ehmtx","ehmtx.jpg",""
@@
-"Pulse Catcher","cookbook/pulse-catcher","pulses.png",""
+"Pulse Catcher","/cookbook/pulse-catcher","pulses.png",""
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e3e946d and bc22b44.

📒 Files selected for processing (1)
  • content/cookbook/_index.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

  • Do not generate or add any sequence diagrams

Files:

  • content/cookbook/_index.md

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
hugo.yaml (1)

73-76: Cookbook now points to the canonical URL.

This resolves the earlier “/components/#cookbook” vs “/cookbook/” inconsistency.

🧹 Nitpick comments (4)
hugo.yaml (4)

76-76: Strip trailing whitespace flagged by lint.

YAMLlint reports trailing spaces on these lines. Remove them to keep CI green.

Apply this diff:

-      parent: "next-steps"      
+      parent: "next-steps"
-
+

Also applies to: 86-86


81-85: Normalize “Device Database” label and remove embedded trailing space.

Use consistent casing (as in footer) and drop trailing space to avoid subtle diffs.

Apply this diff:

-    - name: "Device database "
+    - name: "Device Database"
       url: "https://devices.esphome.io/"
       weight: 27
       post: <i class="fa-solid fa-code"></i>
       parent: "next-steps"

84-84: Prefer theme icon token over raw HTML for post.

For consistency with footer entries (e.g., post: "code"), consider using the theme’s icon token instead of inline HTML.

Apply this diff (verify that "code" is a valid icon token in the theme):

-      post: <i class="fa-solid fa-code"></i>
+      post: "code"

87-97: Unify identifier casing: use lowercase contribute and update children’s parent references.

Other identifiers (getting-started, next-steps, keeping-up) are lowercase-hyphen. Aligning avoids surprises if lookups are case-sensitive.

Apply this diff:

-    - name: "Contribute"
-      weight: 40
-      identifier: "Contribute"
+    - name: "Contribute"
+      weight: 40
+      identifier: "contribute"
     - name: "Sharing ESPHome Devices"
       url: "/guides/creators/"
-      weight: 46
-      parent: "Contribute"
+      weight: 46
+      parent: "contribute"
     - name: "Made for ESPHome"
       url: "/guides/made_for_esphome/"
-      weight: 47
-      parent: "Contribute"
+      weight: 47
+      parent: "contribute"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 0d1a77f and 3b49333.

📒 Files selected for processing (1)
  • hugo.yaml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

  • Do not generate or add any sequence diagrams

Files:

  • hugo.yaml
🪛 YAMLlint (1.37.1)
hugo.yaml

[error] 76-76: trailing spaces

(trailing-spaces)


[error] 86-86: trailing spaces

(trailing-spaces)

🔇 Additional comments (2)
hugo.yaml (2)

61-65: Main navigation restructure under “Documentation” is coherent.

Good reparenting and weighting. Links to Configuration Types, Automations, Components, and Cookbook look consistent.

Also applies to: 69-76


100-121: “Keeping Up” subtree changes look good.

Weights and URLs are consistent; ordering is clear.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
content/cookbook/_index.md (2)

2-2: Fix grammar and clarity in descriptions.

Tighten phrasing; “we've number a couple of” is ungrammatical. Use clear, user-facing copy.

-description: "Example Cookbook - Over the years we've number a couple of useful examples which you can use to set up your devices quickly and easily."
+description: "Example Cookbook — Over the years, we have collected a number of useful examples you can use to set up your devices quickly and easily."
@@
-    description: Example Cookbook - Over the years we've number a couple of useful examples which you can use to set up your devices quickly and easily.
+    description: Example Cookbook — Over the years, we have collected a number of useful examples you can use to set up your devices quickly and easily.
@@
-Over the years we've number a couple of useful examples which you can use to set up your devices quickly and easily.
+Over the years, we have collected a number of useful examples you can use to set up your devices quickly and easily.

Also applies to: 6-6, 11-11


9-9: Capitalize heading.

Headings should be in sentence or title case; start with a capital letter.

-## what can you find here?
+## What can you find here?
🧹 Nitpick comments (4)
content/cookbook/_index.md (1)

21-21: Unify entry titles (consistency/polish).

Use consistent title casing and punctuation in imgtable entries.

-"BME280 Environment extras","bme280_environment","bme280.jpg",""
+"BME280 Environment Extras","bme280_environment","bme280.jpg",""
@@
-"EHMTX a matrix status/text display","ehmtx","ehmtx.jpg",""
+"EHMTX: A Matrix Status/Text Display","ehmtx","ehmtx.jpg",""

Also applies to: 25-25

hugo.yaml (3)

76-76: Remove trailing spaces to appease linters.

YAMLlint reports trailing spaces on these lines.

-      parent: "next-steps"      
+      parent: "next-steps"
-
+

Also applies to: 86-86


81-81: Trim trailing space in menu label.

There’s a stray space after “Device database”.

-    - name: "Device database "
+    - name: "Device database"

125-129: Optional: Make internal footer URLs absolute for consistency.

Elsewhere (main nav) uses leading slashes; consider mirroring that in the footer to avoid relative-url surprises in nested routes.

-    - { parent: Documentation, url: "components/", post: "puzzle-piece", name: Components}
-    - { parent: Documentation, url: "guides/", post: "compass", name: Guides}
-    - { parent: Documentation, url: "automations/", post: "magic", name: Automations}
-    - { parent: Documentation, url: "cookbook/", post: "kitchen-set", name: Cookbook}
+    - { parent: Documentation, url: "/components/", post: "puzzle-piece", name: Components}
+    - { parent: Documentation, url: "/guides/", post: "compass", name: Guides}
+    - { parent: Documentation, url: "/automations/", post: "magic", name: Automations}
+    - { parent: Documentation, url: "/cookbook/", post: "kitchen-set", name: Cookbook}
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 3b49333 and cb21aa0.

⛔ Files ignored due to path filters (4)
  • content/cookbook/images/display_time_temp_oled_2.jpg is excluded by !**/*.jpg
  • content/cookbook/images/garage-variant.svg is excluded by !**/*.svg
  • content/cookbook/images/head-lightbulb-outline.svg is excluded by !**/*.svg
  • content/cookbook/images/leak-detector-m5stickC_main_index.jpg is excluded by !**/*.jpg
📒 Files selected for processing (2)
  • content/cookbook/_index.md (1 hunks)
  • hugo.yaml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

  • Do not generate or add any sequence diagrams

Files:

  • content/cookbook/_index.md
  • hugo.yaml
🪛 LanguageTool
content/cookbook/_index.md

[style] ~11-~11: In American English, “we” and “have” do not usually form a contraction unless they’re followed by a past participle.
Context: ...what can you find here? Over the years we've number a couple of useful examples whic...

(IVE_I_HAVE_AMERICAN_STYLE)

🪛 YAMLlint (1.37.1)
hugo.yaml

[error] 76-76: trailing spaces

(trailing-spaces)


[error] 86-86: trailing spaces

(trailing-spaces)

🔇 Additional comments (3)
content/cookbook/_index.md (1)

15-27: Imgtable block migration LGTM.

Moving the cookbook list into a dedicated page with an imgtable is a solid IA improvement and aligns with the new navigation entry.

hugo.yaml (2)

73-76: Main nav correctly points “Cookbook” to /cookbook/.

Nice catch aligning main navigation with the new dedicated page.


73-76: No legacy /components/#cookbook anchors found
A repository-wide search returned zero occurrences of the old deep-link (/components/#cookbook), so no further updates are required. ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant