Henry Z's blog
Nightwatcher - A Simple IP Camera Viewer 🦇
GitHub: https://github.com/daya0576/nightwatcher
Background
As a first-time parent, 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)
Constraints
The user experience was frustrating for several reasons:
- Performance Issues: High latency and frequent freezing, taking 2-3 seconds to load screenshots and stream video. And the image quality is limited to low resolution.
- 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.
- Privacy & Extensibility: Both of the montors provide advanced AI detection features, but the streaming must be processed through the cloud with unknown algorithms.
- Simplicity: Tried several existing open source solutions, but they are a bit too complex and put me off.
Fortunately, both cameras support RTSP (Real Time Streaming Protocol) for video stream consuming.
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
- Performance: Blazing fast without any delay.
- Cross Platform Support: Works on any device with a browser.
- Privacy & Extensibility: Local models and custom detection support.
- Simplicity: Minimal navigations and css styles.
Demo
Interesting story
My sweet got recognized as an apple by YOLO 🤣🤣🤣:
Next…
- PWA web app
- Dockerlization
- User friendly custom detection
- Refine camera configuration
- Train a YOLO11 model on my custom dataset
- …
Final words
This project is made with love for families, tested by my wife :p
Hoping you can enjoy this project and feel free to contribute!