From 143e67a859d4173ebc3a8448c6509384afa00a62 Mon Sep 17 00:00:00 2001 From: Sergey Date: Tue, 19 May 2026 11:23:08 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=20=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=B1=D0=BA=D0=B5=20MikroTik=20=D1=82=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=BA=D0=BE=20=D0=BE=D0=B4=D0=B8=D0=BD=20=D1=80=D0=B0=D0=B7=20?= =?UTF-8?q?+=20=D0=B2=D0=BE=D1=81=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- monitor.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) 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: