HA Dashboard Support

Get help, report issues, or request features

← Back to HA Dashboard

HA Dashboard is an open-source project. All support is handled through our GitHub repository. To get help or report an issue, open a new issue on GitHub and we'll respond there.

How to Get Support

Report a Bug

Found something that isn't working correctly? Let us know by opening a bug report on GitHub. Please include the steps to reproduce the issue and your device/iOS version.

Open a Bug Report

Request a Feature

Have an idea for a new feature or an improvement? Open a feature request on GitHub and describe what you'd like to see.

Request a Feature

Ask a Question

Need help connecting to your Home Assistant server, configuring dashboards, or anything else? Open a question on GitHub.

Ask a Question

Browse Existing Issues

Check if your issue has already been reported or if there's a known workaround.

View All Issues

Common Questions

How do I connect to my Home Assistant server?

Open the app and tap Settings. Enter your Home Assistant server URL (e.g., http://homeassistant.local:8123). Use trusted-network access when your Home Assistant configuration permits this device, paste a long-lived access token, or log in through OAuth.

The app can't find my server on the network

Make sure your device is on the same network as your Home Assistant server. The app uses mDNS (Bonjour) for discovery, which requires the Local Network permission. Check Settings > Privacy > Local Network on your device.

Which dashboards are supported?

HA Dashboard supports all four Lovelace view layouts: sections, masonry (the classic default), panel, and sidebar.

Can I try the app without a Home Assistant server?

Yes. The app includes a Demo Mode with three built-in sample dashboards. Open the app and select Demo Mode from the connection screen.

Can a Home Assistant automation wake my kiosk dashboard?

Yes. In Settings, enable Register with Home Assistant, then enable both Kiosk Mode and Wake on Touch. Call the generated notify.mobile_app_<device> action with message: command_screen_on. This wakes the app’s dimmed dashboard and restarts its one-minute wake timer. It works while HA Dashboard remains open in kiosk mode; it cannot unlock or launch a backgrounded iPad.

Which Home Assistant remote commands are supported?

Commands use the generated notify.mobile_app_<device> action and Home Assistant's local WebSocket push channel. HA Dashboard must be open, connected, and registered. There is no developer cloud-push fallback, and commands cannot unlock a device or launch the app from the background.

Example: action: notify.mobile_app_<device> with data: { message: command_screen_brightness_level, data: { command: 128 } }.

How do I use this device as a Home Assistant camera?

Local Camera Stream requires iOS 10.3.3 or later. The universal developer build keeps the dashboard available on iOS 9.3.3+, while HA Dash 1.2.6 from the App Store uses Apple's required separate arm64 build and requires iOS 15. In Settings, enable Local Camera Stream and grant Camera and Microphone access. Choose Front, Rear, or Both when supported, then use the capability-based quality slider. The dashboard remains visible, but capture starts only after an RTSP client authenticates and requests media.

A single selected camera uses port 8554. In Both mode, front uses 8554 and rear uses 8555; both use the same credentials. The displayed addresses and their normal tap-to-copy action omit credentials. Open Protected access and explicitly choose Copy URL with Password for a client-ready sensitive URL. Its username is hadashboard; the app generates a strong, unique password for each device and retains it in that device's Keychain. The copied item is local-only, remains available long enough to switch to VLC, and expires after 60 seconds if unchanged. VLC or another RTSP client may retain the protected URL in its own recent-items history, which the app cannot clear.

When Register with Home Assistant is enabled and the logged-in user is an administrator, HA Dashboard validates active URLs and creates or updates only Generic Camera entries whose IDs it saved previously. It sends the bare URL, username, password, Digest authentication mode, and TCP transport as separate Generic Camera settings. HTTPS protects that credential submission. For a loopback, .local, link-local, RFC1918, or IPv6 unique-local Home Assistant address, registration proceeds over HTTP without another per-server prompt; non-local HTTP is refused. Local HTTP is still plaintext: another host able to monitor that LAN may recover the camera username and password. Use it only on a trusted local network. Camera-flow requests use isolated 75-second request and 120-second resource timeouts. After each retryable failed attempt, the app waits 2, 4, 8, 16, and 32 seconds, then 60 seconds between attempts while the same listener, registration setting, account, and Home Assistant origin remain active; Settings shows that state. Those delays begin after the preceding attempt ends, so they are not an end-to-end completion deadline. Home Assistant stores those credentials and its backups may contain them. For manual setup, have a Home Assistant administrator add Generic Camera with the bare URL, username hadashboard, the password from between hadashboard: and @ in the explicitly copied protected URL, Digest authentication, and TCP transport. Leaving Both mode does not delete the rear entry from Home Assistant; remove it there if it is no longer wanted.

Use Rotate Stream Password if access may have been shared too widely. Rotation disconnects current viewers, invalidates old protected URLs, and completes locally after the listener re-arms; it does not wait for Home Assistant. While Register with Home Assistant is enabled, the app then starts asynchronous reconciliation of app-owned camera entries and keeps retrying transient failures while the same registration context remains active. Manually configured clients and unowned entries need the new URL or password set manually.

The server supports concurrent authenticated clients. VLC uses a roughly one-second network cache by default; for low-latency testing start it with --network-caching=100 --rtsp-tcp. VLC begins playback when the URL opens, so pressing its play/pause control at that point pauses the stream.

Security: RTSP Digest authentication blocks clients without the device password from requesting capture, but camera and microphone media is plaintext and not encrypted on the LAN. Use it only on a trusted local network, do not forward ports 8554/8555 or expose them through a VPN, and turn it off when not needed. A red Camera + mic live indicator appears above the dashboard, including in kiosk mode, while capture is active; tap it to stop and disable the stream. The feature has no relay, cloud media stream, recording, hidden preview, or background capture.

Mute Camera Audio controls playback of Home Assistant camera cards only. Local Camera Stream always includes microphone AAC while viewed.

What does Log Out & Reset remove?

It clears Home Assistant and Local Camera Stream credentials, registration identity, preferences, cached Home Assistant state/history, local logs, and stream configuration stored by this app. Home Assistant devices and Generic Camera entries, including the stream credentials saved in those entries, remain until you remove them in Home Assistant.