Phase 1 (Foundation): project skeleton, TOML config + Pydantic validation, MQTT bus wrapper, SQLite schema (9 tables), Click CLI, process supervisor. Phase 2 (Camera): RTSP capture via OpenCV, MOG2 motion detection with configurable sensitivity/zones, adaptive FPS recording (2fps idle/30fps motion) via FFmpeg subprocess, HLS live streaming, pre-motion ring buffer. Phase 3 (Web UI): Flask + Bootstrap 5 dark theme, 6 blueprints, Jinja2 templates (dashboard, kiosk 2x2 grid, events, sensors, recordings, settings), PWA with service worker + Web Push, full admin settings UI with config persistence. Remote Access: WireGuard tunnel configs, nginx reverse proxy with HLS caching + rate limiting, bandwidth-optimized remote HLS stream (426x240 @ 500kbps), DO droplet setup script, certbot TLS. 29 tests passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
712 lines
26 KiB
Markdown
712 lines
26 KiB
Markdown
# Vigilar Camera Hardware Guide
|
|
|
|
Practical guide for selecting, purchasing, and installing cameras for the Vigilar
|
|
DIY home security system. All recommendations are for PoE IP cameras with native
|
|
RTSP support -- no cloud dependency, no subscription fees.
|
|
|
|
Last updated: April 2026
|
|
|
|
---
|
|
|
|
## 1. Camera Recommendations
|
|
|
|
### Selection Criteria
|
|
|
|
Every camera below meets these requirements:
|
|
- Native RTSP stream output (works directly with OpenCV + FFmpeg)
|
|
- PoE (IEEE 802.3af) -- single cable for power and data
|
|
- ONVIF Profile S compliance (interoperability, auto-discovery)
|
|
- H.265 or H.264 encoding
|
|
- No cloud account required for local operation
|
|
- MicroSD slot for on-camera fallback recording
|
|
|
|
### Recommended Models
|
|
|
|
#### Reolink RLC-810A -- Best Overall Outdoor ($90)
|
|
|
|
| Spec | Value |
|
|
|------|-------|
|
|
| Resolution | 3840x2160 (8MP/4K) @ 25fps |
|
|
| Lens | 2.8mm fixed, 101deg horizontal FOV |
|
|
| Night vision | 100ft / 30m IR (18x 850nm LEDs) |
|
|
| Weatherproofing | IP67 |
|
|
| AI detection | Person / Vehicle / Pet |
|
|
| Encoding | H.265 / H.264 |
|
|
| Power draw | ~12W max (PoE 802.3af) |
|
|
| ONVIF | Yes (Profile S) |
|
|
| Audio | Built-in microphone |
|
|
| Storage | MicroSD up to 512GB |
|
|
|
|
**Why this camera:** 4K resolution at a sub-$100 price point. The 8MP sensor
|
|
provides enough detail for facial identification at 15-20ft and license plate
|
|
reading at 25-30ft. Person/vehicle AI detection reduces false alerts from animals,
|
|
swaying branches, etc. Widely used with Frigate, ZoneMinder, Blue Iris, and
|
|
Home Assistant -- enormous community support for troubleshooting.
|
|
|
|
**RTSP URLs:**
|
|
```
|
|
Main stream (4K): rtsp://admin:<password>@<ip>/Preview_01_main
|
|
Sub stream (D1): rtsp://admin:<password>@<ip>/Preview_01_sub
|
|
```
|
|
|
|
Default port is 554. The sub stream is typically 640x360 and ideal for
|
|
Vigilar's motion detection pipeline (`resolution_motion` setting).
|
|
|
|
**Vigilar config:**
|
|
```toml
|
|
[[cameras]]
|
|
id = "front_door"
|
|
display_name = "Front Door"
|
|
rtsp_url = "rtsp://admin:yourpassword@192.168.1.101:554/Preview_01_main"
|
|
resolution_capture = [1920, 1080] # downscale from 4K to save storage
|
|
resolution_motion = [640, 360]
|
|
motion_fps = 25
|
|
idle_fps = 2
|
|
```
|
|
|
|
Note: You can capture at the native 4K (3840x2160) if storage allows, but
|
|
1080p is the sweet spot for Vigilar's HLS streaming and storage constraints.
|
|
|
|
---
|
|
|
|
#### Reolink RLC-520A -- Best Budget Dome Outdoor ($55)
|
|
|
|
| Spec | Value |
|
|
|------|-------|
|
|
| Resolution | 2560x1920 (5MP) @ 25fps |
|
|
| Lens | 4.0mm fixed, 80deg horizontal FOV |
|
|
| Night vision | 100ft / 30m IR (18x 850nm LEDs) |
|
|
| Weatherproofing | IP67 |
|
|
| AI detection | Person / Vehicle |
|
|
| Encoding | H.265 / H.264 |
|
|
| Power draw | ~10W max (PoE 802.3af) |
|
|
| ONVIF | Yes (Profile S) |
|
|
| Audio | Built-in microphone |
|
|
| Storage | MicroSD up to 512GB |
|
|
|
|
**Why this camera:** The dome form factor is more discreet and vandal-resistant
|
|
than bullet cameras. At $55, it is the cheapest option that still has confirmed
|
|
RTSP/ONVIF support and AI-based person/vehicle detection. The 5MP resolution is
|
|
more than sufficient for most positions. Slightly narrower FOV than the 810A
|
|
(80deg vs 101deg), which makes it better suited for focused areas like a side
|
|
gate or driveway where you want more zoom.
|
|
|
|
**RTSP URLs:** Same format as all Reolink PoE cameras:
|
|
```
|
|
Main stream (5MP): rtsp://admin:<password>@<ip>/Preview_01_main
|
|
Sub stream: rtsp://admin:<password>@<ip>/Preview_01_sub
|
|
```
|
|
|
|
---
|
|
|
|
#### Amcrest IP5M-T1179EW-AI-V3 -- Best Alternative Outdoor ($50-60)
|
|
|
|
| Spec | Value |
|
|
|------|-------|
|
|
| Resolution | 2592x1944 (5MP) @ 20fps |
|
|
| Lens | 2.8mm fixed, 132deg horizontal FOV |
|
|
| Night vision | 98ft / 30m IR |
|
|
| Weatherproofing | IP67 |
|
|
| AI detection | Person / Vehicle |
|
|
| Encoding | H.265 / H.264 |
|
|
| Power draw | ~9W max (PoE 802.3af) |
|
|
| ONVIF | Yes (Profile S) |
|
|
| Audio | Built-in microphone |
|
|
| Storage | MicroSD up to 256GB |
|
|
|
|
**Why this camera:** Widest FOV of any camera in this price range at 132 degrees.
|
|
Officially recommended by the Frigate NVR project. Amcrest has more granular
|
|
RTSP configuration options than Reolink via their web interface. Confirmed
|
|
working with Home Assistant ONVIF integration, Frigate, and any RTSP consumer.
|
|
|
|
**RTSP URLs:**
|
|
```
|
|
Main stream: rtsp://admin:<password>@<ip>:554/cam/realmonitor?channel=1&subtype=0
|
|
Sub stream: rtsp://admin:<password>@<ip>:554/cam/realmonitor?channel=1&subtype=1
|
|
```
|
|
|
|
Alternative simplified URL (also works):
|
|
```
|
|
rtsp://admin:<password>@<ip>:554/live
|
|
```
|
|
|
|
---
|
|
|
|
#### Reolink E1 Outdoor Pro (or RLC-520A indoors) -- Best Indoor ($55-80)
|
|
|
|
For indoor use, you have two good options:
|
|
|
|
**Option A: Reolink RLC-520A used indoors ($55)**
|
|
The same dome camera listed above works perfectly indoors. Mount it in a corner
|
|
near the ceiling. The dome form factor looks clean in a living space. The 100ft
|
|
IR range is overkill for a room but means the IR LEDs run at low power, reducing
|
|
that red-glow annoyance.
|
|
|
|
**Option B: Reolink E1 Outdoor Pro (~$80)**
|
|
If you want pan-tilt for a large open area (living room, basement, warehouse):
|
|
- 4MP with 355deg pan / 50deg tilt
|
|
- Auto-tracking follows detected people
|
|
- Works as fixed camera when tracking is disabled
|
|
- Same RTSP URL format as other Reolink cameras
|
|
|
|
For most Vigilar setups, a fixed dome (Option A) is simpler and more reliable --
|
|
no moving parts, no auto-tracking logic to debug.
|
|
|
|
---
|
|
|
|
### Models to AVOID
|
|
|
|
| Model | Reason |
|
|
|-------|--------|
|
|
| Reolink Argus / Go series | Battery-powered, no RTSP/ONVIF support |
|
|
| Any Reolink E1 (non-Pro) | Requires Home Hub for RTSP; not standalone |
|
|
| Wyze Cam v3/v4 | No native RTSP (requires firmware hack, breaks easily) |
|
|
| Ring / Nest / Arlo | Cloud-locked, no RTSP access |
|
|
| TP-Link Tapo C200/C310 | RTSP added via firmware but flaky; ONVIF missing |
|
|
| Generic Aliexpress "4K" | Often fake resolution, unstable RTSP, no firmware updates |
|
|
|
|
---
|
|
|
|
## 2. PoE Network Setup
|
|
|
|
### PoE Switch Selection
|
|
|
|
For 4 cameras you need a switch with at least 5 PoE ports (4 cameras + headroom).
|
|
An 8-port switch is the right buy -- room to grow.
|
|
|
|
#### Recommended: NETGEAR GS308PP ($70)
|
|
|
|
| Spec | Value |
|
|
|------|-------|
|
|
| Ports | 8x Gigabit (all PoE+) |
|
|
| PoE budget | 83W (FlexPoE upgradeable to 123W) |
|
|
| Management | Unmanaged (plug and play) |
|
|
| Noise | Fanless (silent) |
|
|
| Warranty | Lifetime with next-business-day replacement |
|
|
|
|
**Why:** 83W is more than enough for 4 cameras drawing ~10-12W each (total ~48W
|
|
with headroom). Fanless means zero noise in a utility closet. Unmanaged means
|
|
zero configuration -- plug in cables and it works.
|
|
|
|
**Power budget math:**
|
|
```
|
|
4 cameras x 12W each = 48W
|
|
Switch headroom: 83W - 48W = 35W remaining
|
|
(enough for 2-3 more cameras later)
|
|
```
|
|
|
|
#### Budget alternative: TP-Link TL-SG1005P ($35)
|
|
|
|
5 ports (4 PoE + 1 uplink). 65W budget. Sufficient for exactly 4 cameras with
|
|
no room to grow. Only buy this if you are certain you will never add a 5th camera.
|
|
|
|
#### If you want management: TP-Link TL-SG108PE ($60)
|
|
|
|
8 ports (4 PoE), 64W budget, basic web management with VLAN support. Useful if
|
|
you want to isolate cameras on their own VLAN for security (recommended but not
|
|
required for Vigilar).
|
|
|
|
### Cable Types
|
|
|
|
| Scenario | Cable Type | Why |
|
|
|----------|-----------|-----|
|
|
| Indoor runs (attic, walls, basement) | Cat6 UTP CMR-rated | Standard indoor riser-rated cable |
|
|
| Outdoor exposed runs | Cat6 UTP outdoor-rated (UV/water resistant) | PE jacket resists sun and moisture |
|
|
| Underground burial | Cat6 direct-burial rated | Gel-filled, no conduit needed |
|
|
| Short patch runs (<10ft) | Pre-made Cat6 patch cables | Not worth crimping for short runs |
|
|
|
|
**Maximum cable run:** 328 feet (100 meters) per the Ethernet spec. Beyond that
|
|
you need a PoE extender or switch relay.
|
|
|
|
### Cable Routing Tips
|
|
|
|
**Through exterior walls:**
|
|
1. Drill from inside out at a slight downward angle (5-10 degrees) so water
|
|
runs away from the interior
|
|
2. Use a 3/4" drill bit -- large enough for an RJ45 connector to pass through
|
|
3. After running cable, fill the hole with silicone caulk or use a weatherproof
|
|
cable gland/grommet
|
|
4. Consider a weatherproof junction box on the exterior to make the connection
|
|
point maintainable
|
|
|
|
**Through attic:**
|
|
1. The cleanest install routes cable up into the attic, across the attic, and
|
|
down through the soffit to the camera
|
|
2. Use a flex drill bit (also called an installer bit, 3/4" x 54") to drill
|
|
through top plates from inside the attic
|
|
3. Attach cables to joists/rafters with cable staples (not tight -- leave slack)
|
|
4. Keep ethernet cables 12+ inches away from electrical wiring to avoid
|
|
interference
|
|
|
|
**Through basement/crawlspace:**
|
|
1. Route along floor joists using J-hooks or cable staples
|
|
2. Drill up through the sole plate where you need to reach an exterior wall
|
|
3. Use fire-stop caulk when penetrating between floors (code requirement)
|
|
|
|
**Tools needed for cable routing:**
|
|
- Stud finder
|
|
- 3/4" installer flex bit (54" long) for drilling through top/sole plates
|
|
- Fish tape or glow rods for pulling cable through walls
|
|
- Drywall saw (for cutting low-voltage wall plate holes)
|
|
- Cable staple gun or J-hooks
|
|
- Headlamp (for attic work)
|
|
|
|
---
|
|
|
|
## 3. Mounting Guide
|
|
|
|
### Outdoor Mounting
|
|
|
|
#### Soffit Mount (Recommended for most positions)
|
|
|
|
This is the cleanest outdoor install. The camera mounts under the roof overhang,
|
|
protected from direct rain and sun.
|
|
|
|
1. Hold the camera mounting plate against the soffit and mark screw holes
|
|
2. If soffit is vinyl: drill through vinyl into the wood backing behind it.
|
|
Use toggle bolts if there is no solid backing
|
|
3. If soffit is aluminum: use self-tapping sheet metal screws into the wood
|
|
behind
|
|
4. Route cable up through the soffit (drill a 3/4" hole) into the attic space
|
|
5. Apply silicone sealant around the cable entry point
|
|
6. Attach camera to mounting plate
|
|
|
|
**Advantages:** Weather protection from the overhang, clean hidden cable routing,
|
|
difficult for intruders to reach/tamper with.
|
|
|
|
#### Wall Mount
|
|
|
|
1. Use a junction box mounted to the exterior wall with Tapcon concrete screws
|
|
(for brick/stucco) or lag screws (for wood siding)
|
|
2. Route cable through the wall behind the junction box
|
|
3. Make the wall penetration inside the junction box so the box covers and
|
|
weatherproofs it
|
|
4. Seal all entry points with silicone
|
|
5. Mount camera to junction box
|
|
|
|
#### Fascia/Eave Mount
|
|
|
|
Similar to soffit but on the vertical face of the eave. Use an angled mounting
|
|
bracket (15-30 degrees) to tilt the camera downward. This is ideal for getting
|
|
a wider view of a yard or driveway.
|
|
|
|
### Mounting Heights and Angles
|
|
|
|
| Position | Recommended height | Tilt angle | Why |
|
|
|----------|-------------------|------------|-----|
|
|
| Front door | 8-10 ft | 15-20deg down | Captures faces of people approaching |
|
|
| Driveway/yard | 10-12 ft | 20-30deg down | Wide area coverage, hard to tamper |
|
|
| Side gate | 7-9 ft | 10-15deg down | Narrow passage, closer subjects |
|
|
| Indoor room | 7-8 ft (corner, near ceiling) | 10-15deg down | Covers most of the room diagonally |
|
|
|
|
**Key principles:**
|
|
- Higher = harder to tamper with, but faces become less identifiable
|
|
- 8-10ft is the sweet spot for face identification
|
|
- Aim cameras so the horizon line is in the upper third of the frame
|
|
- Avoid pointing cameras directly at the sky or strong light sources
|
|
- For night vision: the IR range (100ft) is the max, but usable identification
|
|
distance is more like 30-50ft depending on subject reflectivity
|
|
|
|
### Indoor Mounting
|
|
|
|
**Corner ceiling mount** (best coverage):
|
|
- Mount in the corner diagonally opposite the main entry point to the room
|
|
- This maximizes the visible area and captures faces of anyone entering
|
|
- Use the dome camera's built-in mount or a small L-bracket
|
|
- Cable can run up through the ceiling or along the wall with paintable cable
|
|
raceway
|
|
|
|
**Shelf/furniture placement** (no drilling):
|
|
- Place camera on top of a bookshelf or cabinet
|
|
- Angle slightly downward
|
|
- Run cable behind furniture to a wall plate or directly to a switch
|
|
- Less ideal than ceiling corner mount but zero damage to walls
|
|
|
|
### Weatherproofing Cable Entry Points
|
|
|
|
For every exterior cable penetration:
|
|
|
|
1. **Cable gland** (best): Threaded waterproof fitting, ~$2 each. Drill the
|
|
exact hole size, thread the gland, pass cable through, tighten the
|
|
compression nut. Watertight seal.
|
|
|
|
2. **Silicone caulk** (good enough): Fill the hole around the cable with
|
|
exterior-grade silicone. Cheap and effective but harder to service later.
|
|
|
|
3. **Weatherproof junction box** (most maintainable): Mount a small outdoor
|
|
junction box over the wall penetration. Cable enters the box from inside the
|
|
wall and connects to the outdoor cable run inside the protected box. Easiest
|
|
to service but adds cost and visual bulk.
|
|
|
|
Always ensure the drill hole angles slightly downward toward the exterior so
|
|
gravity pulls water away from the interior.
|
|
|
|
---
|
|
|
|
## 4. Four-Camera Placement Strategy
|
|
|
|
### The Four Positions
|
|
|
|
For a typical single-family home, these four positions provide the best coverage
|
|
with no blind spots on approach routes:
|
|
|
|
```
|
|
STREET
|
|
____________
|
|
| |
|
|
[CAM 2]---->| FRONT |<----[CAM 1]
|
|
Side gate | DOOR | Front door / porch
|
|
| |
|
|
| |
|
|
| HOUSE |
|
|
| |
|
|
| |
|
|
[CAM 3]---->| BACK |<----[CAM 4]
|
|
Side yard | YARD | Backyard / patio
|
|
|____________|
|
|
|
|
BACKYARD
|
|
```
|
|
|
|
#### Camera 1: Front Door / Porch (PRIORITY 1)
|
|
- **Model:** Reolink RLC-810A (4K for face identification)
|
|
- **Mount:** Soffit above front door, 8-9ft high
|
|
- **Aim:** Straight out from the door, capturing anyone approaching
|
|
- **FOV needed:** ~100deg horizontal catches porch and walkway
|
|
- **Why 4K here:** This is your primary identification camera. Police need clear
|
|
face shots. The 8MP sensor lets Vigilar crop and zoom in recordings.
|
|
|
|
#### Camera 2: Side Gate / Driveway (PRIORITY 2)
|
|
- **Model:** Reolink RLC-520A (5MP dome, discreet)
|
|
- **Mount:** Soffit or wall mount at the corner, 8-10ft high
|
|
- **Aim:** Along the side of the house toward the street
|
|
- **FOV needed:** 80deg is sufficient for a narrow side passage
|
|
- **Why dome here:** Vandal-resistant dome is harder to knock off or spray-paint.
|
|
Side gates are common break-in approach routes.
|
|
|
|
#### Camera 3: Back Door / Patio (PRIORITY 3)
|
|
- **Model:** Amcrest IP5M-T1179EW (132deg wide angle)
|
|
- **Mount:** Eave or soffit at rear of house, 10-12ft high
|
|
- **Aim:** Across the full backyard
|
|
- **FOV needed:** The 132deg wide angle covers the most yard area with a single
|
|
camera
|
|
- **Why wide angle here:** Backyards are large. The Amcrest's 132deg FOV covers
|
|
more area than the Reolink's 80-101deg, reducing blind spots.
|
|
|
|
#### Camera 4: Garage / Interior (PRIORITY 4)
|
|
- **Model:** Reolink RLC-520A (5MP dome) used indoors
|
|
- **Mount:** Corner ceiling mount in garage, or inside a high-value room
|
|
- **Aim:** Diagonal across the space toward the main entry point
|
|
- **Why indoors:** If someone gets past the exterior cameras, this catches them
|
|
inside. Garage is the most common interior break-in entry after doors.
|
|
|
|
### Coverage Analysis
|
|
|
|
With this layout:
|
|
- **100% of approach routes are covered**: front, both sides, rear
|
|
- **Front door gets 4K identification**: the most important camera position
|
|
- **Backyard gets wide-angle**: maximum area with one camera
|
|
- **Interior fallback**: catches intruders who bypass or disable exterior cameras
|
|
- **Overlap between cameras 1 and 2** at the front corner provides redundancy
|
|
on the most common approach
|
|
|
|
### Night Vision Considerations
|
|
|
|
All recommended cameras have 100ft (30m) IR range. In practice:
|
|
|
|
| Distance | Identification quality |
|
|
|----------|----------------------|
|
|
| 0-15ft | Excellent (clear facial features, text on clothing) |
|
|
| 15-30ft | Good (face recognizable, body details visible) |
|
|
| 30-50ft | Fair (person detectable, gender/build visible, no face detail) |
|
|
| 50-100ft | Movement detection only (shape visible, no identification) |
|
|
|
|
**Tips for better night performance:**
|
|
- Mount cameras where existing outdoor lights provide supplemental illumination
|
|
- Avoid aiming cameras at reflective surfaces (white walls, parked cars with
|
|
chrome) as IR reflection causes glare/washout
|
|
- If possible, add a dusk-to-dawn LED floodlight near cameras 3 and 4 (backyard)
|
|
-- this enables color night vision on cameras that support it and dramatically
|
|
improves identification range
|
|
- Keep camera lenses clean; dust and spider webs scatter IR light and create haze
|
|
|
|
---
|
|
|
|
## 5. Complete Shopping List
|
|
|
|
### Cameras
|
|
|
|
| Item | Model | Qty | Unit Price | Total |
|
|
|------|-------|-----|-----------|-------|
|
|
| Front door camera | Reolink RLC-810A (4K) | 1 | $90 | $90 |
|
|
| Side gate camera | Reolink RLC-520A (5MP dome) | 1 | $55 | $55 |
|
|
| Backyard camera | Amcrest IP5M-T1179EW-AI-V3 (5MP wide) | 1 | $55 | $55 |
|
|
| Garage/indoor camera | Reolink RLC-520A (5MP dome) | 1 | $55 | $55 |
|
|
| | | | **Subtotal** | **$255** |
|
|
|
|
**Budget alternative:** Replace the RLC-810A with a third RLC-520A ($55) and save
|
|
$35. You lose 4K on the front door but 5MP is still decent.
|
|
|
|
**All-same-brand alternative:** 4x Reolink RLC-810A at $90 each = $360. Simpler
|
|
to manage (one RTSP URL format, one firmware update process, one web UI).
|
|
|
|
### Networking
|
|
|
|
| Item | Model / Description | Qty | Unit Price | Total |
|
|
|------|-------------------|-----|-----------|-------|
|
|
| PoE switch | NETGEAR GS308PP (8-port, 83W) | 1 | $70 | $70 |
|
|
| Bulk ethernet cable | Cat6 UTP CMR 23AWG 500ft pull box | 1 | $55-75 | $65 |
|
|
| RJ45 connectors | Cat6 pass-through connectors (50-pack) | 1 | $12 | $12 |
|
|
| Crimping tool | RJ45 pass-through crimper with stripper | 1 | $25 | $25 |
|
|
| Cable tester | Basic RJ45 continuity tester | 1 | $12 | $12 |
|
|
| Short patch cables | Cat6 1ft patch cable (for switch end) | 4 | $3 | $12 |
|
|
| | | | **Subtotal** | **$196** |
|
|
|
|
**Note on bulk cable vs pre-made:** For runs over 25ft through walls/attic, bulk
|
|
cable + crimping is far cheaper and you can make exact-length cables. For
|
|
anything under 10ft (switch to patch panel), buy pre-made.
|
|
|
|
**Bulk cable brands:** Monoprice, Cable Matters, or trueCABLE are all reliable
|
|
for Cat6 CMR-rated cable. Expect ~$55-75 for a 500ft box. A 500ft box is
|
|
sufficient for a typical home with 4 cameras (average run 50-80ft each, plus
|
|
waste from mistakes and test pulls).
|
|
|
|
### Mounting Hardware
|
|
|
|
| Item | Description | Qty | Unit Price | Total |
|
|
|------|------------|-----|-----------|-------|
|
|
| Junction boxes | Weatherproof outdoor camera junction box | 3 | $8 | $24 |
|
|
| Cable glands | PG9 waterproof cable glands | 6 | $1 | $6 |
|
|
| Tapcon screws | 3/16" x 1-3/4" (for brick/stucco) | 1 box | $8 | $8 |
|
|
| Lag screws | #10 x 2" stainless (for wood) | 1 box | $6 | $6 |
|
|
| Wall anchors | Plastic expansion anchors (assorted) | 1 pack | $5 | $5 |
|
|
| Silicone sealant | GE outdoor silicone caulk | 1 | $7 | $7 |
|
|
| | | | **Subtotal** | **$56** |
|
|
|
|
### Cable Routing Supplies
|
|
|
|
| Item | Description | Qty | Unit Price | Total |
|
|
|------|------------|-----|-----------|-------|
|
|
| Flex drill bit | 3/4" x 54" installer bit | 1 | $18 | $18 |
|
|
| Cable staples | Coax/ethernet cable staples (100pk) | 1 | $6 | $6 |
|
|
| Fish tape | 25ft steel fish tape | 1 | $15 | $15 |
|
|
| Low-voltage wall plates | 1-gang brush-style pass-through | 4 | $3 | $12 |
|
|
| Cable raceway | Paintable adhesive raceway 1" (for indoor runs) | 2 packs | $8 | $16 |
|
|
| Velcro cable ties | Reusable 8" ties (50-pack) | 1 | $6 | $6 |
|
|
| Electrical tape | For marking cable ends by camera | 1 | $3 | $3 |
|
|
| | | | **Subtotal** | **$76** |
|
|
|
|
### Optional but Recommended
|
|
|
|
| Item | Description | Qty | Unit Price | Total |
|
|
|------|------------|-----|-----------|-------|
|
|
| UPS for switch | APC BE425M (small UPS for PoE switch) | 1 | $45 | $45 |
|
|
| Keystone jacks | Cat6 keystone jacks (for wall plates) | 8 | $3 | $24 |
|
|
| Keystone wall plate | 1-gang single-port plate | 4 | $2 | $8 |
|
|
| Punch-down tool | 110 punch-down (for keystone jacks) | 1 | $10 | $10 |
|
|
| Label maker | Brother P-Touch for cable labeling | 1 | $20 | $20 |
|
|
| | | | **Subtotal** | **$107** |
|
|
|
|
### Grand Total
|
|
|
|
| Category | Cost |
|
|
|----------|------|
|
|
| Cameras | $255 |
|
|
| Networking | $196 |
|
|
| Mounting hardware | $56 |
|
|
| Cable routing | $76 |
|
|
| **Required total** | **$583** |
|
|
| Optional extras | $107 |
|
|
| **Total with all options** | **$690** |
|
|
|
|
---
|
|
|
|
## 6. RTSP URL Quick Reference
|
|
|
|
For Vigilar's `config/vigilar.toml`, use these RTSP URLs:
|
|
|
|
### Reolink Cameras (RLC-810A, RLC-520A)
|
|
|
|
```
|
|
# Main stream (full resolution, for recording)
|
|
rtsp://admin:<password>@<ip>:554/Preview_01_main
|
|
|
|
# Sub stream (low resolution, for motion detection)
|
|
rtsp://admin:<password>@<ip>:554/Preview_01_sub
|
|
```
|
|
|
|
- Default username: `admin`
|
|
- Default password: set during initial camera setup via Reolink app or web UI
|
|
- Default RTSP port: 554
|
|
- ONVIF port: 8000 (for auto-discovery)
|
|
- Web UI: `http://<ip>` (port 80)
|
|
|
|
**Important:** Do not use special characters in the RTSP password. Stick to
|
|
alphanumeric characters. Special characters in URLs cause encoding issues with
|
|
some RTSP clients including OpenCV.
|
|
|
|
### Amcrest Cameras (IP5M-T1179EW)
|
|
|
|
```
|
|
# Main stream (full resolution, for recording)
|
|
rtsp://admin:<password>@<ip>:554/cam/realmonitor?channel=1&subtype=0
|
|
|
|
# Sub stream (low resolution, for motion detection)
|
|
rtsp://admin:<password>@<ip>:554/cam/realmonitor?channel=1&subtype=1
|
|
```
|
|
|
|
- Default username: `admin`
|
|
- Default password: set during initial setup via Amcrest web UI
|
|
- Default RTSP port: 554
|
|
- ONVIF port: 80
|
|
- Web UI: `http://<ip>` (port 80, requires IE/Edge or Amcrest app for full features)
|
|
|
|
### Vigilar Configuration Example (all 4 cameras)
|
|
|
|
```toml
|
|
[[cameras]]
|
|
id = "front_door"
|
|
display_name = "Front Door"
|
|
rtsp_url = "rtsp://admin:SecurePass1@192.168.1.101:554/Preview_01_main"
|
|
enabled = true
|
|
record_on_motion = true
|
|
motion_sensitivity = 0.7
|
|
motion_min_area_px = 500
|
|
pre_motion_buffer_s = 5
|
|
post_motion_buffer_s = 30
|
|
idle_fps = 2
|
|
motion_fps = 25
|
|
retention_days = 30
|
|
resolution_capture = [1920, 1080]
|
|
resolution_motion = [640, 360]
|
|
|
|
[[cameras]]
|
|
id = "side_gate"
|
|
display_name = "Side Gate"
|
|
rtsp_url = "rtsp://admin:SecurePass1@192.168.1.102:554/Preview_01_main"
|
|
enabled = true
|
|
record_on_motion = true
|
|
motion_sensitivity = 0.7
|
|
retention_days = 30
|
|
resolution_capture = [1920, 1080]
|
|
resolution_motion = [640, 360]
|
|
|
|
[[cameras]]
|
|
id = "backyard"
|
|
display_name = "Backyard"
|
|
rtsp_url = "rtsp://admin:SecurePass2@192.168.1.103:554/cam/realmonitor?channel=1&subtype=0"
|
|
enabled = true
|
|
record_on_motion = true
|
|
motion_sensitivity = 0.6
|
|
retention_days = 30
|
|
resolution_capture = [1920, 1080]
|
|
resolution_motion = [640, 360]
|
|
|
|
[[cameras]]
|
|
id = "garage"
|
|
display_name = "Garage"
|
|
rtsp_url = "rtsp://admin:SecurePass1@192.168.1.104:554/Preview_01_main"
|
|
enabled = true
|
|
record_on_motion = true
|
|
motion_sensitivity = 0.8
|
|
retention_days = 30
|
|
resolution_capture = [1920, 1080]
|
|
resolution_motion = [640, 360]
|
|
```
|
|
|
|
---
|
|
|
|
## 7. Bandwidth Planning
|
|
|
|
With your 22 Mbps upload, here is how the 4-camera system fits:
|
|
|
|
### Local Network (LAN)
|
|
|
|
Each camera at 1080p 25fps H.265 generates approximately 4-6 Mbps. Four cameras
|
|
= ~20-24 Mbps total ingest. A Gigabit PoE switch handles this trivially.
|
|
|
|
### Remote Viewing (WAN)
|
|
|
|
Vigilar's remote config in `vigilar.toml` is already tuned for your upload:
|
|
|
|
```toml
|
|
[remote]
|
|
upload_bandwidth_mbps = 22.0
|
|
remote_hls_resolution = [426, 240]
|
|
remote_hls_fps = 10
|
|
remote_hls_bitrate_kbps = 500
|
|
max_remote_viewers = 4
|
|
```
|
|
|
|
At 500 kbps per remote HLS stream, 4 simultaneous viewers = 2 Mbps. Even if
|
|
all 4 cameras stream remotely at once (4 x 500 kbps = 2 Mbps per viewer, 4
|
|
viewers = 8 Mbps), you stay well within the 22 Mbps upload limit.
|
|
|
|
### Storage Estimates
|
|
|
|
At 1080p H.265 with motion-only recording (typical 2-4 hours of actual motion
|
|
per day per camera):
|
|
|
|
| Retention | Storage per camera | Total (4 cameras) |
|
|
|-----------|-------------------|-------------------|
|
|
| 7 days | ~15-25 GB | ~60-100 GB |
|
|
| 30 days | ~60-100 GB | ~240-400 GB |
|
|
| 90 days | ~180-300 GB | ~720 GB - 1.2 TB |
|
|
|
|
The `max_disk_usage_gb = 200` default in vigilar.toml will hold approximately
|
|
30 days of motion-triggered recordings from 4 cameras. Increase to 500 GB for
|
|
comfortable 30-day retention with buffer, or 1 TB for 90 days.
|
|
|
|
---
|
|
|
|
## 8. Initial Camera Setup Checklist
|
|
|
|
After mounting cameras and connecting cables:
|
|
|
|
1. **Assign static IPs** to each camera via your router's DHCP reservation
|
|
(use the camera's MAC address). Suggested range: 192.168.1.101-104.
|
|
|
|
2. **Access each camera's web UI** at `http://<ip>` and:
|
|
- Change the default password to something strong (alphanumeric only)
|
|
- Set the time zone and enable NTP sync
|
|
- Disable cloud features / P2P (saves bandwidth, improves security)
|
|
- Enable RTSP (usually under Network > Advanced > RTSP)
|
|
- Set the main stream to 1920x1080 @ 25fps H.265 (or 4K if you prefer)
|
|
- Set the sub stream to 640x360 @ 15fps H.264
|
|
|
|
3. **Test RTSP with VLC** before configuring Vigilar:
|
|
```bash
|
|
vlc rtsp://admin:password@192.168.1.101:554/Preview_01_main
|
|
```
|
|
If VLC shows video, the stream works and Vigilar will pick it up.
|
|
|
|
4. **Test RTSP with ffprobe** for detailed stream info:
|
|
```bash
|
|
ffprobe -rtsp_transport tcp rtsp://admin:password@192.168.1.101:554/Preview_01_main
|
|
```
|
|
|
|
5. **Update Vigilar config** (`config/vigilar.toml`) with the RTSP URLs.
|
|
|
|
6. **Start Vigilar** and verify all cameras appear in the web UI:
|
|
```bash
|
|
vigilar start
|
|
```
|
|
|
|
---
|
|
|
|
## Sources
|
|
|
|
- [Reolink RLC-810A Product Page](https://reolink.com/product/rlc-810a/)
|
|
- [Reolink RLC-520A Product Page](https://reolink.com/product/rlc-520a/)
|
|
- [Amcrest IP5M-T1179EW-AI-V3 Product Page](https://amcrest.com/5mp-poe-camera-turret-ip5m-t1179ew-ai-v3.html)
|
|
- [Reolink RTSP/ONVIF Support](https://support.reolink.com/articles/900000617826-Which-Reolink-Products-Support-CGI-RTSP-ONVIF/)
|
|
- [Reolink RTSP URL Format (VLC Guide)](https://support.reolink.com/articles/360007010473-How-to-Live-View-Reolink-Cameras-via-VLC-Media-Player/)
|
|
- [Amcrest RTSP URL Format](https://support.amcrest.com/hc/en-us/articles/360052688931-Accessing-Amcrest-Products-Using-RTSP)
|
|
- [Reolink PoE Tier List (The Hook Up)](https://www.thesmarthomehookup.com/reolink-poe-tier-list-testing-every-reolink-wired-security-camera/)
|
|
- [Amcrest IP5M-T1179EW Frigate Config](https://github.com/blakeblackshear/frigate/discussions/15938)
|
|
- [Best Low-Cost PoE Switches (Data Wire Solutions)](https://datawiresolutions.com/blog/best-low-cost-poe-switches)
|
|
- [Reolink vs Amcrest Comparison](https://webcam.org/blog/reolink-vs-amcrest.html)
|
|
- [Amcrest IP5M-T1179EW on Amazon](https://www.amazon.com/Amcrest-5-Megapixel-NightVision-Weatherproof-IP5M-T1179EW-28MM/dp/B083G9KT4C)
|
|
- [Reolink RLC-810A on Amazon](https://www.amazon.com/REOLINK-Detection-Timelapse-Recording-RLC-810A/dp/B07K74GWX5)
|
|
- [NETGEAR GS308PP PoE Switch](https://www.amazon.com/s?k=NETGEAR+GS308PP)
|