02-ago: [proyecto] vigilancia - notificacion personalizada por Telegram a destinatarios + aviso Discord (DM+TTS) a Carolina/Ines segun persona detectada
This commit is contained in:
@@ -7,12 +7,35 @@ import cv2
|
||||
import config
|
||||
from camara import CamaraRTSP
|
||||
from detector_movimiento import DetectorMovimiento
|
||||
from notificador import disparar_webhook_alexa, enviar_telegram
|
||||
from notificador import (disparar_webhook_alexa, enviar_telegram,
|
||||
enviar_texto_telegram)
|
||||
|
||||
USAR_YOLO = True
|
||||
identificador = None
|
||||
|
||||
|
||||
def notificar_personales(resultados, cam_nombre):
|
||||
"""Mensaje personalizado por Telegram a cada destinatario segun la persona."""
|
||||
conocidas = {r["nombre"] for r in resultados if "nombre" in r}
|
||||
if not conocidas or not config.RECIPIENTES:
|
||||
return
|
||||
nombres = ", ".join(sorted(conocidas))
|
||||
ts = datetime.now().strftime("%H:%M:%S")
|
||||
for chat in config.RECIPIENTES:
|
||||
for nombre in sorted(conocidas):
|
||||
texto = (f"📢 <b>{nombre}</b>, ¿qué estás haciendo? "
|
||||
f"(vista en {cam_nombre} a las {ts})")
|
||||
enviar_texto_telegram(texto, chat_id=chat)
|
||||
|
||||
|
||||
def notificar_discord(resultados, cam_nombre):
|
||||
try:
|
||||
from discord_notif import notificar_discord_personales
|
||||
notificar_discord_personales(resultados, cam_nombre)
|
||||
except Exception as e:
|
||||
print(f"[Discord] Error: {e}")
|
||||
|
||||
|
||||
def cargar_identificador():
|
||||
global identificador
|
||||
if identificador is None:
|
||||
@@ -129,9 +152,9 @@ def main():
|
||||
)
|
||||
|
||||
texto = f"🚨 Presencia en {cam.nombre} - {ts}"
|
||||
resultados = []
|
||||
if ident is not None:
|
||||
try:
|
||||
resultados = []
|
||||
for _ in range(3):
|
||||
f2 = cam.leer_frame()
|
||||
if f2 is None:
|
||||
@@ -155,6 +178,12 @@ def main():
|
||||
|
||||
if cv2_ok:
|
||||
enviar_telegram(ruta, texto)
|
||||
if resultados:
|
||||
try:
|
||||
notificar_personales(resultados, cam.nombre)
|
||||
notificar_discord(resultados, cam.nombre)
|
||||
except Exception as e:
|
||||
print(f"[{cam.nombre}] Error notificando personales: {e}")
|
||||
disparar_webhook_alexa(texto)
|
||||
ultima_alerta[i] = ahora
|
||||
print(texto)
|
||||
|
||||
Reference in New Issue
Block a user