Support entities autocomplete for local characters#30399
Support entities autocomplete for local characters#30399lkostrowski wants to merge 12 commits intohome-assistant:devfrom
Conversation
There was a problem hiding this comment.
Hi @lkostrowski
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!
piitaya
left a comment
There was a problem hiding this comment.
Thanks for the PR!
We had a similar issue before: we added custom diacritics logic (#21150), then removed it when Fuse.js shipped ignoreDiacritics natively (#24041).
The issue is that Fuse.js's ignoreDiacritics only uses NFD normalization, which doesn't handle characters like ł, ø, đ, or ß.
Your fix is the right approach. Could you also open a PR or issue on Fuse.js to fix their internal stripDiacritics? If they fix it upstream, we can remove this workaround again like we did in #24041.
You added normalizingGetFn to some standalone Fuse instances (quick-bar, automation-add-search,...) without adding ignoreDiacritics: true.
It works because you normalize search terms manually, but it's inconsistent with the other call sites. Can you add ignoreDiacritics: true to those instances too?
|
Thanks for the review, I will look into that PR to Fuse krisk/Fuse#816 |
|
@piitaya if I understood correctly, I fixed the issue, I missed one spot where normalization was missing. Maybe after fixing the bug, I will extract shared/common Fuse options to single instance for reused behavior |
| keys: ["domain", "localized_domain_name", "title"], | ||
| isCaseSensitive: false, | ||
| minMatchCharLength: Math.min(filter.length, 2), | ||
| threshold: 0.2, |
There was a problem hiding this comment.
We can also add ignoreDiacritics here too.
There was a problem hiding this comment.
Probably need to add getFn: normalizingGetFn too
src/panels/config/integrations/ha-config-integrations-dashboard.ts
Outdated
Show resolved
Hide resolved
| // Normalize non-decomposable diacritics in search terms to match getFn normalization | ||
| const normalizedSearch = | ||
| typeof search === "string" ? stripDiacritics(search) : search; | ||
|
|
There was a problem hiding this comment.
This function is not exported and only used in this file. Other callers already normalize terms before passing them in so the second strip is not useful.
There was a problem hiding this comment.
I think it is needed, for example HaAutomationAddSearch component directly passes filter from UI and I can't find any normalization out there.
In general it's not too DRY, IMO we can solve it in two phases
- Make actual fix, accept that the change is distributed (such implementation should not "leak" but we want small code increment)
- Create a facade that will wrap Fuse, for example
class FuzzySearch. Inside instantionate Fuse, allow to inject options, make a public "filter" method that will normalize inside it and delegate to Fuse. Then replace Fuse everywhere and block access to Fuse import in the codebase in other places than FuzzySearch. I can implement this
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
Characters like ł, ø, ß, đ, ħ, ŧ, ı survive NFD normalization unchanged. Add explicit replacement map to convert them to their ASCII equivalents (e.g. ł→l, ß→ss, ø→o). Based on the approach from home-assistant/frontend#30399. Closes #816 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
<!-- COMMIT_BODY_TEXT_BEGIN --> This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [fuse.js](http://fusejs.io) ([source](https://redirect.github.com/krisk/Fuse)) | [`7.2.0` → `7.3.0`](https://renovatebot.com/diffs/npm/fuse.js/7.2.0/7.3.0) |  |  |  |  | --- ### Release Notes <details> <summary>krisk/Fuse (fuse.js)</summary> ### [`v7.3.0`](https://redirect.github.com/krisk/Fuse/blob/HEAD/CHANGELOG.md#730-2026-04-04) [Compare Source](https://redirect.github.com/krisk/Fuse/compare/v7.2.0...v7.3.0) ##### Features - add BigInt support for indexing and search ([0ae662c](https://redirect.github.com/krisk/Fuse/commit/0ae662cb825e1c9db7cdaf8331aab992f293b508)), closes [#​814](https://redirect.github.com/krisk/Fuse/issues/814) - add static Fuse.match() for single string matching ([460eb5b](https://redirect.github.com/krisk/Fuse/commit/460eb5be84b56525710602ec44e2af402ca09686)) - add token search — per-term fuzzy matching with IDF scoring ([68c1dcf](https://redirect.github.com/krisk/Fuse/commit/68c1dcf981a60ef46387440dc550fc546254bae9)) - getFn null return, escaped pipe in extended search, empty query returns all ([d33b735](https://redirect.github.com/krisk/Fuse/commit/d33b735f62ae2f149808a49ff0c185a04bee28d7)), closes [#​800](https://redirect.github.com/krisk/Fuse/issues/800) [#​765](https://redirect.github.com/krisk/Fuse/issues/765) [#​728](https://redirect.github.com/krisk/Fuse/issues/728) - removeAt() now returns the removed item ([8cec7e2](https://redirect.github.com/krisk/Fuse/commit/8cec7e2f99a7063e0aa9a04b8cedf0813e169531)), closes [#​675](https://redirect.github.com/krisk/Fuse/issues/675) - **search:** support keyless string entries in logical queries ([8695556](https://redirect.github.com/krisk/Fuse/commit/86955565a106514212639ecfd3ff45d492f4a0a3)), closes [#​736](https://redirect.github.com/krisk/Fuse/issues/736) ##### Bug Fixes - **index:** coerce non-string array values to strings during indexing ([db0e181](https://redirect.github.com/krisk/Fuse/commit/db0e181e5db988d5fad8bee1e281fa20f8a69376)), closes [#​738](https://redirect.github.com/krisk/Fuse/issues/738) - **index:** strip getFn from keys in toJSON() for safe serialization ([0f2a69b](https://redirect.github.com/krisk/Fuse/commit/0f2a69babf8c76faeb366c471e17430f5f6d8595)), closes [#​798](https://redirect.github.com/krisk/Fuse/issues/798) - **lint:** suppress unused var in toJSON destructure ([d63c0e8](https://redirect.github.com/krisk/Fuse/commit/d63c0e8bd82e4c4d4cec5844a800e64d3b056b29)) - merge overlapping match indices in extended search ([06c5e97](https://redirect.github.com/krisk/Fuse/commit/06c5e97c1b79f6e29d482a300eea99a9b6fad82f)) - **search:** handle non-decomposable diacritics in stripDiacritics ([5a01f29](https://redirect.github.com/krisk/Fuse/commit/5a01f2994ffe48f7e0e4191f4cdeeabe6a3967a5)), closes [home-assistant/frontend#30399](https://redirect.github.com/home-assistant/frontend/issues/30399) [#​816](https://redirect.github.com/krisk/Fuse/issues/816) - **search:** handle quoted tokens with inner spaces and quotes in extended search ([c226523](https://redirect.github.com/krisk/Fuse/commit/c22652342b2d15c12f5dc5870e6b4b0eef1d2247)), closes [#​810](https://redirect.github.com/krisk/Fuse/issues/810) - **search:** inverse patterns now work correctly across multiple keys ([9351882](https://redirect.github.com/krisk/Fuse/commit/935188228ed50dc0a555b41eda47447ada59dd6b)), closes [#​712](https://redirect.github.com/krisk/Fuse/issues/712) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- <!-- COMMIT_BODY_TEXT_END --> <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbIvCfk6bvuI8gRGVwZW5kZW5jaWVzIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [fuse.js](http://fusejs.io) ([source](https://redirect.github.com/krisk/Fuse)) | [`7.2.0` → `7.3.0`](https://renovatebot.com/diffs/npm/fuse.js/7.2.0/7.3.0) |  |  | | [tldts](https://redirect.github.com/remusao/tldts) | [`7.0.27` → `7.0.28`](https://renovatebot.com/diffs/npm/tldts/7.0.27/7.0.28) |  |  | --- ### Release Notes <details> <summary>krisk/Fuse (fuse.js)</summary> ### [`v7.3.0`](https://redirect.github.com/krisk/Fuse/blob/HEAD/CHANGELOG.md#730-2026-04-04) [Compare Source](https://redirect.github.com/krisk/Fuse/compare/v7.2.0...v7.3.0) ##### Features - add BigInt support for indexing and search ([0ae662c](https://redirect.github.com/krisk/Fuse/commit/0ae662cb825e1c9db7cdaf8331aab992f293b508)), closes [#​814](https://redirect.github.com/krisk/Fuse/issues/814) - add static Fuse.match() for single string matching ([460eb5b](https://redirect.github.com/krisk/Fuse/commit/460eb5be84b56525710602ec44e2af402ca09686)) - add token search — per-term fuzzy matching with IDF scoring ([68c1dcf](https://redirect.github.com/krisk/Fuse/commit/68c1dcf981a60ef46387440dc550fc546254bae9)) - getFn null return, escaped pipe in extended search, empty query returns all ([d33b735](https://redirect.github.com/krisk/Fuse/commit/d33b735f62ae2f149808a49ff0c185a04bee28d7)), closes [#​800](https://redirect.github.com/krisk/Fuse/issues/800) [#​765](https://redirect.github.com/krisk/Fuse/issues/765) [#​728](https://redirect.github.com/krisk/Fuse/issues/728) - removeAt() now returns the removed item ([8cec7e2](https://redirect.github.com/krisk/Fuse/commit/8cec7e2f99a7063e0aa9a04b8cedf0813e169531)), closes [#​675](https://redirect.github.com/krisk/Fuse/issues/675) - **search:** support keyless string entries in logical queries ([8695556](https://redirect.github.com/krisk/Fuse/commit/86955565a106514212639ecfd3ff45d492f4a0a3)), closes [#​736](https://redirect.github.com/krisk/Fuse/issues/736) ##### Bug Fixes - **index:** coerce non-string array values to strings during indexing ([db0e181](https://redirect.github.com/krisk/Fuse/commit/db0e181e5db988d5fad8bee1e281fa20f8a69376)), closes [#​738](https://redirect.github.com/krisk/Fuse/issues/738) - **index:** strip getFn from keys in toJSON() for safe serialization ([0f2a69b](https://redirect.github.com/krisk/Fuse/commit/0f2a69babf8c76faeb366c471e17430f5f6d8595)), closes [#​798](https://redirect.github.com/krisk/Fuse/issues/798) - **lint:** suppress unused var in toJSON destructure ([d63c0e8](https://redirect.github.com/krisk/Fuse/commit/d63c0e8bd82e4c4d4cec5844a800e64d3b056b29)) - merge overlapping match indices in extended search ([06c5e97](https://redirect.github.com/krisk/Fuse/commit/06c5e97c1b79f6e29d482a300eea99a9b6fad82f)) - **search:** handle non-decomposable diacritics in stripDiacritics ([5a01f29](https://redirect.github.com/krisk/Fuse/commit/5a01f2994ffe48f7e0e4191f4cdeeabe6a3967a5)), closes [home-assistant/frontend#30399](https://redirect.github.com/home-assistant/frontend/issues/30399) [#​816](https://redirect.github.com/krisk/Fuse/issues/816) - **search:** handle quoted tokens with inner spaces and quotes in extended search ([c226523](https://redirect.github.com/krisk/Fuse/commit/c22652342b2d15c12f5dc5870e6b4b0eef1d2247)), closes [#​810](https://redirect.github.com/krisk/Fuse/issues/810) - **search:** inverse patterns now work correctly across multiple keys ([9351882](https://redirect.github.com/krisk/Fuse/commit/935188228ed50dc0a555b41eda47447ada59dd6b)), closes [#​712](https://redirect.github.com/krisk/Fuse/issues/712) </details> <details> <summary>remusao/tldts (tldts)</summary> ### [`v7.0.28`](https://redirect.github.com/remusao/tldts/blob/HEAD/CHANGELOG.md#v7028-Sat-Apr-04-2026) [Compare Source](https://redirect.github.com/remusao/tldts/compare/v7.0.27...v7.0.28) ##### 📜 Update Public Suffix List - `tldts-experimental`, `tldts` - Update upstream public suffix list [#​2541](https://redirect.github.com/remusao/tldts/pull/2541) ([@​remusao](https://redirect.github.com/remusao)) ##### :nut\_and\_bolt: Dependencies - Bump lodash from 4.17.23 to 4.18.1 [#​2546](https://redirect.github.com/remusao/tldts/pull/2546) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump handlebars from 4.7.8 to 4.7.9 [#​2542](https://redirect.github.com/remusao/tldts/pull/2542) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump picomatch from 2.3.1 to 2.3.2 [#​2540](https://redirect.github.com/remusao/tldts/pull/2540) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump typescript-eslint from 8.57.2 to 8.58.0 [#​2543](https://redirect.github.com/remusao/tldts/pull/2543) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump rollup from 4.60.0 to 4.60.1 [#​2544](https://redirect.github.com/remusao/tldts/pull/2544) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump rollup from 4.59.0 to 4.60.0 [#​2536](https://redirect.github.com/remusao/tldts/pull/2536) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump typescript-eslint from 8.57.1 to 8.57.2 [#​2539](https://redirect.github.com/remusao/tldts/pull/2539) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) ##### Authors: 2 - [@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]) - Rémi ([@​remusao](https://redirect.github.com/remusao)) *** </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 2pm on Saturday" in timezone Europe/Zurich, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/adobe/spacecat-api-service). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [fuse.js](http://fusejs.io) ([source](https://redirect.github.com/krisk/Fuse)) | [`7.2.0` → `7.3.0`](https://renovatebot.com/diffs/npm/fuse.js/7.2.0/7.3.0) |  |  | | [tldts](https://redirect.github.com/remusao/tldts) | [`7.0.27` → `7.0.28`](https://renovatebot.com/diffs/npm/tldts/7.0.27/7.0.28) |  |  | --- ### Release Notes <details> <summary>krisk/Fuse (fuse.js)</summary> ### [`v7.3.0`](https://redirect.github.com/krisk/Fuse/blob/HEAD/CHANGELOG.md#730-2026-04-04) [Compare Source](https://redirect.github.com/krisk/Fuse/compare/v7.2.0...v7.3.0) ##### Features - add BigInt support for indexing and search ([0ae662c](https://redirect.github.com/krisk/Fuse/commit/0ae662cb825e1c9db7cdaf8331aab992f293b508)), closes [#​814](https://redirect.github.com/krisk/Fuse/issues/814) - add static Fuse.match() for single string matching ([460eb5b](https://redirect.github.com/krisk/Fuse/commit/460eb5be84b56525710602ec44e2af402ca09686)) - add token search — per-term fuzzy matching with IDF scoring ([68c1dcf](https://redirect.github.com/krisk/Fuse/commit/68c1dcf981a60ef46387440dc550fc546254bae9)) - getFn null return, escaped pipe in extended search, empty query returns all ([d33b735](https://redirect.github.com/krisk/Fuse/commit/d33b735f62ae2f149808a49ff0c185a04bee28d7)), closes [#​800](https://redirect.github.com/krisk/Fuse/issues/800) [#​765](https://redirect.github.com/krisk/Fuse/issues/765) [#​728](https://redirect.github.com/krisk/Fuse/issues/728) - removeAt() now returns the removed item ([8cec7e2](https://redirect.github.com/krisk/Fuse/commit/8cec7e2f99a7063e0aa9a04b8cedf0813e169531)), closes [#​675](https://redirect.github.com/krisk/Fuse/issues/675) - **search:** support keyless string entries in logical queries ([8695556](https://redirect.github.com/krisk/Fuse/commit/86955565a106514212639ecfd3ff45d492f4a0a3)), closes [#​736](https://redirect.github.com/krisk/Fuse/issues/736) ##### Bug Fixes - **index:** coerce non-string array values to strings during indexing ([db0e181](https://redirect.github.com/krisk/Fuse/commit/db0e181e5db988d5fad8bee1e281fa20f8a69376)), closes [#​738](https://redirect.github.com/krisk/Fuse/issues/738) - **index:** strip getFn from keys in toJSON() for safe serialization ([0f2a69b](https://redirect.github.com/krisk/Fuse/commit/0f2a69babf8c76faeb366c471e17430f5f6d8595)), closes [#​798](https://redirect.github.com/krisk/Fuse/issues/798) - **lint:** suppress unused var in toJSON destructure ([d63c0e8](https://redirect.github.com/krisk/Fuse/commit/d63c0e8bd82e4c4d4cec5844a800e64d3b056b29)) - merge overlapping match indices in extended search ([06c5e97](https://redirect.github.com/krisk/Fuse/commit/06c5e97c1b79f6e29d482a300eea99a9b6fad82f)) - **search:** handle non-decomposable diacritics in stripDiacritics ([5a01f29](https://redirect.github.com/krisk/Fuse/commit/5a01f2994ffe48f7e0e4191f4cdeeabe6a3967a5)), closes [home-assistant/frontend#30399](https://redirect.github.com/home-assistant/frontend/issues/30399) [#​816](https://redirect.github.com/krisk/Fuse/issues/816) - **search:** handle quoted tokens with inner spaces and quotes in extended search ([c226523](https://redirect.github.com/krisk/Fuse/commit/c22652342b2d15c12f5dc5870e6b4b0eef1d2247)), closes [#​810](https://redirect.github.com/krisk/Fuse/issues/810) - **search:** inverse patterns now work correctly across multiple keys ([9351882](https://redirect.github.com/krisk/Fuse/commit/935188228ed50dc0a555b41eda47447ada59dd6b)), closes [#​712](https://redirect.github.com/krisk/Fuse/issues/712) </details> <details> <summary>remusao/tldts (tldts)</summary> ### [`v7.0.28`](https://redirect.github.com/remusao/tldts/blob/HEAD/CHANGELOG.md#v7028-Sat-Apr-04-2026) [Compare Source](https://redirect.github.com/remusao/tldts/compare/v7.0.27...v7.0.28) ##### 📜 Update Public Suffix List - `tldts-experimental`, `tldts` - Update upstream public suffix list [#​2541](https://redirect.github.com/remusao/tldts/pull/2541) ([@​remusao](https://redirect.github.com/remusao)) ##### :nut\_and\_bolt: Dependencies - Bump lodash from 4.17.23 to 4.18.1 [#​2546](https://redirect.github.com/remusao/tldts/pull/2546) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump handlebars from 4.7.8 to 4.7.9 [#​2542](https://redirect.github.com/remusao/tldts/pull/2542) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump picomatch from 2.3.1 to 2.3.2 [#​2540](https://redirect.github.com/remusao/tldts/pull/2540) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump typescript-eslint from 8.57.2 to 8.58.0 [#​2543](https://redirect.github.com/remusao/tldts/pull/2543) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump rollup from 4.60.0 to 4.60.1 [#​2544](https://redirect.github.com/remusao/tldts/pull/2544) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump rollup from 4.59.0 to 4.60.0 [#​2536](https://redirect.github.com/remusao/tldts/pull/2536) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) - Bump typescript-eslint from 8.57.1 to 8.57.2 [#​2539](https://redirect.github.com/remusao/tldts/pull/2539) ([@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot])) ##### Authors: 2 - [@​dependabot\[bot\]](https://redirect.github.com/dependabot\[bot]) - Rémi ([@​remusao](https://redirect.github.com/remusao)) *** </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 2pm on Saturday" in timezone Europe/Zurich, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/adobe/spacecat-api-service). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
|
The fuse changes have been merged in #51457 |
|
Great, looks like we ain't gonna need it anymore 👍 |
Proposed change
PR adds custom normalization of searched queries (to select/combobox via Fuse.js). Current implementation properly works with some unicode characters, but fail for others
For example polish
łazienika(bathroom) contains characterł. Fuse doesn't match it with non-diactric latinlcharacter.Effectively this ends up with poor UX with entity search. User must decide either to call entities incorrectly ("lazienka") or explicitly type "łazienka" which opts-out fuzzy search and is inconvenient (requires
alt+l)Screenshots
Type of change
Additional information
This PR fixes or closes issue: fixes #not found existingThis PR is related to issue or discussion:dittoLink to documentation pull request:n/aLink to developer documentation pull request:n/aLink to backend pull request:n/aChecklist
If user exposed functionality or configuration variables are added/changed:
Documentation added/updated for www.home-assistant.ion/aTo help with the load of incoming pull requests: