101 lines
2.8 KiB
Markdown
101 lines
2.8 KiB
Markdown
# ha-frigate
|
|
|
|
Home Assistant and Frigate NVR configuration for intelligent doorbell person detection with debounced notifications.
|
|
|
|
## Overview
|
|
|
|
This repository contains configuration files for a doorbell camera setup using Frigate NVR for object detection and Home Assistant for smart notifications. The system detects people approaching the door and sends a single notification per approach, with thumbnails showing the exact moment of detection.
|
|
|
|
## Hardware
|
|
|
|
- **Camera:** Amcrest AD110 Video Doorbell
|
|
- **Detection:** CPU-based (3 threads)
|
|
- **Server:** Unraid with Docker
|
|
- **MQTT:** Home Assistant MQTT broker
|
|
|
|
## Features
|
|
|
|
- 🎯 Person detection optimized for doorbell camera positioning
|
|
- 📸 Event snapshots with accurate thumbnails in notifications
|
|
- 🔕 Smart notification debouncing (max 1 per minute)
|
|
- 💾 5-day motion-based recording retention
|
|
- 🚀 Low CPU usage with optimized detection parameters
|
|
|
|
## Files
|
|
|
|
- `config.yml` - Frigate NVR configuration
|
|
- `doorbell_notification.yaml` - Home Assistant automation
|
|
|
|
## Frigate Configuration Highlights
|
|
|
|
```yaml
|
|
detectors:
|
|
cpu:
|
|
type: cpu
|
|
num_threads: 3
|
|
|
|
objects:
|
|
filters:
|
|
person:
|
|
min_area: 2000
|
|
min_score: 0.6
|
|
threshold: 0.5 # 0.5s detection time before triggering
|
|
```
|
|
|
|
**Detection Parameters:**
|
|
- `min_area: 2000` - Minimum pixel area for person detection
|
|
- `min_score: 0.6` - Confidence threshold (60%)
|
|
- `threshold: 0.5` - Person must be detected for 0.5 seconds
|
|
|
|
## Home Assistant Automation
|
|
|
|
The automation triggers on new person detection events and includes:
|
|
- `mode: single` - Prevents concurrent runs
|
|
- 60-second cooldown between notifications
|
|
- Dynamic event snapshot URLs
|
|
- Deep link to camera dashboard
|
|
|
|
## Setup
|
|
|
|
### Frigate
|
|
|
|
1. Copy `config.yml` to your Frigate config directory (typically `/config`)
|
|
2. Update the following values:
|
|
- MQTT credentials (`host`, `user`, `password`)
|
|
- Camera RTSP URLs and credentials
|
|
- Camera IP address in the snapshot URL
|
|
|
|
### Home Assistant
|
|
|
|
1. Import `doorbell_notification.yaml` as a new automation
|
|
2. Update `notify.household_phones` to your notification service
|
|
3. Adjust the camera dashboard URL if needed
|
|
|
|
## Tuning
|
|
|
|
### Too many notifications?
|
|
- Increase cooldown delay in Home Assistant automation (currently 60s)
|
|
- Increase `threshold` in Frigate config (higher = longer detection time required)
|
|
|
|
### Missing detections?
|
|
- Lower `min_score` (currently 0.6)
|
|
- Lower `threshold` (currently 0.5)
|
|
- Lower `min_area` (currently 2000)
|
|
|
|
### Detection too slow?
|
|
- Lower `threshold` to 0.3-0.4 seconds
|
|
- Ensure cooldown in HA automation prevents spam
|
|
|
|
## Network Configuration
|
|
|
|
- Frigate Web UI: `http://192.168.0.5:5341`
|
|
- Camera IP: `192.168.0.118`
|
|
- MQTT Broker: `192.168.0.205:1883`
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
## Credits
|
|
|
|
Optimized through iterative testing for the Amcrest AD110 doorbell form factor and typical approach patterns. |