Якщо Ваш роутер D-Link DIR-320 і він працює на альтернативній прошивці DD-WRT то існує чудова можливість керувати світлодіодами пристрою, наприклад за допомогою скриптів.
Використаємо освітлення бокової кнопки для того щоб автоматично показувати чи є зв’язок з потрібними серверами.
Мені зручно перевіряти доступність (Ping) з трьома серверами: 1-й — той з яким встановилось з’єднання PPPoE (мій шлюз), 2-й — шлюз провайдера (щоб знати коли в провайдера пропадають зовнішні канали, якщо це станеться) і 3-й — якийсь сервер в “далекому” інтернеті (наприклад DNS від Google — 8.8.8.8).
Найпростіший метод – закинути скрипт в роутер через його веб-інтерфейс.
Використовуйте сторінку “Commands“, як зображено на малюнку (зберігайте через Save Startup).
Після збереження перевантажте роутер.
Тепер бокове світло буде моргати один раз синім, якщо є зв’язок з усіма серверами, або червоним світлом, якщо зв’язку з одним із серверів немає.
Кількість блимань червоного світла вкаже на номер сервера на якому зв’язок обривається.
Не забудьте вказати змінну SUPER_GATEWAY (якийсь зовнішній шлюз провайдера)!
#!/bin/sh
# SYM, 18.03.11
export PATH=/bin:/usr/bin:/sbin:/usr/sbin
SUPER_GATEWAY="ВПИШІТЬ_IP_СЕРВЕРА_ПРОВАЙДЕРА_СЮДИ"
GOOGLE="8.8.8.8"
GPIO="gpio"
DELAY=3
Red=3
Blue=4
while sleep $DELAY
do
GATEWAY=`ip route | awk '/default via/ {print $3}'`
COUNT=1
if ping -c 1 $SUPER_GATEWAY >/dev/null
then
COLOR=$Blue
if ping -c 1 $GOOGLE >/dev/null
then
COLOR=$Blue
else
COUNT=2
COLOR=$Red
fi #GOOGLE
else
COUNT=1
COLOR=$Red
fi #SUPER_GATEWAY
CUR=1
while [ $CUR -le $COUNT ]
do
$GPIO disable $COLOR
usleep 100000
$GPIO enable $COLOR
usleep 500000
CUR=`expr $CUR + 1`
done #bink
done #sleep
Для цікавих: змінюючи порядковий номер для команди gpio можна керувати і іншими світлодіодами (наприклад індикатором USB (принтер), на передній панелі).
18.03.11 оновив скрипт (дрібні виправлення).


Привіт Юра,
це баг чи фіча, що по gpio disable 3 роутер вмикає світлодіод, а по gpio enable 3 вимикає? Це стосується gpio 3 та 4, логіка роботи світлодіоду з позначкою принтера (gpio 5) правильна (enable – вмикає, disable – вимикає)
По скрипту – моргати світлодіодиками – ок, а от стрічки echo “Ping of $SUPER_GATEWAY – OK.” та echo “Ping of $GOOGLE – OK.” я б закоментував
Зараз вже точно не пригадаю, але здається я використовував текстовий вивід коли запускав скрипт з консолі — для тестування.
Я також запускав з консолі, саме тому і закоментував зайвив вивід