First-class ingress-aware embedding for Lovelace iframe/webpage cards #52204
Unanswered
dankarization
asked this question in
Dashboard
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This is a broader follow-up to the old Grafana-specific ingress iframe thread. The problem still exists in 2026 and also affects current add-ons such as Music Assistant and Zigbee2MQTT.
Proposal: First-class ingress-aware embedding for Lovelace iframe/webpage cards
Problem statement
Home Assistant add-ons that rely on Supervisor ingress do not embed reliably inside Lovelace when rendered through the built-in
iframe/webpagecard.In practice, the add-on itself is healthy and reachable, but the embedded UI may fail to load, show
401/No valid ingress session, or get stuck in an infinite loading state until the user first visits the add-on through its normal sidebar/panel route.This is still affecting real users in current versions of Home Assistant and is not limited to Grafana:
The current situation forces users into workarounds:
ha-addon-iframe-cardThat is a bad UX and pushes users away from the built-in dashboard primitives.
Current behavior
Today, the standard Lovelace
iframe/webpagecard behaves like a generic iframe wrapper:For ingress-backed add-ons, this creates a mismatch:
Related navigation behavior also remains awkward:
Desired behavior
Home Assistant frontend should provide a first-class way to embed ingress-backed add-on UIs inside Lovelace without custom cards.
Expected behavior:
Minimal frontend/core design
Option A: Upgrade the existing webpage/iframe card
Teach the built-in card to recognize ingress-backed targets, for example:
/api/hassio_ingress/...homeassistant://...ingress-style URLs where applicableWhen such a target is detected:
This is the smallest UX change because it preserves the existing Lovelace card concept.
Option B: Introduce a dedicated ingress-aware Lovelace card
Add a new first-party card, for example:
type: addon-webpagetype: ingress-webpageThis avoids overloading the generic iframe card and makes the special behavior explicit.
Possible config:
Advantages:
Shared implementation note
The backend building blocks already exist conceptually: the missing piece is mainly frontend orchestration of ingress session lifecycle around embedded usage.
Compatibility / risk notes
Security
This proposal should not bypass ingress or weaken auth.
It should only automate the same authenticated ingress session flow that already works when users open the add-on through the intended panel route.
Scope boundaries
This proposal is about ingress-backed add-ons embedded in Lovelace.
It is not about arbitrary third-party iframes on the open web.
Backward compatibility
If implemented as detection inside the existing webpage card, care is needed to avoid changing behavior for normal external URLs.
That is why a dedicated first-party ingress-aware card may actually be safer.
UX edge cases
Even with ingress session handling fixed, dashboard-only flows still need good navigation patterns.
That is separate from session creation itself, but worth acknowledging in docs/examples:
Why this matters
This is no longer just an old Grafana issue.
It affects current real-world dashboard use cases with modern add-ons like Music Assistant.
The existence of successful community workarounds such as
ha-addon-iframe-cardis strong evidence that users need this behavior and that the missing functionality is small but important.The question is not whether ingress-backed embedding is useful.
Users are already doing it.
The question is whether Home Assistant wants this solved natively in frontend/core, or to keep pushing users toward custom cards and brittle workarounds.
Suggested ask to maintainers
Would the frontend team accept either:
If yes, I can turn this into a narrower implementation proposal with:
Beta Was this translation helpful? Give feedback.
All reactions