Guide · Home Assistant

How to put a Home Assistant dashboard on a wall display without a login screen

Home Assistant has no public or anonymous mode: every dashboard needs a signed-in user, and a screen has nobody to type a password. The supported answer is the trusted networks auth provider with login bypass, plus a dedicated wall dashboard and the Kiosk Mode plugin to hide the chrome. This guide covers each step, the URL options, and how to keep a Raspberry Pi showing it all day.

Updated 2026-09-08 · 11 minute read · Applies to Home Assistant 2024.x and newer, OS, Container, Core and Supervised installs.

Why a Home Assistant wall display ends up on the login page

Your phone stays signed in because the Home Assistant app holds a refresh token for your user. A browser on a Raspberry Pi starts with nothing, so the first thing it shows is Welcome home and a password field. Two things people try do not help: a long-lived access token in the URL, which the frontend ignores, and typing the password once, which needs a keyboard on the wall and still expires after 90 days without use.

Home Assistant's own solution is the trusted networks auth provider. You tell it which IP addresses to trust, which user those addresses may log in as, and that it may skip the login page when only one user matches. The screen then opens straight onto the dashboard, as that user, every time.

Choose a method

MethodWorks onWho sets it upLogin promptsBest forCaveat
Trusted networks with login bypassAny Home Assistant install, on the LAN or over a VPNHome Assistant admin (configuration.yaml)Never for the trusted screen addressesWall displays and kiosks. The built-in, supported way.The screen needs a fixed IP; does not work through Nabu Casa remote or a reverse proxy the screen connects through.
Log in once by handAny installNobodyOnly if the session is unused for 90 daysA tablet with a keyboard.Needs a keyboard on the device; not possible on a DisplayOps screen today.
Nabu Casa remote URLHome Assistant CloudNobodyAlwaysPhones away from home.Login bypass cannot work: the connection arrives from the cloud, not from the screen.
Command line auth providerSelf-managed installsHome Assistant adminDepends on your scriptSites with an existing directory or SSO.Overkill for a wall display; listed for completeness.

The rest of this guide is the first row. The others are here so you know why they are not the answer for a screen.

Step 1: create a dedicated wall user

Never trust a screen as your own account. A wall user sees only what you give it and can be deleted in one click if the screen is ever moved or stolen.

  1. Add the user. Settings → People → Users → Add user. Display name Kitchen wall, username wall-kitchen, a long random password you will never type.
  2. Lock it down. Leave Administrator off and turn on Can only log in from the local network. Save.
  3. Copy the user ID. With the browser on /config/users, select the user; the dialog shows its ID, a 32-character string. You need it in step 2.

Step 2: trust the screen's address and skip the login page

Trusted networks compares the address a connection comes from with a list you configure. Give the screen a fixed address first, then add it. On DisplayOps the display's current IP is shown on its page in the portal; reserve that address in your router's DHCP settings so it never changes.

  1. Edit configuration.yaml (File editor or Studio Code Server add-on, or SSH). Add the trusted networks provider before the default one and keep the default one so you can still log in with a password from everywhere else:
homeassistant:
  auth_providers:
    - type: trusted_networks
      trusted_networks:
        - 192.168.1.40        # the kitchen wall display
        - 192.168.1.41        # the hallway display
      trusted_users:
        192.168.1.40: 8c0f2a4d1e5b4f0c9a7d3b2e6f1a5c4d   # wall-kitchen user ID
        192.168.1.41: 2b7e9c1a3d5f4e6b8a0c2d4e6f8a1b3c   # wall-hall user ID
      allow_bypass_login: true
    - type: homeassistant
  1. Check the configuration (Developer tools → YAML → Check configuration) and restart Home Assistant.
  2. Test from the screen's address. Open http://192.168.1.20:8123/ from a device that has the trusted address (or temporarily add your laptop's address). You should land on the default dashboard with no login page. From any other address the normal login still appears.
How the bypass works. With allow_bypass_login: true, when exactly one user is allowed for the connecting address, Home Assistant skips the login form and creates a session on every page load. That is why each address maps to one user in trusted_users: two candidates would bring the user picker back. Multi-factor authentication does not apply to trusted-network logins.
Use host addresses, not the whole network. Trusting 192.168.1.0/24 means every phone and laptop on the Wi-Fi opens Home Assistant as the wall user. Trust the screens' addresses only. And do not list a network that is also in your Trusted proxies setting; Home Assistant rejects that combination with Your computer is not allowed.

Step 3: build a dashboard for the wall

Your phone dashboard is the wrong shape for a 55-inch TV two metres away. Make one for the wall, keep it non-admin, and make it the wall user's default.

  1. Create it. Settings → Dashboards → Add dashboard → New dashboard from scratch. Title Wall, an icon, Show in sidebar on, Admin only off. The URL becomes /dashboard-wall.
  2. Lay it out for distance. Use the Sections layout with a few large cards, or a single Panel view for one big card such as a floor plan, camera or energy graph. Big text, few colours, no more than what someone reads in five seconds.
  3. Hide what the wall should not show. Open your other dashboards' settings and turn on Admin only where possible. The wall user then sees only the wall dashboard.
  4. Make it the default for the wall user. Log in as that user once from a trusted address and, on the Profile → General tab, choose it under Dashboard. Simpler still: give the screen the dashboard's full URL, which is what DisplayOps does anyway, and skip this step.

Step 4: hide the header and sidebar with Kiosk Mode

Home Assistant does not ship a fullscreen dashboard mode. The community Kiosk Mode plugin (installed through HACS) removes the header, the sidebar and the menu button, either for a dashboard or through URL parameters, and it is what nearly every wall-display setup uses.

  1. Install it. In HACS search for Kiosk Mode, download it, and add the resource it tells you to under Settings → Dashboards → Resources (HACS usually does this for you). Kiosk Mode 7 needs Home Assistant 2025.5 or newer; older cores need an older plugin release.
  2. Turn it on for the wall dashboard. Open the dashboard, Edit → Raw configuration editor, and add a root-level block:
kiosk_mode:
  non_admin_settings:
    kiosk: true          # hide header and sidebar for the wall user
  admin_settings:
    kiosk: false         # admins keep the header so they can edit
  1. Or use the URL. Append ?kiosk to the dashboard URL to hide everything, or ?hide_header / ?hide_sidebar for one of them. The URL form is convenient with DisplayOps because the parameter lives in the content item, not in the dashboard.
  2. Keep an exit. Kiosk Mode only works on dashboards you created, not on the auto-generated Overview, which is another reason to use your own; and ?disable_km brings the chrome back when you need to edit from the screen's address.

Screens that are not on the home network

Trusted networks needs to see the screen's own address. Through the Nabu Casa remote URL or any reverse proxy the screen connects to, the connection arrives from the cloud or the proxy, so the bypass cannot apply and Home Assistant shows the login page. Two setups work for a screen in another building:

  • A VPN such as Tailscale or WireGuard. Put Home Assistant and the screen on the VPN and trust the screen's VPN address (for Tailscale, the device's 100.x.y.z address). The screen talks to Home Assistant's VPN address directly, so trusted networks sees the right source.
  • A site-to-site tunnel between the two networks (most business routers can do this). The screen then has a normal private address that Home Assistant can trust.

URL options worth knowing

ParameterWhat it does
?kioskHides the header and the sidebar (Kiosk Mode plugin).
?hide_headerHides only the header bar with the dashboard title and tabs.
?hide_sidebarHides only the sidebar.
?block_mouseIgnores all pointer input, useful for a display nobody should tap.
?cacheRemembers the kiosk settings for every dashboard in this browser.
?disable_kmTurns Kiosk Mode off for one load, for when you need the sidebar to edit.
/dashboard-wall/0The dashboard URL path and view index. Each view of a dashboard is its own URL, so a screen can show exactly one view.

A complete wall URL: http://192.168.1.20:8123/dashboard-wall/0?kiosk. Use the address, not homeassistant.local, so the screen does not depend on mDNS, and note that trusted networks require the screen to reach Home Assistant directly on port 8123 (or whatever port you set).

Put it on the screen and keep it there

A Raspberry Pi and a browser will show the dashboard once. The failures come later: the TV goes to sleep, the browser leaks memory for a week and dies, the Pi loses power, someone unplugs it, the dashboard changes and the screen keeps the old version. DisplayOps exists for that part. The steps assume a supported Raspberry Pi and a free account.

  1. Flash and pair. Write the DisplayOps image, plug the Pi into the TV and the network, and enter the pairing code shown on screen under Displays → Pair in the portal. Note the display's IP address on its page and reserve it in your router; that is the address you trusted in step 2.
  2. Add the dashboard as content. Content → + New content → Website, URL http://192.168.1.20:8123/dashboard-wall/0?kiosk, save. Then on the display, Settings → Auto refresh: the longest interval offered, or off. Home Assistant updates live over its WebSocket, so a reload only exists to clear browser memory and to pick up dashboard edits, and each reload creates a new session.
  3. Assign it to the display or to a group of displays. The screen switches within seconds and returns to the same URL after any reboot.
  4. Turn the TV off at night. On the display, Settings → Screen off at 23:00 and Screen on at 06:30 blanks the HDMI output overnight; a schedule showing a black message content item does the same on TVs that ignore the signal dropping.
  5. Watch it. The portal shows a screenshot on request, the last check-in and player restarts. If the dashboard ever shows the login page again, the screenshot tells you, and the fix is the trusted address or the user mapping in configuration.yaml.

Three screens are free on the Personal plan. The Home Assistant wall display use case covers screen-on hours and rotation in more detail.

Troubleshooting

  • "Your computer is not allowed." The screen's address is not in trusted_networks, has changed (no DHCP reservation), or the network is also listed in Trusted proxies. Check the address in the DisplayOps portal against the YAML.
  • The login page still shows, with a user to pick. More than one user is allowed for that address, so the bypass cannot choose. Map the address to exactly one user in trusted_users.
  • The login page shows a password field. The trusted_networks provider is listed after homeassistant, or allow_bypass_login is missing. Order matters.
  • Header and sidebar still visible. Kiosk Mode is not installed, its resource is missing, or the screen shows a built-in default dashboard rather than your own.
  • "Unable to connect to Home Assistant" after a restart. Normal for a minute; the page reconnects by itself. If it stays, the screen is reloading a URL that no longer exists (renamed dashboard) or Home Assistant's port changed.
  • homeassistant.local does not open. Use the IP address in the content URL. The screen's OS may not resolve mDNS names, and the trusted address must be stable anyway.
  • Cards look tiny. Use a Panel view with one large card, or the Sections layout with fewer, bigger cards; a TV across a room needs roughly twice the font size of a phone dashboard.

Security checklist

  • One non-administrator wall user per screen, with Can only log in from the local network on.
  • Trusted host addresses only, reserved in DHCP; never a whole Wi-Fi network in a shared building.
  • The default homeassistant provider kept in the list so admins can always log in with a password.
  • Other dashboards set to Admin only so the wall user cannot browse to them.
  • No long-lived tokens created for the screen; there is nothing to leak from the URL.
  • Delete the wall user if a screen leaves the building; its sessions die with it.

Home Assistant on a wall: questions we get

Can I put a long-lived access token in the dashboard URL?

No. Long-lived tokens are for the REST and WebSocket APIs, automations and apps; the Home Assistant web frontend does not read a token from the URL and will still show the login page. Trusted networks is the supported way to open a dashboard without typing a password.

Does this work through Nabu Casa or my reverse proxy?

Not for the login bypass. Trusted networks checks the address the connection arrives from, which is the cloud or the proxy, and Home Assistant refuses to trust a network that is also a trusted proxy. Keep the screen on the same LAN as Home Assistant, or connect it over a VPN such as Tailscale and trust the VPN address.

Will logins pile up?

With bypass enabled every page load creates a fresh session, so a screen that reloads a few times a day creates a few refresh tokens a day. Home Assistant removes refresh tokens that have not been used for 90 days automatically, so they never accumulate. Logged in as the wall user, its Profile → Security tab lists them and lets you delete any.

Do I need the Kiosk Mode plugin?

Only to hide the header and sidebar. Without it, a panel-view dashboard still fills the screen and the wall user's profile has a setting to always hide the sidebar, but that is stored per browser and the header stays. Kiosk Mode is the reliable answer for a screen.

Is trusting an IP address safe?

It is as safe as your network. Trust single addresses, not the whole Wi-Fi, make the wall user a non-administrator that can only log in locally, and keep the dashboards you do not want on the wall admin-only. Anyone who plugs into a trusted address gets that user's view and nothing more.

Can DisplayOps log in for me instead?

Not to a login form. DisplayOps answers HTTP basic and digest prompts from a stored, encrypted credential, but Home Assistant uses its own form-based login, and basic auth in front of it does not remove that form. Trusted networks remains the supported way for Home Assistant.

Put Home Assistant on the wall and stop babysitting the tablet.

Three screens free. Flash, pair, paste the dashboard URL.