276 (edytowany przez bhb 2014-03-12 09:13:08)

Odp: USB Relay - plugin do Gargoyle

Kolejność jest dobra wszystko działa i gdyby nie zawieszanie po pewnym czsie to by było ok. To zawieszanie następuje po pewnym czsie bezczynności.  Niewiem czy @krynio nie zadaje kilku akcji na raz bo wtedy to faktycznie głupieje.
Z tych powodów pozostał bym przy poprzedniej wersji.

277 (edytowany przez wabikboy 2014-03-12 09:42:29)

Odp: USB Relay - plugin do Gargoyle

@bhb właśnie testowałem jak zasugerowałeś i u mnie jest to samo czyli jak uruchomi się kilka przekaźników to reaguje jak opisał krynio.
trzeba będzie to poprawić

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

278

Odp: USB Relay - plugin do Gargoyle

Czesc,

A nie pomyslal bys nad tym zeby zapisywalo sie na routerze - stan checkboxow ?

279

Odp: USB Relay - plugin do Gargoyle

Ok wersja poprawiona, działanie niezależne przycisków.

/*
 * 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 http://gargoyle-router.com/faq.html#qfoss for more information
 */

usbrelayS = new Object();

var flaga = new Array();
var flagaset = "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")

    resetData();
}

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++)
    {
        
        if (flagaset == "1")
        {
        flaga[ports[idx][0]] = "1"
        }

        var img = document.createElement("img");
        img.style.cssText= "margin-top:5px;";

         var enabledCheckbox = createEnabledCheckbox();
        enabledCheckbox.id = "push" + ports[idx][0]
         var enabledTextbox = createEnabledTextbox();
        enabledTextbox.id = "times" + ports[idx][0]


        if (getCookie("checkps" + ports[idx][0]) == "true") 
        { 
        enabledCheckbox.checked = true

        } else {
        enabledTextbox.disabled = true
        }


        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]); 
    }
    flagaset = "0"
    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[port] == "1")
                    {
                        if (action == "on")
                        {
                        action = "off"
                        } else {
                        action = "on"
                        }
                    resetData();

                    flaga[port] = "0"
                    window.setTimeout( function() { onoffRelay(row, action); }, czass + "000");
                    } else {
                    flaga[port] = "1"
                    }
                }

            resetData();
            setControlsEnabled(true);
        }
    }
    runAjax("POST", "utility/run_commands.sh", param, stateChangeFunction);
}

P.S.
@roblad moje pojęcie o javascript jest takie ile przeczytam w internecie a przy tym się czegoś nauczę, a więc jak by Ci się chciało to sam byś to zrobił.
Pogrzeb sobie w skrypcie pomyśl jak to działa, a działa naprawdę intuicyjnie, a zobaczysz że dasz radę.
Tobie po prostu się nie chce, a nie nie potrafisz. 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

280

Odp: USB Relay - plugin do Gargoyle

Czesc,


Nie nie chce , tylko naprawde nie mam czasu sie przysiasc, pare dni wieczorami - mam inne tematy zaczalem walke z sensbase i sensenodami oprocz tego pare innych rzeczy - naprawde jestem czasem ograniczony, a tu trzeba podstawy jakies najpierw posiasc.

281

Odp: USB Relay - plugin do Gargoyle

roblad napisał/a:

Czesc,


Nie nie chce , tylko naprawde nie mam czasu sie przysiasc, pare dni wieczorami - mam inne tematy zaczalem walke z sensbase i sensenodami oprocz tego pare innych rzeczy - naprawde jestem czasem ograniczony, a tu trzeba podstawy jakies najpierw posiasc.

I dlatego wolisz, żeby inni zrobili to za Ciebie i jeszcze ich poganiasz... zupełnie zrozumiałe wink

282 (edytowany przez roblad 2014-03-12 15:08:42)

Odp: USB Relay - plugin do Gargoyle

Ale ten kolega @pepe2k zlosliwy , no :-) tylko przygryzac i przygryzac - nieslusznie, ale widocznie tak lubi :-). I w dodatku jak ktos juz jest w danym temacie to latwiej sie dosiasc niz od poczatku rozpedzac ten tramwaj :-)

283

Odp: USB Relay - plugin do Gargoyle

Bardzo się cieszę że się wreszcie zrozumieliśmy smile, fakt mogłem napisać że chodzi o zadanie kilku akcji na raz lecz myślałem że to oczywiste.

Na szybko sprawdziłem poprawioną wersję i wygląda że działa dobrze! Podoba mi się nowa obsługa, najpierw klik ptaszek dopiero potem dostępne jest pole z czasem, a co ważne wszystko zostaje zapamiętane nawet po wylogowaniu i zalogowaniu ponownie.

Nie sprawdziłem natomiast zawieszania po pewnym czasie bezczynności, może ktoś się wypowie lub zrobię to później.

Dociekliwy jesteś. Podziękowania po raz kolejny.

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

284

Odp: USB Relay - plugin do Gargoyle

@krynio Może chodzi o to że sesja logowania wygasa, ale to tylko przypuszczenie. Zapamiętuje po wylogowaniu bo pliki cookie ustawione są na 7 dni ale tylko w ostatnio używanej przeglądarce, jak otworzysz w innej będzie domyślnie.

@roblad ja nie znam podstaw smile , tylko czytam i biorę na logikę, a jeśli mnie zawodzi to dalej czytam, ew. truję d...pe Cezaremu który potrafi nakierować smile co właśnie pozwala nauczyć się czegoś, jeśli się nie wyrabiasz, nie zaczynaj kilku rzeczy na raz, bawisz się jednym, poznaj, opanuj, bierz się za następne.

Też nie mam czasu na takie rzeczy bo robię to w wolnej chwili w pracy, lub wieczorami igrając z żoną smile i pomiędzy zabawą z dzieckiem.

P.S.
Jak będzie więcej chętnych to zmienię na plik w routerze, ewentualnie może ktoś będzie się chciał sam pobawić

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

285

Odp: USB Relay - plugin do Gargoyle

Dobra juz dobra - wale skruche - nie truje du.... - zostawie jak jest, jak ktos bedzie chcial zmienic to zmieni, jak Cezary przerobi androida to przerobi - przynajmniej Piotrek, nie bedzie dogryzal :-). Moze w weekend troche potrenuje i cos zrobie w tym temacie, ale nie wiem jak sie wyrobie z rozlozeniem rurek do podlewaczki :-) przez powerSwitcha. Obodowy do sensnodow musze robic, nie wiem czy sie uda :-)

286

Odp: USB Relay - plugin do Gargoyle

roblad napisał/a:

Dobra juz dobra - wale skruche - nie truje du.... - zostawie jak jest, jak ktos bedzie chcial zmienic to zmieni, jak Cezary przerobi androida to przerobi - przynajmniej Piotrek, nie bedzie dogryzal :-). Moze w weekend troche potrenuje i cos zrobie w tym temacie, ale nie wiem jak sie wyrobie z rozlozeniem rurek do podlewaczki :-) przez powerSwitcha. Obodowy do sensnodow musze robic, nie wiem czy sie uda :-)

Daj coś z siebie i przestań tylko wymagać od innych, to przestanę dogryzać, że tylko trujesz dupę smile
Czekam na Twoje pluginy do Gargoyle. Robert! Robert! Robert! Robert! Robert! Robert!

287 (edytowany przez roblad 2014-03-12 16:24:06)

Odp: USB Relay - plugin do Gargoyle

Alez to wredziucha :-), Adwokat czy inna jaka franca :-) - dobra rozumiem, nie musisz juz dogryzac :-) no i nie wymagam, tylko prosze :-)

288

Odp: USB Relay - plugin do Gargoyle

Jak wejdziesz na tę stronę, zjedziesz na sam dół... to znajdziesz tam taki pomarańczowy przycisk. On służy do "proszenia" big_smile

289

Odp: USB Relay - plugin do Gargoyle

Nie mam tam zadnego :-) Jest tylko do wsparcia a ja i tak paypala nie mam.

290

Odp: USB Relay - plugin do Gargoyle

Nowy skrypt działa dobrze. A z tym wieszaniem mojego RelayBoard to coś innego nie skrypt. Podłączyłem dziś na starych skryptach i również się zawiesił a w logu miałem coś takiego

hub 1-1:1.0: port 3 disabled by hub (EMI?), re-enabling...

może wina hub albo kabelka.

291 (edytowany przez Cezary 2014-03-13 07:12:35)

Odp: USB Relay - plugin do Gargoyle

roblad napisał/a:

Nie mam tam zadnego :-) Jest tylko do wsparcia a ja i tak paypala nie mam.

Wprawdzie ja nie "Adwokat" ale jak co tutaj masz numer konta big_smile

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

292

Odp: USB Relay - plugin do Gargoyle

bhb napisał/a:

Nowy skrypt działa dobrze. A z tym wieszaniem mojego RelayBoard to coś innego nie skrypt. Podłączyłem dziś na starych skryptach i również się zawiesił a w logu miałem coś takiego

hub 1-1:1.0: port 3 disabled by hub (EMI?), re-enabling...

może wina hub albo kabelka.

Dokładnie to na to wskazuje.

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

293

Odp: USB Relay - plugin do Gargoyle

@Cezary jak oceniasz bieżącą wersję. Coś byś zmienił ??

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

294 (edytowany przez Cezary 2014-03-13 07:12:13)

Odp: USB Relay - plugin do Gargoyle

krynio napisał/a:
roblad napisał/a:

Nie mam tam zadnego :-) Jest tylko do wsparcia a ja i tak paypala nie mam.

Wprawdzie ja nie "Adwokat" ale jak co tutaj masz numer konta big_smile


:-)  - moze ja podam swoje ? :-)  haha, nie bede Ci pieniedzy przelewal na Twoje konto.

295

Odp: USB Relay - plugin do Gargoyle

wabikboy napisał/a:

@Cezary jak oceniasz bieżącą wersję. Coś byś zmienił ??

Zasadę działania smile

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

296

Odp: USB Relay - plugin do Gargoyle

@roblad, hehe rozbawiłeś mnie, czy uważasz że ja mam dostęp administratora do witryny http://eko.one.pl żeby tam umieścić swój numer konta ? przemyśl...

PS mogłem nie zaczynać tematu, zazwyczaj skutecznie się powstrzymuje wink

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

297 (edytowany przez roblad 2014-03-12 23:30:59)

Odp: USB Relay - plugin do Gargoyle

Bedzie oficjalnie przedstawione na stronie to tam cos przeleje, ale tak, nie mam pewnosci czyje to konto, brak jakiegokolwiek opisu itd. Co ja bede tlumaczyl - moze byc to konto jakiejs Cioci Cezarego itd. Bez przesady - adres strony i polozony tam html z nr konta to nie miejsce na przelewanie kasy :-) Co to za prezentacja, numer i tyle - numer krzak :-)

298

Odp: USB Relay - plugin do Gargoyle

Przestań już ględzić. Dawno już nie uczestniczę w takich przepychankach,  ale Ty bijesz ostatnio wszystkich na głowę. Co post to strasznie marudzisz. Albo wypowiadaj się na temat zgodny z wątkiem albo zachowaj proszę dla siebie wszystkie inne wypowiedzi.

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

299

Odp: USB Relay - plugin do Gargoyle

Cezary napisał/a:
wabikboy napisał/a:

@Cezary jak oceniasz bieżącą wersję. Coś byś zmienił ??

Zasadę działania smile

A więcej szczegółów ??

Działać działa ale jak możesz podpowiedzieć jak może działać efektywniej lub co zmienić w kodzie to słucham 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

300

Odp: USB Relay - plugin do Gargoyle

Ja bym nie dowierzał przeglądarce jeżeli chodzi o czasy, tym bardziej że możesz w tym czasie ją zamknąć, otworzyć inne okno itd. Niech system to zrobi, openwrt się znaczy - niech on pilnuje czasu i zleconych zadań. Ale to tylko mój sposób na rozwiązanie problemu smile

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