Open-source wildfire detection and suppression system for edge deployment
Wildfire Watch is an automated fire detection and suppression platform that runs entirely on your local network. It uses AI-powered camera monitoring to detect fires and automatically activates sprinkler systems when multiple cameras confirm a fire.
- π― Multi-camera consensus - Prevents false alarms
- π Edge AI acceleration - Supports Coral, Hailo, NVIDIA GPUs
- π§ Automated pump control - GPIO-based sprinkler activation
- πΉ 24/7 recording - Frigate NVR with motion detection
- π Secure by default - TLS encryption (requires certificate setup)
- π Self-healing - Automatic camera discovery and failover
# Clone repository
git clone https://github.com/your-org/wildfire-watch.git
cd wildfire-watch
# Copy environment template
cp .env.example .env
# Edit .env to configure your settings# Use default certificates - INSECURE, for testing only!
# No action needed, default certs are included# Generate secure certificates and enable TLS
./scripts/configure_security.sh enable
# This will guide you through certificate generation if needed
# Or manually:
./scripts/generate_certs.sh custom
echo "MQTT_TLS=true" >> .env# Deploy with Docker Compose
docker-compose up -d
# Verify all services are running
docker ps
# Check service logs
docker-compose logs -f- Frigate NVR: http://your-device:5000
- Default credentials are shown in logs:
docker logs security_nvr | grep Password
- Default credentials are shown in logs:
- MQTT Broker: Port 1883 (insecure) or 8883 (TLS)
# Check current security status
./scripts/configure_security.sh status
# Example output:
# β TLS is ENABLED
# β Using CUSTOM certificates
# β MQTT broker is using TLS port 8883- Raspberry Pi 5 Guide - Recommended for most users
- Linux PC Guide - For x86 systems with GPU
- Hardware Requirements - Complete component list
- Camera Detector - Automatic camera discovery
- Security NVR - Frigate configuration
- Fire Consensus - Multi-camera validation
- GPIO Trigger - Pump control system
- MQTT Broker - Communication hub
- Camera Telemetry - Health monitoring and metrics
- Model Converter - Custom AI models
- Multi-Node Setup - Scale to large properties
- Troubleshooting - Common issues
- Coral TPU Python 3.8 - Important compatibility info
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β IP Cameras ββββββΆβ Camera ββββββΆβ Frigate β
β (RTSP) β β Detector β β NVR β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β
βΌ βΌ
βββββββββββββββ βββββββββββββββ
β MQTT βββββββ Fire β
β Broker β β Consensus β
βββββββββββββββ βββββββββββββββ
β β
βΌ βΌ
βββββββββββββββ βββββββββββββββ
β GPIO ββββββΆβ Pump β
β Trigger β β System β
βββββββββββββββ βββββββββββββββ
All services now use standardized base classes for improved reliability:
- MQTTService: Automatic reconnection with exponential backoff
- HealthReporter: Standardized health monitoring and metrics
- ThreadSafeService: Safe thread management and shutdown
- ConfigBase: Centralized configuration management
# Camera credentials (comma-separated username:password pairs)
CAMERA_CREDENTIALS=username:password,username2:password2
# Fire detection
CONSENSUS_THRESHOLD=2 # Cameras required for consensus
MIN_CONFIDENCE=0.7 # AI confidence threshold
# Pump control
MAX_ENGINE_RUNTIME=1800 # 30 min (adjust for your water tank size!)
REFILL_MULTIPLIER=40 # Refill duration multiplier
# Hardware
FRIGATE_DETECTOR=auto # auto|coral|hailo|gpu|cpu
# Service health monitoring
HEALTH_REPORT_INTERVAL=60 # Health report frequency (seconds)
# MQTT reconnection (all services)
MQTT_RECONNECT_MIN_DELAY=1.0 # Min reconnection delay
MQTT_RECONNECT_MAX_DELAY=60.0 # Max reconnection delaySee Configuration Guide for all options.
docker-compose up -dbalena push wildfire-watchkubectl apply -k k8s/| Accelerator | Performance | Power | Recommended For |
|---|---|---|---|
| Coral TPU* | 15-20ms | 2W | Low power, always-on |
| Hailo-8L | 20-25ms | 2.5W | Raspberry Pi 5 |
| Hailo-8 | 10-15ms | 5W | High accuracy |
| NVIDIA GPU | 8-12ms | 15W+ | Multiple cameras |
| CPU Only | 200-300ms | 5W | Testing only |
*Note: Coral TPU requires Python 3.8 for tflite_runtime compatibility
See CONTRIBUTING.md for development setup.
- π Documentation
- π¬ Discussions
- π Issues
MIT License - See LICENSE for details.
This system is provided as-is for educational and experimental use. It does not guarantee fire prevention or property protection. Always follow local fire safety regulations and consult professionals for critical safety systems.