Уже несколько лет пользуюсь роутером MikroTik Chateau LTE12. Устройство хорошее, но не идеальное. Одним из спорных моментов, как мне кажется, является решение производителя не размещать отдельный светодиод наличия доступа в Интернет на лицевой панели, как делают многие другие производители. Да, на корпусе роутера есть индикация уровня сигнала LTE, но SINR может быть отличным, а Интернет при этом может отсутствовать.
К счастью, возможности роутера позволяют переназначить функционал светодиодов и можно реализовать светодиод, отображающий наличие Интернета, в том числе, с учетом использования сразу двух модемов (внешнего и внутреннего) следующим образом:
- если “Интернет” доступен через оба модема, то светодиод светится непрерывно;
- если “Интернет” доступен только на одном из модемов, то светодиод промаргивает;
- если оба модема не видят “Интернет”, то светодиод выключен.
В этой заметке вы найдете небольшой скрипт для планировщика задач, который отображает наличие Интернета в роутере через светодиод.
Суть скрипта проста: проверяем пинг до заданного IP адреса через оба интерфейса (количество проверок указывается через параметр PingCount) и далее смотрим на результат. В качестве IP адреса в скрипте используется публичный DNS сервер Яндекса.
В примере используется два интерфейса: lte1 – встроенный модем, lte3 – внешний модем.
Светодиод для индикации (параметр LedNum) в скрипте это крайний правый в группе светодиодов уровня сигнала: led5.
Для управления светодиодами через скрипт используется поле type, которое устанавливается в положение on или off в зависимости от того, горит светодиод или нет.
Мигание реализовано через цикл отключения и включения светодиода. Тело цикла в скрипте занимает 1 секунду (500 мс светодиод включен, 500 мс светодиод выключен), поэтому 5 морганий занимает в итоге 5 секунд.
Добавить скрипт удобнее всего через Winbox: System -> Scripts

Имя скрипта может быть любым, например, InternetLed, главное запомните его – оно пригодится для настройки планировщика.
Собственно сам скрипт
:local PingCount 2
:local LedNum led5
:local RemoteIp 77.88.8.1
:local isp1 [/ping $RemoteIp count=$PingCount interface="lte1"]
:local isp2 [/ping $RemoteIp count=$PingCount interface="lte3"]
/system leds set [find where leds=$LedNum] disabled=no
# Если оба IP доступны
:if (($isp1 >= $PingCount) && ($isp2 >= $PingCount)) do={
/system leds set [find where leds=$LedNum] type=on
} else={
# Если оба IP недоступны
:if (($isp1 < 1) && ($isp2 < 1)) do={
/system leds set [find where leds=$LedNum] type=on
} else={
# Если доступен только один IP, светодиод мигает
:for i from=1 to=5 do={
/system leds set [find where leds=$LedNum] type=on
:delay 500ms
/system leds set [find where leds=$LedNum] type=off
:delay 500ms
}
/system leds set [find where leds=$LedNum] type=off
}
}
Сохраняем и добавляем скрипт в планировщик: System -> Scheduler, указав интервал запуска и его имя.

В моем примере скрипт запускается каждые 10 секунд. Поэтому при недоступности целевого IP адреса на одном из модемов светодиод будет мигать 5 секунд, а далее около 5 секунд находиться в выключенном состоянии.
При желании логика скрипта может быть адаптирована для других задач, например, работа через один модем или проводной канал.
А это пока все. Надеюсь заметка была полезной.