Temat: MR3420 i przycisk wps

Mam MR3420 v2. Pod przycisk WPS (ten schowany z boku) podpiąłem sobie przekaźnik który zwiera styki jeśli nastąpi awaria np. jakiegoś urządzenia.
Używam najnowszego gargulca z extrootem. Zauważyłem, że przyciśnięcie i zwolnienie przycisku jest na odwrót.
W konfiguracji /etc/config/system

config button 'awaria_start'
        option button 'wps'
        option action 'released'
        option handler '/etc/awarie/awaria start'

config button 'awaria_stop'
        option button 'wps'
        option action 'pressed'
        option handler '/etc/awarie/awaria end'

to mi w zasadzie działa jeśli wcisnę przycisk to wywołują się skrypty.

Chciałbym jednak skorzystać jeszcze z opcji min i max jednak nie za bardzo mi to działa.
Chciałbym, żeby system nie reagował na krótkie awarie, krótsze niż powiedzmy 5 sekund.

config button 'awaria_start'
        option button 'wps'
        option action 'released'
        option handler '/etc/awarie/awaria start'
        option min '5'

od razu wywołuje handlera

2

Odp: MR3420 i przycisk wps

I jeszcze max określ.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: MR3420 i przycisk wps

Dałem min na 5 i max na 10 ale zdarzenie wywołuje się od razu.

Ale nawet jeśli by to działało to jeśli nie zwolnię przycisku przed 10 sekundą to chyba i tak się nie powinno wywołać?

Chyba muszę zrobić jakąś własną obsługę ze zliczaniem czasu. Np. w zdarzeniu released dać sleep 10 i po wybudzeniu sprawdzać czy jeszcze jest wciśnięty przycisk. Idzie to jakoś łatwo sprawdzić czy jest wciśnięty?

4

Odp: MR3420 i przycisk wps

Czekaj. Używasz moich obrazów czy nie?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: MR3420 i przycisk wps

Wydaje mi się, że tak.  Zaczynałem od tego.
http://ecco.selfip.net/gargoyle-pl/atti … pgrade.bin
Później zainstalowałem extroota na karcie modemu E173 zgodnie z opisem na forum. Działa mi np. OpenVpn wiec chyba dobrze instalowałem pluginy od Ciebie.

 | Gargoyle PL 1.5.11.5 (90efdde)                               |
 | OpenWrt Attitude Adjustment 12.09.1 (r38863)                 |
 | Build time: 2013-12-07 08:37 CET                             |
 |                                                              |
 | Cezary Jackiewicz (obsy), http://eko.one.pl                  |
 |                                                              |
 ----------------------------------------------------------------
 | Machine: TP-Link TL-MR3420 v2               

/etc/hotplug.d/button/00-button

. /etc/functions.sh
do_button () {
        local button
        local action
        local handler
        local min
        local max

        config_get button $1 button
        config_get action $1 action
        config_get handler $1 handler
        config_get min $1 min
        config_get max $1 max

        [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
                [ -z "$min" -o -z "$max" ] && eval $handler
                [ -n "$min" -a -n "$max" ] && {
                        [ $min -le $SEEN ] && eval $handler
                }
        }
}

config_load system
config_foreach do_button button

6

Odp: MR3420 i przycisk wps

uci show system
ls /etc/hotplug.d/button/*
pokaż.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: MR3420 i przycisk wps

 uci show system
system.@system[0]=system
system.@system[0].timezone=CET-1CEST,M3.5.0/2,M10.5.0/3
system.@system[0].zonename=Europe/Warsaw
system.@system[0].cronloglevel=9
system.@system[0].hostname=myjnia1
system.ntp=timeserver
system.ntp.server=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
system.ntp.enable_server=0
system.reboot_button=button
system.reboot_button.action=released
system.reboot_button.handler=logger reboot ; /usr/lib/gargoyle/reboot.sh ;
system.reboot_button.min=3
system.reboot_button.max=10
system.reboot_button.button=reset
system.reset_button=button
system.reset_button.button=reset
system.reset_button.action=released
system.reset_button.handler=logger restore defaults ; /sbin/firstboot ; reboot ;
system.reset_button.min=11
system.reset_button.max=90
system.awaria_start=button
system.awaria_start.button=wps
system.awaria_start.action=released
system.awaria_start.handler=/etc/awarie/awaria start
system.awaria_start.min=10
system.awaria_start.max=20
system.awaria_stop=button
system.awaria_stop.button=wps
system.awaria_stop.action=pressed
system.awaria_stop.handler=/etc/awarie/awaria end
system.led_wan=led
system.led_wan.name=WAN
system.led_wan.sysfs=tp-link:green:wan
system.led_wan.trigger=netdev
system.led_wan.dev=eth0
system.led_wan.mode=link tx rx
system.led_lan1=led
system.led_lan1.name=LAN1
system.led_lan1.sysfs=tp-link:green:lan1
system.led_lan1.trigger=switch0
system.led_lan1.port_mask=0x04
system.led_lan2=led
system.led_lan2.name=LAN2
system.led_lan2.sysfs=tp-link:green:lan2
system.led_lan2.trigger=switch0
system.led_lan2.port_mask=0x08
system.led_lan3=led
system.led_lan3.name=LAN3
system.led_lan3.sysfs=tp-link:green:lan3
system.led_lan3.trigger=switch0
system.led_lan3.port_mask=0x10
system.led_lan4=led
system.led_lan4.name=LAN4
system.led_lan4.sysfs=tp-link:green:lan4
system.led_lan4.trigger=switch0
system.led_lan4.port_mask=0x02
system.led_wlan=led
system.led_wlan.name=WLAN
system.led_wlan.sysfs=tp-link:green:wlan
system.led_wlan.trigger=phy0tpt
system.led_usb=led
system.led_usb.name=USB
system.led_usb.sysfs=tp-link:green:3g
system.led_usb.trigger=usbdev
system.led_usb.dev=1-1
system.led_usb.interval=50

W /etc/hotplug.d/button/ mam tylko 00-button oraz jeszszcze jeden skrypt ale on mam na początku exit 0 więc nic się z niego nie wykonuje

8

Odp: MR3420 i przycisk wps

Masz jedną akcję na naciśnięcie (awaria end) i jedną na puszczenie (awaria start) która zachodzi jeżeli co najmniej 10s trzymasz przycisk. Tak miało być?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: MR3420 i przycisk wps

Tak bym chciał ale się tak nie dzieje.  Akcja wywołuje się od razu po wciśnięciu przycisku poza tym zobacz, że działa to na odwrót. Jeśli wcisnę wps to wywołuje się to od released. Tak chyba nie powinno być.
Spróbuje jeszcze raz od początku wgrać system na czysto może coś po drodze pomieszałem.

10

Odp: MR3420 i przycisk wps

Mi tam działa:

Jan  1 01:04:35 Gargoyle user.notice root: nacisnieto
Jan  1 01:04:39 Gargoyle user.notice root: puszczono


system.reboot_button=button
system.reboot_button.action=released
system.reboot_button.handler=logger puszczono
system.reboot_button.min=3
system.reboot_button.max=10
system.reboot_button.button=reset
system.reset_button=button
system.reset_button.button=reset
system.reset_button.action=pressed
system.reset_button.handler=logger nacisnieto

Choć nie jest to na mr3420. Włóż sobie do 00-button logger $ACTION; logger $BUTTON jaki pierwszą linię i zobacz co się wywołuje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: MR3420 i przycisk wps

Ewidentnie jest na odwrót. Może ten przycisk jest tak zrobiony, że zwiera do masy a normalnie jest podciągnięty przez Vcc?

Natomiast reset, ten wystający przycisk z tyłu działa poprawnie.

 logread -f
Dec  9 17:18:27 myjnia1 user.notice root: released
Dec  9 17:18:27 myjnia1 user.notice root: wps
Dec  9 17:18:28 myjnia1 user.notice root: pressed
Dec  9 17:18:28 myjnia1 user.notice root: wps
Dec  9 17:18:35 myjnia1 user.notice root: pressed
Dec  9 17:18:35 myjnia1 user.notice root: reset
Dec  9 17:18:36 myjnia1 user.notice root: released
Dec  9 17:18:36 myjnia1 user.notice root: reset

Teraz czy da się to jakoś łatwo zmienić bez kompilacji?

12

Odp: MR3420 i przycisk wps

Nie, bez kompilacji nie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.