wifischedule: Merged ignore_stations patch from user bedaes https://github.com/newkit/wifischedule/pull/2
Signed-off-by: Nils Koenig <openwrt@newk.it>
This commit is contained in:
parent
1fcb02973f
commit
36ce3ffbf1
4 changed files with 15 additions and 8 deletions
|
@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_NAME:=wifischedule
|
||||
PKG_VERSION:=1
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
PKG_LICENSE:=PRPL
|
||||
|
||||
PKG_MAINTAINER:=Nils Koenig <openwrt@newk.it>
|
||||
|
|
|
@ -34,9 +34,9 @@ The button "Determine Modules Automatically" tries to make a best guess determin
|
|||
When un-/loading the modules, there is a certain number of retries (`module_load`) performed.
|
||||
|
||||
The option "Force disabling wifi even if stations associated" does what it says - when activated it simply shuts down WiFi.
|
||||
When unchecked, its checked every `recheck_interval` minutes if there are still stations associated. Once the stations disconnect, WiFi is disabled.
|
||||
When unchecked, its checked every `recheck_interval` minutes if there are still stations associated. Once the stations disconnect, WiFi is disabled. To ignore associated stations add their MAC to `ignore_stations`.
|
||||
|
||||
Please note, that the parameters `module_load` and `recheck_interval` are only accessible through uci.
|
||||
Please note, that the parameters `module_load`, `recheck_interval` and `ignore_stations` are only accessible through uci.
|
||||
|
||||
## UCI Configuration `wifi_schedule`
|
||||
UCI configuration file: `/etc/config/wifi_schedule`:
|
||||
|
@ -47,6 +47,7 @@ config global
|
|||
option enabled '0'
|
||||
option recheck_interval '10'
|
||||
option modules_retries '10'
|
||||
# option ignore_stations 'AA:AA:AA:AA:AA:AA BB:BB:BB:BB:BB:BB'
|
||||
|
||||
config entry 'Businesshours'
|
||||
option enabled '0'
|
||||
|
|
|
@ -3,6 +3,7 @@ config global
|
|||
option enabled '0'
|
||||
option recheck_interval '10'
|
||||
option modules_retries '10'
|
||||
# option ignore_stations 'AA:AA:AA:AA:AA:AA BB:BB:BB:BB:BB:BB'
|
||||
|
||||
config entry 'Businesshours'
|
||||
option enabled '0'
|
||||
|
|
|
@ -248,16 +248,21 @@ soft_disable_wifi()
|
|||
return 1
|
||||
fi
|
||||
|
||||
local ignore_stations=$(_get_uci_value_raw ${GLOBAL}.ignore_stations)
|
||||
[ -n "${ignore_stations}" ] && _log "Ignoring station(s) ${ignore_stations}"
|
||||
|
||||
# check if no stations are associated
|
||||
local _if
|
||||
for _if in $(_get_wireless_interfaces)
|
||||
do
|
||||
output=$(${iwinfo} ${_if} assoclist)
|
||||
if [[ "$output" != "No station connected" ]]
|
||||
then
|
||||
local stations=$(${iwinfo} ${_if} assoclist | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
|
||||
if [ -n "${ignore_stations}" ]; then
|
||||
stations=$(echo "${stations}" | grep -vwi -E "${ignore_stations// /|}")
|
||||
fi
|
||||
|
||||
if [ -n "${stations}" ]; then
|
||||
_disable_wifi=0
|
||||
local stations=$(echo ${output}| grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' | tr '\n' ' ')
|
||||
_log "Station(s) ${stations}associated on ${_if}"
|
||||
_log "Station(s) $(echo ${stations}) associated on ${_if}"
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
Loading…
Reference in a new issue