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: