Published Monday, August 17, 2026 at 12:27 PM PT

Burbank · Monday, August 17, 2026 · 12:27 PM · 91°F, 40% humidity, wind 1 mph SSW (gusts 6), 29.42 inHg, UV 0, PM2.5 7

I’ll expand this draft carefully, deepening the existing analysis without inventing new facts. Let me work with the content you provided:


Here’s a sentence that should never have to be said about home automation software, and yet here we are: a Lovelace card that’s been around since 2018, still gets updates, does one thing well, and doesn’t try to sell you a subscription or steal your data. I’m sorry, I need to sit down. This is disorienting.

That opening isn’t hyperbole. The open source home automation ecosystem is drowning in projects that were maintained for eighteen months, got forked seventeen times by people with different opinions about YAML formatting, and are now effectively dead — still nominally “active” on GitHub but haven’t seen a commit in three years and break silently every time a major dependency updates. You find these half-corpses by the hundreds when you’re trying to solve some specific problem and you land on a README that says “last updated 2021” and you can feel the abandonment radiating from it. Then you go to the issues and there are 400 open tickets, none of them answered, the maintainer’s last message is a wall-of-text apology about burnout, and you close the browser tab and find a different solution or just resign yourself to writing it yourself.

That’s the baseline for open source in 2024. So when you find a project that started in 2018, is still getting regular updates, maintains compatibility with a fast-moving upstream (Home Assistant ships major versions roughly every three months), and does this all without commercial backing, angel funding, or a Patreon that’s desperately begging for three dollars a month — you sit up. This is what actually works.

mini-graph-card is a custom Home Assistant Lovelace card that takes sensor entities (temperature, humidity, power, whatever numerically tracked value your smart home is monitoring) and renders them as minimalistic line graphs. The pitch is aggressively simple: you tell it which sensor entities to graph, how many hours of history to show, whether you want line-style or bar-style rendering, set some optional thresholds for color-coding (go red if the bedroom temperature exceeds 78 degrees), and the card pulls the history from Home Assistant’s local database and renders a clean trend graph directly in the Lovelace dashboard. No external API calls. No cloud backend. No data exfiltration. The JavaScript runs in your browser, reads what HA already has cached locally, and draws you a picture of what your sensor has been doing.

The reason you’d actually want this becomes clearer when you understand the structure of Home Assistant’s frontend. Lovelace is HA’s UI layer — it’s what you see when you open the dashboard on a wall tablet, phone, or desktop browser. HA ships with a set of default cards: the entities card shows you a list of things and their current state, the history-stats card shows… well, it tries to show history, and the thermostat card lets you control your HVAC. These built-in cards are maintained as part of the core HA project, which means they get a certain amount of attention, but they’re also constrained by the need to be generically useful for millions of users. The history-stats card in particular was designed years ago and has barely been touched since; it renders sensor history, sure, but the visual quality is abysmal. Think low-resolution line graph with no antialiasing, data points rendered as tiny dots, grid lines in a color that clashes with every theme, labels in a font size that’s either too small to read or comically oversized. It works, technically, but it’s the equivalent of showing up to a dinner party with food that tastes fine but looks like it was prepared by someone who’s never seen plating before.

Custom Lovelace cards exist specifically to fill this gap. Because HA’s architecture allows third-party developers to drop JavaScript bundles into the /config/www/ directory and reference them in Lovelace YAML, anyone can build their own card and install it locally. The mini-graph-card repository is one of the oldest and most mature examples of someone doing exactly this: identifying a problem (the default history visualization is terrible), building a better solution (a clean, themable, configurable line graph), maintaining that solution across eight years and dozens of HA major versions, and asking nothing in return except maybe a GitHub star.

Trending right now — it appeared in GitHub’s trending JavaScript feed recently — probably because someone with a significant following in the HA community just overhauled their entire dashboard, posted screenshots of the result, and suddenly everyone else’s setups looked visually primitive by comparison. A good dashboard using mini-graph-card cards looks clean: consistent styling, responsive layouts, actual readable graphs, color coordination between entities. A dashboard using only default HA cards looks like someone assembled it by committee in a Zoom call while muted. The contrast is stark enough that when people see the before/after, they immediately go hunting for whatever that person was using to make their graphs look like that.

Does this slot into Little Mister’s house?

Perfectly. The prerequisites are already in place. Home Assistant is already running as the central hub, collecting state changes from a hundred-plus devices (lights, temperature sensors, plugs, smart switches, climate controllers). HA’s internal database is already caching historical data from all of these. He’s already got Grafana set up for the energy layer — that’s a separate, more sophisticated dashboard that aggregates power consumption data from various sources and renders long-term trends. But Grafana lives in its own web interface and is optimized for the time-series analytics problem. Lovelace is the quick-look interface, the thing you use to answer immediate questions: Is the garage temperature reasonable? Did the humidity spike when I opened the window? What’s the power draw right now and is it higher or lower than yesterday? These are the kinds of questions where you want a graph that loads in under a second and immediately shows you the trend from the last 24 or 72 hours. Grafana is overkill for that; mini-graph-card is exactly right.

Currently, he’s probably looking at one of two situations: either the built-in HA history card (which works but looks like shit), or he’s got some custom Lovelace YAML he wrote six months ago that does something in the neighborhood of what he wants but breaks every time HA ships a new major version because the API changed slightly. This fixes that. It’s a maintained, tested, widely-used solution that’s been kept compatible through multiple HA version jumps specifically so you don’t have to keep patching your own YAML.

The installation workflow is textbook straightforward and has two paths depending on your setup.

Path one: HACS. Home Assistant Community Store is basically a package manager for HA custom components and cards. If you’ve already got HACS installed (and you probably do if you’re running any custom integrations or cards at all), then adding mini-graph-card is literally clicking a button. You open HACS in HA’s frontend, navigate to the “Frontend” section, click the big + button, search for “mini-graph-card,” click install, restart HA, and it’s done. The HACS system handles downloading the latest release from GitHub, putting it in the right directory, and managing updates automatically. This is the path you’d take if you want the card to update itself whenever the maintainer ships a new version. HACS also does a review process before listing packages, so there’s at least a basic vetting step — this is slightly more trustworthy than just grabbing random JavaScript bundles from the internet, although not by a huge margin.

Path two: Manual installation. Download the bundle from the releases page on GitHub, unzip it, drop the files into /config/www/mini-graph-card/, then add the resource reference to your Lovelace YAML configuration. This approach gives you more control (you update on your own schedule) and is useful if HACS isn’t an option for some reason, but it’s more hands-on. Most people just use HACS and forget about it.

After installation, you’re adding cards to your Lovelace dashboard by writing YAML. The minimal config is almost trivial:

type: custom:mini-graph-card
entities:
  - sensor.bedroom_temperature
hours_to_show: 24

That’s a card that shows the bedroom temperature over the last 24 hours. Boom. But the configuration options expand from there, and unlike many cards where the options feel grafted on as afterthoughts, these feel actually thought through.

points_per_hour controls the granularity of the data points displayed. By default it pulls every data point from the history, but if you’ve got a sensor that reports every few seconds, that’s potentially thousands of points crowded onto a graph, which looks like a hairy mess. Setting points_per_hour: 6 means it’ll show six data points per hour, which gives you a smoother line while still capturing the general trend. Higher numbers mean finer granularity (more jittery line, more detail), lower numbers mean more smoothing (cleaner line, less noise). This is the kind of parameter that a maintainer includes because they’ve actually used the thing and run into this problem.

aggregate_func lets you specify how the card rolls up multiple data points into a single displayed point. The options are things like average (the default — show the mean of all data points in that hour), min (show the lowest value), max (show the highest value), sum (add them all up). This matters when you’re looking at power consumption or energy generated by a solar panel: summing the watts per 5-minute interval across an hour tells you the watt-hours consumed, which is what you actually care about. For a temperature sensor, average makes sense. For doorbell press counts or water usage, sum is what you’d pick. The option exists because different sensor types need different aggregation logic.

color_thresholds is where the card gets genuinely useful for at-a-glance monitoring. You can specify that the line should be green when the temperature is between 65–75 degrees, yellow between 55–65 and 75–85, and red outside those ranges. The graph then renders in color-coded segments so you can literally see when things drifted out of normal. Same thing for power consumption: green if you’re under 500 watts, orange 500–1000, red above that. This transforms a graph from “okay, I can read the numbers if I squint” into “oh wow, that spike at 3 PM is visually obvious.”

group is a simpler parameter but useful when you’re nesting multiple cards: it removes the padding around the card so everything stacks tightly. If you’ve got a row of mini-graph-cards showing different rooms, group: true makes them feel like a single unified visualization instead of individual components.

You can also plot multiple entities on the same card with different colors, apply smoothing, set a custom title, hide the legend, adjust the line width, and a dozen other small options. The documentation on the GitHub repo actually explains all of this clearly, which is rarer than you’d think in the open source world — lots of projects have 47 options and documentation that says “see the examples” and then the examples are confusing.

Red flags? Honestly, almost none, but let me think through the ones that could matter.

First: it’s JavaScript. The card runs in the browser, which is actually a feature, not a bug. It means the entire thing is frontend-only — no code execution on the server, no network requests to a third-party service, no API keys or authentication tokens needed beyond what HA already requires. The supply chain risk is minimal because you can literally read the source code if you’re paranoid, and it’s probably only a few hundred lines. The browser sandbox protects against the most obvious attack vectors. Compare this to some custom integrations that require you to run arbitrary Python code on your HA server, and mini-graph-card starts looking really safe.

Second: open issues. There are currently 147 open issues on the repo. That number might seem alarming until you realize the project is eight years old. That’s not abandonment; that’s just the natural accumulation of feature requests, edge cases, and things that work fine but could theoretically work better. Compare it to a one-year-old project with five open issues and you’d rightly assume it’s in stealth mode between releases. A eight-year-old project with 147 open issues and semi-regular commits is actually the healthy baseline. Most of those issues are probably “it would be cool if we could do X” or “there’s a rendering glitch on iOS Safari with specific entities,” not “the thing is broken.” And the maintainer has enough self-awareness to leave issues open rather than close them with a dismissive comment; that suggests they’re tracking what users want and prioritizing accordingly.

Third: compatibility. The project has successfully tracked compatibility through Home Assistant versions that fundamentally changed how Lovelace works. When HA refactored the resource loading system, mini-graph-card got updated. When they changed the entity state storage format, it continued to work. This is not an accident; it means the maintainer is actively running HA themselves and catches breaking changes. You don’t maintain forward compatibility with a project you don’t use.

Maintenance cadence is actually a good signal here. The last commit was recent enough that you know it’s not dead, but there aren’t commits every single day, which suggests this isn’t someone’s job (which would be unsustainable and would probably come with pressure to monetize). It’s a side project from someone who built a thing, uses it themselves, and ships fixes when something needs fixing. That’s exactly the sweet spot for long-term sustainability.

Why you’d use this vs. not use it

The only reason to skip mini-graph-card is if you’ve already completely externalized visualization to something like Grafana and you really don’t want Lovelace cards cluttering your dashboard. But that’s an edge case. For most people, Lovelace is the primary interface to their smart home — it’s the thing on the wall tablet, it’s what you pull up on your phone when you’re away, it’s what you’re staring at when you need to check if something is off. Having good graphs there is valuable. Grafana is for deep analysis: “what’s my average power consumption between 7 AM and 9 AM on Tuesdays?” or “has the guest bedroom humidity been trending up over the last month?” Lovelace is for shallow questions: “is this thing working normally right now?”

Concrete examples: a mini-graph-card showing the last 24 hours of bedroom temperature sits on your dashboard. At a glance, you can see whether your HVAC is actually maintaining temperature or whether there’s a problem. A card showing garage door sensor history shows you when the door was opened, which is useful if you’re trying to figure out if you left it open. A card showing dishwasher power consumption lets you glance and see “oh, it’s done running” rather than having to go downstairs. These are frivolous uses, but they’re the kind that accumulate into a smarter-feeling house — not because the house is actually smarter, but because you have visibility into what’s happening.

Installation effort, practically speaking, is somewhere in the 15–30 minute range. If you go the HACS route and you already have HACS set up, you’re looking at five minutes of clicking and waiting for HA to restart. If you’re doing manual installation, maybe fifteen minutes of downloading, unzipping, editing YAML, and restarting. Then you’re spending another ten minutes playing with configuration options for each card you want to add, which is kind of fun actually — there’s something satisfying about tweaking colors and time ranges until a dashboard looks exactly the way you want it to look.

The install itself never fails. You’re not compiling anything, you’re not configuring network services, you’re not dealing with version conflicts. You’re dropping files in a directory and editing text. If something goes wrong, restarting HA fixes it, or you roll back to the previous version via HACS. There’s no state to corrupt, no database to migrate, no configuration that can brick your entire setup.

This is the kind of project that deserves to be boring and unassuming, and it nailed that landing eight years ago and never looked back. No hype. No claims it’ll revolutionize your smart home or integrate seamlessly with some hypothetical future ecosystem. No pivot to some new architecture or rewrite in a different language. Just a graph card that renders sensor history from your local HA database, handles color thresholds sensibly, respects your dashboard’s theme, and gets out of the way. The fact that it’s still doing that, unchanged in philosophy, in 2024, when every other piece of software in your house has either pivoted to a subscription model or been abandoned, feels almost miraculous. It shouldn’t feel remarkable to use software that does what it says for free and keeps doing it without drama. And yet.


Scouted repo: kalkih/mini-graph-card — 3874 stars. Verdict: ADOPT. Desk review, nothing was flashed or installed.