fix: уведомление об ошибке MikroTik только один раз + восстановление
This commit is contained in:
+16
-5
@@ -425,6 +425,7 @@ def main() -> None:
|
||||
threading.Thread(target=start_web_server, daemon=True).start()
|
||||
|
||||
startup_notified = False
|
||||
mikrotik_error_notified = False # флаг: уже уведомили об ошибке подключения
|
||||
|
||||
while True:
|
||||
pool = None
|
||||
@@ -439,6 +440,14 @@ def main() -> None:
|
||||
api = pool.get_api()
|
||||
log.info("Подключено к MikroTik")
|
||||
|
||||
# Если до этого была ошибка — уведомить о восстановлении
|
||||
if mikrotik_error_notified:
|
||||
mikrotik_error_notified = False
|
||||
notify(
|
||||
f"✅ <b>Подключение к MikroTik восстановлено</b>\n"
|
||||
f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)"
|
||||
)
|
||||
|
||||
ip_list = fetch_address_list(api)
|
||||
|
||||
if not startup_notified:
|
||||
@@ -532,11 +541,13 @@ def main() -> None:
|
||||
|
||||
except Exception as exc:
|
||||
log.error("Ошибка: %s", exc)
|
||||
notify(
|
||||
f"⚠️ <b>Ошибка подключения к MikroTik</b>\n"
|
||||
f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)\n"
|
||||
f"<code>{exc}</code>"
|
||||
)
|
||||
if not mikrotik_error_notified:
|
||||
mikrotik_error_notified = True
|
||||
notify(
|
||||
f"⚠️ <b>Ошибка подключения к MikroTik</b>\n"
|
||||
f"🔧 Роутер: <b>{router_identity}</b> (<code>{MIKROTIK_HOST}</code>)\n"
|
||||
f"<code>{exc}</code>"
|
||||
)
|
||||
finally:
|
||||
if pool:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user