wifitoggle для OpenWRT позволяет включать/выключать WiFi при помощи кнопки WPS на роутере

Feb 20, 2020 08:20

Для прошивки OpenWRT для роутеров существует множество различных пакетов. Больше всего мне нравятся блокировщик рекламы adblock и отключение wi-fi по расписанию Wi-Fi Schedule. К счастью, эти пакеты также предлагают luci пакеты для того, чтобы можно было изменять настройки из панели управления роутера.

Ещё один полезный для меня пакет - wifitoggle, который позволяет включать/выключать Wi-Fi на роутеру по нажатию кнопки на нём. При этом данная кнопка настраивается. Поскольку большинство роутеров идёт с кнопкой WPS, пользоваться которой всё равно не приходится (из-за небезопасности WPS), то проще всего использовать именно эту кнопку.

Установить wifitoggle можно и из панели управления роутера (зайдите на https://openwrt.lan и выберите в меню System -> Software). Также пакет можно установить и в командой строке, тем более что настраивать его придётся там же.

Как настроить включение Wi-Fi на роутере с прошивкой OpenWRT с автоматическим выключением по таймеру
  1. Для начала подключитесь к https://openwrt.lan с логином root и вашем паролем, используя SSH клиент (например, WinSCP для Windows, Putty для Linux). В Ubuntu достаточно выполнить ssh в Ubuntu в терминале:

    ssh root@openwrt.lan

    После этого нужно ввести пароль от своего root аккаунта на роутере.
  2. Для установки пакета введите команду

    opkg update && opkg install wifitoggle
  3. Посмотреть настройки можно при помощи команды uci show wifitoggle

    uci show wifitoggle

    Например, мои настройки выглядят так:

    wifitoggle.@wifitoggle[0]=wifitoggle
    wifitoggle.@wifitoggle[0].button='wps'
    wifitoggle.@wifitoggle[0].persistent='0'
    wifitoggle.@wifitoggle[0].timer='7200'
    wifitoggle.@wifitoggle[0].led_enable_trigger='timer'
    wifitoggle.@wifitoggle[0].led_enable_delayon='500'
    wifitoggle.@wifitoggle[0].led_enable_delayoff='500'
    wifitoggle.@wifitoggle[0].led_disable_default='0'


  4. По умолчанию timer имеет значение 600, что означает, что Wi-Fi автоматически отключится через 600 секунд (10 минут) после нажатия на кнопку WPS. Я изменил значение на 7200 секунд (2 часа) при помощи команды

    uci set wifitoggle.@wifitoggle[0].timer=7200

    Чтобы выключить таймер, нужно использовать ноль вместо секунд:
    uci set wifitoggle.@wifitoggle[0].timer=0
  5. Также настроил автоматическое выключение Wi-Fi при помощи следующих команд

    uci set wireless.@wifi-device[0].disabled=1
    uci set wifitoggle.@wifitoggle[0].persistent=0

    На Linksys EA3500 работающий Wi-Fi может быть не на radio0, а на radio1 или radio2. Конечно же при этом Wi-Fi Toggle начинает работать включать/выключать Wi-Fi при нажатии на кнопку WPS, только если выполнить одну из следующих команд:

    uci set wireless.@wifi-device[1].disabled=1
    uci set wireless.@wifi-device[2].disabled=1

    Для внесения изменений введите команду

    uci commit
  6. Можно показывать статус работы Wi-Fi при помощи светодиода. Для вывода списка светодиодов можно использовать команду

    ls /sys/class/leds/

    У роутера Linksys EA3500 в списке появляется всего один диод. А вот WNR3500L их гораздо больше. В том числе есть диод для Wi-Fi и для WPS. Я использовал светодиод для WPS, а не Wi-Fi

    uci set wifitoggle.@wifitoggle[0].led_sysfs="название_диода"

    По умолчанию Wi-Fi светодиод на WNR3500L при использовании wifitoggle работал довольно странно. Он переставал постоянно гореть при включенном Wi-Fi, но зато мерцал при передаче данных на подключенное устройство по Wi-Fi.

    С WPS диодом происходила другая странность. Он горел при выключенном Wi-Fi, независимо от значения wifitoggle.@wifitoggle[0].led_disable_default равного 1 или 0 и не горел при включённом. Перезагрузка роутера не помогала. Помогите разобраться.
  7. Не всегда кнопка на роутере называется WPS. Чтобы показать названия кнопок, выполните в командой строке:

    mkdir -p /etc/hotplug.d/button

    cat << "EOF" > /etc/hotplug.d/button/buttons
    logger "the button was ${BUTTON} and the action was ${ACTION}"
    EOF

    Далее нажмите кнопку на роутере, после чего выполните команду

    logread

    Для кнопки wps у меня получилось

    Thu Feb 20 09:02:07 2020 user.notice root: the button was wps and the action was pressed
    Thu Feb 20 09:02:07 2020 user.notice root: the button was wps and the action was released

    Кстати, openwrt позволяет вешать различные действия на кнопки при коротком и длинном нажатии.
p.s. Тестирование Wi-Fi Toggle проводилось на OpenWRT 19.07.1 - 19.07.4. Рекомендую обновить версию прошивки OpenWRT до последней стабильной.

роутер, openwrt

Previous post Next post
Up