Skip to content

Insights

The Insights tab is brAIn acting as your home’s analyst. It reads your Home Assistant data and renders it as self-contained interactive cards: a headline, a handful of sharp numbers, and one chart built for your data rather than filled in from a template.

The brAIn Insights tab with four cards — an answered question about a 3 am hallway light with a trace timeline, a month of electricity by device as a bar chart headlined "The dehumidifier is your quiet £14 a month", and cards on device health and presence

It learns before it reports

A fresh install has no cards, deliberately. A generic card about a house it has never looked at is noise on every run, and costs tokens producing it.

So the first thing that happens is a study, not a report:

  1. brAIn studies the home one topic at a time — naming and areas, occupancy rhythms, energy, climate, device reliability — and files what it finds in memory.
  2. It proposes cards grounded in what it actually found, each with a one-line reason citing the evidence. A proposal that could have been written for a different house isn’t a proposal.
  3. You pick. Nothing generates, and the scheduler stays idle, until you do.

The flow is resumable — close the panel mid-study and come back — and re-running it never re-studies a topic it already covered, because a study session is expensive.

If your home is too sparse

brAIn says what’s missing and stops. There is deliberately no canned fallback: generic cards about a house it can’t read would teach you to ignore the dashboard. Add more entities, let history accumulate, and run it again.

The ask bar has two verbs

Ask a question and it becomes a card. There’s no separate “new insight” dialog — asking is the way in.

Questions that make good cards
Which rooms are coldest at night?
Why did the hallway light come on at 3 am?
What's actually driving my standby power?
Which automations haven't triggered in 30 days?
Is anything drawing more power than it did last month?

+ Make recurring on the resulting card promotes it onto its own schedule, where it behaves exactly like any other card.

Start a line with “learn about…” or “study…” and brAIn goes reading instead. A study session digs through the registry, history and long-term statistics for that corner of the house and files what it finds in Memory and Findings — no card comes back. It runs for minutes, in the background.

These start a study session, not a card
learn about my boiler
study my energy use
figure out how the upstairs heating actually behaves

brain ask "why is the garage cold" in the terminal is the same engine against the same memory, printed as text instead of a card.

What a card is made of

For each card — and every asked question — brAIn:

  1. Collects a slimmed snapshot of your home through the Supervisor API: entity states with areas and friendly names, recent history for the relevant sensors, long-term statistics for energy, and the home memory document. GPS coordinates never leave the house; only zone, state and areas are included.
  2. Sends it to Claude with a strict design system — a fixed categorical palette, one y-axis per chart, reserved status colours, light and dark mode, hover interactivity. The analysis pass has no tools at all; it is pure reading of that snapshot.
  3. Stores and renders the result — title, summary, highlight stats and a self-contained HTML visualisation, in a sandboxed iframe that cannot touch your HA session.

Cards persist across restarts, refresh on their own schedules, and generation runs one at a time through a queue to stay friendly to subscription rate limits.

The card’s buttons

Two on the card, and the rest behind . Six glyphs in a row was most of the width of a card on a phone, and the title was what got squeezed out to make room for them.

ControlWhat it does
⤢ ExpandThe only one on the card itself, because it’s the only one that acts on what’s on screen rather than on the card’s definition.
⋯ → RegenerateRun this card again now.
⋯ → EditName, icon, analysis focus and schedule.
⋯ → Give feedbackStanding instructions for every future run.
⋯ → Add to dashboardYAML for a Webpage card on your own dashboard.
⋯ → DeleteThe card and its history.

There is no “refresh everything” button. It used to sit in the top bar as a circular arrow that read like a page reload and in fact queued a Claude run for every card you had — minutes of work, and a real bite out of the usage the pill beside it was reporting.

Feedback sticks

⋯ → Give feedback is how you correct a card without editing its prompt:

  • “Show costs in dollars, not kWh.”
  • “Ignore the guest room sensor — it’s in a drawer.”
  • “Stop telling me about the garage fridge, it’s meant to run all night.”

Each one is injected into every future run of that card until you remove it, and filed into memory at the same time. Send & regenerate applies it immediately.

Schedules, history and tags

  • Per-card schedules — an interval, or fixed daily times (07:00, 19:00, up to six) which take precedence over the interval and spend nothing in between. 0 means manual only. Fixed times cost far less than a short interval.
  • Run history — every run is kept per history_keep_runs / history_keep_days, with a run selector, ‹ / › step buttons, and prev: … comparisons under each highlight.
  • Tags — the analyst tags each card by what it found, not by its category, so #batteries surfaces every card that hit a battery problem wherever it came from. The chip row scrolls sideways with ✦ All pinned at the left. Press on a card’s tag row to drop a bad tag or add your own; your edits survive regeneration, and new tags a later run discovers still appear.

Guesses

When a run believes something it can’t confirm, it says so as a claim you answer with one tap — “The garage fridge is meant to run 24/7 — right?” — right on the card, or in the Memory tab. files it as a plain memory line; records a dead end that is never revisited. Three open at a time, 14-day expiry, never re-proposed in any wording. The full model: Memory & Learning.

Deep presence

Presence analysis goes beyond home / not_home. brAIn walks the device registry and pulls the sibling entities from each presence tracker’s physical device — the companion app’s Wi-Fi SSID, geocoded address, detected activity, battery and charging state — and must cite its evidence rather than parrot a state string:

Ben is at work — his phone has been on OfficeNet near 5th & Main, stationary since 09:12, and charging.

Dashboard cards

Any insight can be embedded on a dashboard with ready-to-paste YAML from ⋯ → Add to dashboard:

type: iframe
url: /local/brain/energy-<your-card-token>.html
title: Energy
aspect_ratio: 90%

Cards are served by Home Assistant itself at /local/… — same origin as every dashboard, so they work on LAN, local SSL and Nabu Casa with no port mapping. The card always shows the latest run and reloads every 15 minutes. Security model: Reference.

Deleted cards don’t come back

There’s no restore list, and that’s the point: brAIn proposes the cards a given home should have, so the answer to “I want that card again” is to ask for it and let brAIn build it for the house it now knows.

Insight jobs are the other half

Cards are interactive deep dives in a panel. Insight jobs are the dashboard-native sibling: scheduled reports rendered to sensors, with markdown and ready-to-paste card YAML in their attributes, and an event that fires on completion — good for glanceable tiles and TTS briefings. Both read the same memory.

What it costs

The panel’s ⚙ Settings dialog caps how much of each 5-hour session window brAIn may spend on scheduled work. Automatic runs pause at the budget; manual presses never do. The meter uses your real Anthropic account utilisation, so brAIn backs off when you are using Claude elsewhere. Press the usage pill in the top bar for both windows, their reset times and what the budget gates. Every control: Reference.