diff --git a/monitor.py b/monitor.py
index f5d6852..8a168c3 100644
--- a/monitor.py
+++ b/monitor.py
@@ -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"✅ Подключение к MikroTik восстановлено\n"
+ f"🔧 Роутер: {router_identity} ({MIKROTIK_HOST})"
+ )
+
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"⚠️ Ошибка подключения к MikroTik\n"
- f"🔧 Роутер: {router_identity} ({MIKROTIK_HOST})\n"
- f"{exc}"
- )
+ if not mikrotik_error_notified:
+ mikrotik_error_notified = True
+ notify(
+ f"⚠️ Ошибка подключения к MikroTik\n"
+ f"🔧 Роутер: {router_identity} ({MIKROTIK_HOST})\n"
+ f"{exc}"
+ )
finally:
if pool:
try: