Consolider l'envoi de notifications
This commit is contained in:
13
.env
13
.env
@@ -12,10 +12,17 @@ MQTT_PASS=3J@bjYP0
|
|||||||
MQTT_PORT=1883
|
MQTT_PORT=1883
|
||||||
|
|
||||||
# Synology Chat
|
# Synology Chat
|
||||||
SYNO_CHAT_WEBHOOK=https://mj91.fr/chat/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=QpLWAZEqIW1EOBHkfDkmr1LqC3P3J1SASWfqpchZdd1xPY7xGbYerS4lCADJnPrm
|
SYNO_CHAT_WEBHOOK_MONITOR_SACLAY=https://mj91.fr/chat/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=QpLWAZEqIW1EOBHkfDkmr1LqC3P3J1SASWfqpchZdd1xPY7xGbYerS4lCADJnPrm
|
||||||
SYNO_CHAT_VERIFY_SSL=true
|
SYNO_CHAT_WEBHOOK_MONITOR_MEUDON=https://mj91.fr/chat/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=QpLWAZEqIW1EOBHkfDkmr1LqC3P3J1SASWfqpchZdd1xPY7xGbYerS4lCADJnPrm
|
||||||
SYNO_CHAT_BOTNAME="Gestion Gyro"
|
|
||||||
|
SYNO_CHAT_WEBHOOK_GYRO_SACLAY=https://mj91.fr/chat/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=NUqdEGbtmTBBGIN29z0AVZUeQnyZ8tskyXGpkOFqHwqOAXB8quvHxlEcewKX3Xnq
|
||||||
|
SYNO_CHAT_WEBHOOK_GYRO_MEUDON=https://mj91.fr/chat/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=NUqdEGbtmTBBGIN29z0AVZUeQnyZ8tskyXGpkOFqHwqOAXB8quvHxlEcewKX3Xnq
|
||||||
|
|
||||||
|
SYNO_CHAT_BOTNAME_MONITOR="Injection données dans tables"
|
||||||
|
SYNO_CHAT_BOTNAME_GYRO="Gestion Gyro"
|
||||||
|
|
||||||
SYNO_CHAT_TIMEOUT=10
|
SYNO_CHAT_TIMEOUT=10
|
||||||
|
SYNO_CHAT_VERIFY_SSL=true
|
||||||
SYNO_CHAT_GYRO_ENABLED=1
|
SYNO_CHAT_GYRO_ENABLED=1
|
||||||
|
|
||||||
# Boucle rapide du gyro
|
# Boucle rapide du gyro
|
||||||
|
|||||||
@@ -392,7 +392,7 @@ def depassement_depuis_30min(site: str, sonde: str, seuil: float) -> bool:
|
|||||||
def send_synology_chat(message: str, *, username: str | None = None) -> bool:
|
def send_synology_chat(message: str, *, username: str | None = None) -> bool:
|
||||||
webhook = (
|
webhook = (
|
||||||
_env_str(f"SYNO_CHAT_WEBHOOK_{SITE}") or
|
_env_str(f"SYNO_CHAT_WEBHOOK_{SITE}") or
|
||||||
_env_str(f"SYNO_CHAT_WEBHOOK_{SITE.upper()}") or
|
_env_str(f"SYNO_CHAT_WEBHOOK_MONITOR") or
|
||||||
_env_str("SYNO_CHAT_WEBHOOK")
|
_env_str("SYNO_CHAT_WEBHOOK")
|
||||||
)
|
)
|
||||||
if not webhook:
|
if not webhook:
|
||||||
|
|||||||
@@ -308,7 +308,7 @@ def depassement_depuis_30min(site: str, sonde: str, seuil: float) -> bool:
|
|||||||
def send_synology_chat(message: str, *, username: str | None = None) -> bool:
|
def send_synology_chat(message: str, *, username: str | None = None) -> bool:
|
||||||
webhook = (
|
webhook = (
|
||||||
_env_str(f"SYNO_CHAT_WEBHOOK_{SITE}") or
|
_env_str(f"SYNO_CHAT_WEBHOOK_{SITE}") or
|
||||||
_env_str(f"SYNO_CHAT_WEBHOOK_{SITE.upper()}") or
|
_env_str(f"SYNO_CHAT_WEBHOOK_MONITOR_SACLAY") or
|
||||||
_env_str("SYNO_CHAT_WEBHOOK")
|
_env_str("SYNO_CHAT_WEBHOOK")
|
||||||
)
|
)
|
||||||
if not webhook:
|
if not webhook:
|
||||||
|
|||||||
@@ -47,15 +47,22 @@ DEF_NORMAL_CONFIRM = int(_env_str("GYRO_NORMAL_CONFIRM", "6"))
|
|||||||
|
|
||||||
def send_synology_chat(message: str, *, site: str, username: str | None = None) -> bool:
|
def send_synology_chat(message: str, *, site: str, username: str | None = None) -> bool:
|
||||||
webhook = (
|
webhook = (
|
||||||
_env_str(f"SYNO_CHAT_WEBHOOK_{site}")
|
_env_str(f"SYNO_CHAT_WEBHOOK_GYRO_{site}") or
|
||||||
or _env_str(f"SYNO_CHAT_WEBHOOK_{site.upper()}")
|
_env_str(f"SYNO_CHAT_WEBHOOK_GYRO_{site.upper()}") or
|
||||||
or _env_str("SYNO_CHAT_WEBHOOK")
|
_env_str("SYNO_CHAT_WEBHOOK_GYRO") or
|
||||||
|
_env_str(f"SYNO_CHAT_WEBHOOK_{site}") or
|
||||||
|
_env_str(f"SYNO_CHAT_WEBHOOK_{site.upper()}") or
|
||||||
|
_env_str("SYNO_CHAT_WEBHOOK")
|
||||||
)
|
)
|
||||||
if not webhook:
|
if not webhook:
|
||||||
log.info("[%s] Synology Chat non configuré.", site)
|
log.info("[%s] Synology Chat non configuré.", site)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
botname = username or _env_str("SYNO_CHAT_BOTNAME", "Gestion Gyro")
|
botname = (
|
||||||
|
username or
|
||||||
|
_env_str("SYNO_CHAT_BOTNAME_GYRO") or
|
||||||
|
_env_str("SYNO_CHAT_BOTNAME", "Gestion Gyro")
|
||||||
|
)
|
||||||
timeout = int(_env_str("SYNO_CHAT_TIMEOUT", "10"))
|
timeout = int(_env_str("SYNO_CHAT_TIMEOUT", "10"))
|
||||||
verify_ssl = _env_bool("SYNO_CHAT_VERIFY_SSL", True)
|
verify_ssl = _env_bool("SYNO_CHAT_VERIFY_SSL", True)
|
||||||
|
|
||||||
@@ -63,7 +70,9 @@ def send_synology_chat(message: str, *, site: str, username: str | None = None)
|
|||||||
if botname:
|
if botname:
|
||||||
chat_payload["username"] = botname
|
chat_payload["username"] = botname
|
||||||
|
|
||||||
form_data = {"payload": json.dumps(chat_payload, ensure_ascii=False)}
|
form_data = {
|
||||||
|
"payload": json.dumps(chat_payload, ensure_ascii=False)
|
||||||
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
@@ -80,10 +89,7 @@ def send_synology_chat(message: str, *, site: str, username: str | None = None)
|
|||||||
try:
|
try:
|
||||||
data = response.json()
|
data = response.json()
|
||||||
if isinstance(data, dict):
|
if isinstance(data, dict):
|
||||||
success = bool(data.get("success", False))
|
return bool(data.get("success", False))
|
||||||
if not success:
|
|
||||||
log.warning("[%s] Synology Chat a répondu sans succès: %s", site, data)
|
|
||||||
return success
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user