A full-screen Home Assistant dashboard designed for a wall-mounted tablet in landscape orientation. A fixed sidebar shows clock, weather and rain radar. The main area is a 4×3 grid of summary tiles — each tile taps open a detailed popup overlay without leaving the page.
This is a community template. It is not plug-and-play: you will need to adapt entity IDs, integrations and packages to match your own installation. Everything that requires your input is marked with a
YOUR_Xplaceholder.
tablet-dashboard/
├── tablet.yaml # Dashboard root — theme, button-card templates
├── includes/
│ ├── sidebar.yaml # Left column: clock, hourly weather, rain radar
│ └── tile_templates.yaml # Shared glass_tile button-card template
├── views/
│ └── home.yaml # Page layout: sidebar (300px) + 4×3 tile grid
├── tiles/ # One file per tile cell
│ ├── security.yaml
│ ├── lighting.yaml
│ ├── climate.yaml
│ ├── airquality.yaml
│ ├── outdoor.yaml
│ ├── garden.yaml
│ ├── energy.yaml
│ ├── evs.yaml
│ ├── media.yaml
│ ├── flightradar.yaml
│ ├── sports.yaml
│ └── todo.yaml
└── popups/ # Detail overlays opened on tile tap
├── security_cam.yaml
├── lighting_detail.yaml
├── climate_controls.yaml
├── airquality_detail.yaml
├── outdoor_detail.yaml
├── garden_detail.yaml
├── energy_detail.yaml
├── ev_detail.yaml
├── media_detail.yaml
├── flightradar_detail.yaml
├── sports_detail.yaml
└── todo_detail.yaml
packages/ # Drop into your HA packages/ folder
├── tablet_management.yaml # Core: browser_mod automations, doorbell popup, auto-reload
├── music_assistant.yaml # Active Music Assistant player sensor (used by Media tile)
├── f1.yaml # F1 race schedule sensor (used by Sports tile)
└── motogp.yaml # MotoGP race schedule sensor (used by Sports tile)
#
# All other tiles (Energy, EVs, Climate, Lighting, Garden, Air Quality, Security,
# Outdoor, Todo) rely on entities from your own integrations and packages.
# The dashboard references those entities directly — bring your own packages
# or integrations that provide them.
- The sidebar (300 px fixed column) shows a clock/weather card, hourly weather strip and a rain radar map centred on your home.
- The tile grid is a 4-column × 3-row
custom:layout-card. Every cell uses theglass_tiletemplate fromincludes/tile_templates.yamlfor consistent sizing and the frosted-glass look. - Tapping a tile fires a
browser_mod.popupevent. The popup content is!included from the matching file inpopups/— no page navigation, no back button needed. packages/tablet_management.yamlhandles the tablet lifecycle: auto-reload after HA restarts (viabrowser_mod.navigate), a fullscreen doorbell camera popup triggered byscript.tablet_switch_door_cam, and an auto-close timer.- The
kiosk_modekey intablet.yamlhides the HA header so the dashboard fills the whole screen.
- Home Assistant 2024.1 or later
- A wall-mounted tablet running the HA Companion App or a Chromium-based browser in kiosk mode (landscape orientation, 1280×800 or larger recommended)
- Browser Mod installed, with the tablet browser registered and named
Install via HACS → Frontend:
| Card | HACS repository | Used for |
|---|---|---|
| button-card | custom-cards/button-card |
All tiles (glass_tile template), popup controls |
| layout-card | thomasloven/lovelace-layout-card |
Page grid layout and popup inner layouts |
| card-mod | thomasloven/lovelace-card-mod |
Custom CSS on nearly every card |
| stack-in-card | custom-cards/stack-in-card |
Grouped controls in security and doorbell popups |
| apexcharts-card | RomRider/apexcharts-card |
Temperature, humidity and energy price charts |
| mini-graph-card | kalkih/mini-graph-card |
Daily mowing time bar chart in garden popup |
| webrtc-camera | AlexxIT/WebRTC |
Live camera streams (doorbell popup, security popup) |
| advanced-camera-card | dermotduffy/advanced-camera-card |
Multi-camera grid in security popup |
| clock-weather-card | pkissling/clock-weather-card |
Sidebar clock and current conditions |
| hourly-weather | decompil3d/lovelace-hourly-weather |
Sidebar hourly weather strip |
| weather-radar-card | Makin-Things/weather-radar-card |
Sidebar rain radar map |
| template-entity-row | thomasloven/lovelace-template-entity-row |
Colour-coded IAQ rows in air quality popup |
| kiosk-mode | NemesisRE/kiosk-mode |
Hides HA header for full-screen display |
The following integrations are required or used by the dashboard as configured. Tiles are independent — if you don't use an integration, remove the corresponding tile from views/home.yaml.
| Integration | Required for |
|---|---|
| Browser Mod | Required — tablet control, popup service, auto-navigate |
| Music Assistant | Media tile |
| Flightradar24 | Flightradar tile |
| Alarmo | Security tile (or replace alarm_control_panel.alarmo with your own alarm entity) |
| Irrigation Unlimited | Garden popup sprinkler controls |
| TeslaMate | EVs tile (self-hosted, publishes to MQTT → HA) |
Built-in integrations used by the tiles as configured: husqvarna_automower, energy (HA energy dashboard), your thermostat/climate integration. Replace or remove as needed.
| Service | Used for |
|---|---|
| go2rtc (HA add-on or standalone) | Low-latency WebRTC camera streams in the doorbell and security popups |
| Tile | Summary shown on tile | Popup content |
|---|---|---|
| Security | Alarm state, gate & garage status | Live camera grid + gate/garage controls |
| Lighting | Lights on / total per floor | Full entity list grouped by floor |
| Climate | Temperature per room | Thermostat controls + 24 h temperature & humidity charts |
| Air Quality | IAQ level per floor | CO₂, VOC, PM per sensor + ventilation manual controls |
| Outdoor | Outdoor lights on count, patio media WiFi state | Outdoor light switches |
| Garden | Mower status, sprinkler suspension state | Mower controls + mode buttons + sprinkler zones |
| Energy | Current price, grid flow, solar output | Price chart, energy usage graph, solar production graph |
| EVs | Battery % + charge limit per vehicle, charger power | Charge session details |
| Media | Now playing — artist, title, player (scrolling marquee) | Embedded Music Assistant UI |
| Flightradar | Up to 4 nearby flights | Full ADS-B map + flight list with flags |
| Sports | Next F1 and MotoGP race date & location | Full season calendar for both series |
| Todo | Bins due today or tomorrow | Bin pickup dates table |
Install all cards and integrations listed above before loading the dashboard. HA will silently fail to render cards it doesn't recognise.
<your-ha-config>/
├── packages/ ← copy contents of packages/ here
└── dashboards/
└── tablet-dashboard/ ← copy tablet-dashboard/ here
Enable packages in configuration.yaml if not already done:
homeassistant:
packages: !include_dir_named packagesOpen the dashboard in your tablet's browser. Go to Settings → Devices & Services → Browser Mod and note the auto-generated browser ID for your tablet. Replace YOUR_BROWSER_MOD_ID in packages/tablet_management.yaml.
Install the go2rtc add-on and define your camera streams in its config. Then replace:
YOUR_GO2RTC_SERVER_IP— the IP and port of your go2rtc instance (default port:1984)YOUR_CAMERA_X_STREAM— the stream name(s) as defined in your go2rtc config
These placeholders appear in:
packages/tablet_management.yaml(doorbell popup cameras)popups/security_cam.yaml(security popup camera grid)
Replace YOUR_HOME_LATITUDE and YOUR_HOME_LONGITUDE in:
includes/sidebar.yaml— centres the rain radar mappopups/flightradar_detail.yaml— centres the ADS-B flight map
Find your coordinates in Settings → System → General in Home Assistant.
The Todo tile expects sensors with a Days_until attribute from a waste collection integration. Replace sensor.YOUR_CITY_* in tiles/todo.yaml and popups/todo_detail.yaml with your actual entity IDs.
Popular integrations:
- afvalbeheer (Netherlands)
- waste_collection_schedule (international)
The media popup embeds the Music Assistant UI via an ingress URL. Replace YOUR_MA_INGRESS_SLUG in popups/media_detail.yaml. Find the slug via Developer Tools → Template:
{{ integration_entities('music_assistant') | first }}
Each tile and popup references specific entities. Open the relevant YAML file and update the entity IDs to match yours. Key things to adapt:
- Lighting (
popups/lighting_detail.yaml) — update room light entities per floor; the child bedroom placeholders (light.child_1_room_lightetc.) are where personal names were removed - Climate (
tiles/climate.yaml,popups/climate_controls.yaml) — thermostat and temperature sensor entity IDs - EVs (
tiles/evs.yaml,popups/ev_detail.yaml) — entities are sourced from TeslaMate via MQTT; replace with your own vehicle entities or remove the tile if not applicable - Security (
tiles/security.yaml) — replacealarm_control_panel.alarmoif you use a different alarm integration - Garden (
popups/garden_detail.yaml) — mower entities use thebatmower_prefix from a Husqvarna Automower named "BatMower"; rename to match yours
Tiles are independent — to remove one, delete its line from views/home.yaml and adjust the grid if needed.
Go to Settings → Dashboards → Add Dashboard. Set the URL to tablet-dashboard, enable YAML mode, and point it to tablet.yaml.
The view uses theme: tablet_glass. Either create a theme with that name or change it to any dark theme you prefer. The glass card effect relies on CSS variables (--tablet-card-bg, --tablet-card-border) defined in the theme.
Every value you need to supply, and where to find it:
| Placeholder | File(s) | Where to find the value |
|---|---|---|
YOUR_BROWSER_MOD_ID |
packages/tablet_management.yaml |
Settings → Devices & Services → Browser Mod → your tablet entry |
YOUR_GO2RTC_SERVER_IP |
packages/tablet_management.yaml, popups/security_cam.yaml |
IP:port of your go2rtc instance (default port: 1984) |
YOUR_CAMERA_X_STREAM |
packages/tablet_management.yaml, popups/security_cam.yaml |
Stream names from your go2rtc config |
YOUR_HOME_LATITUDE / YOUR_HOME_LONGITUDE |
includes/sidebar.yaml, popups/flightradar_detail.yaml |
Settings → System → General in HA |
YOUR_MA_INGRESS_SLUG |
popups/media_detail.yaml |
Developer Tools → Template (see step 7 above) |
sensor.YOUR_CITY_* |
tiles/todo.yaml, popups/todo_detail.yaml |
Entity IDs from your waste collection integration |
light.child_1_room_light etc. |
popups/lighting_detail.yaml |
Your children's bedroom light entity IDs |