Initial commit — Serveur Lucas SmartEye

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>
This commit is contained in:
Debian
2026-03-14 21:26:06 +01:00
commit 24dbc7cd6a
64 changed files with 9677 additions and 0 deletions

54
alert_ack_handler.py Normal file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env python3
"""
SmartEye SENTINEL - Handler d'Acquittement
============================================
Appelé par alert_ack.php pour mettre à jour le statut d'une alerte.
Usage : python3 alert_ack_handler.py <alert_id> <status> [detail]
Auteur : Unigest Solutions / SmartEye V30
"""
import sys
import json
sys.path.insert(0, '/var/www/lucas')
from alert_manager import mettre_a_jour_statut, get_alerte, AlertStatus
def main():
if len(sys.argv) < 3:
print(json.dumps({"success": False, "error": "Usage: alert_ack_handler.py <alert_id> <status> [detail]"}))
sys.exit(1)
alert_id = sys.argv[1]
status = sys.argv[2].upper()
detail = sys.argv[3] if len(sys.argv) > 3 else None
# Vérifier que l'alerte existe
alerte = get_alerte(alert_id)
if not alerte:
print(json.dumps({
"success": False,
"error": f"Alerte {alert_id} non trouvée (peut-être déjà résolue ou expirée)"
}))
sys.exit(0)
# Mettre à jour
result = mettre_a_jour_statut(alert_id, status, detail)
if result:
print(json.dumps({
"success": True,
"message": f"Alerte {alert_id[:8]}... mise à jour : {status}",
"alert_id": alert_id,
"new_status": status,
"previous_status": alerte.get("status", "?")
}))
else:
print(json.dumps({
"success": False,
"error": f"Impossible de passer au statut {status} (statut actuel: {alerte.get('status', '?')})"
}))
if __name__ == "__main__":
main()