GitHub: https://github.com/daya0576/nightwatcher

Background

As a first-time dad, to reduce anxiety, I set up two cameras for quick glances:

  • A room overview camera (Tplink IPC45AW)
  • A dedicated baby monitor (Aqara G100)

Both cameras have been integrated into HomeKit and shared with my family (through Home Assistant ONVIF)

Current Limitations & Challenges :(

Thanks to the camera replay, we manually record our newborn’s feeding and sleep patterns, which helps us analyze his long-term routines.

However, the user experience was frustrating for several reasons:

  1. Performance Issues: High latency and frequent freezing, taking 2-3 seconds to load screenshots and stream video. And the stream quality is limited to low resolution.
  2. Cross Platform Support: HomeKit only works within Apple ecosystem, so it’s impossible to view all the cameras at the same time on my Android tablet.
  3. Privacy & Extensibility: Both of the montors provide advanced AI detection features, but the streaming must be processed through the cloud with unknown algorithms.
  4. Simplicity: Tried several existing open source solutions, but they are a bit too complex and put me off.

The Solution: Night Watcher

Nightwatchers? The name comes from the lateest DLC of my favorate game “Against the Storm”.

Due to these limitations, I decided to create a micro web-based IP camera viewer: https://github.com/daya0576/nightwatcher

  1. Performance: Blazing fast without any delay.
  2. Cross Platform Support: Works on any device with a browser.
  3. Privacy & Extensibility: Local models and custom detection support.
  4. Simplicity: Minimal navigations and css styles.

Demo

2025-08-15 00.06.09

Next…

  • PWA web app
  • Dockerlization
  • User friendly custom detection
  • Better camera configuration
  • Train a YOLO11 model on my custom dataset

Final words

This project is made with love for families, tested and approved by my wife. Hoping you can enjoy this project and feel free to contribute!

4DD287FD-24AB-4564-ADD5-1E4D1D0AD86D_1_102_o

Fun Story

Before using the latest TOLO11 model, my sweet baby was detected as an apple 🍎😄: