1 (edytowany przez Cezary 2014-02-25 21:06:54)

Temat: USB Relay - plugin do Gargoyle

Plugin pozwalający na sterowanie przekaźnikami na USB - wiele takich projektów można znaleźć na allegro, można zbudować samodzielnie, nawet tu na forum były już takie opisy publikowane. Ponieważ sposobów sterowania jest bardzo dużo, plugin został napisany przeze mnie w dość uniwersalny sposób, pozwalając na szybką modyfikację skryptów wykonawczych.
Sam plugin jest dość prosty:

https://lh5.googleusercontent.com/-mA0evNKZKhk/UuyUnYTbzoI/AAAAAAAABu4/2dXIQYg4FKo/w866-h445-no/Gargoyle+Router+Management+Utility%25281%2529.png

Kolory ikon symbolizują stan przekaźnika; kliknięcie ikony powoduje przełączenie stanu na przeciwny (włącz/wyłącz). Ilość ikon jest automatycznie dostosowana do możliwości modułu, czyli informacji które zwraca skrypt wykonawczy.

Przekaźnikami steruje skrypt /usr/lib/gargoyle/usbrelay.sh - należy pamiętać że skrypt trzeba dostosować samodzielnie do posiadanego modułu przekaźników!
Domyślna konfiguracja w pakiecie została zrobiona dla projektu powerSwitch. Nie ma problemu z dostosowaniem go do innych używanych przekaźników - trzeba odpowiednio zmodyfikować wspomniany skrypt.

Do skryptu jest przekazywany jeden lub dwa parametry: akcja (off/on/status) i ew numer przekaźnika. Skrypt musi zaś na podstawie tych parametrów umieć wykonać trzy akcje:

- off ma za zadanie wyłączyć przekaźnik - dla powerSwitcha jest wywoływane powerSwitch off <nr>
- on ma za zadanie włączyć przekaźnik - dla powerSwitcha jest wywoływane powerSwitch on <nr>
- status ma za zadanie zebrać i wyświetlić status dostępnych przełączników, musi to być zwracane w formacie <nr>:<status>, dla każdego przekaźnika w oddzielnej linii, czyli np.

0:on
1:off
2:off
3:on

(cztery przekaźniki o numerach od 0 do 3, pierwszy i ostatni jest aktualnie włączony).

Jeżeli ktoś ma powerSwitcha to nic nie musi zmieniać. Jeżeli ktoś używa np. projektu usbRelay od Arteq (jeden przekaźnik) cały skrypt wygląda następująco:

#!/bin/sh

case "$1" in
    off)
        usbrelay off
        ;;
    on)
        usbrelay on
        ;;
    status)
        usbrelay status | awk '/Relay is/ {printf "1:%s\n", $3}'
        ;;
esac

exit 0

Polecenia zawarte w tym skrypcie (powerSwitch, usbrelay) muszą być na ścieżce (/usr/bin czy /bin) lub należy podać pełną ścieżkę do tego pliku. Uwaga na wielkość liter.  Skrypty są dość czytelne, nie powinno być problemu z dostosowaniem ich do własnych potrzeb. Nie ma problemu żeby sterować tym przekaźnikami podpiętymi pod GPIO - całe moduły do arduino można kupić na ebay czy allegro.  Przykładowy skrypt do sterownia 3 liniami gpio:

#!/bin/sh
GPIO1="/sys/class/gpio/gpio2/value"
GPIO2="/sys/class/gpio/gpio18/value"
GPIO3="/sys/class/gpio/gpio7/value"

case "$1" in
    off)
        case $2 in 
            1) 
            echo "0" > $GPIO1
            ;;
            2) 
            echo "0" > $GPIO2
            ;;
            3)
            echo "0" > $GPIO3
            ;;
        esac
        ;;
    on)
        case $2 in        
                1)                                                             
                echo "1" > $GPIO1                                               
                ;;                                                             
                2)                                                             
                echo "1" > $GPIO2                                               
                ;;                                                             
                3)                                                             
                echo "1" > $GPIO3                                               
                ;;                                                             
         esac  
        ;;
    status)
        echo -n "1:"
        [ $(cat $GPIO1) -eq "0" ] && echo "off" || echo "on"
        echo -n "2:"
        [ $(cat $GPIO2) -eq "0" ] && echo "off" || echo "on"
        echo -n "3:"
        [ $(cat $GPIO3) -eq "0" ] && echo "off" || echo "on"
        ;;
esac

exit 0

W katalogu http://dl.eko.one.pl/projekty/usbrelay/RelayBoard/ można znaleźć gotowy skrypt do obsługi RelayBoard.
W katalogu http://dl.eko.one.pl/projekty/usbrelay/gpio/ można znaleźć gotowy skrypt do obsługi przekaźników przez GPIO.
W katalogu http://dl.eko.one.pl/projekty/usbrelay/usbRelay/ można znaleźć gotowy skrypt do obsługi usbRelay.
Może istnieć konieczność poprawy danych w skryptach (wykorzystywane GPIO czy port USB).

Scheduler został wykonany na podstawie pluginu wifi-schedule (a właściwie to plugin wifi-schedule został lekko przerobiony - nawet nazwy zmiennych zostały takie same, dodałem tylko niewielkie zmiany związane z zamianą up/down na on/off i dodaniem dodatkowych elementów). Obsługa tego jest identyczna, ze wszystkimi jego zaletami i wadami.

https://lh4.googleusercontent.com/-wtDlFnGbPRA/Uu_-p6q2gpI/AAAAAAAABv4/9dhDICM12xg/w791-h696-no/Gargoyle+Router+Management+Utility%25282%2529.png

Aby dostać się do harmonogramu danego przekaźnika należy kliknąć na jego nazwę w głównym oknie. W harmonogramie można także zmienić opis przekaźnika, który w bieżącej wersji pluginu trzymany jest w /etc/config/usbrelay (można je także zmieniać "ręcznie" wykorzystując uci).

Cały pakiet jest dostępny w moim repo dla routerów z wielojęzycznym interfejsem.

Ponieważ czasami używanie strony www jest męczące to napisałem także małą aplikację na androida (4.x, aplikacja nie działa w nowszych wersjach androida) pozwalającą na sterowanie tym projektem:

https://lh6.googleusercontent.com/-ZQ9JRFSU5ZU/UuyUxYFuxFI/AAAAAAAABvI/8xsOpuQfOTY/w392-h696-no/Screenshot_2014-01-31-23-58-22.png

Aplikację można pobierać z http://dl.eko.one.pl/projekty/usbrelay/ . Nie znajdziecie jej w sklepie Google Play, nie jest ona podpisana cyfrowo, na telefonie trzeba zezwolić na instalację pakietów z nieznanych źródeł.
Jest prosta aż do bólu - przy pierwszym uruchomieniu trzeba wejść w ustawienia i ustawić host/login/hasło/port do routera, bo aplikacja fizycznie wywołuje ssh i polecenie /usr/lib/gargoyle/usbrelay.sh do sterowania przekaźnikami. Więc jeżeli ktoś odblokuje sobie port ssh na wanie to może także nimi sterować przez internet.

Aktualizacja: w dalszej części wątku (http://eko.one.pl/forum/viewtopic.php?p … 70#p102270) można znaleźć przerobiony skrypt obsługujący tzw. "chwilówki".

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

2

Odp: USB Relay - plugin do Gargoyle

Cezary, na serio robisz mistrzowską robotę!

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

3

Odp: USB Relay - plugin do Gargoyle

Witam,

Bardzo ciekawy projekt, rozważam zakup powerSwitch. Mógłby ktoś wskazać linki gdzie można kupić powerSwitch, na allegro pod tym hasłem nic takiego nie wyszukuje.

Interesuje mnie powerSwitch, aby korzystać z domyślnej konfiguracji Cezarego. Pytanie czy są różne powerSwitch, różnią się czymś np. ilością wyjść ?

Krynio

TP-Link TL-WDR4300 Mod, CPU 700MHz, Flash 16 MB, Gargoyle 1.5.11.4, extroot + dysk zewnętrzny Samsung (S2), kamerka MS LifeCam HD-5000
TP-Link TL-WR1043ND Mod, RAM 64 MB, chłodzenie pasywne, Gargoyle 1.5.10.14, extroot, kamerka Logitech HD Webcam C270

4

Odp: USB Relay - plugin do Gargoyle

powerSwitch to projekt do zrobienia we własnym zakresie: http://eko.one.pl/forum/viewtopic.php?id=3894. Na allegro to szukaj karty przekaźników na usb czy coś podobnego, sterowanie może być róźne, choć zwykłe wykonuje się to w podobny sposób.

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

5

Odp: USB Relay - plugin do Gargoyle

Witam
czy trzeba coś jeszcze dodatkowo instalować ?
w zakładce mam :
Nie wykryto modułu przekaźników
powerSwitch działa prawidłowo wg http://eko.one.pl/forum/viewtopic.php?id=3894

testowałem na 3600 i 1043

,

6

Odp: USB Relay - plugin do Gargoyle

/usr/lib/gargoyle/usbrelay.sh status pokaż.

Strzelam że powerSwitcha nie masz na ścieżce.

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

7

Odp: USB Relay - plugin do Gargoyle

Cezary napisał/a:

/usr/lib/gargoyle/usbrelay.sh status pokaż.

Strzelam że powerSwitcha nie masz na ścieżce.


tu nic nie zmieniałem:

case "$1" in
    off)
        powerSwitch off $2
        ;;
    on)
        powerSwitch on $2
        ;;
    status)
        powerSwitch status 2>/dev/null | awk '/port/ {printf "%s%s\n", $2, $3}'
        ;;
esac

exit 0

tak jak w opisie zmieniłem tylko w www/usbrelay.txt

,

8

Odp: USB Relay - plugin do Gargoyle

Napisz w konsoli

powerSwitch status 

tak po prostu i pokaż co wyszło.

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

9 (edytowany przez Dominik-S 2014-02-02 18:20:16)

Odp: USB Relay - plugin do Gargoyle

not found


ok działa ustawiłem ścieszke



Cezary jeszcze jedna sprawa odnośnie androida
mozna prosić o usprawnienie ?
korzystam z 3 przełączników na innych routerach,
fajnie by było by program pamiętał adres i była możliwości wyboru - przełączenia

,

10

Odp: USB Relay - plugin do Gargoyle

A w ogóle działa Ci program na androidzie?

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

11

Odp: USB Relay - plugin do Gargoyle

teraz działa

,

12

Odp: USB Relay - plugin do Gargoyle

http://www.aliexpress.com/item/Usb-cont … 23266.html

Ruszy?

13

Odp: USB Relay - plugin do Gargoyle

Jak mają jakiś program który da się skompilować pod openwrt żeby tym sterować to tak.

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

14

Odp: USB Relay - plugin do Gargoyle

Z tego co widzę to VC++, ale piszą o komunikacji dwukierunkowej i sumie kontrolnej. Myślę, że z sourca da się coś wyciągnąć. Niby nie pieniądze więc może zaryzykuję.

15

Odp: USB Relay - plugin do Gargoyle

Znalazłem takie coś:

bez pilota http://allegro.pl/modul-8-przekaznikow- … 19748.html

z pilotem http://allegro.pl/modul-8-przekaznikow- … 19090.html

Mam kilka pytań zanim kupię kolejną zabawkę...

1. czy USB Relay - plugin do Gargoyle od razu zadziała, czy konieczne będą zmiany w skrypcie ?

2. o ile dobrze kojarzę taki sam, podobny? moduł przekaźników (bez pilota), był omawiany na tym forum tutaj:
http://eko.one.pl/forum/viewtopic.php?pid=86405#p86405
http://eko.one.pl/forum/viewtopic.php?pid=87183#p87183
http://eko.one.pl/forum/viewtopic.php?pid=95337#p95337
czy te moduły co ja znalazłem pochodzą od tego samego producenta ?

3. rozumiem że poza możliwością ręcznego (przez plugin Gargoyle/Android) włączenia/wyłączenia jakiegoś urządzenia będzie możliwość zautomatyzowania zadania np. wpisując odpowiednie polecenia do crona. Załóżmy że w przyszłości chciałbym sterować roletami, (podnoszenie i opuszczanie o zadanej godzinie).

Krynio

TP-Link TL-WDR4300 Mod, CPU 700MHz, Flash 16 MB, Gargoyle 1.5.11.4, extroot + dysk zewnętrzny Samsung (S2), kamerka MS LifeCam HD-5000
TP-Link TL-WR1043ND Mod, RAM 64 MB, chłodzenie pasywne, Gargoyle 1.5.10.14, extroot, kamerka Logitech HD Webcam C270

16

Odp: USB Relay - plugin do Gargoyle

1. Będą potrzebne zmiany w skrypcie
3. Angażowanie do tego routera jest takim sobie pomysłem, bo możesz to prosto na jednoukładowcu zrobić.

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

17

Odp: USB Relay - plugin do Gargoyle

1. tak zadziała ale drobne zmiany będziesz musiał wprowadzić bo do tej karty jest inny programik do obsługi skompilowany w repo Cezarego. RelayBorad się nazwya a obsługa taka jak pisałem w jednym z tematów które podałeś.
2. tak to dokładnie ten sam sprzedawca u którego kupowaliśmy - rzeczowy gościu, pełne wsparcie techniczne po zakupie
3. oczywiscie tak. Są już tutaj przecież projekty "Harmonogram" i może Cezary skusi się takie coś dorzucić też do Gui Gargoyle dla przekaźników smile

18

Odp: USB Relay - plugin do Gargoyle

Są to dla mnie trudne tematy i wolałbym kupić takie urządzenie które "od razu" będzie działać. Jeśli to nie problem, proszę wskaż linka do karty przekaźników na usb (powerSwitch), z możliwością obsługi 4 urządzeń, ewentualnie do 8 urządzeń.

TP-Link TL-WDR4300 Mod, CPU 700MHz, Flash 16 MB, Gargoyle 1.5.11.4, extroot + dysk zewnętrzny Samsung (S2), kamerka MS LifeCam HD-5000
TP-Link TL-WR1043ND Mod, RAM 64 MB, chłodzenie pasywne, Gargoyle 1.5.10.14, extroot, kamerka Logitech HD Webcam C270

19

Odp: USB Relay - plugin do Gargoyle

jak znajdę chwilę to zmodyfikuję skrypt i przetestuję plugin Cezarego pod tą kartą którą wskazałeś bo taką posiadam smile

20

Odp: USB Relay - plugin do Gargoyle

kamillo, będę bardzo wdzięczny. Na spokojnie, nie pali się.

PS kartę otrzymałeś zmontowaną czy do montażu ?

TP-Link TL-WDR4300 Mod, CPU 700MHz, Flash 16 MB, Gargoyle 1.5.11.4, extroot + dysk zewnętrzny Samsung (S2), kamerka MS LifeCam HD-5000
TP-Link TL-WR1043ND Mod, RAM 64 MB, chłodzenie pasywne, Gargoyle 1.5.10.14, extroot, kamerka Logitech HD Webcam C270

21

Odp: USB Relay - plugin do Gargoyle

z tego co widzę powinno zadziałać z moim usbrelay smile https://github.com/artekw/usbRelay/blob … usbrelay.c

Pozdrawiam, Artur
http://digi-led.pl/blog - Blog

22

Odp: USB Relay - plugin do Gargoyle

arteq napisał/a:

z tego co widzę powinno zadziałać z moim usbrelay smile https://github.com/artekw/usbRelay/blob … usbrelay.c

No tak...

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

23 (edytowany przez roblad 2014-02-03 00:03:21)

Odp: USB Relay - plugin do Gargoyle

Wielkie, dzieki Cezary, wkoncu dales sie przekonac do powerswitcha, hurrraaa nie musze sie uczyc JS :-)

Dodal bys jaszcze przyciski chwilowe i harmonogram i bedzie juz miodzio, to z czego ja kozystam i z mojej stronki (topornej ale dzialajacej)

PS

jak sie to ma do skrypcikow do powerswitcha - da sie w prosty sposob 8 przekaznikow zsetupowac ?

24

Odp: USB Relay - plugin do Gargoyle

To jest uniwersalne - wyświetla się tyle przekaźników ile status zwraca, czyli masz 8 będzie 8. Ja mam 4 bo na attiny zrobiłem, a tam ubogo w wyjścia jest.

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

25

Odp: USB Relay - plugin do Gargoyle

Dasz rade te chwilowki dorobic i scheduler ?