Odp: USB Relay - plugin do Gargoyle
poprawiona wersja jest w poscie 218
działa nawet odświeżanie ikonki na czas przełączenia
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → USB Relay - plugin do Gargoyle
Strony Poprzednia 1 … 9 10 11 12 13 … 23 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
poprawiona wersja jest w poscie 218
działa nawet odświeżanie ikonki na czas przełączenia
poprawiona wersja jest w poscie 218
działa nawet odświeżanie ikonki na czas przełączenia
Sprawdzone na szybko i działa, strona nie jest zamrożona
, ale wylogować się nie można ? Po ustawieniu chwilówek i wylogowaniu, nie wykonają się te czynności.
Chwilówki to skrypt wykonywany w przeglądarce, nie w routerze dlatego nie wykona się jeśli zmienimy zakładkę w panelu GUI
Chwilówki to skrypt wykonywany w przeglądarce, nie w routerze dlatego nie wykona się jeśli zmienimy zakładkę w panelu GUI
To w takim razie wydaje się że wszystko działa włącznie z odświeżaniem ikonek, chyba nie spałeś i w nocy to robiłeś
, Dziękuję.
Nie,
teraz w przerwie w pracy
+ chwila na testy, w zasadzie tylko usunąłem kilka linijek kodu funkcji sleep, a dodałem jedną która działa lepiej
Nie wiem dlaczego wcześniej tego nie zrobiłem, bo parę razy patrzyłem na to rozwiązanie.
Potwierdzam działa. Na przeglądarkach androida równieź. :-)
witam!
Chciałbym zapytać;
1: czy można takim przekaźnikiem sterować poprzez lan ( bo takie chyba są)?
2: ew czy można w takiej karcie ze sterowaniem usb podłączyć kartę usb-lan (wi-fi) i tym sterować?
Tzn jak kupisz sobie taki przekaźnik który ma port lan to ... tak.
a druga kwestia?
Nie. Przecież usb to usb kliencie nie host, który miałby kartę obsłużyć.
Czesc,
@wabikboy - mam prosbe do Ciebie, czy nie da sie zrobic zeby checkboxy pozostaly po zaznaczeniu na stale ? za kazdym razem jak chce uzyc chwilowki musze zanaczac checkboxa. No i 2 rzadki by sie przydaly przynajmniej - da rade ?
Kolejna poprawka, zapamiętywanie ostatniego wyboru checkbox i czasu wyłączenia.
Pamięć stanu zapisana w "cookie" więc konieczność włączenia obsługi w przeglądarce.
@Cezary czy to dobre rozwiązanie z cookie ?? jak coś to zmienię na plik.
/*
* This program is copyright © 2014 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 [url]http://gargoyle-router.com/faq.html#qfoss[/url] for more information
*/
usbrelayS = new Object();
var flaga = "1"
function createEnabledCheckbox()
{
enabledCheckbox = createInput('checkbox');
return enabledCheckbox;
}
function createEnabledTextbox()
{
enabledTextbox = createInput('textbox');
enabledTextbox.size = "1";
return enabledTextbox;
}
function getCookie(name){
var str = '; '+ document.cookie +';';
var index = str.indexOf('; '+ escape(name) +'=');
if (index != -1) {
index += name.length+3;
var value = str.slice(index, str.indexOf(';', index));
return unescape(value);
}
}
function setCookie(nazwa, wartosc, dni) {
if (dni) {
var data = new Date();
data.setTime(data.getTime()+(dni*24*60*60*1000));
var expires = "; expires="+data.toGMTString();
} else {
var expires = "";
}
document.cookie = nazwa+"=" + wartosc + expires + "; path=/";
}
function chboxcookie(node)
{
var row = node.parentNode.parentNode.firstChild.firstChild.data
var pulscheck = document.getElementById("push" + row);
setCookie("checkps" + row, pulscheck.checked, "7")
}
function tboxcookie(node)
{
var row = node.parentNode.parentNode.firstChild.firstChild.data
var timeset = document.getElementById("times" + row);
setCookie("textps" + row, timeset.value, "7")
}
function resetData()
{
var columnNames = usbrelayS.Columns;
var usbrelayTableData = new Array();
var serviceIds = 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;";
var enabledCheckbox = createEnabledCheckbox();
enabledCheckbox.id = "push" + ports[idx][0]
if (getCookie("checkps" + ports[idx][0]) == "true") { enabledCheckbox.checked = true }
var enabledTextbox = createEnabledTextbox();
enabledTextbox.id = "times" + ports[idx][0]
if (getCookie("textps" + ports[idx][0]) != null)
{
enabledTextbox.value = getCookie("textps" + ports[idx][0]);
}
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);}
}
enabledCheckbox.onchange = function(){chboxcookie(this);}
enabledTextbox.onchange = function(){tboxcookie(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, enabledCheckbox, enabledTextbox]);
}
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 czass = document.getElementById("times" + port).value;
var pulscheck = document.getElementById("push" + port);
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] ]);
}
}
if (pulscheck.checked)
{
if (flaga == "1")
{
if (action == "on")
{
action = "off"
} else {
action = "on"
}
resetData();
flaga = "0"
window.setTimeout( function() { onoffRelay(row, action); }, czass + "000");
} else {
flaga = "1"
}
}
resetData();
setControlsEnabled(true);
}
}
runAjax("POST", "utility/run_commands.sh", param, stateChangeFunction);
}kopiować i testować ![]()
Witam,
Przetestowane i chyba bez poprawek się nie obędzie ![]()
1. przekaźnik ustawiony na 5 sek. i od razu włączony
2. przekaźnik ustawiony na 10 sek. i od razu włączony
3. przekaźnik ustawiony na 20 sek. i od razu włączony
Efekt
1. wyłączy się po 5 sek.
2. w ogóle się nie wyłączy (czyli cały czas ikonka zielona)
3. wyłączy się po 20 sek. (nie mierzyłem stoperem) i po około 20 sek. się samoczynnie włączy
Za którymś razem 1 raz w/w test przeszedł pozytywnie. Jednak jak wyczyściłem wszystkie dane przeglądarki google chrome problem powrócił.
PS fajna alternatywa.
Po edycji /www/js/usbrelay.js nie zrobiłem restartu, może potrzeba ?
Nie trzeba robic restartu, jedynie odswiezyc przegladarke. Ale dziwne troche ze rozne czasy i roznie dziala
testowalem na tablecie i na windowsowym google chrome i u mnie dziala n roznych czasach
No właśnie dziwne mnie też działa prawidłowo na chromium , firefox tyle, że na normalnym systemie czyli linux.
Na androidzie też działa.
Trochę głupio że znowu na mnie wypadło ![]()
Pozostaje poczekać na innych np. @bhb który ma taką kartę jak moja. Na dziś już muszę kończyć.
Jeśli mnie nikt mnie nie uprzedzi jutro zrobię kolejny test na innej przeglądarce.
Test w Firefox na windows 7 zrobiony i bez zmian, jest jak w poście 263.
Dobranoc :-)
U mnie OK, na linuxsie i na 7, zapamietuje checkboxy (przydalo by sie zeby zapamietywal na routerze) no i przynajmniej 2 rzadki zeby byly :-)
Mam jakiś problem. Zawiesiło mi przeglądarkę. Wyłączenie i włączenie modyłu pomogło.
logread:
Mar 11 09:13:12 bhb_sat kern.err kernel: [ 3193.430000] ftdi_sio ttyUSB0: urb failed to clear flow control
dmesg:
[ 3257.440000] ftdi_sio ttyUSB0: ftdi_set_termios FAILED to set databits/stopbits/parity
[ 3258.440000] ftdi_sio ttyUSB0: ftdi_set_termios urb failed to set baudrate
[ 3268.440000] ftdi_sio ttyUSB0: urb failed to clear flow control
[ 3278.440000] ftdi_sio ttyUSB0: urb failed to clear flow controlUstawiłem na 0 i nie wysypało się.
Będę go męczył zobaczymy.
Może jest wrażliwy na szybkie przełączanie,
Zrobiłem kolejny test (procedura patrz post 263) tym razem przy użyciu:
- android przeglądarka stock
- notebook windows xp przeglądarka K-Meleon
- PC stacjonarny windows 7 przeglądarka Google chromie i Firefox
- linux przeglądarka Firefox
I za każdym razem identyczne problemy opisane w poście 263.
Jedyny ewentualny "błąd" po mojej stronie to że edycji usbrelay.js dokonałem za pomocą WinSCP, jak ostatnio i było ok.
W sumie zadowala mnie pierwsza wersja modyfikacji @wabikboy i jeśli innym działa, to może nie ma sensu kopać... choć ciekawość co jest nie tak pozostaje.
Może ktoś wystawi linka z plikiem usbrelay.js edytowanym w vi to podmienię i zobaczę. Wiem że mogę to zrobić sam lecz remont w trakcie a nad vi muszę dłużej pomyśleć niestety.
Ja też używam WinScp to nie to, na maila Ci wysłałem mój spakowany plik.
@wabikboy plik na Twój podmieniony, dalej plugin USB Relay odinstalowany i zainstalowany ponownie, dla pewności restarty robione, w module przekaźników przywrócone ustawienia fabryczne i kurza twarz nadal tak samo.
Mam jeszcze TL-WR1043ND, jutro zainstaluje na nim najnowsze Gargoyle i tylko plugin USB Relay, sam jestem ciekaw efektu.
Ale zaraz zaraz piszesz że:
Witam,
Przetestowane i chyba bez poprawek się nie obędzie wink
1. przekaźnik ustawiony na 5 sek. i od razu włączony
2. przekaźnik ustawiony na 10 sek. i od razu włączony
3. przekaźnik ustawiony na 20 sek. i od razu włączony
Efekt
1. wyłączy się po 5 sek.
2. w ogóle się nie wyłączy (czyli cały czas ikonka zielona)
3. wyłączy się po 20 sek. (nie mierzyłem stoperem) i po około 20 sek. się samoczynnie włączy
jedyną nieprawidłową reakcją jest efekt 2 że przy ustawieniu 10 sek. nie wyłączył się przekaźnik a reszta reaguje prawidłowo.
Ale zaraz zaraz piszesz że:
krynio napisał/a:Witam,
Przetestowane i chyba bez poprawek się nie obędzie wink
1. przekaźnik ustawiony na 5 sek. i od razu włączony
2. przekaźnik ustawiony na 10 sek. i od razu włączony
3. przekaźnik ustawiony na 20 sek. i od razu włączony
Efekt
1. wyłączy się po 5 sek.
2. w ogóle się nie wyłączy (czyli cały czas ikonka zielona)
3. wyłączy się po 20 sek. (nie mierzyłem stoperem) i po około 20 sek. się samoczynnie włączyjedyną nieprawidłową reakcją jest efekt 2 że przy ustawieniu 10 sek. nie wyłączył się przekaźnik a reszta reaguje prawidłowo.
Nieprawidłowy jest też efekt 3, ponieważ pomimo że poprawnie wyłączy się po 20 sek. to za kolejne 20 sek. samoczynnie się włączy. Prawidłowo działa tylko efekt 1, po 5 sek. się wyłączy i tyle.
Próbowałem też z innymi przekaźnikami oraz innym czasem (sek.) i jest podobnie, z regóły przedostatni włączony przekaźnik się nie wyłączy, a ostatni wyłączy się i samoczyniie włączy ponownie po czasie ustawionym dla niego.
To jeszcze zobacz czy Masz włączone ciasteczka
w przeglądarce.
@bhb zobacz u siebie, chyba że sprawdzałeś działanie przedostatniego i ostatniego przekaźnika, jak się zachowują.
bo coś mi się zdaje że może znowu być problem z numeracją
Strony Poprzednia 1 … 9 10 11 12 13 … 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