How to Build a Home Assistant Dashboard That Your Family Will Actually Use


You spent 40 hours building the ultimate Home Assistant dashboard. It has 12 tabs, live camera feeds, Grafana embeds, server monitoring graphs, and custom SVG floor plans. Your family refuses to use it and just asks you to turn the lights on.

Sound familiar? Here’s how to fix it.

The Golden Rule

If someone has to think about how to use your dashboard, it’s too complicated.

Your dashboard should work like a light switch — immediately obvious, one tap to do the thing. No scrolling, no searching, no “which tab was that on?”

Design Principles

1. One Screen, No Scrolling

Everything your family needs should fit on a single phone screen without scrolling. This means ruthless prioritization. Most people interact with 5-10 things daily:

  • Living room lights
  • Bedroom lights
  • Thermostat
  • TV/media
  • Lock/unlock
  • Maybe a camera

That’s it. That’s your dashboard.

2. Big Tap Targets

Tiny icons and text look cool on desktop. On a phone, they’re unusable. Make buttons at least 48x48 pixels. Prefer large cards over compact entity lists.

3. Status at a Glance

Show the current state clearly. Is the door locked or unlocked? Is the thermostat heating or cooling? What’s the temperature? Your family shouldn’t have to tap anything just to check status.

4. No Technical Jargon

“binary_sensor.front_door_contact” means nothing to your spouse. Label it “Front Door” and show “Open” or “Closed.” Use icons that match the physical thing — a door icon for doors, a lightbulb for lights.

The Family Dashboard Layout

Here’s what works. One view, four sections:

type: sections
title: Home
cards:
  # Section 1: Quick status bar
  - type: markdown
    content: >
      {{ states('sensor.time_of_day') }} ·
      {{ states('weather.home') }} ·
      {{ state_attr('weather.home', 'temperature') }}°

  # Section 2: Quick action buttons (most used)
  - type: horizontal-stack
    cards:
      - type: button
        name: Goodnight
        icon: mdi:weather-night
        tap_action:
          action: perform-action
          perform_action: script.goodnight
        show_state: false

      - type: button
        name: Movie
        icon: mdi:movie
        tap_action:
          action: perform-action
          perform_action: script.movie_time
        show_state: false

      - type: button
        name: All Off
        icon: mdi:lightbulb-group-off
        tap_action:
          action: perform-action
          perform_action: light.turn_off
          target:
            entity_id: all
        show_state: false

  # Section 3: Room-by-room light controls
  - type: grid
    columns: 2
    cards:
      - type: button
        entity: light.living_room
        name: Living Room
        show_state: true
        tap_action:
          action: toggle

      - type: button
        entity: light.kitchen
        name: Kitchen
        show_state: true
        tap_action:
          action: toggle

      - type: button
        entity: light.bedroom
        name: Bedroom
        show_state: true
        tap_action:
          action: toggle

      - type: button
        entity: light.porch
        name: Porch
        show_state: true
        tap_action:
          action: toggle

  # Section 4: Climate
  - type: thermostat
    entity: climate.thermostat

Making It Look Good

Custom Cards Worth Installing

Install HACS first (Settings → Integrations → HACS), then add these custom cards:

Mushroom Cards — The single best dashboard upgrade. Clean, modern card designs that look great on mobile. Install the Mushroom collection and you get:

  • Mushroom Light Card (beautiful light controls with brightness slider)
  • Mushroom Person Card (shows who’s home with avatar)
  • Mushroom Climate Card (clean thermostat control)
  • Mushroom Chips (compact status indicators)

Example Mushroom light card:

type: custom:mushroom-light-card
entity: light.living_room
name: Living Room
show_brightness_control: true
show_color_temp_control: true
layout: horizontal

Button Card — For highly customized buttons with conditional styling:

type: custom:button-card
entity: lock.front_door
name: Front Door
show_state: true
state:
  - value: locked
    icon: mdi:lock
    color: green
    styles:
      card:
        - background-color: "rgba(0, 128, 0, 0.1)"
  - value: unlocked
    icon: mdi:lock-open
    color: red
    styles:
      card:
        - background-color: "rgba(255, 0, 0, 0.1)"

The lock shows green when locked, red when unlocked. Immediately obvious.

Conditional Cards

Show things only when they matter:

type: conditional
conditions:
  - entity: binary_sensor.garage_door
    state: "on"
card:
  type: button
  entity: binary_sensor.garage_door
  name: GARAGE DOOR OPEN
  icon: mdi:garage-open
  tap_action:
    action: none

This card only appears when the garage door is open. No clutter when everything is normal.

Mobile First

Most family members will use the HA companion app on their phone. Design for mobile first:

  1. Test on your phone — not your desktop monitor
  2. Use the grid layout with 2 columns for phones
  3. Avoid wide cards like horizontal stacks with more than 3 items
  4. Set the default dashboard in the companion app settings
  5. Enable kiosk mode (through a HACS addon) to hide the sidebar and header on family members’ phones — fewer things to accidentally tap

The “You” Dashboard vs. The “Family” Dashboard

Create two dashboards:

  1. Home (default) — The clean, simple one. Set this as the default for everyone.
  2. Admin — Your nerdy one with all the graphs, logs, server stats, network maps, and 47 tabs. Only you see this.
Settings → Dashboards → Add Dashboard

Create “Home” as the default. Keep your detailed dashboard as “Admin” and set it to only show for your user.

What NOT to Put on the Family Dashboard

  • Server CPU/RAM graphs
  • Network monitoring
  • Automation execution logs
  • YAML configuration tools
  • Entity lists with 50+ items
  • Camera feeds that auto-play (kills phone battery)
  • Anything that requires explanation

What TO Put on the Family Dashboard

  • Light toggles for every room (tap to toggle, no sub-menus)
  • Thermostat control
  • Door lock status
  • 2-3 quick action buttons (goodnight, movie, all off)
  • Weather (glanceable, no interaction needed)
  • Currently playing media (if you use media players)
  • Grocery list or shared notes (if your family uses them)

The Test

Hand your phone to your spouse/kid/parent with your dashboard open. Say nothing. Watch what they do.

If they can turn on the kitchen lights in under 3 seconds without asking you anything, your dashboard passes.

If they stare at it, scroll around confused, or ask “where’s the kitchen light?” — simplify.

My Dashboard Evolution

My first dashboard had 8 tabs, a floor plan, live camera feeds, and a Grafana embed showing my server’s CPU temperature over the last 30 days. My wife used it exactly zero times.

My current family dashboard has one screen: 4 light buttons, a thermostat card, 3 quick actions (goodnight, movie, all off), and a weather card. My wife uses it daily. My kid can use it.

The admin dashboard still has all the nerdy stuff. I just stopped pretending anyone else cares about my Zigbee mesh topology.

Build for the people who live in your house, not for screenshots on Reddit.