Odp: USB Relay - plugin do Gargoyle
Potwierdzam, nie działa na 6, nie instaluje się.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → USB Relay - plugin do Gargoyle
Strony Poprzednia 1 … 19 20 21 22 23 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
Potwierdzam, nie działa na 6, nie instaluje się.
Jest szansa na aktualizacje tej apki na nowszego androida ?
Bardzo mała, nawet nie wiem czy jeszcze źródła mam.
Jakby ktoś chciał pobawić się takim czymś:
USBRelayto instalujemy:
opkg update
opkg install kmod-usb-serial-ch341potem kopiujemy mój usbrelay do /usr/bin
i polecenie włączenie/wyłączenie:
usbrelay /dev/ttyUSB0 1
usbrelay /dev/ttyUSB0 0tutaj spakowane:
Paczka/*--------------------------------------------------------------------*/ /* USB Relay */ /*--------------------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <termios.h> #include <unistd.h> #include <strings.h> /*--------------------------------------------------------------------*/ void relay(const char *sc, const char *value) { int hComm=0; struct termios oldtio,newtio; unsigned char on[4]={0xA0,0x01,0x01,0xA2}; unsigned char off[4]={0xA0,0x01,0x00,0xA1}; hComm=open(sc, O_RDWR | O_NOCTTY); if (hComm!=-1) { tcgetattr(hComm,&oldtio); bzero(&newtio, sizeof(newtio)); newtio.c_cflag = B9600 | CS8 | CLOCAL | CREAD; newtio.c_iflag = IGNPAR; newtio.c_oflag = 0; newtio.c_lflag = 0; newtio.c_cc[VTIME] = 2; newtio.c_cc[VMIN] = 0; tcflush(hComm, TCIFLUSH); tcsetattr(hComm,TCSANOW,&newtio); if (value[0]=='1') { write(hComm,on,4); } else { write(hComm,off,4); }; tcsetattr(hComm,TCSANOW,&oldtio); close(hComm); usleep(200000); }; } /*--------------------------------------------------------------------*/ int main(int argc, char *argv[]) { if (argc==3) { relay(argv[1],argv[2]); } else { printf("USBRelay %s\nuse: usbrelay /dev/ttyUSB0 1\n",__DATE__); }; return 0; } /*--------------------------------------------------------------------*/
Czy istnieje możliwość wpięcia tego usb relay pomiędzy routerem nexx wt3020 a modemem zte mf821?
Z racji tego że modem od czasu do czasu się rozłącza i nie mogę sterować zasilaniem usb przez gpio, chciałbym aby odpowiednia komenda w monitorze połączenia odcinała i po np. 5ciu sekundach przywracała zasilanie modemu wykorzystując ten usb relay.
Jeśli mogę to w ten sposób wykorzystać, to w jaki sposób go podłączyć? Domyślam się że przez ten usb relay nie przejdzie "data", więc czy mogę to podłączyć w ten sposób jak na obrazku?
https://drive.google.com/file/d/0BwZq8S … sp=sharing
Jeśli schemat jest zły, proszę o wskazówki co gdzie i jak
Schemat jest zły. Do wt3020 podłączasz hub usb, do huba dopiero usbrelay. Do huba połączasz na kabelku modem, kabelek rozcinasz, wydobywasz żyłę zasilania, przecinasz ją i końcówki dajesz do przekaźnika. O ile tylko przekaźnik nie będzie miał nic przeciwko działania na 5V to powinno działać.
Czy potrzeba zastosowania huba jest na prawdę konieczna?
Kupiłem nexxa po to aby pozbyć się huba, bo energia dostarczana przez usb w nexxie wystarczała do zasilenia routera oraz modemu. Btw, mój bts z którym się łączę jest 300 metrów od domu, obsługuje tylko 3g, więc może nie muszę go stosować?
Przyznam się szczerze że nie zaglądałem do manuala i pewnie znalazł bym bardziej lub mniej skomplikowaną odpowiedź, ale do końca nie wiem gdzie wychodzi "plus" w usb relay- to jest NC, NO czy COM?
Tak, musisz mieć hub. Jak masz jedno gniazdo usb to możesz podłączyć jedno urządzenie. USB nie działa na tej zasadzie że podłączysz wiele kabelków i możesz podłączyć ile chcesz urządzeń. Jedno gniazdo - jedno urządzenie, chcesz wiele urządzeń to stosujesz hub usb który ma odpowiednią elektronikę w środku.
Jeden kabelek podłączasz do "com" drugi do nc jak chcesz żeby domyślnie było załączone LUB do no jak chcesz aby domyślnie było rozłączone.
Jedno usb, jedno urządzenie, rozumiem.
W takim razie mam kolejne pytanie - pomysł.
Schemat mojego połączenia:
Modem - nexx wt3020 z wyłączonym wifi - połączenie lan do wr842nd z włączonym radiem.
Skoro wr842nd oraz nexx ma usb, czy mogę jakoś to ogarnąć bez huba?
Jeśli nie, wychodzi na to że mniej skomplikowaną metodą będzie kupno aktywnego huba usb z opcją sterowania portami
Możesz, ale zaczynasz chyba za bardzo komplikować sprawę.
Rozumiem wszystko
Dziękuję serdecznie za pomoc, na Ciebie zawsze można liczyć
Mamy pytanie, mam modul przekaznika uruchamiany przez podanie stanu niskiego na wejście
http://elty.pl/pl/p/Modul-z-1-przekazni … ptorem/667
oraz jesli dokupie do niego konwerter USB<->serial ktory ma wyprowadzone sygnal RTS
http://allegro.pl/konwerter-usb-to-ttl- … 00068.html
i podlacze wejscie modulu przekaznika "IN" do "RTS" konwertera uda mi sie sterowac programem USBrelay tym zalaczonym 7 postow wyzej ??
Cezary - na jakiego androida jest napisana apk? Bo na 6.0 nie śmiga
Na górze tej strony, post 501 napisałem że nie działa na androidzie 6.
Na poprzednich działało.
A takie pytanko co do apki, w chwili jak apka laczy sie przez ssh i wysyla zapytanie o status: do /usr/lib/gargoyle/usbrelay.sh status , to nie wysyla mi nazw poszczegolnych przekaznikow tylko same numery od 0 do 7, ale nad przyciskami mam "... " Nazwy przekaznikow mam w pliku txt w /etc/config/usbrelay.txt. Pytanie jak apka sobie te nazwy ściąga? Probowalem sam napisac taka apke ale nie wiem jak powinna wygladac sama konstrukcja polaczenia ssh i nie za bardzo to działa.
Widzisz, bo za bardzo mieszasz. W pierwszym poście wyraźnie jest gdzie są opisy - w /etc/config/usbrelay a nie w /etc/config/usbrelay.txt, na dodatek w formacie UCI - czyli w tym na czym całe openwrt bazuje. Więc nic dziwnego że nie masz opisów.
Aplikacja wykonuje skrypt i pobiera zawartość pliku więc ma i status przekaźników ma i nazwę przekaźników.
Pod openwrt mi dziala bez problemu, zaczałem kombinowac bo router okazał sie zbyt slaby (sporo softu z motion na czele) a w rece wpadło mi orange pi zero, chcialem to przeportowac do armbiana, nawet przekompilowalem powerSwitcha i dziala tylko szkoda mi tej apki bo taka fajna. Niestety przeniesienie plikow do takiego samego drzewa katalogow skutkuje tym ze apka przelacza, sciaga status ale nazw juz nie, no trudno. Cezary a jak pisales ta apke to pamietasz moze czy i z jakiej biblioteki korzystałeś do SSH, bo nie moge nic znalesc prócz jsch
Bo nie masz uci na armbiana....
Za grosz tego nie pamiętam, gdzieś w archiwach muszę pogrzebać.
Witam.
Cezary zainstalowałem paczki. "Napisałem" czyli kopia mojego starego skryptu od przekaźników.
Jednak jak robię sprawdzenie
/usr/lib/gargoyle/usbrelay.sh status
Wywala mi
1:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
2:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
3:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
4:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
5:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
6:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
7:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
8:/usr/lib/gargoyle/usbrelay.sh: line 56: /bin/RelayBoard: not found
Moje configi:
/bin/
Mam sterownik do mojego przekaźnika tj. plik /bin/RelayBoard z nadanymi uprawnieniami 775
/usr/lib/gargoyle/usbrelay.sh
#!/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/ttyUSB0"
# 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
/www/usbrelay/js/usbrelay.js
/*
* This program is copyright © 2014-2017 Cezary Jackiewicz and is distributed under the terms of the GNU GPL
* version 2.0 with a special clarification/exception that permits adapting the program to
* configure proprietary "back end" software provided that all modifications to the web interface
* itself remain covered by the GPL.
* See http://gargoyle-router.com/faq.html#qfoss for more information
*/
usbrelayS = new Object();
function resetData()
{
var columnNames = usbrelayS.Columns;
var usbrelayTableData = new Array();
if (ports.length == 0)
{
document.getElementById("no_usbrelay").style.display = "block";
return;
}
for (idx=0; idx<ports.length; idx++)
{
var img = document.createElement("img");
img.style.cssText= "margin-top:5px;";
if (ports[idx][1] == "on")
{
img.src = "img/green-power-button.png";
img.onclick = function(){offRelay(this);}
} else {
img.src = "img/red-power-button.png";
img.onclick = function(){onRelay(this);}
}
var tmp = uciOriginal.get("usbrelay", "desc", ''+ports[idx][0])
if (tmp == "") { tmp = "..."; }
var anchor = document.createElement("a");
anchor.href="usbrelay_schedule.sh?port=" + ports[idx][0];
anchor.innerHTML = tmp;
anchor.style.css = "a{text-decoration:none}";
usbrelayTableData.push([ports[idx][0], anchor, img]);
}
var usbrelayTable = createTable(columnNames, usbrelayTableData, "usbrelay_table", false, false);
var tableContainer = document.getElementById('usbrelay_table_container');
if (tableContainer.firstChild != null)
{
tableContainer.removeChild(tableContainer.firstChild);
}
tableContainer.appendChild(usbrelayTable);
}
function onRelay(node)
{
onoffRelay(node.parentNode.parentNode, "on");
}
function offRelay(node)
{
onoffRelay(node.parentNode.parentNode, "off");
}
function onoffRelay(row, action)
{
var port = row.firstChild.firstChild.data;
var cmds = [ "/usr/lib/gargoyle/usbrelay.sh " + action + " " + port, "/usr/lib/gargoyle/usbrelay.sh status" ];
var param = getParameterDefinition("commands", cmds.join("\n")) + "&" + getParameterDefinition("hash", document.cookie.replace(/^.*hash=/,"").replace(/[\t ;]+.*$/, ""));
var stateChangeFunction = function(req)
{
if(req.readyState == 4)
{
var lines = req.responseText.split(/[\r\n]+/);
ports.length = 0;
for (idx=0; idx < lines.length; idx++)
{
if (lines[idx].match(/:o/))
{
stat=lines[idx].split(":");
ports.push([ stat[0], stat[1] ]);
}
}
resetData();
setControlsEnabled(true);
}
}
runAjax("POST", "utility/run_commands.sh", param, stateChangeFunction);
}
/etc/config/usbrelay
config 'usbrelay' 'desc'
option '0' 'PrzekaĹşnik 0'
option '1' 'PrzekaĹşnik 1'
option '2' 'PrzekaĹşnik 2'
option '3' 'PrzekaĹşnik 3'
option '4' 'PrzekaĹşnik 4'
option '5' 'PrzekaĹşnik 5'
option '6' 'PrzekaĹşnik 6'
option '7' 'PrzekaĹşnik 7'
option '8' 'PrzekaĹşnik 8'
/etc/config/uhttpd
config uhttpd 'main'
list listen_http '0.0.0.0:3000'
list listen_http '[::]:3000'
list listen_https '0.0.0.0:4000'
list listen_https '[::]:4000'
option redirect_https '0'
option home '/www'
option rfc1918_filter '1'
option max_requests '3'
option max_connections '100'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
option cgi_prefix '/cgi-bin'
option script_timeout '60'
option network_timeout '30'
option http_keepalive '20'
option tcp_keepalive '1'
option ubus_prefix '/ubus'
config uhttpd secondary
list listen_http '0.0.0.0:80'
list listen_https '0.0.0.0:443'
option home '/www_strona'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
config cert 'defaults'
option days '730'
option bits '2048'
option country 'ZZ'
option state 'Somewhere'
option location 'Unknown'
option commonname 'LEDE'
config uhttpd usbrelay
list listen_http '0.0.0.0:6000'
list listen_https '0.0.0.0:7000'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
option 'index_file' 'usbrelay.sh'
option 'index_page' 'usbrelay.sh'
option 'error_page' '/usbrelay.sh'
option 'no_dirlists' '1'
option home /www/usbrelay
option rfc1918_filter 1
option max_requests 50
option max_connections 200
option cgi_prefix /cgi-bin
list interpreter ".sh=/usr/bin/run_haserl"
option script_timeout 900
option network_timeout 30
option http_keepalive 20
option tcp_keepalive 1
Obecne, chwilowo nie mam huba z własnym zasilaniem lecz myślę że nie w tym jest problem.
ls -al /bin/RelayBoard
pokaż.
ls -al /bin/RelayBoard
pokaż.
-rwxrwxr-x 1 root root 15064 Oct 13 19:23 /bin/RelayBoard
/bin/RelayBoard /dev/ttyUSB0 get 8
Uruchom i pokaż. Strzelam ze masz starą binarkę skomplikowaną z uclibc z nie musl.
/bin/RelayBoard /dev/ttyUSB0 get 8
Uruchom i pokaż. Strzelam ze masz starą binarkę skomplikowaną z uclibc z nie musl.
-ash: /bin/RelayBoard: not found
Binarka pochodzi stąd http://dl.eko.one.pl/projekty/usbrelay/RelayBoard/
Więc dokładnie jest tak jak napisałem. Ona nie uruchomi sie na lede.
Więc dokładnie jest tak jak napisałem. Ona nie uruchomi sie na lede.
Dobra wiadomość to taka że znana jest przyczyna.
Niedobra, to że ja tej binarki nie skompiluję
A masz źródła?
Strony Poprzednia 1 … 19 20 21 22 23 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → USB Relay - plugin do Gargoyle
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc