Self-hosted · Open Source · AGPL-3.0 License · HomeKit + Matter

homechronicle

Event Logging for Apple HomeKit & Matter

Apple's Home app shows the current state of your accessories — homechronicle shows you everything that happened and when. A self-hosted dashboard with a searchable timeline, activity analytics, alerts, and device management.

homechronicle Dashboard in the Porcelain palette — house summary, KPI cards, room map, today's rhythm, and activity charts
Everything you need to monitor your smart home
homechronicle captures every state change from your HomeKit and Matter accessories and turns raw events into actionable insights.
📋

Real-time Event Timeline

Day-grouped event feed that leads with what happened — “motion detected”, “60% RH”. Filter by room, accessory, characteristic, or date range.

📊

Activity Analytics

A one-line house summary, a room map, today’s rhythm, daily trends, hourly charts, and weekday and monthly heatmaps.

📱

Device Inventory

Every paired accessory in per-room tables with status, event count, and heartbeat, plus bridge info and per-device history.

⚡

In-Browser Setup

Discover, pair, and configure accessories directly from the UI. Bulk pairing, PIN vault, and bridge child expansion.

🎨

Twelve Palettes

Twelve colour palettes, each with a designed light and dark version. Charts and room colours follow the palette.

🌐

Installable PWA

Add to your home screen on iOS or Android. Works like a native app with responsive mobile-first design.

🧪

Matter Support

Commission Matter devices from the browser. Live subscriptions report changes as they happen, with the same names and units as HomeKit.

🐳

Docker Ready

Single docker run deploys everything. Or use Docker Compose for fine-grained control. No build steps required.

👥

Multi-User Accounts

Optional login with invite-only members, admin and member roles, and DB-backed sessions you can review and revoke per device.

✉️

Email & SMTP

SMTP-powered user invitations, password resets, and email alert delivery. Configure via environment variables or the Settings UI.

🎛️

Customizable Dashboard

Drag, resize, and hide analytics panels. Choose from 15 default and 12 optional panels; layout is saved per account.

🔔

Alert Rules

Get a webhook or email when a device, room, or characteristic matches a rule, with quiet periods to stop repeats.

Every event, searchable and filterable

A live, scrollable timeline grouped by day shows every state change across your home. Scene grouping bundles events that fire within seconds of each other.

  • Entries lead with what happened, with the device and room underneath
  • Filter by room, accessory name, characteristic, or date range
  • Activity heatmap with click-to-jump navigation
  • Auto-refreshes every 10 seconds
Timeline — live event feed grouped by day

Visual heatmap for fast navigation

The activity heatmap shows event density by device and time of day. Click any cell to jump directly to that moment in the timeline. Combined with powerful search filters, finding any event is instant.

  • Per-device hourly heatmap with color-coded density
  • Deterministic page targeting for stable navigation
  • Combine with room and accessory filters to narrow results
Timeline — search filters with activity heatmap for jump navigation
Activity analytics at a glance
A house summary, a room map, today’s rhythm, trends, and quiet-hours activity in a layout you arrange — everything you need to understand your smart home's behavior.
Daily activity trend line chart

Daily Activity

Event-count trend across the last 7, 30, or 90 days. Spot long-term patterns and busy periods.

Where Things Happen — room blocks sized by each room's share of events

Where Things Happen

Each room is a block sized by its share of events, coloured from a palette checked for colour-blind readers. Select a room to open its timeline.

Today's Rhythm — an arc of the day with quiet hours and busiest hours

Today’s Rhythm

An arc of your day showing quiet hours, the busiest hours, and the current time.

Events by hour of day

Events by Hour

Hourly distribution over the last 30 days, in your local time. Find your home’s natural rhythm.

House Summary — a one-line summary of today

House Summary

One line for today: the busiest room, the change on yesterday, and whether anything happened during quiet hours.

Multi-user accounts with invite-only access
Login is optional and enabled with a single flag. When on, the first visit prompts for a one-time admin setup; all subsequent members join by invite only. Admins and members share event data but have different configuration rights.
Sign in page with email and password fields

Sign In

Auth is opt-in via AUTH_ENABLED. The sign-in screen appears only when login is on; disable it to restore the single-operator mode.

User management panel showing member list with invite and role controls

User Management

Admins can invite members by email, promote or demote roles, and disable accounts. No public registration — every account comes from an invite.

Active sessions list with device info and revoke buttons

Active Sessions

Each user can see their own login sessions — device user agent and IP captured at login — and revoke any individually.

SMTP for invitations, resets & alerts

Email is optional. When an SMTP server is configured, it powers three features: user invitations (the invite link doubles as email verification), password reset links, and the email delivery channel for alert rules.

  • Configure via environment variables or the Settings UI — no restart needed for UI changes
  • Supports port 587 STARTTLS and port 465 implicit TLS
  • SMTP password stored in a 0600-permission secrets file, never exposed by any API response
  • Send test email button verifies delivery to the admin's account address
Email SMTP settings panel

Know every device in your home

A live inventory of every paired HomeKit and Matter accessory, in a table per room. At a glance, see which devices are active, which have gone quiet, and how many events each has logged.

  • Status, event count, and heartbeat for every device
  • Bridge children grouped under the bridge they belong to
  • Per-device detail with history, trends, and connection reliability
  • Room names always shown beside the room colour
Devices — inventory in per-room tables

Pair devices right from your browser

No command line needed. Open Devices › Add Accessories, discover accessories on your network, enter PINs, and pair directly from the web UI. Pair a Homebridge bridge once and every child accessory is logged automatically.

  • Network scanning discovers HomeKit accessories via mDNS
  • Commission Matter devices with their pairing code
  • Bulk pairing with shared PIN and progress bar
  • PIN vault saves codes after first use
  • Room assignment for accessories and bridge children
  • Configurable retention and stale device thresholds
Devices › Add Accessories — discovery and pairing

Twelve palettes, light and dark

Choose a palette in Settings › Appearance, then Light, Dark, or System to follow your OS. Every palette has its own designed dark version, and charts, room colours, and status colours all follow it. See all twelve.

Dashboard in the Porcelain palette, dark mode
Modern, self-hosted stack
Runs entirely on your local network in Docker. No cloud, no subscriptions, no data leaving your home.
🐳 Docker Compose
⚛️ React 19
⚡ Vite
🐘 PostgreSQL 16
📡 Express
🏠 hap-controller
🔧 Matter
📊 Recharts
🎨 Tailwind CSS
Up and running in minutes
One command to deploy. Pair your first device from the built-in setup wizard.
All-in-one — PostgreSQL, listener, and web UI in a single container
docker run -d \
  --name homechronicle \
  --network host \
  -e WEB_PORT=3000 \
  -v hc-db:/var/lib/postgresql/data \
  -v hc-data:/app/listener/data \
  -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro \
  havuq/homechronicle-standalone

# Open the dashboard
open http://localhost:3000

# No host networking? Use bridge mode instead:
# docker run -d --name homechronicle -p 3000:80 \
# -v hc-db:/var/lib/postgresql/data \
# -v hc-data:/app/listener/data \
# havuq/homechronicle-standalone
1

Deploy

One docker run on any machine — NAS, Raspberry Pi, or desktop.

2

Pair

Open Devices › Add Accessories, scan your network, and pair accessories with their PINs or Matter codes.

3

Monitor

Events stream in automatically. Explore the timeline, dashboard, and analytics.