/****************************************************************************
** При тревоге роникновения, включить реле с задержкой 10 минут. В случае если
** раздел перейдет из тревоги в другое состояние, то отменить включение реле.
****************************************************************************/

const numPKU  = 1; // Номер пульта
const numPart = 1; // Номер раздела
const numDev  = 1; // Номер прибора
const numRelay= 1; // Номер реле

const stateAlarm =  3;  // Состояние "Тревога проникновения"

var timerID= -1;
  
// Если состояние какого-нибудь раздела изменится, то вызвать функцию.
armSkif.signalUpdatePart.connect( updatePart );

//---------------------------------------------------------------------------
function updatePart(nPKU, nPart)
{
  if ( (nPKU == numPKU) && (nPart == numPart) ) // Если нужный раздел, то:
  {
    var partState = armSkif.getPartState(nPKU, nPart);// Состояние раздела
    
    if (partState == stateAlarm) // Если "Тревога проникновения", то:
    { // Запланировать вызво функции "controlRelay" через 10 минут
      if (timerID == -1) 
	timerID = armSkif.setTimeout(controlRelay, 600000);
    }
    else 
    {
      //Выключить реле
      armSkif.controlRelay(numPKU, numDev, numRelay, armSkif.RL_OFF); // Выключить реле
      
      if (timerID != -1)
      { // Отменить отложенный вызвов функции
	armSkif.clearTimeout(timerID); 
	timerID = -1;
      }
    }
  }
}
//---------------------------------------------------------------------------
function controlRelay()
{
  armSkif.controlRelay(numPKU, numDev, numRelay, armSkif.RL_ON ); // Включить реле  
}