1

Téma: Zobrazeni teplot na Userweb

Dobrý den, koupil jsem si SDS micro DIN E a nedaří se mi zobrazit teploty na uživatelském webu. Použil jsem upravenou demo stránku pro micro ze které ovládám jen relé. Protože k demo stránce micro není SDS-C program, zkoušel jsem jiné, ale nedaří se mi nic zobrazit.Už jsem se v tom úplně ztratil. Můj SDS program je úplně krátký, nepotřebuji nic odesílat na portál jen na svůj web.
Prostudoval jsem vše na wiki a stále to nejde. Poradí prosím někdo co s tím? Děkuji Milos

init
{
 echo('Start programu');
 sys[140]=0;
 sys[141]=0;
 sys[142]=0;
 sys[143]=0;
 sys[144]=0;
}
 main
 {

// *******  ovladani rele  **********
  
//K1-zap
  if (sys[140]==1) {
  sys[231]=255;
   //echotime();
   echo ('R1 on');
   wait(2000);
   sys[231]=0;
   }
   sys[140]==0;
 
 //K2-zap
  if (sys[141]==1) {
   sys[232]=255;
 // echotime();
   echo ('R2 on');
   wait(2000);
   sys[232]=0;
   }
   sys[141]==0;
  
 // K1 - rele1
 if (sys[493]==1) {
     wait(10000);
  sys[231]=255;
  //echotime();
  echo ('RESET - K1');
  wait(2000);
  sys[231]=0;
  }
  sys[493]==0;
 

// K2 - rele2
 if (sys[494]==1) {
     wait(10000);
  sys[232]=255;
  //echotime();
  echo ('RESET - K2');
  wait(2000);
  sys[232]=0;
  }
  sys[494]==0;
  
   //zap digital-2s
 if (sys[142]==1) {
  sys[301]=255;
  //echotime();
  echo ('DO on');
  wait(2000);
  sys[301]=0;
  }
  sys[142]==0;
  
  
 }
  

2

Re: Zobrazeni teplot na Userweb

Inspirujte se např. u vlastního webu samotného SDS, nebo tady na fóru je několik docela kompletních příkladů.

Každopádně, do webové stránky dáte např. javascript který se bude pravidelně SDS dotazovat na patřičné položky, a výsledky těchto dotazů pak nastaví určeným elementům stránky (které se tam musí připravit).

V podstatě to co dělá webová stránka vlastního webového rozhraní SDS, která ty teploty zobrazuje (stránka "Aktuální stav").

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

3

Re: Zobrazeni teplot na Userweb

Tak po dlouhém bádání to konečně začalo fungovat. Je to sice celé rozházené, ale s tím už si poradím. Je to slátané systémem pokus-omyl. Myslím JavaScript - je z různých stránek a je  tam víc kodů než je potřeba a některé jsou zdvojené. Ale to už dohromady dám. Hlavně, že už to jde. Já jsem nevěděl jestli se musí upravovat SDS-C program, to byl hlavní problém. Ale byla to dobrá škola.
Díky Miloš

4

Re: Zobrazeni teplot na Userweb

Tak všechno už to tak nějak funguje, až na spínání relátek z Uweb. Když to zkouším testovat přes google/F12/console/...,tak mi to hlásí chybu u reqCompleteR, že není definované. Tlačítko jde přes: //<input value=" Kvitace K1 "onclick="javascript:sdsc_S(140,1);" type="button">//. Zkoušel jsem kde co a stále nejde.
Ještě nevím co znamenají ta čísla v hranatých závorkách, třeba://document.getElementById("AD0").innerHTML=rE[11];//

<script type="text/javascript">
  var t;
  var reqR=true;
  var req=false;
  var reqTemp =null;
  var boolNames =true;
  var timeout = 2000
  
  
  function reqComplete(){
   if(req.readyState == 4){
    if(req.status == 200){
     var rE=req.responseText.split("|");
     document.getElementById("AD0").innerHTML=rE[11];
     document.getElementById("AD1").innerHTML=rE[12];
      if(rE[10]=='bez senzorĹŻ'){
      document.getElementById("pocetcidel").innerHTML=rE[10];
      
     } else {
      var rACU=rE[10].split(" ");
      document.getElementById("pocetcidel").innerHTML=((rACU.length-1)/2)+" &nbsp;(16)";
     }

     var xx;
     xx=((5*(59 - 30*((3/1024)*rE[9])))/2);
     xx=xx.toFixed(1);
     document.getElementById("SoC").innerHTML=xx+" &deg;C";
    }
   }
  }

   
      function fceCidla(){
       if(reqTemp.readyState == 4 && reqTemp.status == 200){
           if(reqTemp.responseText != ''){
             var cidlaTeploty = reqTemp.responseText.split("|");
             for(i = 1; i <= cidlaTeploty.length; i++){
                 objTemp = document.getElementById('temp' + i);
                 pom = cidlaTeploty[i-1] / 100;
                    if(pom > 200){
                    objTemp.innerHTML = '-';
                    pom=0;
                    }else{
                      //objTemp.innerHTML = pom.toFixed(2) + " °C";
                      objTemp.innerHTML = pom.toFixed(1) + " °C";
                    }
                   }
              }
          }
        }

  var reqE=false;
  function reqCompleteE(){
   if(reqE.readyState == 4){
    if(reqE.status == 200){
     var rE=reqE.responseText.split("|");
     document.getElementById("vykon").innerHTML=rE[8];
     document.getElementById("vykon2").innerHTML=rE[15];
     document.getElementById("vykon3").innerHTML=rE[22];

    }
   }
  }
  var reqE2=false;
  function reqCompleteE2(){
      if(reqE2.readyState == 4 && reqE2.status == 200){
         
             var rE2 = reqE2.responseText.split("|");
              document.getElementById("tmin").innerHTML=rE2[3] ;
              document.getElementById("tmax").innerHTML=rE2[4] ;
              document.getElementById("bojlitr").innerHTML=rE2[5] +" %";
              document.getElementById("maxL1").innerHTML=rE2[7] +" W";
              document.getElementById("maxL2").innerHTML=rE2[8] +" W";
              document.getElementById("maxL3").innerHTML=rE2[9] +" W";
              document.getElementById("max3f").innerHTML=rE2[6] +" W";
             
              document.getElementById("suma2").innerHTML=rE2[14]/1000 +" kW";
              document.getElementById("hodL1").innerHTML=rE2[16] +" Wh";
              document.getElementById("hodL2").innerHTML=rE2[17] +" Wh";
              document.getElementById("hodL3").innerHTML=rE2[18] +" Wh";
              document.getElementById("hodLV").innerHTML=rE2[19] +" Wh";
              document.getElementById("hod24").innerHTML=rE2[20] +" Wh";
      }
  }
 
  function sdsps(){
   req=false;
   regE=false;
   reqE2=false;
   reqR=false;
   reqTemp=false;
  
   
   if(window.XMLHttpRequest){
    reqTemp = new XMLHttpRequest();
    req=new XMLHttpRequest();
    reqE=new XMLHttpRequest();
    reqR=new XMLHttpRequest();
    reqE2=new XMLHttpRequest();
   }
   else if (window.ActiveXObject){
    reqTemp = new ActiveXObject("Microsoft.XMLHTTP");
    req=new ActiveXObject("Microsoft.XMLHTTP");
    reqE=new ActiveXObject("Microsoft.XMLHTTP");
    reqE2=new ActiveXObject("Microsoft.XMLHTTP");
    reqR=new ActiveXObject("Microsoft.XMLHTTP");
   }
   if (req){
   //opto
    req.open("GET", "cgi_dys?rand="+Math.random(), true);
    req.onreadystatechange = reqComplete;
    req.send(null);
   }
   if (reqE){
    reqE.open("GET", "cgi_dyeA?rand="+Math.random(), true);
    reqE.onreadystatechange = reqCompleteE;
    reqE.send(null);
   }
   if(reqE2){
     reqE2.open("GET", "get_ram[10]?rn=21&rand="+Math.random(), true)
     reqE2.onreadystatechange = reqCompleteE2;
     reqE2.send(null);
    }
    
    if(reqTemp){
    //teploty
     reqTemp.open("GET", "http://192.168.1.250/get_sys[310]?rn=16&rand="+Math.random(), true);
     reqTemp.onreadystatechange = fceCidla;
     reqTemp.send(null);
    }

    if(reqR){
    //rele
     reqR.open("GET", "http://192.168.1.250/get_sys[231]?rn=2&rand="+Math.random(), true);
     reqR.onreadystatechange = reqCompleteR; //.............................................tady to hlásí chybu
     reqR.send(null);
    }

   t=setTimeout("sdsps()",2000);
  };

 
  </script>            

5

Re: Zobrazeni teplot na Userweb

Proměnná rE je pole, které vznikne tím, že se použila funkce split. Tato funkce, podle kódu který vidím, si bere vstup z responseText a vydává výstup jako položky pole [0] až [n], kde každá položka je kus textu vybraný z responseText proměnné, přičemž jednotlivé kusy jsou odlišeny právě znamek svislítka |

var responseText = "abc|1234|bee";

var rE=req.responseText.split("|");

potom:

rE[0] je "abc" , rE[1] je 1234 a rE[2] je "bee" .

Tohle je čistě záležitost programování v javascriptu, a SDS na to nemá vliv.


Dále, druhý dotaz: reqCompleteR

V uvedeném kódu to není, proto to "háže tu chybu".

Posíláte požadavek na server (SDS), a než to pošlete tak javascriptu nastavíte, že při každé změně stavu provádění požadavku, má zavolat vaši funkci. Toto se děje právě nastavením reqR.onreadystatechange, na hodnotu reqCompleteR což je vaše funkce. A proto ji musíte někde definovat, a dát si do ní svůj kód. Nebo ji nechat prázdnou, pokud s průběhem a výsledkem už nic  dále nechcete dělat (pak lze i to celé přiřazení rovnou smazat).

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

6

Re: Zobrazeni teplot na Userweb

Děkuji za vysvětlení. Na tu záležitost s rE"[0]... " se mi podarilo přijít jak to asi funguje. S tím "reqCompleteR" je to už horší. Já asi chápu jak by to mělo fungovat, ale nejsem programátor a navíc už jsem důchodce čekatel, takže mi nezbývá než se pořád vyptávat. Už to do hlavy nejde jako dřív.
Jinak zařízení už je plně funkční. Došel jsem k tomu, jak už tu někdo psal, postupným přidáváním a umazáváním kodu.
Zbývá mi už jen vymyslet funkci "když sepne OPTO1/OPTO2, tak at se na uwebu zmení barva tlačítka, nebo nějakého políčka " porucha " z bílé na červenou". Nebo tak něco, aby bylo vidět, že je porucha.
Kdyby to navíc ještě blikalo bude super. V lidštině to umím, ale napsat to do kodu bude o poznání horší.
Tak jdu na to, snad to vyřeším.

7

Re: Zobrazeni teplot na Userweb

Jasné.

Všechno tohle je jako učit se cizí řeč - někdo to už vymyslel, více nebo méně kvalitně popsal, a každý kdo chce cizí řečí mluvit se to musí nakonec sám naučit.
Programování v javascriptu je právě tento případ. Někdo to vymyslel (javascript) a také určil jak se to má chovat (integrace a použití ve webovém prohlížeči = funkce DOM). No a tohle je potřeba si nastudovat, a vyzkoušet ideálně na malých příkladech.
Nakonec člověk zjistí že je to velice jednoduché, a prakticku mu stačí několik řádků kódu které pak s různými drobnými úpravami opakuje ve svých projektech.

Pro javascript a DOM jsou výborné online kurzy od w3 konzorcia, specificky záležitosti kolem toho requestu: https://www.w3schools.com/js/js_ajax_http_send.asp
Prakticky je tam skutečně vše dostatečně vysvětleno, i s příklady.

Naroubovat to na SDS je pak už jednoduché. SDS všechny své dynamická data (odpověď na request) předává jako dlouhý text (string), ve kterém jsou prvky odděleny svislítkem - a to se pak rozpadne na pole pomocí funkce split. Viz příspěvek výše.

Změna barva tlačítka - to je práce s DOM v javascriptu, tedy opět viz další návod na w3.

Praktická realizace popsaného úkolu bude taková:
- udělat funkci (timer) která vyvolá dotaz na SDS, např. co 1 sekundu (viz hotová řešení v sds web stránkách)
- na základě zpracování odpovědi změnit DOM parametry nějakého prvku (např. style pro button)
- nebo aby to blikalo, udělat si další timer, který bude volat svou funkci v rytmu blikání, ale v této funkci dojde ke změně DOM paramterů prvku (tlačítka) jen když je nastavena nějaká vlastní proměnná (která se nastaví právě v té obsluze přijaté odpovědi ze SDS, namísto přímé sahání na parametry tlačítka)

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

8

Re: Zobrazeni teplot na Userweb

Dík za vše, ale já už se v tom naprosto ztrácím. Celý den se snažím něco vymyslet, ale nejde mi to .Jsem v bludném kruhu a nejde s toho ven, něco dělám a nevím co.  Mám určitou představu, že to budu z Uwebu volat podobně jako teplotní čidla jen tam zadám sys[pro OPTO] a pak to i podobně zobrazím. Nechápu, proč by u toho měl být timer, ten bych viděl až na to blikání. Na vstupu OPTO je kontakt relé, který ho sepne. To sepnutí potřebuju vyhodnotit jako poruchu rozsvícením červeného prvku a nápisem porucha a nemusí ani blikat. Ráno to ještě zkusím a pokud se nepohnu, tak to vzdávám. Jak jsem psal je to první a asi i poslední akce. Nemůžu tomu věnovat tolik času, prostě na tohle nemám.
To co jsem chtěl, tak funguje. Osadím to vše do rozvaděče a odzkouším na stole. V týdnu to namontuju oživím a hotovo. Až bude čas a budu se nudit, tak to můžu zase zkusit.

9

Re: Zobrazeni teplot na Userweb

OPTO 0 je sys[151], viz http://wiki.merenienergie.cz/index.php/ … Drobky_SDS

Takže pro čtení stavu je potřeba zavolat (vzor zde:) 192.168.1.250/get_sys[151]

Toto volání je potřeba na webové stránce opakovat např. co 1 sekundu, protože jinak se samo od sebe nestane.
To se řeší v javascriptu ideálné právě timerem.

V obslužné vlastní funkci, která se provede vždy po přijetí odpovědi na každý dotaz, se pak zpracuje výsledek, a podle něj se nastaví DOM parametry např. tlačítku nebo buňce v tabulce atd. (červená / zelená).

Je to fakt velice jednoduché, zde je hotový příklad:

<!DOCTYPE html>
<html>

<script>
 var t;
 var req = false;

 function showAlarm() 
 {
   // prvek td tabulky viz html kod dole
   document.getElementById("td1").style.color = "#ffffff";
   document.getElementById("td1").style.background = "#ff0000";
   document.getElementById("td1").innerHTML = " OPTO AKTIVNI ";
 }
 
 function showKlid() 
 {
   document.getElementById("td1").style.color = "#000000";
   document.getElementById("td1").style.background = "#00ff00";
   document.getElementById("td1").innerHTML = " OPTO KLID ";
 } 
 
 function reqComplete()
 {  
  // volano prubezne jak je postupne dotaz na sds zpracovavan
  if (req.readyState == 4)
  {
    // dotaz je hotovy
    //
    // jaky je http vysledek
    if (req.status == 200)
    {
      // ok je to 200, takze mame response
      //
      // opto je aktivni kdyz je v nule
      if (req.responseText == "0")
      {
        showAlarm();
      } else
      {
        showKlid();
      }
    }
  }
 }
 
 function sdsps()
 {
   // init - nachystat komponentu pro odeslani dotazu
   req = false;
   if (window.XMLHttpRequest)
   {
    req=new XMLHttpRequest();    
   }
   else if (window.ActiveXObject)
   {
    req=new ActiveXObject("Microsoft.XMLHTTP");   
   }   
   
   // start
   if (req) 
   {
    // posleme HTTP GET dotaz na SDS, budeme se ptat na stav sys[151] coz vime ze je OPTO0
    req.open("GET", "get_sys[151]?rand="+Math.random(), true);
    req.onreadystatechange = reqComplete;
    req.send(null);
   } else
   {
     alert("prohlizec neni kompatibilni s timto skriptem");
   }
   
   // dotazy na SDS opakovat co 1000 msec
   t = setTimeout("sdsps()", 1000);
 }
 
</script>

<body onLoad="sdsps()">

<div>
 SDS OPTO0<br>
 <table><tr height="32"><td>stav:</td><td id="td1"> CEKAM NA SDS </td></tr></table>
</div>

<br>

</body>
</html>

Důležité upozornění - toto vše se děje jen, pokud má někdo takovou webovou stránku otevřenou v prohlížeči.
Pokud to má mít i nějakou skutečnou funkci, např. něco i ovládat, pak se taková věc musí naprogramovat do SDS-C programu (který trvale běží na SDS) a web využít jen pro (v podstatě občasné) sledování stavu.

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

10 Naposledy upravil: samsonite44 (2020-12-13 17:25:56)

Re: Zobrazeni teplot na Userweb

No jednoduché jak pro koho. Já jsem se za dopoledne zmohl jen na něco, co se tomu podobá jen vzdáleně. Raději to tu nebudu publikovat. Ale v pár věcech jsem se trefil. Když jsem to testoval s doplněnou IP adresou jen na PC nedělalo to nic. Zkusím to nahrát do SDS a uvidím. Stejně to ještě nebude konec mého utrpení. V každém případě děkuji, je fajn, že jste tam dal ty komentáře, bude se mi to líp studovat. Ozvu se jak to dopadlo, ale nevím jestli to bude ještě dnes. Manželce už se to moc nelíbí.Díky

Předpokládám, že když tento kod nahraju do čistého SDS jako Uweb, tak by to mělo fungovat, nebo se mýlím?
Bohužel to nedělá nic. Myslím, že je chyba na ř.36 //if (reqE2.responseText == "0")// že by tam nemělo být E2.
Další chybu to vyhazuje na ř. 66 //req.send(null);//. Po sepnuti OPTO1 by se měla změnit barva toho nápisu?

11

Re: Zobrazeni teplot na Userweb

Ano, to reqE2 je překlep, opravil jsem to - req.

Ano má se změnit barva (color) a pozadí (background) nápisu, i jeho obsah (innerHTML).

Z toho PC to nefunguje protože tomu brání váš prohlížeč (funkce "cross-site scripting"). Je potřeba buď použít prohlížeč který tomu nebrání (tahat data z jiné adresy než odkud je otevřena stránka), nebo nahrát stránku do SDS (jako userweb) a otevřít ji z adresy na které je i SDS (např. ta 192.168.1.250).

Doufám že se vám to podaří dotáhnout.

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

12

Re: Zobrazeni teplot na Userweb

Podívám se na to jakmile se k tomu dostanu.

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

13

Re: Zobrazeni teplot na Userweb

Vše je vyřešeno, tentokrát doopravdy. Funguje to tak jak má, včetně odesílání dat na portál. Děkuji za pomoc.

14

Re: Zobrazeni teplot na Userweb

Musíte počítat restarty a zahrnout je do podmínky v programu. Jelikož to chcete i ručně resetovat, pak přes sys[145] - např. -nevím, kterou hodnotu máte volnou.

tzn. v init sys[145]=0;

v programu to vložit podmínku - 
if (sys[493]==1 && sys[145]<4) {
sys[145]=++;
atd...

Tedy sys[493] není správná proměnná. Pro stav opto vstupu je nutné použít sys[151]-sys[158]. Logika je tam obrácená, tj.  přítomnost signálu =0, tzn. např. if (sys[151]==1 && sys[145]<4) ...
A ano / wait není vhodná funkce. Doporučuji buď odpočet sys[64] nebo sys[3] stylem definování si vlastních proměnných pro odpočty. Výhodou je, že program běží dál.

var odpocet;

init
odpocet=0;

v programu:
{
if (něco && odpocet==0)
  {odpocet=sys[3]+1000;} //funkce je v krocich 10ms, takze 10s=1000
else
  {if (odpocet<sys[3])
    {odpocet=0; }}
}

Nevím, co znamená zápis  "sys[493]==0;"  "==" je srovnávací operátor, takže má smysl v podmínkách. Stav opto je definovaný přítomností signálu, takže ho přepsat nelze (i kdyby to bylo možné, což není). A k definování hodnot se pak použije operátor "=".

15

Re: Zobrazeni teplot na Userweb

Tak ty resety jsem dal dohromady a tak by to mohlo zůstat. Poradil by prosím někdo jak nahradit wait za sys[64]. Pořád se mi nedaří na to přijít.Děkuji.

 
var odpocet;

init
{
echo ('Start programu');
sys[140]=0;
sys[141]=0;
sys[231]=0;
sys[142]=0;
sys[143]=0;
sys[232]=0;

odpocet=0;
}

 main
 //automaticke resety
 {
 if (sys[151]==0 && sys[140]<3)
 {
    sys[140]++;
    wait(2000);
    sys[231]=1;
     echo ('auto reset K1');
     wait(1000);
     sys[231]=0;
 }

if (sys[152]==0 && sys[142]<3)
 {
    sys[142]++;
    wait(2000);
    sys[232]=1;
     echo ('auto reset K2');
     wait(1000);
     sys[232]=0;
 }

//rucni resety

  if (sys[141]==1)
  {
   sys[231]=255;
   echo ('rucni reset K1');
   wait(2000);
   sys[231]=0;
   sys[493]=0;
   sys[140]=0;
   sys[141]=0;
  }
  
 if (sys[143]==1)
  {
   sys[232]=255;
   echo ('rucni reset K2');
   wait(2000);
   sys[232]=0;
   sys[494]=0;
   sys[142]=0;
   sys[143]=0;
  } 
  
}

  

16

Re: Zobrazeni teplot na Userweb

Pokud máte krátký program a wait vám neovlivňuje jiné procedury, tak to nechte. Jinak odpočty času je třeba zahrnout do vyhodnocovací podmínky. Odpočet sys[64] lze použít, pokud ho máte v programu 1x. Pokud ho použijete pro více podmínek, může vám ovlivnit běh - typicky pokud spadnou oba kotle do chyby... To mj. platí i pro funkci "wait". Pro tyto případy se použijí vlastní odpočty, které si definujete vlastní proměnnou "odpocet1", "odpocet2" atd. Více o sys[64] na na https://wiki.merenienergie.cz/subdom/wiki/index.php?title=SDS-C:_popis_jazyka
vyhledejte "čekací smyčka".
O definování vlastních odpoctu jsem psal:
v uživatelských proměnných si definujete vlastní proměnnou var odpocet1; var odpocet2; 
v init nastavení odpocet1=0; odpocet2=0;
v programu místo wait použijete další podmínku (uvnitř nadřazené)
{
if (odpocet1==0)
  {sys[231]=255;
    odpocet1=sys[3]+100;}
else
{if (odpocet1<sys[3])
  {sys[231]=0;
   odpocet=0;}
}

17

Re: Zobrazeni teplot na Userweb

Ano, program je to krátký, jen ty resety, signalizace poruchy a 5 teplot odesílaných na server. Takže to asi nechám být. Podarilo se mi ten say [64] rozchodit a chová se to stejně jako s wait. Ted ještě řesím, že mi nefungují ty ruční resety z webu. V simulátoru to všechno funguje, ale to bych měl zvládnout. Takhle mam ten sys[64]. Jinak děkuji za rady.

 //rucni reset K1
if (sys[141]==1)
  {
   sys[231]=255;
   echo ('rucni reset K1');
   sys[64]=1;
   label K1:
if (sys[64] != 0) goto K1;   
   sys[231]=0;
   sys[493]=0;
   sys[140]=0;
   sys[141]=0;
  } 

18

Re: Zobrazeni teplot na Userweb

Ten odpočet sys[64] je třeba vyhodnotit podmínkou - na rozdíl od wait. Tak, jak je to napsané, tak v okamžiku nastavení sys[64]=1; ihned platí následující podmínka if (sys[64]!=0;) - bez ohledu na to, jestli nastavím 1sek nebo 60sek. Možná je to myšleno dobře, ale pak vám tam chybí else. Tzn. když nebude hodnota nulová, půjde na "K1". Když bude nulová hodnota sys[64] , podmínka není splněna. Takže ty příkazy dál se nikdy neprovedou. To se právě řeší podmínkou if/else.  Plus je tam skok na K1, takže netuším, co tím je, nebo není ovlivněné.
Jak jsem psal - pokud máte program na několik řádků, použijte wait. Bude to pro vás jednodušší.

19

Re: Zobrazeni teplot na Userweb

Je to jednoduchý program. Nechal jsem to s tím waitem. Teď to testuju a vypadá, že to funguje správně. Ještě bych chtěl udělat pár malých úprav a snad to bude dobrý. Zeptal bych se ještě na jednu věc. U zobrazení času mi docela vadí, že se zobrazuje mimo času a data taky údaj (UTC+1h=LČ). Dá se to nějak odstranit. Chtěl bych jen čas a datum.