Skip to content

Conversation

@bdraco
Copy link
Member

@bdraco bdraco commented Nov 7, 2025

Summary

Adds blog post documenting breaking changes in Fan entity class (esphome/esphome#11483).

Breaking changes:

  • Preset mode storage changed from std::set<std::string> to std::vector<const char*> (at least 24 bytes overhead + string length, plus ~70+ bytes with presets)
  • User-facing: Preset modes now display in YAML order instead of alphabetical order
  • External components must update container types and lookup logic

Blog post includes complete migration guide, lifetime safety patterns, grep commands, and explanation of user-facing behavior change. Includes note about std::find_if flash overhead for ESP8266 devices.

Files:

@netlify
Copy link

netlify bot commented Nov 7, 2025

Deploy Preview for esphome-dev-docs ready!

Name Link
🔨 Latest commit 4f7cef4
🔍 Latest deploy log https://app.netlify.com/projects/esphome-dev-docs/deploys/69128929087b3f00083e4dce
😎 Deploy Preview https://deploy-preview-69--esphome-dev-docs.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.

@bdraco bdraco marked this pull request as ready for review November 7, 2025 17:01
Copilot AI review requested due to automatic review settings November 7, 2025 17:01
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces a new blog post documenting breaking changes to the Fan Entity class in ESPHome 2025.11.0, specifically the migration from heap-allocated std::set<std::string> to flash-stored std::vector<const char*> for preset modes. The change includes author metadata for the blog post author.

Key changes:

  • New comprehensive migration guide for Fan Entity preset mode storage changes
  • Documentation of memory optimization benefits (80+ bytes saved per fan component)
  • Complete code examples showing before/after patterns for external component developers

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
docs/blog/posts/2025-11-07-fan-entity-preset-modes.md New blog post documenting Fan Entity preset mode API changes and migration guide
docs/blog/.authors.yml Added author metadata for bdraco (J. Nick Koston)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jesserockz jesserockz merged commit 1841a3e into main Nov 11, 2025
4 checks passed
@jesserockz jesserockz deleted the fan_changes branch November 11, 2025 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants