Home Assistant projects
All projects

Uptime Card

Lovelace card · Network & servers
v1.0.0 · Nov 13, 2026 HA 2024.8.0+ Marketplace

Your services at a glance: up or down, response time, 24-hour uptime and certificates.

Cards to watch your services: up, down, pending or in maintenance, the response time, a 24-hour uptime bar from the history and the expiry of their certificates, grouped by tag. Uptime Kuma, Healthchecks.io, Ping and Certificate Expiry are found on their own.

Highlights

  • Uptime Kuma monitors, Healthchecks.io checks, Ping hosts and connectivity sensors
  • Status, how long a service has been down, and the response time
  • 24-hour uptime bar and uptime percentage
  • SSL certificate expiry on every row
  • Groups by tag, label or integration, problems first
  • Animated server rack in the colour of the worst status
  • Mini card with a detail button showing the full card

Works with

Cards

uptime-carduptime-mini-card
type: custom:uptime-card

Install

  1. 1Open the repository in the Marketplace with the Add to Marketplace button above, or addgithub.com/juju35/ha-uptime-card as a custom repository (category Dashboard).
  2. 2Download it from the Marketplace.
  3. 3Reload the browser and add the card from the dashboard editor.

Documentation

From the README

Features

Features

  • Two cards: a full Uptime Card (custom:uptime-card) and a compact Uptime Mini Card (custom:uptime-mini-card)
  • Services found on their own: every Uptime Kuma monitor, Ping host, Healthchecks.io check and Certificate Expiry certificate; or the entities you list (any connectivity or problem binary sensor, any sensor reading up / down / online / offline…)
  • Status of each service (up, down, pending, maintenance), with how long it has been down
  • Response time (Uptime Kuma, Ping), in orange above a threshold you choose
  • Uptime bar of the last 24 hours (48 slices of 30 minutes, each in the color of the worst status seen in it) and the uptime percentage, from the Home Assistant history (or Uptime Kuma's own 1-day uptime sensor when it is enabled)
  • SSL certificate expiry (Uptime Kuma, Certificate Expiry): days left on every row, the date in its tooltip, orange then red as the expiry gets close, red when expired or invalid; a Certificate Expiry certificate goes to the row of the service of the same host
  • Groups by tag (Uptime Kuma tags and Home Assistant labels), by integration, or none; collapsible groups, a group with a service down always unfolded
  • An overview at the top of the full card: a drawn server rack in the color of the worst status, animated by it (see Animations), the status in words, the share of services up, the service down the longest, the most urgent certificate and the integrations the services come from
  • Header icon in the color of the worst status (certificates and slow responses included), status chip on the right: All up, 1 down, 1 pending, 1 in maintenance
  • Mini card: how many services are up out of how many, a bar of the statuses and the services down; its detail button (top right) switches it to the full card's content and back, a click anywhere outside the card brings the compact view back
  • Filters: only the services with a problem, some tags, some integrations, excluded entities; sort by status (problems first) or by name
  • Click a service to open its Home Assistant history (more-info dialog)
  • Sections view: the full card takes 12 columns by default and at least 9, the mini card 6; narrow widths get their own layout (see Screenshots)
  • Visual editor in the dashboard UI for both cards (no YAML needed)
  • Light and dark mode, English, French, German, Spanish, Serbian (Cyrillic and Latin), Italian, Dutch, European Portuguese, Polish, Romanian, Danish, Swedish, Bulgarian, Russian, Ukrainian, Hungarian, Slovak, Czech, Slovenian, Latvian and Greek
  • Single file, no external dependency; the other languages are loaded on demand

Supported integrations

Supported integrations

Integration What the cards show
Uptime Kuma (core, Uptime Kuma 2.0 or later) One service per monitor: status (up, down, pending, maintenance), response time, certificate days left, URL or hostname, monitor type; tags when the monitor's Tags sensor is enabled; 1-day uptime when its Uptime (1 day) sensor is enabled
Healthchecks.io (custom, healthchecksio) One service per check: up or down, time of the last ping
Ping (core) One service per host: connected or not, round trip time when its Round trip time average sensor is enabled
Certificate Expiry (core) The expiry of a certificate: on the row of the service of the same host (an Uptime Kuma URL or hostname, a Ping host), else a row of its own (down once expired or invalid)
Any binary sensor or sensor (listed in entities) A connectivity binary sensor is up when on, a problem one is down when on; a sensor reading up, on, online, ok, connected… is up, down, off, offline, error, problem… is down

The Uptime Kuma Tags, Uptime (1 day) and Ping Round trip time average sensors are disabled by default in Home Assistant: enable them on the device page to get the tags, the uptime and the round trip time. Home Assistant labels on a service's entity or device group it too, whatever its integration.

Prerequisites

Prerequisites

Home Assistant 2024.8 or later, with at least one of the supported integrations configured, or entities to list. The uptime bar and percentage read the recorder's history: an entity excluded from the recorder shows no bar.

Configuration

Configuration

Card types#

Card Type
Uptime Card custom:uptime-card
Uptime Mini Card custom:uptime-mini-card

Visual editor#

Edit a dashboard, click Add card and search for Uptime Card or Uptime Mini Card. Every service found is shown right away; pick entities in the list to show only those, choose the grouping, the sort, what each row shows, the thresholds and the language. The preview updates live, and options left at their default are kept out of the generated YAML.

Minimal#

type: custom:uptime-card
type: custom:uptime-mini-card

Full options#

type: custom:uptime-card
title: Homelab
group_by: tag              # tag, source or none
sort: status               # status (problems first) or name
tags: [Web, Media]         # only these tags, in this order
sources: [uptime_kuma, ping, healthchecks, cert_expiry]
exclude:
  - binary_sensor.printer
collapsed: [Infrastructure] # or true to fold every group
only_problems: false
show_hero: true
show_latency: true
show_history: true
show_uptime: true
show_ssl: true
hours: 24
ssl_warning_days: 14
ssl_critical_days: 3
latency_warning: 1000
language: en

Listing the services yourself (an Uptime Kuma status sensor keeps its response time, certificate and tags; any other entity becomes a service of its own):

type: custom:uptime-card
entities:
  - sensor.cloud_drive_status
  - entity: binary_sensor.printer
    name: Office printer
    tags: [Office]
  - entity: binary_sensor.website_online
    latency_entity: sensor.website_response_time
    cert_entity: sensor.example_com_cert_expiry
auto: true                 # also add every service found (default: only the listed ones)

Options reference#

Option Card Default Description
title both Services (translated) Card title
show_title both true Show the title in the header (e.g. false under a section heading of your own)
show_subtitle both true Show the subtitle (9/11 up) under the title
entities both — Services to show, in this order: entity ids, or objects with entity and optional name, tags (list), latency_entity (milliseconds or seconds), cert_entity (a timestamp, or days left) and uptime_entity (percent). Without it, every service found is shown
auto both true without entities, else false Also add every service found to the listed ones
sources both all Integrations to find services in: uptime_kuma, healthchecks, ping, cert_expiry
exclude both — Entity ids of services found that the card leaves out
tags both — Only the services with one of these tags (Uptime Kuma tags, Home Assistant labels or tags of entities); the groups follow this order
group_by full tag tag (a service with several tags appears in each group; untagged ones go to Other), source (by integration) or none
sort full status status (down, pending, maintenance, unknown, then up; by name within) or name
collapsed full — Groups folded by default, by name ([Media, Other]), or true for all. Click a group title (or Tab to it and press Enter or Space) to fold or unfold it; a click elsewhere folds it back. A group with a service down is always unfolded
only_problems full false Only list the services that are not up or whose certificate needs attention (the header still counts them all)
show_hero full true The overview at the top: rack picture, status, share of services up, alerts and integrations
show_latency full true Response time of each service
show_history full true Uptime bar of each service
show_uptime full true Uptime percentage of each service (whole percent, rounded down: 99.97 % reads 99 %)
show_ssl full true Certificate expiry of each service, and its alerts
hours full 24 Length of the history of the uptime bar and percentage, in hours
ssl_warning_days both 14 Certificate in orange from this many days left
ssl_critical_days both 3 Certificate in red from this many days left (and once expired or invalid)
latency_warning full 1000 Response time in orange above this many milliseconds
max_items mini 5 Services down listed on the mini card (the others are counted as +N)
zoom mini true Detail button at the top right of the mini card: it shows the full card's content (with the same options, so group_by, only_problems… can be set on the mini card too) and switches back to the compact view; a click outside the card also brings the compact view back. false removes the button
language both Auto Force language: fr, en, de, es, sr, sr-Latn, it, nl, pt, pl, ro, da, sv, bg, ru, uk, hu, sk, cs, sl, lv or el (auto-detects from HA settings)

How it works

How it works

The cards read the Home Assistant entity and device registries instead of entity ids: an Uptime Kuma monitor is the device of a status sensor of the uptime_kuma platform, with its response_time, cert_days_remaining, url, hostname, type, tags and uptime_1d sensors; a Ping host is a ping binary sensor, with the round_trip_time_avg sensor of its device; a Healthchecks.io check is a healthchecksio binary sensor; a certificate is a cert_expiry sensor, whose host comes from its device. Entity ids can therefore be in any language or renamed without breaking the cards. Disabled entities are left out, and so is a service whose status entity is hidden (a hidden URL, response time or certificate sensor still adds to its monitor).

The uptime bar asks the recorder for the history of the status entities (one request for all of them, again every 5 minutes) and splits the window into 48 equal slices, each drawn in the color of the worst status seen in it (grey without data). The uptime percentage is the time up over the time up or down: maintenance, pending and unknown periods are left out.

Support

Support

If you find this project useful, you can support its development:

Buy Me a Coffee

Changelog

CHANGELOG.md

1.0.0Nov 13, 2026Latest

Features

  • First release: Uptime Card (custom:uptime-card) and Uptime Mini Card (custom:uptime-mini-card) to watch services from Uptime Kuma, Healthchecks.io, Ping, any connectivity binary sensor and Certificate Expiry, found on their own in the Home Assistant registries (or listed with entities).
  • Each service: status (up, down, pending, maintenance) and how long it has been down, response time with a slow threshold, 24-hour uptime bar and uptime percentage from the history, SSL certificate expiry with warning and critical thresholds (a Certificate Expiry certificate goes to the service of the same host).
  • Groups by tag (Uptime Kuma tags, Home Assistant labels), by integration or none, collapsible, a group with a service down always unfolded; filters (only_problems, tags, sources, exclude) and sort by status or name.
  • Overview with a drawn server rack animated by the worst status (heartbeat when everything is up, alarm rings when a service is down, blinking dots while pending, swinging wrench in maintenance), honouring prefers-reduced-motion.
  • Mini card: services up out of the total, a bar of the statuses and the services down; its detail button switches it to the full list and back.
  • Visual editors for both cards, light and dark themes, 22 languages (English in the bundle, the others loaded on demand).