API réception alertes chute (SmartEye/YOLO), analyse IA (Gemini 2.5 Flash), gestion alertes avec escalade (watchdog), notifications Firebase, dashboard web, documentation MkDocs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
85 lines
2.3 KiB
Markdown
85 lines
2.3 KiB
Markdown
# Architecture du système
|
||
|
||
## Vue d'ensemble
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph Domicile["🏠 Domicile du bénéficiaire"]
|
||
CAM1[Caméra 1 - Salon]
|
||
CAM2[Caméra 2 - Chambre]
|
||
CAM3[Caméra 3 - Cuisine]
|
||
JETSON[Jetson Orin Nano<br/>SmartEye v30]
|
||
CAM1 -->|RTSP local| JETSON
|
||
CAM2 -->|RTSP local| JETSON
|
||
CAM3 -->|RTSP local| JETSON
|
||
end
|
||
|
||
subgraph OVH["☁️ Serveur OVH (57.128.74.87)"]
|
||
API[api.php<br/>Réception images]
|
||
ANALYZE[analyze.py<br/>Gemini 2.5 Flash]
|
||
ALERT[alert_manager.py<br/>Cycle de vie alertes]
|
||
WATCHDOG[alert_watchdog.py<br/>Escalade cron]
|
||
DB[(database.json)]
|
||
API --> ANALYZE
|
||
ANALYZE --> ALERT
|
||
ANALYZE --> DB
|
||
WATCHDOG --> ALERT
|
||
end
|
||
|
||
subgraph Mobile["📱 Téléphones aidants"]
|
||
APP1[LucasApp - Fille]
|
||
APP2[LucasApp - Fils]
|
||
end
|
||
|
||
JETSON ==>|SSH Tunnel<br/>Image POST| API
|
||
ANALYZE ==>|Firebase Push| APP1
|
||
ANALYZE ==>|Firebase Push| APP2
|
||
JETSON -.->|RTSP Tunnel| APP1
|
||
JETSON -.->|Audio WebSocket| APP1
|
||
```
|
||
|
||
## Composants
|
||
|
||
### SmartEye (Jetson Orin Nano)
|
||
|
||
| Caractéristique | Détail |
|
||
|----------------|--------|
|
||
| **Modèle IA** | YOLOv8 (détection) + pose estimation |
|
||
| **Caméras max** | 6 par site |
|
||
| **Flux** | HD (/11) pour détection, SD (/12) pour streaming |
|
||
| **Communication** | SSH tunnels inversés vers OVH |
|
||
|
||
### Lucas (Serveur OVH)
|
||
|
||
| Caractéristique | Détail |
|
||
|----------------|--------|
|
||
| **Analyse IA** | Google Gemini 2.5 Flash (vision) |
|
||
| **Notifications** | Firebase Cloud Messaging |
|
||
| **SMS backup** | OVH SMS API |
|
||
| **Dashboard** | PHP + Tailwind CSS |
|
||
|
||
### LucasApp (Flutter)
|
||
|
||
| Caractéristique | Détail |
|
||
|----------------|--------|
|
||
| **Plateforme** | Android (Flutter) |
|
||
| **Flux vidéo** | RTSP via tunnels SSH |
|
||
| **Interphone** | WebSocket audio bidirectionnel (PCM A-law) |
|
||
| **Acquittement** | POST vers alert_ack.php |
|
||
|
||
## Convention de ports
|
||
|
||
Chaque site client utilise une plage de 10 ports :
|
||
|
||
```
|
||
Site N → base_port = 8550 + (N-1) × 10
|
||
|
||
Offset 0-5 : RTSP caméras (max 6)
|
||
Offset 6 : Audio WebSocket relay
|
||
Offset 7 : WebUI locale SmartEye
|
||
Offset 8-9 : Réservés
|
||
```
|
||
|
||
!!! note "Site pilote (Aléria)"
|
||
Le site pilote conserve ses ports historiques : 8554/8555/8556 (RTSP) + 8800 (audio).
|