Skip to content

Add Homecast integration documentation#44341

Closed
robjampar wants to merge 10 commits intohome-assistant:nextfrom
robjampar:add-homecast-docs
Closed

Add Homecast integration documentation#44341
robjampar wants to merge 10 commits intohome-assistant:nextfrom
robjampar:add-homecast-docs

Conversation

@robjampar
Copy link
Copy Markdown

Summary

Add documentation for the new Homecast integration which bridges Apple HomeKit devices to Home Assistant.

Covers:

  • Prerequisites and setup instructions
  • Supported device types table
  • How it works (polling, OAuth)
  • Troubleshooting (relay offline, re-auth, stale state)

Companion PRs:

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings March 27, 2026 08:40
@home-assistant home-assistant bot added has-parent This PR has a parent PR in another repo next This PR goes into the next branch labels Mar 27, 2026
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 27, 2026

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit a11bbc5
🔍 Latest deploy log https://app.netlify.com/projects/home-assistant-docs/deploys/69c64276b9af670007377ea6
😎 Deploy Preview https://deploy-preview-44341--home-assistant-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.

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 adds documentation for the new Homecast integration and also introduces several website/supporting changes (mobile app landing pages, blog content, author metadata handling, redirects, and dependency bumps).

Changes:

  • Add a new integration documentation page for Homecast.
  • Add iOS/Android landing/auth pages intended for redirects/Universal Links behavior.
  • Add a new blog post (with image), update historical posts to multi-author front matter, adjust author rendering/metadata templates, and update a Discord redirect plus lockfiles.

Reviewed changes

Copilot reviewed 24 out of 27 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
source/ios/nfc.markdown Add iOS NFC landing placeholder page.
source/ios/index.markdown Add iOS landing page with redirect-uri link and JS redirect.
source/ios/dev-auth.markdown Add iOS dev auth landing page with redirect-uri link and JS redirect.
source/ios/beta-auth.markdown Add iOS beta auth landing page with redirect-uri link and JS redirect.
source/android/index.markdown Add Android landing page with multiple redirect-uri links and JS redirect.
source/_integrations/homecast.markdown Add Homecast integration documentation.
source/_integrations/broadlink.markdown Extend Broadlink docs with code-management notes and a new section.
source/_redirects Update the /join-chat-design redirect target.
source/_posts/2026-03-26-modernizing-encryption-of-home-assistant-backups.markdown Add a new blog post about backup encryption modernization.
source/images/blog/2026-03-modernizing-encryption-of-home-assistant-backups/art.webp Add the blog post Open Graph/hero image.
source/_posts/2023-10-19-security-audits-of-home-assistant.markdown Convert author field to a YAML list.
source/_posts/2020-08-05-mobile-apps-new-features.markdown Convert author field to a YAML list.
source/_posts/2017-11-12-tor.markdown Convert author field to a YAML list.
source/_posts/2017-06-20-things-you-should-know-about-senic-covi.markdown Convert author field to a YAML list.
source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown Convert author field to a YAML list.
source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown Convert author field to a YAML list.
source/_posts/2016-09-29-async-sleepiq-emoncms-stocks.markdown Convert author field to a YAML list.
source/_posts/2016-07-30-custom-frontend-panels--jupyter-notebooks--directv.markdown Convert author field to a YAML list.
source/_posts/2016-02-09-Smarter-Smart-Things-with-MQTT-and-Home-Assistant.markdown Convert author field to a YAML list.
source/_posts/2015-12-13-setup-encryption-using-lets-encrypt.markdown Convert author field to a YAML list.
source/_includes/site/social_meta.html Update Twitter “Written by” metadata to support multi-author lists.
source/_includes/site/head.html Update <meta name="author"> handling to support multi-author lists.
source/_includes/post/author.html Update post author rendering to support multiple authors (people.yml lookup per author).
source/_data/people.yml Add an entry for “Erik Montnémery”.
package-lock.json Bump picomatch and add license metadata.
Gemfile.lock Bump Ruby dependencies (ffi/json/rbs/ruby-lsp).
Gemfile Bump ruby-lsp version.

Comment on lines 429 to +431
__IMPORTANT__: Always use unique names for your switches. A good choice is to prefix the name with the area in which the device is located, e.g. Bedroom TV.

## Managing codes for remotes
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

There’s an extra space after the ## marker (## Managing...), which can trip markdown linters and is inconsistent with other headings in this file. Please use a single space after ##.

Suggested change
__IMPORTANT__: Always use unique names for your switches. A good choice is to prefix the name with the area in which the device is located, e.g. Bedroom TV.
## Managing codes for remotes
__IMPORTANT__: Always use unique names for your switches. A good choice is to prefix the name with the area in which the device is located, like Bedroom TV.
## Managing codes for remotes

Copilot uses AI. Check for mistakes.

You can grab `irdb2broadlinkha.sh` from [irdb2broadlinkha](https://github.com/molexx/irdb2broadlinkha) project and try to convert codes to format suitable for Home Assistant.

### Managig codes with Broadlink Manager
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

Spelling: Managig should be Managing in this heading.

Suggested change
### Managig codes with Broadlink Manager
### Managing codes with Broadlink Manager

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +4
---
title: Homecast
description: Instructions on setting up Homecast within Home Assistant.
ha_category:
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

The PR title/description focus on adding Homecast integration documentation, but this PR also introduces mobile app landing/redirect pages, a new blog post (with image), author template changes, a Discord redirect change, and dependency lockfile updates. Please either split these into separate PRs or update the PR title/description so reviewers can scope the changes accurately.

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +12
title: "Home Assistant Android"
description: "Landing page for Home Assistant Android app."
---

<link rel='redirect_uri' href='homeassistant://auth-callback'>
<link rel='redirect_uri' href='https://wear.googleapis.com/3p_auth/io.homeassistant.companion.android'>
<link rel='redirect_uri' href='https://wear.googleapis.com/3p_auth/io.homeassistant.companion.android.debug'>
<link rel='redirect_uri' href='https://wear.googleapis-cn.com/3p_auth/io.homeassistant.companion.android'>
<link rel='redirect_uri' href='https://wear.googleapis-cn.com/3p_auth/io.homeassistant.companion.android.debug'>

<script>document.location.href = 'https://companion.home-assistant.io/';</script>
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

These pages render with the default page layout, so the <link rel='redirect_uri'> ends up in the HTML <body> (invalid for <link>), which can break consumers that expect it in <head>. Consider using a minimal layout: null HTML page (or a custom layout) that places the redirect_uri links in <head> and avoids loading the full site chrome/scripts.

Suggested change
title: "Home Assistant Android"
description: "Landing page for Home Assistant Android app."
---
<link rel='redirect_uri' href='homeassistant://auth-callback'>
<link rel='redirect_uri' href='https://wear.googleapis.com/3p_auth/io.homeassistant.companion.android'>
<link rel='redirect_uri' href='https://wear.googleapis.com/3p_auth/io.homeassistant.companion.android.debug'>
<link rel='redirect_uri' href='https://wear.googleapis-cn.com/3p_auth/io.homeassistant.companion.android'>
<link rel='redirect_uri' href='https://wear.googleapis-cn.com/3p_auth/io.homeassistant.companion.android.debug'>
<script>document.location.href = 'https://companion.home-assistant.io/';</script>
layout: null
title: "Home Assistant Android"
description: "Landing page for Home Assistant Android app."
---
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Home Assistant Android</title>
<meta name="description" content="Landing page for Home Assistant Android app.">
<link rel="redirect_uri" href="homeassistant://auth-callback">
<link rel="redirect_uri" href="https://wear.googleapis.com/3p_auth/io.homeassistant.companion.android">
<link rel="redirect_uri" href="https://wear.googleapis.com/3p_auth/io.homeassistant.companion.android.debug">
<link rel="redirect_uri" href="https://wear.googleapis-cn.com/3p_auth/io.homeassistant.companion.android">
<link rel="redirect_uri" href="https://wear.googleapis-cn.com/3p_auth/io.homeassistant.companion.android.debug">
</head>
<body>
<script>
document.location.href = "https://companion.home-assistant.io/";
</script>
</body>
</html>

Copilot uses AI. Check for mistakes.
Comment on lines +4 to +7
---

<link rel='redirect_uri' href='homeassistant://auth-callback'>
<script>document.location.href = 'https://companion.home-assistant.io/';</script>
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

These pages render with the default page layout, so the <link rel='redirect_uri'> ends up in the HTML <body> (invalid for <link>), which can break consumers that expect it in <head>. Consider using a minimal layout: null HTML page (or a custom layout) that places the redirect_uri links in <head> and avoids loading the full site chrome/scripts.

Suggested change
---
<link rel='redirect_uri' href='homeassistant://auth-callback'>
<script>document.location.href = 'https://companion.home-assistant.io/';</script>
layout: null
---
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Home Assistant iOS</title>
<meta name="description" content="Landing page for Home Assistant iOS app.">
<link rel="redirect_uri" href="homeassistant://auth-callback">
<meta http-equiv="refresh" content="0; url=https://companion.home-assistant.io/">
<script>
window.location.replace("https://companion.home-assistant.io/");
</script>
</head>
<body>
<p>
If you are not redirected automatically, go to
<a href="https://companion.home-assistant.io/">
the Home Assistant Companion documentation
</a>.
</p>
</body>
</html>

Copilot uses AI. Check for mistakes.

### Re-authentication

If your OAuth token expires, Home Assistant will show a notification prompting you to re-authenticate. Go to **{% my integrations title="Settings > Devices & services" %}** > **Homecast** and follow the re-auth flow.
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

This uses the same My link formatting issue as in the Setup steps: the breadcrumbs should be bold inside the My link title (for example, {% my integrations title="**Settings** > **Devices & services**" %}) rather than wrapping the whole tag in **...**.

Suggested change
If your OAuth token expires, Home Assistant will show a notification prompting you to re-authenticate. Go to **{% my integrations title="Settings > Devices & services" %}** > **Homecast** and follow the re-auth flow.
If your OAuth token expires, Home Assistant will show a notification prompting you to re-authenticate. Go to {% my integrations title="**Settings** > **Devices & services**" %} > **Homecast** and follow the re-auth flow.

Copilot uses AI. Check for mistakes.
### Learning commands

Use `remote.learn_command` to learn IR and RF codes. These codes are grouped by device and stored as commands in the [storage folder](#learned-codes-storage-location). They can be sent with the `remote.send_command` action later.
Use `remote.learn_command` to learn IR and RF codes. These codes are grouped by device and stored as commands in the [storage folder](#learned-codes-storage-location). They can be sent with the `remote.send_command` action later. A convenient interface to learn, send, and delete codes can be found in web interface under `/developer-tools/service`.
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

/developer-tools/service is not used elsewhere in the docs, and the UI path is usually referenced via a My link (for example, {% my developer_services title="**Settings** > **Developer tools** > **Actions**" %} in source/_docs/automation/basics.markdown:47). Consider replacing the raw URL/path reference with the My link to avoid drifting UI paths and improve readability.

Suggested change
Use `remote.learn_command` to learn IR and RF codes. These codes are grouped by device and stored as commands in the [storage folder](#learned-codes-storage-location). They can be sent with the `remote.send_command` action later. A convenient interface to learn, send, and delete codes can be found in web interface under `/developer-tools/service`.
Use `remote.learn_command` to learn IR and RF codes. These codes are grouped by device and stored as commands in the [storage folder](#learned-codes-storage-location). They can be sent with the `remote.send_command` action later. A convenient interface to learn, send, and delete codes is available under {% my developer_services title="**Settings** > **Developer tools** > **Actions**" %}.

Copilot uses AI. Check for mistakes.

# Design & User research
/join-chat-design https://discord.gg/7FcRFq575z
/join-chat-design https://discord.com/channels/330944238910963714/1475553148847526123
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

/join-chat-design previously redirected to a Discord invite URL. The new target is a specific Discord channel URL, which won’t help people who aren’t already in the server (and may not be accessible without permissions). If the intent is still to let readers join the design chat, this should remain an invite link (for example, a discord.gg/discord.com/invite/... URL).

Suggested change
/join-chat-design https://discord.com/channels/330944238910963714/1475553148847526123
/join-chat-design https://discord.gg/home-assistant

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +7
title: "Home Assistant iOS beta authentication"
description: "Landing page for Home Assistant iOS beta app."
---

<link rel='redirect_uri' href='homeassistant-beta://auth-callback'>
<script>document.location.href = '/docs/ecosystem/ios';</script>
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

This page also renders with the default layout, so the <link rel='redirect_uri'> is placed in <body>. If this is intended for redirect-uri verification, switch to a minimal layout: null HTML page and put the redirect_uri link(s) in <head> (and keep any JS redirect from preventing verification).

Suggested change
title: "Home Assistant iOS beta authentication"
description: "Landing page for Home Assistant iOS beta app."
---
<link rel='redirect_uri' href='homeassistant-beta://auth-callback'>
<script>document.location.href = '/docs/ecosystem/ios';</script>
layout: null
title: "Home Assistant iOS beta authentication"
description: "Landing page for Home Assistant iOS beta app."
---
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Home Assistant iOS beta authentication</title>
<meta name="description" content="Landing page for Home Assistant iOS beta app.">
<link rel="redirect_uri" href="homeassistant-beta://auth-callback">
<meta http-equiv="refresh" content="0; url=/docs/ecosystem/ios">
<script>
window.location.href = "/docs/ecosystem/ios";
</script>
</head>
<body>
<p>
If you are not redirected automatically,
<a href="/docs/ecosystem/ios">go to the Home Assistant iOS documentation</a>.
</p>
</body>
</html>

Copilot uses AI. Check for mistakes.
Comment on lines +35 to +38
[Homecast](https://homecast.cloud) bridges Apple HomeKit smart home devices to open standards, enabling remote control, API access, and AI assistant integration. The Homecast Mac or iOS app runs on your home network as a relay between HomeKit and the Homecast cloud.

This integration connects Home Assistant to the Homecast cloud API, exposing your HomeKit devices as native Home Assistant entities.

Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

The intro for integration docs typically starts with the pattern The **<name>** {% term integration %} ... (see source/_integrations/_integration_docs_template.markdown:25 and source/_integrations/acaia.markdown:24). Updating the first sentence to follow that convention improves consistency and makes it clearer you're describing the Home Assistant integration (not only the product).

Suggested change
[Homecast](https://homecast.cloud) bridges Apple HomeKit smart home devices to open standards, enabling remote control, API access, and AI assistant integration. The Homecast Mac or iOS app runs on your home network as a relay between HomeKit and the Homecast cloud.
This integration connects Home Assistant to the Homecast cloud API, exposing your HomeKit devices as native Home Assistant entities.
The **Homecast** {% term integration %} connects Home Assistant to the Homecast cloud API so you can use your Apple HomeKit smart home devices as native Home Assistant entities. [Homecast](https://homecast.cloud) bridges Apple HomeKit devices to open standards, enabling remote control, API access, and AI assistant integration. The Homecast Mac or iOS app runs on your home network as a relay between HomeKit and the Homecast cloud.

Copilot uses AI. Check for mistakes.
@robjampar
Copy link
Copy Markdown
Author

Closing to rebase on latest next branch — will reopen with clean diff.

@robjampar robjampar closed this Mar 27, 2026
@github-actions github-actions bot locked and limited conversation to collaborators Mar 28, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

has-parent This PR has a parent PR in another repo next This PR goes into the next branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants