AdSense Top

India NVR Monitor

India NVR Monitor – Multi-Location Centralized CCTV Dashboard

Managing hundreds of CCTV cameras across multiple factories, offices, warehouses, showrooms, and remote locations can quickly become difficult.

India NVR Monitor is a professional Flask-based centralized CCTV monitoring system designed to monitor Hikvision NVRs and IP cameras across multiple locations in India from a single dashboard.

Instead of checking each NVR or camera individually, administrators can monitor the entire CCTV infrastructure through one centralized w
eb application.

What Is India NVR Monitor?

India NVR Monitor provides a structured hierarchy:

Location → NVR → Camera

For example:

India
│
├── Bikaner
│   ├── Karni
│   │   ├── NVR-01
│   │   │   ├── Camera 01
│   │   │   ├── Camera 02
│   │   │   └── Camera 03
│   │   └── NVR-02
│   │
│   ├── Bichhwal
│   ├── HAPL
│   ├── ASRS
│   └── FROZEN
│
└── Mumbai
    ├── Malad Showroom
    └── Malad Factory

This makes it possible for management and IT teams to quickly understand the health of the complete CCTV network.

Key Features

1. Multi-Location CCTV Monitoring

Monitor CCTV infrastructure from multiple cities and sites through a single application.

Locations can contain multiple NVRs, and each NVR can contain multiple cameras.

There is no need to modify the application code when adding a new location or NVR.

2. Hikvision NVR Integration

The system uses Hikvision ISAPI to communicate with compatible NVRs.

Administrators can:

  • Add NVRs

  • Test NVR connectivity

  • Discover cameras automatically

  • Retrieve camera information

  • Monitor NVR status

  • Monitor connected cameras

This significantly reduces manual camera configuration.

3. NVR-First Monitoring Logic

One of the important design decisions is the NVR-first monitoring architecture.

Instead of attempting an RTSP connection to every camera when an NVR itself is unavailable, the system first checks the NVR.

For example:

NVR Online
   │
   ├── Camera 01 → ONLINE
   ├── Camera 02 → ONLINE
   ├── Camera 03 → OFFLINE
   └── Camera 04 → ONLINE

If the NVR goes offline:

NVR Offline
   │
   ├── Camera 01 → NVR_OFFLINE
   ├── Camera 02 → NVR_OFFLINE
   ├── Camera 03 → NVR_OFFLINE
   └── Camera 04 → NVR_OFFLINE

This prevents unnecessary RTSP connection attempts and makes the monitoring results much more meaningful.

4. RTSP Online / Offline Detection

Individual cameras are monitored using RTSP connectivity.

The system can identify situations such as:

  • Camera online

  • Camera offline

  • NVR offline

  • Camera recovered

  • Monitoring errors

This allows the IT team to identify whether the problem is with an individual camera or the NVR/network infrastructure.

5. Last Known Good Snapshot

The application can capture camera snapshots using OpenCV.

When a camera becomes temporarily unavailable, the system can retain the last known good frame instead of leaving the dashboard completely blank.

Snapshots are stored under:

static/snapshots/

This provides useful visual context when reviewing camera status.

Email Alerts With Anti-Spam Protection

The monitoring system can automatically send email alerts when cameras or NVRs remain offline beyond a configured threshold.

Example:

CAMERA OFFLINE
Location: Karni
NVR: NVR-01
Camera: Camera 07
Status: OFFLINE
Time: 10:42 AM

When the device becomes available again:

CAMERA RECOVERED
Location: Karni
NVR: NVR-01
Camera: Camera 07
Status: ONLINE
Time: 11:03 AM

Anti-spam logic prevents the system from sending repeated emails every few seconds for the same failure.

Executive Dashboard

The system provides a centralized dashboard with important CCTV infrastructure KPIs.

Management can quickly see:

  • Total locations

  • Total NVRs

  • Total cameras

  • Online cameras

  • Offline cameras

  • NVR offline count

  • Alert statistics

  • Problem locations

  • Monitoring events

Charts and KPI cards provide a quick overview without requiring the user to inspect every NVR individually.

Background Monitoring

Monitoring runs in the background using Python's ThreadPoolExecutor.

This allows multiple NVRs and cameras to be monitored concurrently instead of checking every device sequentially.

The architecture can therefore be scaled for larger CCTV installations by adjusting the worker configuration.

User Roles

The application supports different user access levels.

Admin

Administrators can:

  • Manage locations

  • Add/edit NVRs

  • Discover cameras

  • Configure monitoring

  • Configure email settings

  • View reports

  • Manage system configuration

Viewer

Viewers can access monitoring information without receiving administrative configuration privileges.

Passwords are stored using secure password hashing rather than plain-text authentication.

Automatic Audit Excel Reports

The system also maintains daily audit logs in Excel format.

Example:

audit/
└── 2026-09/
    ├── 2026-09-05.xlsx
    ├── 2026-09-06.xlsx
    └── 2026-09-07.xlsx

Each daily workbook contains:

  • Summary

  • Alerts

  • Events

  • Cameras

  • NVRs

Alerts and events are appended as they occur, while camera and NVR status information can be refreshed during monitoring cycles.

Reports can be downloaded directly from the Reports section by selecting:

Year → Month → Day

This provides an audit trail that can be useful for IT teams, security departments, and management reviews.

Configuration

The system currently uses JSON-based configuration.

NVRall.json

Contains the CCTV hierarchy:

Locations
   ↓
NVRs
   ↓
Cameras

Administrators can manage this information through the web interface.

config.json

Contains settings such as:

  • SMTP configuration

  • Monitoring intervals

  • Offline thresholds

  • Email recipients

  • Application configuration

Environment variables can also be used for important settings:

NVR_SECRET_KEY
NVR_HOST
NVR_PORT
NVR_DEBUG

For production deployments, sensitive credentials and secret keys should be protected appropriately.

Quick Start – Windows

Clone or copy the project and create a Python virtual environment:

cd india_nvr_monitor
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python app.py

Then open:

http://localhost:5000

Linux

cd india_nvr_monitor
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 app.py

For Excel audit reports:

pip install openpyxl

First-Time Setup

The typical deployment workflow is:

Step 1: Login as administrator.

Step 2: Create the required locations.

Step 3: Add NVRs under each location.

Step 4: Enter the NVR IP address and credentials.

Step 5: Use Test Connection.

Step 6: Select Discover Cameras.

Step 7: The discovered cameras become available for monitoring.

Step 8: Configure SMTP and alert recipients.

Step 9: Allow the background monitoring service to run.

Step 10: Monitor the complete CCTV infrastructure from the dashboard.

Example Deployment

A company with multiple factories could deploy the system like this:

Central CCTV Monitoring Server
             │
             ├── Bikaner
             │     ├── Karni
             │     ├── Bichhwal
             │     ├── HAPL
             │     ├── ASRS
             │     └── FROZEN
             │
             └── Mumbai
                   ├── Malad Showroom
                   └── Malad Factory

Each site can have one or more NVRs, while every NVR can contain multiple IP cameras.

The monitoring team gets a single centralized view instead of logging into individual NVRs.

Technology Stack

The project is built using:

  • Python

  • Flask

  • Hikvision ISAPI

  • RTSP

  • OpenCV

  • ThreadPoolExecutor

  • Bootstrap 5

  • Chart.js

  • Flask-Login

  • JSON configuration

  • OpenPyXL

  • SMTP email alerts

The application has been designed with a modular architecture:

app/
├── config_manager.py
├── nvr_manager.py
├── camera_monitor.py
├── email_manager.py
├── monitoring.py
├── history.py
├── auth.py
├── routes.py
└── utils.py

Each module handles a specific responsibility, making the application easier to maintain and extend.

Production Deployment

For a production environment, the following practices are recommended:

  • Change the default administrator password

  • Change the Flask SECRET_KEY

  • Protect NVR credentials

  • Use environment variables for sensitive configuration

  • Run behind a reverse proxy such as Nginx

  • Use HTTPS when the application is accessed remotely

  • Ensure snapshot directories have appropriate permissions

  • Configure regular backups

  • Consider SQLite or PostgreSQL for larger deployments

  • Increase monitoring workers according to the number of devices

The initial JSON configuration makes the system easy to deploy, while the architecture allows migration to a database as the installation grows.

Acceptance Testing

A typical deployment can be validated using the following checklist:

  • Add a location

  • Add an NVR

  • Test NVR connection

  • Discover cameras

  • Confirm camera status

  • Disconnect a camera

  • Verify OFFLINE detection

  • Verify email alert

  • Reconnect the camera

  • Verify RECOVERED email

  • Disconnect the NVR

  • Confirm all cameras become NVR_OFFLINE

  • Add another location/NVR

  • Disable an NVR

  • Confirm monitoring stops for that NVR

  • Verify daily Excel audit reports

Who Can Use It?

India NVR Monitor can be useful for organizations managing CCTV infrastructure across:

  • Manufacturing plants

  • Warehouses

  • Corporate offices

  • Retail stores

  • Showrooms

  • Educational campuses

  • Hotels

  • Logistics facilities

  • Multiple branch offices

  • Industrial sites

  • Large residential/commercial properties

It is particularly useful where a centralized IT or security team needs visibility into CCTV infrastructure deployed across different cities.

Future Expansion

The current architecture can be extended further with features such as:

  • SQLite/PostgreSQL database

  • User and permission management

  • Mobile-responsive monitoring

  • WhatsApp/Telegram alerts

  • SMS alerts

  • Camera downtime analytics

  • Monthly uptime reports

  • NVR storage/health monitoring

  • Disk-space monitoring

  • Camera-wise uptime percentage

  • Location-wise SLA reports

  • Automatic PDF reports

  • Multi-server monitoring

  • Cloud dashboard

  • Remote troubleshooting tools

  • AI-based camera health analytics

Conclusion

India NVR Monitor is designed to solve a common problem in large CCTV deployments: how to monitor multiple NVRs and hundreds of cameras from different locations through one centralized system.

With its multi-location hierarchy, Hikvision integration, NVR-first monitoring logic, RTSP detection, snapshot management, email alerts, background workers, executive dashboard, role-based access, and automated Excel audit reports, it provides a practical foundation for centralized CCTV infrastructure monitoring.

For organizations operating CCTV systems across multiple sites in India, centralized monitoring can reduce manual checking, improve response time, and provide a clear historical record of CCTV availability.

India NVR Monitor — One dashboard. Multiple locations. Complete CCTV visibility.

License

Proprietary — for the customer project only.



Subscribe Us on YouTube: CCTV Networking Technical Support

Post a Comment

0 Comments