1

Téma: [vyřešeno] Po upgrade FW restarty SDS

Zdarvim,

pred par tydny jsem upg. FW na SDS Micro na posledni:
Verze použitého firmware: 9.9.2014

Pote jsem zaznamenal samovolne nepravidelne restarty SDS.
Hodil jsem si hlidani SDS a zjistili, ze nekdy se restartne po 12h nekdy vydrzi i 3 dny.
Tusite v cem by mohl byt problem?
Mohl byt fw nekorektne nahrany?

Diky

2

Re: [vyřešeno] Po upgrade FW restarty SDS

Podobný problém jsem zaznamenaljiž dříve  viz. http://forum.merenienergie.cz//viewtopic.php?id=621
Největší četnost restartů je pokud se přistupuje k uživatelským proměnným sys[141-149] jak z programu (user webu) a zárověň se editují ze stránky nahrané ve FMW (zde stači refresh věstavěné  SDS stránky pokud předtím člověk editoval proměné )

3

Re: [vyřešeno] Po upgrade FW restarty SDS

Uzivatelske promene nepouzivam
Jedine co jsem vlastne zmenil, je toto: http://forum.merenienergie.cz//viewtopic.php?pid=4692#p4692
Zkousel jsem v simulatoru a vypadalo ok

4

Re: [vyřešeno] Po upgrade FW restarty SDS

Typicky problémy jsou s HTTP GET v rámci SDS-C, což může být i tento problém.
Nechám i prověřit restarty které by měly být způsobeny přístupem k sys[141-149] z více míst, to bude velmi zajímavý bug.
Uvidíme s čím přijde nová BETA, možná že v této oblasti budou změny.

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

5

Re: [vyřešeno] Po upgrade FW restarty SDS

Tak na toto jsem nenarazil a myslím, že s tím dělám hodně "psí kusy". Jsem zvědav na co adam přijde. Mě teď jeden zákazník tlačí na kontrolu FW, kde při nějakém čase při špatném spojení přes gsm se celé sds restartne do továrního! nastavení. To už je něco co vůbec nechápu.

6 Naposledy upravil: bures (2015-01-04 18:03:33)

Re: [vyřešeno] Po upgrade FW restarty SDS

Chci se jeste zeptat jak je to s promen. sys[140] až sys[149]
Zapisuji se do pameti?
Me se po kazdem rebootu vymazou = 0
Vzhledem k problemu s rebootovanim SDS co par dni je to docela caste

7

Re: [vyřešeno] Po upgrade FW restarty SDS

Sys140-149 jsou v dočasné paměti. Data se smažou po vypnutí zařízení. Ale používám jednoduchou funkci v c-programu pro uložení a opětovné načtení dat z permanentní paměti.

8

Re: [vyřešeno] Po upgrade FW restarty SDS

Poradite jak by se to dalo resit?

9

Re: [vyřešeno] Po upgrade FW restarty SDS

var _disp;        //display sds macro ano/ne
var _pom;       //pomocna
var _memo;    //adresa permanentni pameti
var _web;        //adresa web promennych


// *******  globalni procedury  **********
lcdtime
{
 ram[0]=sys[8] / 10;
 ram[1]=sys[8] % 10;
 ram[2]=sys[9] / 10;
 ram[3]=sys[9] % 10;
 ram[4]=sys[10] / 10;
 ram[5]=sys[10] % 10;
 lcd_echo(1,4,1,ram[0],ram[1]':',ram[2],ram[3]':',ram[4], ram[5]);
}

echotime
{
 ram[0]=sys[8] / 10;
 ram[1]=sys[8] % 10;
 ram[2]=sys[9] / 10;
 ram[3]=sys[9] % 10;
 ram[4]=sys[10] / 10;
 ram[5]=sys[10] % 10;
 echo(ram[0],ram[1]':',ram[2],ram[3]':',ram[4], ram[5]);
}

savetopm
{
 _pom=0;
 _web=140;
 _memo=100;

 label savetopm_1:
 if (sys[_memo]!=sys[_web]) {
  sys[_memo]=sys[_web];
  echotime();
  echo('Hodnota ', sys[_web], ' ulozena do permanentni pameti');
  _pom=1;
 }
 _web++;
 _memo++;
 if (_web<=149) goto savetopm_1;
}

// *******  startovaci procedury  **********
init
{
 echotime();
 echo('Start programu v.1.0.0');
 if (_disp==1) {
  lcd_clear(0);
  lcdtime();
  lcd_echo(10,400,0, 'Start programu');
 }

 // *******  uzivatelsky nastavitelne promenne  ***********
 _disp=0;     //display na sds macro (0-vypnuty, 1-zapnuty)

 // nastavit web promenne sys[140-149]
 if (sys[100]==0 && sys[101]==0 && sys[102]==0 && sys[103]==0 && sys[104]==0 && sys[105]==0 && sys[106]==0 && sys[107]==0 && sys[108]==0 && sys[109]==0) {
  //prvni spusteni - jeste neni nic v PM
  sys[140]=123;  //nastav dle potreby
  sys[141]=123;
  sys[142]=123;
  sys[143]=123;
  sys[144]=123;
  sys[145]=123;
  sys[146]=123;
  sys[147]=123;
  sys[148]=123;
  sys[149]=123;
 } else {
  sys[140]=sys[100];
  sys[141]=sys[101];
  sys[142]=sys[102];
  sys[143]=sys[103];
  sys[144]=sys[104];
  sys[145]=sys[105];
  sys[146]=sys[106];
  sys[147]=sys[107];
  sys[148]=sys[108];
  sys[149]=sys[109];
 }
}

main
{
 savetopm();      //ulozeni parametru z web promennych do permanent memory

 //dalsi funkce nebo volani procedur sem

}

10

Re: [vyřešeno] Po upgrade FW restarty SDS

Diky
Akorat mam stale problemy s restartovanim SDS zrejmne kvuli HTTP GET.
Dalo by se na to mkrnout?

11

Re: [vyřešeno] Po upgrade FW restarty SDS

Nevím jak na to mrknout. Pokud je to vyloženě záležitost funkce htt get, musí to řešit adam ve fw. Jestli chcete trochu experimentovat a to zasekávání je časté, zkuste na nějaký čas zablokovat funkci htt_get a vyzkoušet zda již bude zařízení pracovat v pořádku.

12

Re: [vyřešeno] Po upgrade FW restarty SDS

Vcera jsem jiz zablokoval (upravil jsem, aby se cetlo z xml), prozatim drzi.

13

Re: [vyřešeno] Po upgrade FW restarty SDS

Tak se omlouvam, http_get to nebude, restarty pokracuji dal.
Vymenil sem zdroj za novy, taky nepomohlo.
Du patrat dal....

14

Re: [vyřešeno] Po upgrade FW restarty SDS

Zkuste vše oddělat od SDS (1w, ad, s0), vymazat c-program (nahrát jen prázdný main{}) a nechte to běžet naprázdno. Jestli se bude stále restartovat, pošlete na reklamaci (kontakt je na www.merenienergie.cz). Vymění se to kus za kus.

15

Re: [vyřešeno] Po upgrade FW restarty SDS

Zkusil sem prohodit z druhym SDSkem, dela to stejny.
Takze jim to nebude

16

Re: [vyřešeno] Po upgrade FW restarty SDS

Já jsem ve svém programu výrazně omezil zápis do sys[140] až sys[149] pomocí programu (a pokud možno i zápisy do dalších sys() -např. relé -  místo zapisování stejné hodnoty ve stále se opakujících cyklech nejprve testuji stav proměnné a teprve pak ji případně měním) a samovolné restarty vymizely. Rovněž jsem vyhodil DNS_resolv a nahradil pevnou adresou. Je pravda že se rovněž vyhýbám stavům které k restartům vedly - změna těchto proměnných pomocí www stránky ve firmware zanechává v adresním řádku prohlížeče kód např. http://192.168.2.250/sdscep?sys145=3300&p=6 a následný refresh prohlížeče např. pomocí F5 často vedl k restartu.

17

Re: [vyřešeno] Po upgrade FW restarty SDS

Já mám třeba na stole pohozené nějaké 2,3 sds. Se všemi dělám psí kusy, vyvíjím c-programy, posílám data na web, čtu UDP, zapisuju přes user.htm a nikdy se mi žádný restart nepovedl. Opravdu bychom to rádi odstranili, ale nevíme čeho se chytit. Dole u hodin mám macro co běží snad už 2r bez problémů. Čte asi 10 teplot, AD, S0, posílá vše na portál, obsluhuje plyn.kotel, bojler, radiátory...

18

Re: [vyřešeno] Po upgrade FW restarty SDS

K SDS ma pripojenych 6 teplomeru
OPTO1 - elektromer
OPTO2 - vodomer
OPTO3 - rele VS116K (zjistuje stav cerpadla)
RELE1 - pripojeny kotel (spinani termostatu)
Na webu mam nastavene vycitani dat z xml co minutu

Program sem orezal na toto:

var limit, hystereze;
 var teplota;
 var email_odeslan;
 var email_odeslan2;

 init
{
 wait(10000);
 limit=8200; 
 hystereze=400;
 email_odeslan=0;
 email_odeslan2=0;
 echo(sys[5]'-'sys[6]'-'sys[7]' 'sys[8]':'sys[9]':'sys[10]' ''Start systemu!!!');
}


teplota_ok
{
  if (email_odeslan2 == 0)
  {
    smtp_send('x@x.cz','Topime!', 'Topeni jede.');
    echo(sys[5],'.',sys[6],'.',sys[7],' - ',sys[8],':',sys[9],':',sys[10],'   Topime.');
    email_odeslan2 = 1;
  }
  sys[231] = 0;
  email_odeslan = 0;
}

hlasim_prekroceno
{
  if (email_odeslan == 0)
  {
    smtp_send('x@x.cz','Netopime!!!', 'Nabito!!!');
    echo(sys[5],'.',sys[6],'.',sys[7],' - ',sys[8],':',sys[9],':',sys[10],'   Nabito.');
    email_odeslan = 1;
  }
  sys[231] = 255;
  email_odeslan2 = 0;
}

porovnani_teplot
{
 teplota = sys[311];
  if (teplota < limit - hystereze) teplota_ok();
  if (teplota > limit) hlasim_prekroceno();
}

main
{
 porovnani_teplot();  
}

19 Naposledy upravil: ringojr (2015-02-03 22:11:53)

Re: [vyřešeno] Po upgrade FW restarty SDS

Jestli je program skutečně vypadá takto a nemá jen demonstrovat princip činnosti tak problémem je volání  smtp_send  dřív než se dokončí odeslání předchozího mailu (případně ještě do toho vstupují ty zápisy do sys relé). Hystereze by to sice měla ošetřit, ale prosté čtení teplot bez testu jestli převod byl proveden ( testování sys[351] ) může vracet chybné hodnoty takže se krátce po sobě mohou pozitivně vyhodnotit obě podmínky.
Vzpomínám si že když u mě docházelo k častým resetům tak jsem tam měl taky nedostatečně ošetřenu kontrolu odeslání mailu a  po samovolném resetu (takže asi nebyl úplný) se neprovedlo ani odeslání mailu v sekci init. A změna v chování SDS nastala zcela jistě po upgrade firmware kdy jsem nějaké verze přeskočil.

20

Re: [vyřešeno] Po upgrade FW restarty SDS

Ano ringojr to vypsal úplně přesně. Určitě bych zavedl kontrolu přes sys[65]. Teploty by možná stačilo kontrolovat pouze na povolený rozsah. Tedy pokud vím, že teploty mohou nabývat hodnot od 5st do třeba 120st, přiřadit hodnotu sys[311] do proměnné, pak:

teplota = sys[311];
if (teplota >500 && teplota <12000){
  if (teplota < limit - hystereze) teplota_ok();
  if (teplota > limit) hlasim_prekroceno();
}

Relé stačí měnit pouze u jiného stavu. Tedy:
if (sys[231] != 255) {sys[231] = 255;}

Po smtp_send nebo před každým smtp_send otestovat na OK:
if (sys[65]==256){
//nevim ted z hlavy co vraci sys[65] po startu SDS- pripojeni napajeni
//mozna to bude chtit podminku (sys[65]==256 || sys[65]==0)
smtp_send('x@x.cz','Netopime!!!', 'Nabito!!!');
} else {
např. echo('Chyba odeslání emailu:', sys[65]);
}

21 Naposledy upravil: bures (2015-02-04 11:59:56)

Re: [vyřešeno] Po upgrade FW restarty SDS

Aha, tak tohle sem netusil.
Zas se mam co ucit :-(

Zkusil sem program poupravit dle rad, na konozle me to ted pise:
Chyba odeslani emailu: 65535
Ve status code nic takoveho nevidim.
Nevim jestli jsem se do toho uz nezamotal uplne :-(

Poradite co to?
Pripadne upravite ten program co sem tu vkladal.

Diky

22

Re: [vyřešeno] Po upgrade FW restarty SDS

To 65635 je číslo na které je sys[65] nastavena po resetu, někde to bylo napsáno v diskusi.

23

Re: [vyřešeno] Po upgrade FW restarty SDS

Ja to hledal na wiki.
Zkusim upravit, snad uz bude ok.

Diky

24

Re: [vyřešeno] Po upgrade FW restarty SDS

Zdravim...

2.2. jsem provedl upgrade FW na mem sds mikro na posledni ofic verzi 9.9.2014.Puvodne jsem mel verzi 5/2012. Pred provedenim upgradu sds jelo bez restartu 187 dni.
Nyni za tech par dni ( 12 ) se provedlo 8 restartu.Nastaveni, zapojeni, mam stejne co ve stare verzi.Html stranku v sds nemam nahranou...Co se tyce napajeni, tak sds jede z baterie UPS zdroje o kapacite 550Ah,takze nehrozi nejake kolisani ani nic podobneho....A posledni restart se provedl dnes rano v 4:13 hod.Takze to eliminuje nejaky mozny zasah ode mě i z venci....Popravde sleduju provoz v mikrotiku a do sds nikdo pripojeny nebyl...
Ma nekdo nejaky napad,co by to mohlo zpusobovat,nebo je tam jen nejaky bug,ktery se projevuje jen u me.
PS: SDS je zapojen primo do mikrotiku

Diky za jakoukoliv radu

25

Re: [vyřešeno] Po upgrade FW restarty SDS

Co tam běží za c-program? Teď řešíme vyšší spolehlivost fw při problémech se spojením pro http_get a smtp_send. Ty restarty bych tomu nejspíše přisoudil. Je nutné to ohlídat přes sys[65] - jak je napsáno výše. Nová verze fw asi bude brzy.