Skip to content

Document workarounds for WLED HA integration limitations#314

Open
mik-laj wants to merge 4 commits intowled:mainfrom
mik-laj:patch-1
Open

Document workarounds for WLED HA integration limitations#314
mik-laj wants to merge 4 commits intowled:mainfrom
mik-laj:patch-1

Conversation

@mik-laj
Copy link
Copy Markdown
Contributor

@mik-laj mik-laj commented May 8, 2026

The WLED HA integration has known limitations that can be worked around using WLED's JSON API. This PR adds a new section documenting practical workarounds with YAML examples.

These workarounds are documented here rather than in the HA integration docs to keep them maintainable. The HA team is limited in its ability to maintain them due to limited knowledge of the WLED JSON API.

Summary by CodeRabbit

  • Documentation
    • Clarified how to configure WLED via the Home Assistant integration.
    • Added a "Workarounds for known integration limitations" section with guidance for: custom palette visibility, controlling AudioReactive via REST, handling RGB+CCT strip behavior, managing multi-segment control, and setting secondary/tertiary effect colors.

Review Change Stack

Added workarounds for known limitations of the WLED integration, including issues with custom palettes, AudioReactive usermod, sound-reactive effects, and color control.
Copilot AI review requested due to automatic review settings May 8, 2026 14:26
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 8, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7629c735-cdc2-4a74-9a1d-8588c5c4b82a

📥 Commits

Reviewing files that changed from the base of the PR and between 999787c and 6eea676.

📒 Files selected for processing (1)
  • docs/advanced/home-automation.md

Walkthrough

Documentation clarifying that WLED should be configured via Home Assistant's official WLED integration and adding a "Workarounds for known HA integration limitations" section with REST and preset examples for palettes, AudioReactive control, RGB+CCT behavior, multi-segment control, and secondary/tertiary color mapping.

Changes

Home Assistant Integration Documentation

Layer / File(s) Summary
Integration Configuration Reference
docs/advanced/home-automation.md
Clarifies configuring WLED via the official Home Assistant WLED integration.
Palette REST Workaround
docs/advanced/home-automation.md
Documents that uploaded palettes aren't shown in HA selector and provides a rest_command example using palette IDs.
AudioReactive REST Toggle
docs/advanced/home-automation.md
Adds REST /json/state commands to enable/disable the AudioReactive usermod since it's not exposed as HA entities.
RGB+CCT Guidance
docs/advanced/home-automation.md
Recommends enabling "Calculate CCT from RGB" (and WBC guidance) for mixed RGB+CCT strips where HA activates only one model.
Multi-segment Control (Presets / Single REST)
docs/advanced/home-automation.md
Describes preset-based control and a single REST payload example to set multiple segments at once.
Secondary/Tertiary Color Mapping
docs/advanced/home-automation.md
Adds preset and REST payload guidance mapping col[0], col[1], col[2] to primary/secondary/tertiary effect colors.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A rabbit hops through docs so bright,
REST and presets make configs light,
Palettes, segments, colors true,
Home Assistant knows what to do,
Hopping joy for WLED's new night!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly matches the PR's main objective: documenting workarounds for WLED Home Assistant integration limitations, as confirmed by the file changes and PR description.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code

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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@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

🧹 Nitpick comments (1)
docs/advanced/home-automation.md (1)

46-47: ⚡ Quick win

Use admonitions for workaround callouts instead of bold labels.

At Lines 46, 70, 90, 106, 114, 158, and 172, **Workaround:** should be converted to MkDocs admonitions for consistency and better scanability.

Example conversion pattern
-**Workaround:** Use `rest_command` to set the palette by ID.
+!!! tip "Workaround"
+    Use `rest_command` to set the palette by ID.

As per coding guidelines: “Use MkDocs Material admonitions (!!! info, !!! tip, !!! warning, !!! danger) for callouts instead of plain text or other formatting.”

Also applies to: 70-71, 90-91, 106-107, 114-115, 158-159, 172-173

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/advanced/home-automation.md` around lines 46 - 47, Replace each bold "
**Workaround:** " callout in docs/advanced/home-automation.md with a MkDocs
Material admonition (use "!!! tip" for workaround semantics); e.g., locate
occurrences of the literal string "**Workaround:**" and convert the following
sentence/block into an indented body under "!!! tip" (preserve any inline code,
URLs, and examples), ensuring proper indentation for multiline content and
leaving surrounding text unchanged — update all instances of that literal (the
ones noted in the review) so the rendered pages use MkDocs admonitions instead
of bold labels.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/advanced/home-automation.md`:
- Around line 38-42: Change the new workaround section and its subsections from
level-5/sentence-case headings to the prescribed `###`/`####` depth and Title
Case; specifically update the "Workarounds for known integration limitations"
heading and each subsection heading such as "Custom palettes not visible in HA"
(and the other subsection titles referenced) to use `###` or `####` as
appropriate and convert their text to Title Case (e.g., "Custom Palettes Not
Visible in HA"); ensure heading markers and capitalization are consistent with
the project's guideline of using `##` for top-level and `###`/`####` for
sub-sections.

---

Nitpick comments:
In `@docs/advanced/home-automation.md`:
- Around line 46-47: Replace each bold " **Workaround:** " callout in
docs/advanced/home-automation.md with a MkDocs Material admonition (use "!!!
tip" for workaround semantics); e.g., locate occurrences of the literal string
"**Workaround:**" and convert the following sentence/block into an indented body
under "!!! tip" (preserve any inline code, URLs, and examples), ensuring proper
indentation for multiline content and leaving surrounding text unchanged —
update all instances of that literal (the ones noted in the review) so the
rendered pages use MkDocs admonitions instead of bold labels.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7062834f-db85-4ecc-8a89-5d16c2c57026

📥 Commits

Reviewing files that changed from the base of the PR and between 2e211da and 999787c.

📒 Files selected for processing (1)
  • docs/advanced/home-automation.md

Comment thread docs/advanced/home-automation.md Outdated
Comment on lines +38 to +42
#### Workarounds for known integration limitations

The native integration has known limitations documented in the [official HA WLED integration docs](https://www.home-assistant.io/integrations/wled/). Below are practical workarounds using WLED's REST API.

##### Custom palettes not visible in HA
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix heading levels and title case for the new workaround section.

Line 38 and the subsection headings at Lines 42, 66, 86, 102, 110, and 154 currently use level-5 headings and sentence case. Please keep subsection depth at ###/#### and switch these headings to title case.

Suggested heading structure
-#### Workarounds for known integration limitations
+### Workarounds for Known Integration Limitations

-##### Custom palettes not visible in HA
+#### Custom Palettes Not Visible in HA

-##### AudioReactive usermod not controllable
+#### AudioReactive Usermod Not Controllable

-##### Sound-reactive and 2D matrix effects may not work
+#### Sound-Reactive and 2D Matrix Effects May Not Work

-##### Mixed RGB+CCT strips – only one color model active
+#### Mixed RGB+CCT Strips – Only One Color Model Active

-##### No master control for color/effect across all segments
+#### No Master Control for Color/Effect Across All Segments

-##### Secondary and tertiary effect colors cannot be set from HA
+#### Secondary and Tertiary Effect Colors Cannot Be Set from HA

As per coding guidelines: “Use ## for top-level sections… use ### and #### for sub-sections” and “Use title case for section and subsection headings.”

Also applies to: 66-67, 86-87, 102-103, 110-111, 154-155

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/advanced/home-automation.md` around lines 38 - 42, Change the new
workaround section and its subsections from level-5/sentence-case headings to
the prescribed `###`/`####` depth and Title Case; specifically update the
"Workarounds for known integration limitations" heading and each subsection
heading such as "Custom palettes not visible in HA" (and the other subsection
titles referenced) to use `###` or `####` as appropriate and convert their text
to Title Case (e.g., "Custom Palettes Not Visible in HA"); ensure heading
markers and capitalization are consistent with the project's guideline of using
`##` for top-level and `###`/`####` for sub-sections.

Copy link
Copy Markdown
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 expands the Home Assistant documentation to include practical workarounds (primarily via Home Assistant rest_command and WLED presets) for limitations of the native WLED integration.

Changes:

  • Adds a new “Workarounds for known integration limitations” section under the Home Assistant native integration docs.
  • Documents REST API–based approaches for setting palettes, applying multi-segment changes, and setting secondary/tertiary colors.
  • Recommends using WLED presets as a reliable control mechanism when HA entity support is incomplete.

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

Comment thread docs/advanced/home-automation.md Outdated
Comment on lines +46 to +63
**Workaround:** Use a `rest_command` to set the palette by ID. Custom palettes are numbered starting from ID 71 (after the ~71 built-in palettes). To find the exact ID of your custom palette, query `GET http://<wled-ip>/json/palettes` and check the array index.

```yaml
rest_command:
wled_set_palette:
url: "http://{{ ip }}/json/state"
method: POST
content_type: application/json
payload: '{"seg":[{"id":0,"pal":{{ palette_id }}}]}'
```

Example automation:
```yaml
action: rest_command.wled_set_palette
data:
ip: "192.168.1.100"
palette_id: 71 # first custom palette
```
Comment on lines +48 to +55
```yaml
rest_command:
wled_set_palette:
url: "http://{{ ip }}/json/state"
method: POST
content_type: application/json
payload: '{"seg":[{"id":0,"pal":{{ palette_id }}}]}'
```
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not needed. This isn't documentation for beginners.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@mik-laj you'd be surprised 😉
a short hint may help some "pseudo-experts" to avoid mistakes.

Comment thread docs/advanced/home-automation.md
mik-laj added 3 commits May 8, 2026 16:50
Updated workaround for custom palettes to reflect new ID numbering.
Updated section headers for clarity and consistency in the documentation regarding Home Assistant WLED integration workarounds.
Removed section about sound-reactive and 2D matrix effects, including workarounds and preset usage.
@softhack007

This comment was marked as outdated.

@coderabbitai

This comment was marked as outdated.

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