athunder (athunder) wrote,
athunder
athunder

Categories:

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

Для прошивки 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 до последней стабильной.


Tags: openwrt, роутер
Subscribe

Posts from This Journal “openwrt” Tag

promo athunder may 26, 2013 11:36 17
Buy for 10 tokens
Вы можете вернуть процент с покупок, используя специализированные Интернет сервисы возврата наличных (cash back, кешбэк, кэшбэк, кэшбек). Такие сервисы предоставляют ссылки на Интернет-магазины. Переходя по ним и совершая покупки, вы получаете процент в виде наличных обратно. Если обычные сайты…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment