451

Odp: USB Relay - plugin do Gargoyle

Witam,

Kombinuję jak uruchomić, obsługiwać za pomocą pluginu Przekaźniki USB (usbrelay) 2 sztuki modułów 8 przekaźników Relay Board USB-RC5 czyli łącznie będzie 16 przekaźników.

Widzę że jeden moduł mam wykryty jako ttyUSB1 a drugi ttyUSB2

Przy jednym poprawnie działającym module 8 przekaźników mój config /usr/lib/gargoyle/usbrelay.sh wygląda jak poniżej

#!/bin/sh
# plik do obsługi RelayBoard
# usbrelay.sh polecenie [numer_portu]
# polecenie, pierwszy argument:
# off - wylacza przekaznik
#   usbrelay.sh off 0
# on - wlacza przekaznik
#   usbrelay.sh on 0
# status - podaje status wszystkich przekaznikĂłw w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
#   usbrelay.sh status
#   1:on
#   2:on
#   3:off
#   4:off
#   5:off
#   6:off
#   7:off
#   8:off

PORT="/dev/ttyUSB1"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)
    ;;
esac

exit 0

Jest to wykonalne, jak się do tego zabrać ?
Chyba trzeba dokonać z mian w pliku (sterowniku) /bin/RelayBoard ?

Rozumiem że zmian w /www/js/usbrelay.js nie trzeba dokonywać ?

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

452

Odp: USB Relay - plugin do Gargoyle

Po prostu dodaj identyczne polecenia z wywołaniem portu /dev/ttyUSB2. Teraz masz osiem. więc dodaj osiem następnych.

www/js/usbrelay.js jest uniwersalne i wyświetla tyle ile mu skrypt zwraca.

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

453

Odp: USB Relay - plugin do Gargoyle

Cezary napisał/a:

Po prostu dodaj identyczne polecenia z wywołaniem portu /dev/ttyUSB2. Teraz masz osiem. więc dodaj osiem następnych.

www/js/usbrelay.js jest uniwersalne i wyświetla tyle ile mu skrypt zwraca.

Zrobiłem, obecnie /usr/lib/gargoyle/usbrelay.sh mam takie

#!/bin/sh
# plik do obsługi RelayBoard
# usbrelay.sh polecenie [numer_portu]
# polecenie, pierwszy argument:
# off - wylacza przekaznik
#   usbrelay.sh off 0
# on - wlacza przekaznik
#   usbrelay.sh on 0
# status - podaje status wszystkich przekaznikĂłw w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
#   usbrelay.sh status
#   1:on
#   2:on
#   3:off
#   4:off
#   5:off
#   6:off
#   7:off
#   8:off

PORT="/dev/ttyUSB1"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)

   ;;
esac

PORT="/dev/ttyUSB2"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)

   ;;
esac

exit 0

I tak mam w GUI --> przekaźniki USB 16 przekaźników, z tym że jak włączam pierwszy przekaźnik to włącza się jednocześnie pierwszy w obydwu modułach. Włączam drugi przekaźnik to włącza się drugi w obydwu modułach itd.
Próbowałem dla drugiego modułu czyli PORT="/dev/ttyUSB2" pozmieniać PK1 i get 1 na kolejno PK9 i get 9 oraz echo -n "1:" na echo -n "9:"itd w różnych kombinacjach i albo nic to nie dało, czyli miałem 16 przekaźników działających podwójnie jak wyżej lub w ogóle lista przekaźników w GUI nie była dostępna.

Co robię nie tak ?

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

454

Odp: USB Relay - plugin do Gargoyle

Przeanalizuj to co zrobiłeś. Jak chcesz włączyć 2 to łapało się to zarówno tu: RelayBoard $PORT on $2 jak i na drugie polecenie: RelayBoard $PORT on $2

A 2 ma załączyć tylko pierwsze polecenie, a 10 dopiero drugie polecenie.  Status ma zwracać numeru od 1 do 16, a to co napisałeś zwraca od 1 do 8 i od 1 do 8 zamiast 9-16. Dla drugiego przekaźnika po prostu dodaj/odejmuj  8 od numeru przekaźnika.

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

455

Odp: USB Relay - plugin do Gargoyle

Hmm, starałem się przeczytać ze zrozumieniem to co napisałeś. Zastanawia mnie co miałeś na myśli pisząc odejmuj 8 od numeru przekaźnika. Próbowałem naprawdę wielu kombinacji i nic nie zadziałało poprawnie. Np. taka konfiguracja jak poniżej powoduje że lista przekaźników w GUI w ogóle się nie pojawia.

#!/bin/sh
# plik do obsługi RelayBoard
# usbrelay.sh polecenie [numer_portu]
# polecenie, pierwszy argument:
# off - wylacza przekaznik
#   usbrelay.sh off 0
# on - wlacza przekaznik
#   usbrelay.sh on 0
# status - podaje status wszystkich przekaznikĂłw w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
#   usbrelay.sh status
#   1:on
#   2:on
#   3:off
#   4:off
#   5:off
#   6:off
#   7:off
#   8:off

PORT="/dev/ttyUSB1"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)

   ;;
esac

PORT="/dev/ttyUSB2"
# numer_portu, drugi argument
PK9="/bin/RelayBoard $PORT get 9"
PK10="/bin/RelayBoard $PORT get 10"
PK11="/bin/RelayBoard $PORT get 11"
PK12="/bin/RelayBoard $PORT get 12"
PK13="/bin/RelayBoard $PORT get 13"
PK14="/bin/RelayBoard $PORT get 14"
PK15="/bin/RelayBoard $PORT get 15"
PK16="/bin/RelayBoard $PORT get 16"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "9:"
    echo $($PK9)
    echo -n "10:"
    echo $($PK10)
    echo -n "11:"
    echo $($PK11)
    echo -n "12:"
    echo $($PK12)
    echo -n "13:"
    echo $($PK13)
    echo -n "14:"
    echo $($PK14)
    echo -n "15:"
    echo $($PK15)
    echo -n "16:"
    echo $($PK16)

   ;;
esac


exit 0
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

456

Odp: USB Relay - plugin do Gargoyle

Wykonaj  usbrelay.sh status i pokaż co wyszło z tego.

Dlaczego przy drugich przekaźnikach odczytujesz numery 9-16 jak takich przekaźników nie masz? Masz odczytać 1-8, w statusie wyświetlić je jak 9-16. Zwykłe przesunięcie o 8.

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

457

Odp: USB Relay - plugin do Gargoyle

Cezary napisał/a:

Wykonaj  usbrelay.sh status i pokaż co wyszło z tego.

Cześć, wyszło

root@Gargoyle:~# /usr/lib/gargoyle/usbrelay.sh status
1:off
2:off
3:off
4:off
5:off
6:off
7:off
8:off
9:Error: parse error, relay number should be between 1 and 8.

10:Error: parse error, relay number should be between 1 and 8.

11:Error: parse error, relay number should be between 1 and 8.

12:Error: parse error, relay number should be between 1 and 8.

13:Error: parse error, relay number should be between 1 and 8.

14:Error: parse error, relay number should be between 1 and 8.

15:Error: parse error, relay number should be between 1 and 8.

16:Error: parse error, relay number should be between 1 and 8.

Chwilowo jestem odcięty od komputera, niebawem wrócę do tematu.

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

458

Odp: USB Relay - plugin do Gargoyle

Dokładnie to co napisałem...

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

459

Odp: USB Relay - plugin do Gargoyle

Na szybko zrobiłem kolejne podejście. Próbowałem kilku konfiguracji, dwie najciekawsze poniżej.

#!/bin/sh
# plik do obsługi RelayBoard
# usbrelay.sh polecenie [numer_portu]
# polecenie, pierwszy argument:
# off - wylacza przekaznik
#   usbrelay.sh off 0
# on - wlacza przekaznik
#   usbrelay.sh on 0
# status - podaje status wszystkich przekaznikĂłw w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
#   usbrelay.sh status
#   1:on
#   2:on
#   3:off
#   4:off
#   5:off
#   6:off
#   7:off
#   8:off

PORT="/dev/ttyUSB1"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)

   ;;
esac

PORT="/dev/ttyUSB2"
# numer_portu, drugi argument
PK9="/bin/RelayBoard $PORT get 1"
PK10="/bin/RelayBoard $PORT get 2"
PK11="/bin/RelayBoard $PORT get 3"
PK12="/bin/RelayBoard $PORT get 4"
PK13="/bin/RelayBoard $PORT get 5"
PK14="/bin/RelayBoard $PORT get 6"
PK15="/bin/RelayBoard $PORT get 7"
PK16="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "9:"
    echo $($PK9)
    echo -n "10:"
    echo $($PK10)
    echo -n "11:"
    echo $($PK11)
    echo -n "12:"
    echo $($PK12)
    echo -n "13:"
    echo $($PK13)
    echo -n "14:"
    echo $($PK14)
    echo -n "15:"
    echo $($PK15)
    echo -n "16:"
    echo $($PK16)

   ;;
esac


exit 0

oraz

#!/bin/sh
# plik do obsługi RelayBoard
# usbrelay.sh polecenie [numer_portu]
# polecenie, pierwszy argument:
# off - wylacza przekaznik
#   usbrelay.sh off 0
# on - wlacza przekaznik
#   usbrelay.sh on 0
# status - podaje status wszystkich przekaznikĂłw w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
#   usbrelay.sh status
#   1:on
#   2:on
#   3:off
#   4:off
#   5:off
#   6:off
#   7:off
#   8:off

PORT="/dev/ttyUSB1"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)

   ;;
esac

PORT="/dev/ttyUSB2"
# numer_portu, drugi argument
PK1="/bin/RelayBoard $PORT get 1"
PK2="/bin/RelayBoard $PORT get 2"
PK3="/bin/RelayBoard $PORT get 3"
PK4="/bin/RelayBoard $PORT get 4"
PK5="/bin/RelayBoard $PORT get 5"
PK6="/bin/RelayBoard $PORT get 6"
PK7="/bin/RelayBoard $PORT get 7"
PK8="/bin/RelayBoard $PORT get 8"

case "$1" in
    off)
    RelayBoard $PORT off $2
    ;;
    on)
    RelayBoard $PORT on $2
    ;;
    status)
    echo -n "9:"
    echo $($PK1)
    echo -n "10:"
    echo $($PK2)
    echo -n "11:"
    echo $($PK3)
    echo -n "12:"
    echo $($PK4)
    echo -n "13:"
    echo $($PK5)
    echo -n "14:"
    echo $($PK6)
    echo -n "15:"
    echo $($PK7)
    echo -n "16:"
    echo $($PK8)

   ;;
esac


exit 0

Jednak w obydwu przypadkach pomimo że widzę przekaźniki od 1 do 16 to i tak klikając na 1 włącza się 1 i 9, na 2 włącza się 2 i 10 itd. Natomiast klikając na przekaźniki od 9 do 16 żaden z przekaźników nie włącza się. Na płytce przekaźników mignie czerwona dioda led (jakby informująca o sygnale) lecz właściwa dioda przekaźnika nie zapala się i przekaźnik nie włącza się.
Z konsoli status wygląda ok.

root@Gargoyle:~# /usr/lib/gargoyle/usbrelay.sh status
1:off
2:off
3:off
4:off
5:off
6:off
7:off
8:off
9:off
10:off
11:off
12:off
13:off
14:off
15:off
16:off

Teraz co ustaliłem wink dla PORT="/dev/ttyUSB2"
PK1="/bin/RelayBoard $PORT get 1" musi być od get 1" do get 8"
oraz
echo -n "9:" musi być od -n "9:" do -n "16:"
Natomiast czy będzie PK1 do PK8 czy PK9 do PK16 wygląda że nie ma znaczenia.

Coraz bardziej się zastanawiam czy jest to wykonalne, czy pozwoli na to plik ("sterownik") /bin/RelayBoard ?

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

460

Odp: USB Relay - plugin do Gargoyle

Ehh, a teraz: jeżeli numer przekaźnika jest <9 to wykonuj przełączaenie dla pierwszego zespołu. Jeżeli jest >8 to od numeru przekaźnika odejmij 8 (ze numeru 9 zrobiło się 1, z numeru 10 - 2, z numeru 16 - 8) i dopiero steruj drugim zespołem. No pomyśl...

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

461

Odp: USB Relay - plugin do Gargoyle

Cezary napisał/a:

Ehh, a teraz: jeżeli numer przekaźnika jest <9 to wykonuj przełączaenie dla pierwszego zespołu. Jeżeli jest >8 to od numeru przekaźnika odejmij 8 (ze numeru 9 zrobiło się 1, z numeru 10 - 2, z numeru 16 - 8) i dopiero steruj drugim zespołem. No pomyśl...

Witam ponownie.

Cezary, wiem dostałem już sporo wskazówek. Lecz nadal mam problem z uruchomieniem tego. Dla tego proszę o dalszą pomoc.
Z tego co rozumiem to configu pierwszego modułu przekaźników /dev/ttyUSB1 mam nie zmieniać.

Podaj chociaż jak ma się zaczynań ten fragment (to co pokazuje poniżej zawiera błąd, do poprawy).

PORT="/dev/ttyUSB2"
# numer_portu, drugi argument
PK9="/bin/RelayBoard $PORT get 1"

i ten

RelayBoard $PORT on $2
    ;;
    status)
    echo -n "9:"
    echo $($PK9)

Pozdrawia 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

462

Odp: USB Relay - plugin do Gargoyle

Zobacz:

#!/bin/sh
PORT1="/dev/ttyUSB1"
PORT2="/dev/ttyUSB2"
PK1="/bin/RelayBoard $PORT1 get 1"
PK2="/bin/RelayBoard $PORT1 get 2"
PK3="/bin/RelayBoard $PORT1 get 3"
PK4="/bin/RelayBoard $PORT1 get 4"
PK5="/bin/RelayBoard $PORT1 get 5"
PK6="/bin/RelayBoard $PORT1 get 6"
PK7="/bin/RelayBoard $PORT1 get 7"
PK8="/bin/RelayBoard $PORT1 get 8"
PK9="/bin/RelayBoard $PORT2 get 1"
PK10="/bin/RelayBoard $PORT2 get 2"
PK11="/bin/RelayBoard $PORT2 get 3"
PK12="/bin/RelayBoard $PORT2 get 4"
PK13="/bin/RelayBoard $PORT2 get 5"
PK14="/bin/RelayBoard $PORT2 get 6"
PK15="/bin/RelayBoard $PORT2 get 7"
PK16="/bin/RelayBoard $PORT2 get 8"

case "$1" in
    off)
    if [ $2 -gt 8 ]; then
     PORT=$PORT2
     NR=$(($2-8))
    else
     PORT=$PORT1
     NR=$2
    fi
    RelayBoard $PORT off $NR
    ;;
    on)
    if [ $2 -gt 8 ]; then
     PORT=$PORT2
     NR=$(($2-8))
    else
     PORT=$PORT1
     NR=$2
    fi
    RelayBoard $PORT on $NR
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)
    echo -n "9:"
    echo $($PK9)
    echo -n "10:"
    echo $($PK10)
    echo -n "11:"
    echo $($PK11)
    echo -n "12:"
    echo $($PK12)
    echo -n "13:"
    echo $($PK13)
    echo -n "14:"
    echo $($PK14)
    echo -n "15:"
    echo $($PK15)
    echo -n "16:"
    echo $($PK16)
    ;;
esac

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

463

Odp: USB Relay - plugin do Gargoyle

Działa smile, 5 sek. Ci to zajęło nieźle, dziękuję. Pójdzie skromna darowizna za całokształt.

Planuję dokupić jeszcze dwa takie moduły, czyli łącznie będzie /dev/ttyUSB1 i /dev/ttyUSB2 i /dev/ttyUSB3 i /dev/ttyUSB4
Mógłbyś jeszcze napisać wersję rozbudowaną dla 4 modułów?

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

464

Odp: USB Relay - plugin do Gargoyle

Mógłbym. Ale... nie chcesz sam spróbować? Prawie tak samo będzie.

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

465 (edytowany przez krynio 2016-03-01 18:49:09)

Odp: USB Relay - plugin do Gargoyle

Cezary napisał/a:

Mógłbym. Ale... nie chcesz sam spróbować? Prawie tak samo będzie.

Dobrze spróbuję. Przyznam że obecnie jestem umysłowo sczochrany z powodu nowych wyzwań w pracy. I niestety nie myślę logicznie. Nie wiem czy w fragmencie z if się nie pomyliłem ?

#!/bin/sh
PORT1="/dev/ttyUSB1"
PORT2="/dev/ttyUSB2"
PORT3="/dev/ttyUSB3"
PORT4="/dev/ttyUSB4"
PK1="/bin/RelayBoard $PORT1 get 1"
PK2="/bin/RelayBoard $PORT1 get 2"
PK3="/bin/RelayBoard $PORT1 get 3"
PK4="/bin/RelayBoard $PORT1 get 4"
PK5="/bin/RelayBoard $PORT1 get 5"
PK6="/bin/RelayBoard $PORT1 get 6"
PK7="/bin/RelayBoard $PORT1 get 7"
PK8="/bin/RelayBoard $PORT1 get 8"
PK9="/bin/RelayBoard $PORT2 get 1"
PK10="/bin/RelayBoard $PORT2 get 2"
PK11="/bin/RelayBoard $PORT2 get 3"
PK12="/bin/RelayBoard $PORT2 get 4"
PK13="/bin/RelayBoard $PORT2 get 5"
PK14="/bin/RelayBoard $PORT2 get 6"
PK15="/bin/RelayBoard $PORT2 get 7"
PK16="/bin/RelayBoard $PORT2 get 8"
PK17="/bin/RelayBoard $PORT3 get 1"
PK18="/bin/RelayBoard $PORT3 get 2"
PK19="/bin/RelayBoard $PORT3 get 3"
PK20="/bin/RelayBoard $PORT3 get 4"
PK21="/bin/RelayBoard $PORT3 get 5"
PK22="/bin/RelayBoard $PORT3 get 6"
PK23="/bin/RelayBoard $PORT3 get 7"
PK24="/bin/RelayBoard $PORT3 get 8"
PK25="/bin/RelayBoard $PORT4 get 1"
PK26="/bin/RelayBoard $PORT4 get 2"
PK27="/bin/RelayBoard $PORT4 get 3"
PK28="/bin/RelayBoard $PORT4 get 4"
PK29="/bin/RelayBoard $PORT4 get 5"
PK30="/bin/RelayBoard $PORT4 get 6"
PK31="/bin/RelayBoard $PORT4 get 7"
PK32="/bin/RelayBoard $PORT4 get 8"

case "$1" in
    off)
PORT=$PORT1
NR=$2
if [ $2 -gt 8 ]; then
     PORT=$PORT2
     NR=$(($2-8))
fi
if [ $2 -gt 16 ]; then
     PORT=$PORT3
     NR=$(($2-16))
fi
if [ $2 -gt 24 ]; then
     PORT=$PORT4
     NR=$(($2-24))
fi
    RelayBoard $PORT off $NR
    ;;
    on)
PORT=$PORT1
NR=$2
if [ $2 -gt 8 ]; then
     PORT=$PORT2
     NR=$(($2-8))
fi
if [ $2 -gt 16 ]; then
     PORT=$PORT3
     NR=$(($2-16))
fi
if [ $2 -gt 24 ]; then
     PORT=$PORT4
     NR=$(($2-24))
fi
    RelayBoard $PORT on $NR
    ;;
    status)
    echo -n "1:"
    echo $($PK1)
    echo -n "2:"
    echo $($PK2)
    echo -n "3:"
    echo $($PK3)
    echo -n "4:"
    echo $($PK4)
    echo -n "5:"
    echo $($PK5)
    echo -n "6:"
    echo $($PK6)
    echo -n "7:"
    echo $($PK7)
    echo -n "8:"
    echo $($PK8)
    echo -n "9:"
    echo $($PK9)
    echo -n "10:"
    echo $($PK10)
    echo -n "11:"
    echo $($PK11)
    echo -n "12:"
    echo $($PK12)
    echo -n "13:"
    echo $($PK13)
    echo -n "14:"
    echo $($PK14)
    echo -n "15:"
    echo $($PK15)
    echo -n "16:"
    echo $($PK16)
    echo -n "17:"
    echo $($PK17)
    echo -n "18:"
    echo $($PK18)
    echo -n "19:"
    echo $($PK19)
    echo -n "20:"
    echo $($PK20)
    echo -n "21:"
    echo $($PK21)
    echo -n "22:"
    echo $($PK22)
    echo -n "23:"
    echo $($PK23)
    echo -n "24:"
    echo $($PK24)
    echo -n "25:"
    echo $($PK25)
    echo -n "26:"
    echo $($PK26)
    echo -n "27:"
    echo $($PK27)
    echo -n "28:"
    echo $($PK28)
    echo -n "29:"
    echo $($PK29)
    echo -n "30:"
    echo $($PK30)
    echo -n "31:"
    echo $($PK31)
    echo -n "32:"
    echo $($PK32)
    ;;
esac

exit 0
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

466

Odp: USB Relay - plugin do Gargoyle

Żle. Warunek dla on/off ma być:

Jeżeli numer przekaźnika <= 8
  użyj PORT1
  nr = $2
Jeżeli numer przekaźnika <= 16
  użyj PORT2
  nr = $2 - 8
Jeżeli numer przekaźnika <= 24
  użyj PORT3
  nr = $2 - 16
Jeżeli numer przekaźnika <= 32
  użyj PORT4
  nr = $2 - 24

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

467

Odp: USB Relay - plugin do Gargoyle

Edytowałem i poprawiłem powyższy mój post, mam nadzieje że dobrze.

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

468

Odp: USB Relay - plugin do Gargoyle

Nie... raz ze powtarzasz w case warunki dla on/off - a ma być po jednym. Dwa  - te warunki co podałem masz mieć zamiast if [ $2 -gt 8 ]; then. Pomyśl...

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

469

Odp: USB Relay - plugin do Gargoyle

Ehh, myślę i nic pewnego nie wymyśliłem. Nie chcę wklejać kolejnych moich propozycji rozwiązań, ponieważ nie jestem do nich przekonany. Chwilowo odpuszczę ten temat bo będę miał w nocy koszmary hmm.
Dziękuję za dotychczasową pomoc.

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

470 (edytowany przez wabikboy 2016-03-01 14:11:54)

Odp: USB Relay - plugin do Gargoyle

PORT1="/dev/ttyUSB1"
PORT2="/dev/ttyUSB2"
PORT1="/dev/ttyUSB3"
PORT2="/dev/ttyUSB4"

Tu już masz bałagan
ustawiasz PORT1 na "/dev/ttyUSB1" a zaraz zmieniasz na "/dev/ttyUSB3"
to samo z PORT2

masz gotowca z dwoma modułami to dodaj warunki dla wersji 4 modułowej

if [ $2 -gt 8 ]; then
     PORT=$PORT2
     NR=$(($2-8))
elif [ $2 -gt 16 ]; then
     PORT=$PORT3
     NR=$(($2-16))
itd... smile

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

471

Odp: USB Relay - plugin do Gargoyle

Dziękuję Panowie wink Edytowałem i poprawiłem mój post lecz nie wiem czy dobrze ? Obecnie nie mam możliwości sprawdzić ponieważ mam tylko 2 moduły kolejne 2 będą wkrótce.

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

472

Odp: USB Relay - plugin do Gargoyle

Źle ze zmiennymi PORT...

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

473

Odp: USB Relay - plugin do Gargoyle

Cezary napisał/a:

Źle ze zmiennymi PORT...

Kolejna edycja i poprawiłem mój post
Fakt to mogłem się dopatrzeć tym bardziej że @wabikboy o tym pisał. Efekt kopiowania, przepraszam.

Poza tym dobrze ?

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

474

Odp: USB Relay - plugin do Gargoyle

Przekonasz się jak będziesz miał wszystkie moduły wink

TL-WR1043ND: HDD-USB, extroot, LCD, Pilot, MP3 - Radio Player, NAS, Torrent, FTP, Sterowanie głosem, Komunikaty Głosowe, Termometr, PowerSwitch - Sterownik oświetlenia, Budzik, LTE - ODU IDU 200
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka smile

475

Odp: USB Relay - plugin do Gargoyle

Źle...

    if [ $2 -gt 8 ]; then
     PORT=$PORT2
     NR=$(($2-8))
    else...

17 jest większe 8 więc dla 17 zrobi
PORT=/dev/ttyUSB2
NR=9

A nie o to chodziło. Warunki masz źle.

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