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