A minimal, high-performance Android Kiosk for Home Assistant dashboards with integrated hardware controls and ESPHome API support.
- ESPHome Auto-Discovery: HADashboard acts as a native ESPHome device. Home Assistant will discover the tablet automatically on your local network.
- Integrated Media Player (Speaker): The tablet functions as a Media Player entity in Home Assistant.
- Supports Text-to-Speech (TTS) for announcements.
- Streams audio/music URLs directly via an internal player.
- Remote volume control and transport commands (Play/Pause/Stop).
- Dynamic Dashboard Scaling: Remotely adjust the dashboard zoom level via Home Assistant. Uses CSS injection to scale the entire layout (cards, images, and fonts) for a perfect fit on any screen size.
- MQTT Support: Optional MQTT mode available via a toggle on the setup screen for legacy setups.
- Remote Screen Control: Wake the device, toggle the backlight, or lock/unlock the screen remotely.
- Kiosk & Lock Mode: Dedicated "Kiosk Mode" switch to pin the app and prevent users from accidental exits.
- Device Telemetry: Real-time reporting of battery levels, storage usage, RAM stats, and system uptime.
- True Fullscreen: Automatic immersive mode hides status and navigation bars.
- For ESPHome: Ensure the ESPHome Integration is active in Home Assistant.
- For MQTT: An MQTT broker must be running on your Home Assistant instance.
Download HADashboard.apk from the Releases section and install it on your Android device.
- Open HADashboard.
- The app will prompt you to enable Device Administrator and Modify System Settings. Grant these to enable hardware and screen controls.
- Choose between ESPHome (default) or MQTT on the setup screen.
- If using ESPHome: Go to Home Assistant > Settings > Devices & Services. Click Configure on the discovered HADashboard notification.
- If using MQTT: Enter your broker details manually in the app setup screen.
After adding the device to Home Assistant, use the Zoom In and Zoom Out button entities to scale the dashboard to your liking. The zoom level is saved locally on the device and persists after reboots.
To build from source:
- Open the project in Android Studio.
- Ensure the Protobuf dependencies are synced for ESPHome API support.
- Build via Build > Build APK(s).
Created by Twan Jaarsveld
