Designing a Home Assistant dashboard for tablets

Creating a Home Assistant Dashboard for Tablets

I built a kitchen tablet dashboard that feels stripped back. It shows what I need at a glance and changes with real state, not guesswork. The point is a clean Home Assistant dashboard on a tablet, with cards that change when the house does.

Getting Started with Your Home Assistant Dashboard

Overview of Home Assistant Dashboard

Home Assistant Dashboard is the Lovelace frontend that sits on top of Home Assistant. It shows views, cards and controls tied into your devices and sensors. I treat it as a control panel, not a wall of telemetry. Use the Lovelace raw editor or YAML mode when you need exact behaviour. For a tablet, the companion app or a kiosk browser gives the best full-screen setup.

Essential Tools and Resources

You will need:

  • A running Home Assistant instance (Core or OS).
  • HACS installed to manage custom cards and integrations.
  • The Home Assistant Companion app for iOS/Android, or a kiosk browser for full-screen.
  • Custom cards: custom:button-card, card-mod, and conditional card.
  • Basic YAML familiarity for template sensors and view layout.

Install HACS first, then add custom:button-card and card-mod from HACS. They are the bits that make the layout work.

Preparing Your Tablet for Dashboard Use

Decide where the tablet will live. Wall-mounted or on a stand changes the screen orientation and touch targets. On iOS, use Guided Access to lock the app and stop accidental gestures. On Android, use kiosk mode or an app that forces full-screen. Turn off auto-lock or set it long enough to avoid repeated unlocks. Set the tablet to a stable IP, or reserve it in your router, so the dashboard stays reachable.

Charge management matters. If the tablet reboots on power loss, have a startup script or Home Assistant automation open the dashboard. I set mine to auto-launch the Companion app and go straight to the kitchen view.

Key Considerations for Customization

Decide what the tablet must show at a glance. Put actions and states first. Keep touch targets large. Use clear contrast and a minimal palette so it still reads well in different light. Think about offline behaviour. If Home Assistant is unreachable, show cached states or a clear offline card rather than a blank screen. Lock critical controls behind an extra confirmation if the tablet sits in a public part of the house.

Designing Your Custom Dashboard

Inspiration from iOS Design Principles

I borrowed a few iOS ideas: simple spacing, rounded corners, subtle shadows and a clear hierarchy. Icons sit above labels. Important controls are larger and centred. Colour is used for state changes, not decoration. That keeps the interface readable from across the kitchen table and makes touch actions predictable.

Creating Changing Cards

Cards can change based on sensors and time. Use conditional cards and template sensors to show the right controls when they are relevant.

Steps I use:

  1. Create template sensors in configuration.yaml for derived states.
  2. Use conditional cards to show cards only when conditions match.
  3. Use entity-filter or auto-entities (HACS) for lists that update on their own.

Example template sensor that defines a simple kitchen mode:

template:
  - sensor:
      - name: "kitchen_mode"
        state: >
          {% if is_state('binary_sensor.kitchen_motion', 'on') %}
            active
          {% elif states('sensor.kitchen_ambient_light')|float < 20 %}
            dim
          {% else %}
            idle
          {% endif %}

Example conditional card showing a recipe timer only when the oven is on:

type: conditional
conditions:
  - entity: switch.oven
    state: 'on'
card:
  type: entities
  title: Oven controls
  entities:
    - entity: timer.roast
    - entity: input_number.oven_temp

These patterns let the dashboard shift while I am cooking. I prefer fewer relevant controls rather than everything at once.

Configuring Custom Button Cards

custom:button-card sits at the centre of my layout. It supports templates, state-based styling and actions.

Example button template:

type: 'custom:button-card'
entity: light.kitchen_main
name: Kitchen
icon: mdi:lightbulb
show_state: true
tap_action:
  action: toggle
styles:
  card:
    - border-radius: 12px
    - padding: 12px
  name:
    - font-size: 14px
state:
  - value: 'on'
    color: '#ffd166'
    styles:
      card:
        - box-shadow: '0 6px 12px rgba(0,0,0,0.12)'

I keep a small set of templates: primary action, small indicator and large media control. Reuse keeps the UI consistent and makes changes less painful.

YAML Configuration for Home Assistant

I keep the kitchen view in Lovelace YAML so I can use templates and include files. If you prefer the UI editor, switch to the raw editor when a custom card needs more control.

Minimal view example:

views:
  - title: Kitchen
    path: kitchen
    cards:
      - type: grid
        columns: 3
        square: false
        cards:
          - type: 'custom:button-card'
            <<: *kitchen-primary
          - type: conditional
            conditions:
              - entity: sensor.kitchen_mode
                state: 'active'
            card:
              type: 'custom:button-card'
              name: 'Cooking timer'
              tap_action:
                action: navigate
                navigation_path: /lovelace-kitchen/timer

Use the Raw configuration editor to paste snippets like this, or keep them in packages if that suits your setup better. Make small changes and reload Lovelace to test.

Final Touches and Testing

Test every interaction with the tablet in place. Check whether the tap targets feel right when standing. Check whether the screen stays readable in bright light. Simulate offline states by stopping Home Assistant briefly and confirm the fallback UI is acceptable. Check that automations tied to buttons behave properly. Tune polling and entity refresh rates if latency gets in the way.

Concrete checks I run:

  • Tap each button and verify the mapped entity changes state.
  • Turn devices on via other interfaces and confirm the dashboard updates.
  • Switch to night mode and confirm colour and contrast still work.
  • Reboot the tablet and confirm the Companion app returns to the kitchen view.

If a card behaves oddly, inspect the browser console on the tablet with remote debugging and check Home Assistant logs. Small fixes often sort out larger UI problems.

Related posts

Weekly Tech Digest | 06 Jul 2026

Stay updated with the latest in tech! This digest covers AI ethics, auto industry shifts, and the impact of politics on technology, exploring today's pressing issues.

wolfCOSE zero-allocation parsing in embedded C

wolfCOSE looks sensible only if you care about what your firmware actually has to carry. I like that, because on small targets the wrong crypto feature can cost more than the message itself, and there...

restic | v0.19.1

restic v0 19 1: safer FUSE mounts and mountpoint checks, robust backup source and exclude handling, clearer CLI JSON output, Windows SFTP deletion fixes