Téma: Chybný stav relé po obnovení zobrazení

Dobrý den,
mám SDS IO6 s nejnovějším stabilním firmwarem (3.7.2015) a nejnovější SDS Control Panel (k 2.11.2015) na Androidu 4.4.2. Bez problémů s ním mohu ovládat (spínat a rozepínat) všech šest relé.

Pokud ale dám např. při všech zapnutých relé refresh panelu "VÝSTUPY", tak pouze první dvě relé po refreshi správně ukazují stav Zap, ostatní změní v programu stav na Vyp. Fyzicky jsou ale stále sepnuta všechna. Pokud např. relé 3 "přepnu" do stavu Zap, tak se žádné cvaknutí neozve - relé je totiž stále sepnuté. Chybný stav je zobrazován i v panelech DNES a VŠE. Na webové stránce zařízení, otevřené v mobilním prohlížeči z toho samého mobilu se stav všech relé zobrazuje korektně. Je to chyba v aplikaci Control Panel ?

2

Re: Chybný stav relé po obnovení zobrazení

Zdravim, taky mam SDS MICRO DIN IO6 R6.
Aplikace SDS Control spatne ukazuje stav rele 3-6.
Rele sice prepne, ale tlacitko v aplikaci se vrati zpet do puvodniho stavu, tj. "VYP"
Muzete potvrdit ze se jedna o chybu aplikace a pripadne jak to bude casove s aktualizaci ?
Dekuji Dalibor

3

Re: Chybný stav relé po obnovení zobrazení

Máte nejposlednější firmware ?

Máte nejposlednější SDS-C program, stažený z ePortálu a nahraný do SDS ?

Máte pro všechny relé nastavené ovládání "přes SDS-C" - viz webová administrace SDS ?

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

4

Re: Chybný stav relé po obnovení zobrazení

Zdravim Vas,
**********
Zařízení: SDS IO6
Verze použitého firmware: 15.11.2015
SDS-C program jsem stahnul ze stranek a ulozil do SDS 09.02.2016, nedelal jsem zadne upravy, soft mereni teploty, ovladani rele co 15 min.
Vsechny rele v SDS jsou nastaveny na ovladani pres SDS-C.
**********

Aplikace "SDS Control" ovlada rele, ale tlacitko rele 2-6 po zapnuti se zobrazi z "VYP" na "ZAP", rele opravdu fyz. sepne, ale po cca. 2s (po dalsi aktualizaci) napis na tlacitku se zmeni ze "ZAP" na "VYP", pricemz rele je stale fyz. sepnute.
Podle me jde pouze o problem zobrazovani v aplikaci "SDS Control".
Tlacitka Rele 1 a 2 funguje spravne.

Muzete mi dat vedet co tedy delam spatne, kde je chyba ?
Dekuji                   Dalibor

5

Re: Chybný stav relé po obnovení zobrazení

Máte pro všechny relé nastavené ovládání "přes SDS-C" - viz webová administrace SDS ?

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

6

Re: Chybný stav relé po obnovení zobrazení

Ano. Psal jsem to v popisu co mám za verzi a jak jsou relé nastavené.

7

Re: Chybný stav relé po obnovení zobrazení

Dobrý den,
stejná situace jako psal daliborp - nejnovější verze firmware (z 15.11.2015), nahraná 21.2.2016 nejnovějším sds-c programem (SDS-C ver 06, release C30 6.2.2016).

U všech relé pak nastaveno "SDS-C PROGRAM" přes web , stav všech relé je "on".

SDS Control Panel stále chybně zobrazuje stav relé 3-6 (vypnuto), ve skutečnosti všechna sepnutá.

Takže se přikláním k názoru, že problém je spíš v Control Panelu.

8

Re: Chybný stav relé po obnovení zobrazení

Dobry den,
muzete prosim ragovat na to, zda a jak odstranit zminovany problem ? Predpokladam, ze bude nutna aktualizace aplikace "SDS Control Panel".

Jeste mam takovy navrh na rozsireni moznosti nastaveni aplikace.
1. U tlacitek teplot bych navrhoval pridat znamenko, sipku = tendence narustu nebo poklesu teplot, nejaky prumer za napr. 5 min. ...
2. Bylo by mozne dodat moznost nastaveni velikosti tlacitek, napr. at se vejdou 3 tlacitka vedle sebe. Stavajici mi pripadaji zbytecne velke.

Diky za reakci.

Dalibor

9

Re: Chybný stav relé po obnovení zobrazení

Zdravím,
jen taková laická spekulace – jestli to třeba nesouvisí s tím, že Control Panel byl testován (vyvíjen) jen u SDS se dvěma relé. U IO6 je pak funkční jen ovládací část, zobrazování skutečného stavu pak funguje jen u prvních dvou relé.

Takže mám dotaz na podporu: u vás se výše uvedené problémy IO6 x Control Panel neprojevují?

díky Mirek

10

Re: Chybný stav relé po obnovení zobrazení

Ještě část výpisu z Testu komunikace z Control Panelu - i zde je chybně indikováno, že relé 4-6 jsou vypnuta:

......
Verze firmware: (-48 0 0 6) d0000006
Uptime: (0 9 -70 -28) 637668
UNIX time: (86 -55 -21 -56) 1456073672
Stav IP watchdog (aktivní nebo vypnutý): (0 0 0 0) 0
Stav výstupu IP watchdog (ovládání relé): (0 0 0 0) 0
Hodnota RTT IP watchdog (poslední test): (0 0 -1 -1) 65535
Stav relé 1: (0 0 0 -1) 255
Stav relé 2: (0 0 0 -1) 255
Stav relé 3: (0 0 0 0) 0
Stav relé 4: (0 0 0 0) 0
Stav relé 5: (0 0 0 0) 0
Stav relé 6: (0 0 0 0) 0
Stav relé 7: (0 0 0 0) 0
Stav relé 8: (0 0 0 0) 0
Stav relé 9: (0 0 0 0) 0
Stav relé 10: (0 0 0 0) 0
.......

11

Re: Chybný stav relé po obnovení zobrazení

Domluvte se s autorem aplikace/programu (tady na fóru jako J@M) na dalším postupu.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

12

Re: Chybný stav relé po obnovení zobrazení

Ok, poslu diskuzi na J@M.
Dalibor

13

Re: Chybný stav relé po obnovení zobrazení

Zdravim vsechny. Po nejake dobe se chci zeptat zda nekdo na neco prisel proc se spatne zobrazuje stav rele 3-6 v aplikaci SDS Control Panel ... ? Prosim o reakci. Dekuji. Dalibor

14 Naposledy upravil: MiroslavKlima (2017-02-16 12:20:25)

Re: Chybný stav relé po obnovení zobrazení

Dobrý den, podle toho co se píše na jiném místě ve fóru, tak ta stávající verze SDS Control Panel se přestala vyvíjet,  vyvíjí se nová. Ale prý se teď vývoj úplně zastavil, protože na to není čas… Ta nová verze je už sice ke stažení, ale stav výstupů zatím není implementován…

Mám také SDS IO6 a stejný problém. Tak jsem to nouzově vyřešil tak, že jsem drobně upravil User Program a User Web Page od rikitana (zdroj je na http://forum.merenienergie.cz//viewtopi … 4048#p4048, upravený kód je níže), aby to přepínalo a zobrazovalo aktuální stav všech 6 relé ve webovém prohlížeči (na mobilu i v PC).

Má to dvě nevýhody:  po každém restartu SDS je nutné se znovu přihlásit, navíc přihlašování vás čeká z každé nové IP adresy, pokud si to namapujete např.  pro přístup z venku přes vlastní veřejnou IP.  Tam je potom navíc nebezpečí, že se vám někdo další na zařízení dostane a relé vám přepne. Tohle se dá asi řešit různě, já tu stránku proháním přes reverzní proxy +  htpasswd na vlastním webserveru. Heslo pak uložím v prohlížeči. Pro SDS se to jeví jako byste se přihlašoval stále ze stejné vnitřní adresy.

Je to něco jako „drbání se levou rukou za pravým uchem“, ale jiné řešení mě zatím nenapadá.  Původně jsem místo reverzní proxy používal  VPNku, ale dost to vycucávalo baterku, takže to stejně nemohlo běžet pořád.  Možná někdo další navrhne něco jednoduššího.

Zobrazovani/prepinani vystupu u SDS IO6

USER PROGRAM

#define REL1 sys[231]
#define REL2 sys[232]
#define REL3 sys[233]
#define REL4 sys[234]
#define REL5 sys[235]
#define REL6 sys[236]


main
{
  
  if ( sys[144] ) {
    if ( REL1 == 0 ) { REL1 = 1;  echo(' rele1 ZAP'); }
  }
  else {
    if ( REL1 != 0 ) { REL1 = 0;  echo(' rele1 VYP'); }
  }
  if ( sys[145] ) {
    if ( REL2 == 0 ) { REL2 = 1;  echo(' rele2 ZAP'); }
  }
  else {
    if ( REL2 != 0 ) { REL2 = 0; echo(' rele2 VYP'); }
  }
  if ( sys[146] ) {
    if ( REL3 == 0 ) { REL3 = 1;  echo(' rele3 ZAP'); }
  }
  else {
    if ( REL3 != 0 ) { REL3 = 0;  echo(' rele3 VYP'); }
  }
  if ( sys[147] ) {
    if ( REL4 == 0 ) { REL4 = 1;  echo(' rele4 ZAP'); }
  }
  else {
    if ( REL4 != 0 ) { REL4 = 0;  echo(' rele4 VYP'); }
  }
  if ( sys[148] ) {
    if ( REL5 == 0 ) { REL5 = 1;  echo(' rele5 ZAP'); }
  }
  else {
    if ( REL5 != 0 ) { REL5 = 0; echo(' rele5 VYP'); }
  }
  if ( sys[149] ) {
    if ( REL6 == 0 ) { REL6 = 1;  echo(' rele6 ZAP'); }
  }
  else {
    if ( REL6 != 0 ) { REL6 = 0; echo(' rele6 VYP'); }
  }

}

USER WEB PAGE

<!DOCTYPE HTML>
<html lang="cs">
<head>
    <TITLE>SDS-MICRO</TITLE>
    <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=WINDOWS-1250">
    <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="EXPIRES" CONTENT="0">
    <style type="text/css">
body{
    background:black;
    color:white;
    font-family:Verdana, Geneva, sans-serif;
    font-size:18px;
    margin:0 auto;
    width:900px;
    height: 960px;
}
div{
    background-image:-moz-linear-gradient(top, #404040 0%, #000 100%);
    background-image:-o-linear-gradient(top, #404040 0%, #000 100%);
    background-image:-ms-linear-gradient(top, #404040 0%, #000 100%);
    background-image:-webkit-linear-gradient(top, #404040 0%, #000 100%);
    width:100%;
    height:0em;
    border:0px ridge DimGrey;
    text-align:center;
    padding:0px;
    margin:0px 0px 0px;
    border-radius: 0px 0px 0px;
    font-size: 50px;
    font-family: "Courier New", Courier, monospace;
}
.opt, .adi, .tem, .tin, .tax, .btn{
    padding:5px;
    margin:0px 30px 30px 30px;
    float:none;
    border-radius:0px 0px 0px;
    border:0px grey;
}
.opt, .adi, .tem, .tin, .tax{
    border:0px 0px 0px 0px solid grey;
    width:20px;
}
.btn{
    background:DimGrey;
    color:white;
    font-size:65px;
    width:330px;
    height: 280px;
    border:8px solid grey;
    border-radius:0px 0px 18px 18px;
}
.bto{
    background:DimGrey;
    color:white;
    font-size:40px;
    width:330px;
    height: 80px;
    padding:5px;
    margin:30px 30px 0px 30px;
    float:none;
    border-radius:18px 18px 0px 0px;
    border:8px solid grey;
}
.tin{ color:DeepSkyBlue;
}
.tax{ color:Yellow;
}
    .adi1 {    padding:5px;
    margin:10px;
    float:left;
    border-radius:0px 0px 0px;
}

@supports (-moz-appearance:none) and (hyphens:none) {
    #btn5{
    float: left;
    margin:0px 30px 0px 76px;}

    #btn6{
    margin:0px -50px 0px 59px;
    float: left;
    }
    #btn9{
    float:none;
    margin:30px 30px 0px 21px;
    }
    #btn8{
    float:none;
    margin:30px -40px 0px 29px;
    }

@media (min-width:1025px){

body{
    font-size:18px;
    width:900px;
    height: 600px;
}

.btn{
    margin:0px 20px 20px 20px;
    float:none;
    font-size:50px;
    width:250px;
    height: 100px;
    border:5px solid grey;
    border-radius:0px 0px 15px 15px;
}

.bto{
    font-size:30px;
    width:250px;
    height: 60px;
    padding:5px;
    margin:20px 20px 0px 20px;
    float:none;
    border-radius:15px 15px 0px 0px;
    border:5px solid grey;

}

@supports (-moz-appearance:none) and (hyphens:none) {
    #btn5{
    float: left;
    margin:0px 0px 20px 163px;}

    #btn6{
    margin:0px 0px 20px 70px;
    float: left;
    }
    #btn9{
    float:none;
    margin:20px 40px 0px 72px;
    }
    #btn8{
    float:none;
    margin:20px 16px 0px 0px;
    }
}

}


    </style>
    <script type="text/javascript">
        var i, r, t;
        var val = new Array(0, 0, 0);
        var reqA = false;
        var reqO = false;
        var reqT = false;
        var reqR = false;
        var reqU = false;
        var sub = false;

        function reqAc() {
            if (reqA.readyState === 4) {
                if (reqA.status === 200) {
                    var rE = reqA.responseText.split("|");
                    for (i = 1; i <= 4; i++) {
                        r = rE[i - 1] / 34.5;
                        if ( ! ( isNaN(r) )) {
                            document.getElementById("adi" + i).innerHTML = r.toFixed(1) + " V";
                        }
                    }
                }
            }
        }

        function reqOc() {
            if (reqO.readyState === 4) {
                if (reqO.status === 200) {
                    var rE = reqO.responseText.split("|");
                    for (i = 1; i <= 4; i++) {
                        if (rE[i - 1] == 0) {
                            document.getElementById("opt" + i).style.background = "Lime";
                        } else {
                            document.getElementById("opt" + i).style.background = "DarkGreen";
                        }
                    }
                }
            }
        }

        function reqTc() {
            if (reqT.readyState === 4) {
                if (reqT.status === 200) {
                    var rE = reqT.responseText.split("|");
                    btnSts(7, (rE[0] == 0) ? 0 : 1);
                    for (i = 1; i <= 7; i++) {
                        r = rE[i + 8] / 100;
                        document.getElementById("tem" + i).innerHTML = r.toFixed(1) + " \u00b0C";
                    }
                }
            }
        }

        function reqRc() {
            if (reqR.readyState == 4) {
                if (reqR.status == 200) {
                    var rE = reqR.responseText.split("|");
                    btnSts(1, (rE[0] == 0) ? 0 : 1);
                    btnSts(2, (rE[1] == 0) ? 0 : 1);
                    btnSts(3, (rE[2] == 0) ? 0 : 1);
                    btnSts(4, (rE[3] == 0) ? 0 : 1);
                    btnSts(5, (rE[4] == 0) ? 0 : 1);
                    btnSts(6, (rE[5] == 0) ? 0 : 1);
                }
            }
        }

        function reqUc() {
            if (reqU.readyState === 4) {
                if (reqU.status === 200) {
                    var rE = reqU.responseText.split("|");
                    for (i = 1; i <= 3; i++) {
                        r = rE[i - 1] / 100;
                        document.getElementById("tin" + i).innerHTML = r.toFixed(1) + " \u00b0C";
                        r = rE[i + 2] / 100;
                        document.getElementById("tax" + i).innerHTML = r.toFixed(1) + " \u00b0C";
                    }
                }
            }
        }

        function sdsps() {
            reqA = false;
            reqO = false;
            reqT = false;
            reqR = false;
            reqU = false;
            if (window.XMLHttpRequest) {
                reqA = new XMLHttpRequest;
                reqO = new XMLHttpRequest;
                reqT = new XMLHttpRequest;
                reqR = new XMLHttpRequest;
                reqU = new XMLHttpRequest;
            } else if (window.ActiveXObject) {
                reqA = new ActiveXObject("Microsoft.XMLHTTP");
                reqO = new ActiveXObject("Microsoft.XMLHTTP");
                reqT = new ActiveXObject("Microsoft.XMLHTTP");
                reqR = new ActiveXObject("Microsoft.XMLHTTP");
                reqU = new ActiveXObject("Microsoft.XMLHTTP");
            }
            if (reqA) {
                reqA.open("GET", "get_sys[431]?rn=4&rand=" + Math.random(), true);
                reqA.onreadystatechange = reqAc;
                reqA.send(null);
            }
            if (reqO) {
                reqO.open("GET", "get_sys[151]?rn=4&rand=" + Math.random(), true);
                reqO.onreadystatechange = reqOc;
                reqO.send(null);
            }
            if (reqT) {
                reqT.open("GET", "get_sys[301]?rn=14&rand=" + Math.random(), true);
                reqT.onreadystatechange = reqTc;
                reqT.send(null);
            }
            if (reqR) {
                reqR.open("GET", "get_sys[231]?rn=6&rand=" + Math.random(), true);
                reqR.onreadystatechange = reqRc;
                reqR.send(null);
            }
            if (reqU) {
                reqU.open("GET", "get_sys[140]?rn=6&rand=" + Math.random(), true);
                reqU.onreadystatechange = reqUc;
                reqU.send(null);
            }
            t = setTimeout("sdsps()", 2000);
        }

        function getSub() {
            sub = false;
            if (window.XMLHttpRequest) {
                sub = new XMLHttpRequest;
            } else {
                if (window.ActiveXObject) {
                    sub = new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
        }

        function sdsc_S(sysn) {
            r = sysn - 144;
            val[r] = (val[r] == 0) ? 1 : 0;
            if(!sub) { getSub(); };
            if (sub) {
                sub.open("GET", "sdscep?sys" + sysn + "=" + val[r], true);
                sub.onreadystatechange = reqRc;
                sub.send(null);
            }
        }

        function btnSts(id, sw) {
            val[id-1] = sw;
            if (sw) {
                document.getElementById("btn" + id).style.background = "Red";
                document.getElementById("btn" + id).value = "ON";
            } else {
                document.getElementById("btn" + id).style.background = "DarkGreen";
                document.getElementById("btn" + id).value = "OFF";
            }
        }
    </script>
</head>

<body onLoad="sdsps();">

<div>
<input type="button"  value="zasuvka u krbu" class="bto">&nbsp;<input type="button"  value="topeni loznice" class="bto">
<input type="button" id="btn1" value="..." class="btn" onClick="javascript:sdsc_S(144);">
<input type="button" id="btn2" value="..." class="btn" onClick="javascript:sdsc_S(145);">
<input type="button"  value="topeni mistnost" class="bto">&nbsp;<input type="button"  value="svetlo vchod" class="bto">
<input type="button" id="btn3" value="..." class="btn" onClick="javascript:sdsc_S(146);">
<input type="button" id="btn4" value="..." class="btn" onClick="javascript:sdsc_S(147);">
<input type="button" id="btn9" value="zamek branka" class="bto">&nbsp;<input type="button"  id="btn8" value="svetlo branka" class="bto">
<input type="button" id="btn5" value="..." class="btn" onClick="javascript:sdsc_S(148);">
<input type="button" id="btn6" value="..." class="btn" onClick="javascript:sdsc_S(149);">&nbsp;
</div>
</body>
</html>

15

Re: Chybný stav relé po obnovení zobrazení

daliborp napsal:

Zdravim vsechny. Po nejake dobe se chci zeptat zda nekdo na neco prisel proc se spatne zobrazuje stav rele 3-6 v aplikaci SDS Control Panel ... ? Prosim o reakci. Dekuji. Dalibor

Opět, prosím, kontaktujte autora (zde na fóru jako J@M), popř. výrobce.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

16

Re: Chybný stav relé po obnovení zobrazení

Zdravim. Nainstaloval jsem SDS control na Android a mam problem se zobrazenim aktualniho vykonu. Pokud otevru pristup na SDS pres prohlizec tak merim vykon cca 44Kw a v SDS na Androidu mam pouze 0,74kW je to rozdil dany nastavenim parametru "Podíl převodového poměru MTD:" ktery mam nastaveny na 60 (0,74 x 60 = 44,4). Kdyz jesem koukal do testu komunikace v SDS control na Androidu tak jsem tam nikde parametr "Podíl převodového poměru MTD" nenase. Predpokladam tedy ze s nim SDS control pro Android nepocita a proto je mereny vykon chybny. Je to tak nebo je chyba nekde jinde? Děkuji za info Milan