hms-timeline

A security camera timeline viewer for Home Assistant. Scrub a 24-hour heat map, jump straight to detection events, watch the recording, and search your footage in plain language — all served locally by a fast C++ backend. Built with Angular + C++ (Drogon).

Home AssistantAngularC++ / DrogonPostgreSQLSemantic search

What it does

A focused front-end for reviewing what your cameras saw, paired with a lightweight service that reads straight from your detection database and recordings.

Live + timeline view

Live camera snapshots refresh every 2 seconds, while a 24-hour timeline with an hourly heat map shows you exactly when activity happened across the day.

Events & recordings

Browse a detection event list with snapshot thumbnails, then tap to play back the matching MP4 recording — no hunting through raw files.

Semantic search

Search across AI vision descriptions in natural language to find the clip you remember, with an optional Ollama instance generating the embeddings.

How it works

The C++ service reads from the same PostgreSQL database and filesystem the detection engine writes to — REST API plus file serving, with no coupling between services.

Docker quick start

docker pull ghcr.io/hms-homelab/yolo-timeline:latest

Published to GHCR as yolo-timeline and built in CI on every push.

Home Assistant add-on

Add this repository to Home Assistant:

https://github.com/hms-homelab/hms-timeline

Then install YOLO Detection Timeline from the add-on store — it runs with full ingress support.

Configure the add-on

Point it at your detection stack:

db_host / db_port / db_user / db_password / db_name  # PostgreSQL connection
detection_service_url   # yolo-detection service, for live snapshots
ollama_url              # Ollama instance, for semantic search embeddings
events_dir              # MP4 recordings, e.g. /media/cctv
snapshots_dir           # JPEG snapshots, e.g. /media/snapshots

Local development

# Angular dev server (proxies API to localhost:8080)
cd frontend && npm install && npm start

# Build the C++ service
cd yolo_detection_cpp
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF
cmake --build build --target yolo_timeline

# Run with config
./build/services/timeline/yolo_timeline --config config.yaml

Review your cameras the easy way

Open source under the MIT license. Pull the image, add the repo to Home Assistant, and start scrubbing your timeline.