326

Odp: Power Switch - najtańszy sterownik ON/OFF

https://dl.eko.one.pl/projekty/usbrelay/hidapi/ czy działa nie wiem, opis jak tego używasz masz na stronie którą podałeś. Pakiet hidapi musisz dodatkowo zainstalować.

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

327

Odp: Power Switch - najtańszy sterownik ON/OFF

Dla potomnych.U mnie z tym chińskim cudakiem zadziałało to:

https://openwrt.org/start?id=docs/guide … ion/crelay

Dzięki Cezary

328 (edytowany przez smereka 2018-11-06 21:22:34)

Odp: Power Switch - najtańszy sterownik ON/OFF

Chciałbym osiągnąć cel w którym w routerze wndr4300 wciśnięcie przycisku wps powoduje wykonanie polecenia: crelay 1 on a jego ponowne wciśnięcie jeśli jest już załączony powoduje wyłącznie i na odwrót. Obsługę przycisku mam opanowaną umiem zrobić żeby włączył lub wyłączył ale nie umiem zrobić żeby odczytał stan. Polecenie które to realizuje w przykładzie poniżej:

root@OpenWrt:~# crelay 1 on   #załącza przekaźnik
root@OpenWrt:~# crelay 1        #sprawdza stan
Relay 1 is on                                # to jest to co wyświetla się po wpisaniu crelay 1


Próbowałem tego:

    if [ "$BUTTON" = "wps" ] ; then
        if [ "$ACTION" = "pressed" ] ; then
            SW=`uci -q get crelay 1 is`
            if [ $SW == 'on' ]; then
                uci set crelay 1 off
            else
                uci set crelay 1 on
            fi
        fi
    fi

Niestety nie działa. Cezary pomożesz?

329 (edytowany przez Cezary 2018-11-06 21:25:51)

Odp: Power Switch - najtańszy sterownik ON/OFF

SW=$(crelay 1)
case "$SW" in
*on*) 
crelay 1 off
;;
*off*) 
crelay 1 on
;;
esac
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

330 (edytowany przez smereka 2018-11-06 21:53:59)

Odp: Power Switch - najtańszy sterownik ON/OFF

Od razu załącza i wyłącza sad czyli póki trzymam to przekaźnik włączony jak puszczam to wyłącza się. A ja bym chciał że jak raz wcisnę to mi się załącza a następne wciśniecie go wyłącza. Lub jeśli jest załączony to wyłącza

331

Odp: Power Switch - najtańszy sterownik ON/OFF

To zrób inaczej:

SW=$(crelay 1)
if [ "$SW" = "Relay 1 is on" ]; then
crelay 1 off
exit 0
fi
if [ "$SW" = "Relay 1 is off" ]; then
crelay 1 on
exit 0
fi

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

332 (edytowany przez smereka 2018-11-06 21:59:44)

Odp: Power Switch - najtańszy sterownik ON/OFF

Cezary sprawdziłem ten to samo realizuje co poprzedni sad Ja też cały czas kombinuje ale mi nie wychodzi

333

Odp: Power Switch - najtańszy sterownik ON/OFF

Tam jest wyjście ze skryptu i nie ma co go znów ponownie przełączać. Jesteś pewien że nie wykonujesz skryptu dwa razy?
Zrób sobie

   logger $BUTTON
   logger $ACTION
   echo $SW | logger

Przed pierwszym ifem i zobacz co będziesz miał w logu jak raz naciśniesz przycisk.

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

334

Odp: Power Switch - najtańszy sterownik ON/OFF

To się stało:

Tue Nov  6 22:09:25 2018 user.notice root: wps
Tue Nov  6 22:09:25 2018 user.notice root: pressed
Tue Nov  6 22:09:25 2018 user.notice root: Relay 1 is on
Tue Nov  6 22:09:25 2018 user.notice root: wps
Tue Nov  6 22:09:25 2018 user.notice root: released
Tue Nov  6 22:09:25 2018 user.notice root: Relay 1 is off

335

Odp: Power Switch - najtańszy sterownik ON/OFF

Czy masz źle skrypt zrobiony bo reaguje na naciśniecie i puszczenie. Gdzie masz if [ "$ACTION" = "pressed" ] ; then ?

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

336

Odp: Power Switch - najtańszy sterownik ON/OFF

Hmm ale to ja mam połączyć ten Twój skrypt mi zrobiłeś z czymś jeszcze bo zamotałem się troszeczkę?

337

Odp: Power Switch - najtańszy sterownik ON/OFF

Ja ci napisałem tylko środek, masz to przecież wsadzić w to co sam zrobiłeś:

    if [ "$BUTTON" = "wps" ] ; then
        if [ "$ACTION" = "pressed" ] ; then
... i tu umieszczasz to co jak napisałem.
        fi
    fi

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

338

Odp: Power Switch - najtańszy sterownik ON/OFF

Działa Cezary. Dziękuję. Bez Ciebie te forum by zginęło smile Bardzo Ci dziękuję

339 (edytowany przez smereka 2018-11-06 22:35:57)

Odp: Power Switch - najtańszy sterownik ON/OFF

To w takim razie napisz mi proszę jeszcze czy w ogóle jest to możliwe żeby zrobić coś takiego. Napiszę praktyczne rozwiązanie do którego dążę. W jednym budynku będzie stał router z tym przekaźnikiem. Chodzi o to, że z pierwszego budynku zasilany jest kolejny budynek ale tylko okazjonalnie. Generalnie aby podczas nieobecności nikt nie korzystał z gniazdek na zewnątrz, na chwile obecną wykręcany jest bezpiecznik z którego są zasilane tamte obwody. Już Twoje rozwiązanie odnośnie załączania i wyłączania działa. Teraz wyprowadzę sobie z routera przewody i podepnę to tytułowego przycisku-grzybka.Czy da się tak zrobić, że po wciśnięciu grzybka oprócz tego, że można go od razu wcisnąć i wyłączyć obwód to czy można jeszcze w to wcisnąć komendę sleep, żeby w razie zapomnienia router odliczył stosowny czas i zrobił crelay 1 off. Da się jakoś zmodyfikować skrypt?

Oczywiście zaraz odezwą się elektrycy - od razu sprostuję przekaźnik steruje stycznikiem o odpowiednik prądzie znamionowym stosownie obliczonym do obciążenia

340

Odp: Power Switch - najtańszy sterownik ON/OFF

(sleep 180; relay 1 off) &

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

341

Odp: Power Switch - najtańszy sterownik ON/OFF

Dla potomnych takie coś zadziałało:

if [ "$BUTTON" = "wps" ] ; then
        if [ "$ACTION" = "pressed" ] ; then
SW=$(crelay 1)
if [ "$SW" = "Relay 1 is on" ]; then
crelay 1 off
exit 0
fi
if [ "$SW" = "Relay 1 is off" ]; then
(crelay 1 on; sleep 5; crelay 1 off) &
exit 0
fi
fi
fi

342 (edytowany przez smereka 2018-11-06 23:01:57)

Odp: Power Switch - najtańszy sterownik ON/OFF

Cezary to troszkę odbiegnę od tematu ale niedaleko bo związany jest trochę z tym przekaźnikiem. Na początku wstęp. Załóżmy, że chcę tym odpalać pompę do podlewania ogrodu. Te chińskie cudo nie wie jaki był jego stan jeśli np router się zrestartuje. Zakładamy, ze podlewanie ma się odbywać codziennie w godzinach 12-16.  Któregoś dnia o godzinie 13 wyłączają na 5 minut napięcie. Czy cron na podstawie przedziału czasowego jest w stanie wykonać zadania które jest w przedziale czasu w którym akurat router się uruchomił? Czy też będzie czekał do kolejnego zaplanowanego zadania?

343

Odp: Power Switch - najtańszy sterownik ON/OFF

Możesz sobie zapisywać flagę do flasha przy rozpoczęciu zadania, a po zakończeniu ją kasować. Po niespodziewanym restarcie sprawdzać jej istnienie podczas bootowania.

344

Odp: Power Switch - najtańszy sterownik ON/OFF

Nie, cron nie wie że coś miało być uruchomione czy że coś było uruchomione. Więc jak pisze przedmówca - musisz sobie sam zachowywać na stałe stan urządzenia.

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

345 (edytowany przez smereka 2018-11-08 09:27:55)

Odp: Power Switch - najtańszy sterownik ON/OFF

Nowe wieści odnośnie Twojego skryptu Cezary. Jest jeden mankament na którego może będziesz znał lekarstwo. Otóż jeśli klikniemy ten przycisk  na przykład w skrypcie komenda sleep ma 20 sekund. I teraz wcisnęliśmy przycisk i po 5 sekundach go wyłączyliśmy a po kolejnych 5 znowu załączyliśmy. Reakcja openwrt jest taka, że po tym ostatnim załączeniu przekaźnik działa jeszcze przez 10 sekund czyli tyle ile pozostało czasu od wykonania przedostatniego wciśnięcia. Jak wydam komendę ps to widze jeszcze przez te 10 sekund wpisy dotyczącego tego właśnie wciśnięcia. Na mój rozum to trzeba by było chyba coś zmienić aby ponowne wciśniecie przycisku powodowało zabicie poprzednie odliczania. Ewentualnie może inne jakieś rozwiązanie....Proszę o pomoc

346

Odp: Power Switch - najtańszy sterownik ON/OFF

No przecież ty to programujesz, więc działa tak jak zrobiłeś.
Pomyśl, jeżeli wciśniesz przycisk jeszcze raz to albo sprawdź czy czasami nie jest proces uruchomiony (ps, pidof) i go killuj, lub zignoruj wciśnięcie przycisku. Jak zrobisz tak będzie działało.

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

347

Odp: Power Switch - najtańszy sterownik ON/OFF

A jak wskazać dla openwrt który proces ma ubić? Nowe procesy dostają losowe numerki...

348

Odp: Power Switch - najtańszy sterownik ON/OFF

Masz go poszukać. I napisałem ci jak - np. poleceniami ps czy pidof

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

349

Odp: Power Switch - najtańszy sterownik ON/OFF

No dobra polecenie: "pidof sleep 600" (nastawione 600 sekund) wyświetla mi w konsoli numer procesu. Jak teraz mam w skrypcie zdefiniować żeby po wyświetleniu tego zrobił kill tego procesu

350

Odp: Power Switch - najtańszy sterownik ON/OFF

A=$(pidof sleep 600)
[ -n "$A" ] && kill -9 $A

i pewnie kilkanaście innych sposobów

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