Страница 1 из 1

проверка online для esp8266 (как правильно?)

Добавлено: Пн сен 19, 2016 5:26 pm
zoz
Возникла необходимость проверить ESP8266 (прошивка wifiot) на "живость".
данные с ESP получаю сценарием espdata, также установлен модуль esp8266_wifiot.

пока сравниваю передаваемый от ESP Uptime с его передыдущем значением:

Код: Выделить всё

 if (gg('ESP01.uptime_old')!=gg('ESP01.uptime')) 
 {
  setGlobal ('ESP01.online',1);
   } else { setGlobal ('ESP01.online',0); }

setGlobal ('ESP01.uptime_old',gg('ESP01.uptime')); 
Но в данном случае есть ложные срабатывания и думаю есть более изящный подход.
Ping устройства, меня не устроил.

Подскажите кто как делал?

Re: проверка online для esp8266 (как правильно?)

Добавлено: Пн сен 19, 2016 8:02 pm
ipz
Можно сделать по аналогии с keySensors (я вообще перенес класс Esp8266 в подклассы keySensors).
В методе onChange() написано:

Код: Выделить всё

    $this->setProperty("Alive",1);
    $alive_timeout=(int)$this->getProperty("aliveTimeOut");
    if (!$alive_timeout) {
      $alive_timeout=900; 
    }
    clearTimeOut($obj."_alive");
    setTimeOut($obj."_alive","sg('".$obj.".Alive',0);",$alive_timeout); 
Esp шлет данные каждые 10 мин. При получении данных свойство Alive устанавливается в 1 и устанавливается таймаут на 15 минут (можно поставить любой, по вкусу). Если данные не пришли за это время, то датчик считается "отпавшим".