Forum Navigation
You need to log in to create posts and topics.

Frecuencia de envio de una misma alarma

Muy buenas, una pregunta sobre las alarmas.

Con que frecuencia minima se puede enviar una misma alarma?

Estoy controlando el tiempo maximo que una puerta puede permanecer abierta, transcurrido ese tiempo envia alarma (notificacion) ciclicamente mientras la puerta permanezca abierta.

Los valores que puede tener el circuito llave son: 0 = cerradura cerrada y puerta cerrada, 249 = cerradura abierta y puerta cerrada y 1 cerradura y puerta abierta.

La consigna 3 le tengo asignado valor 30 con lo que entiendo que deveria enviar una alarma cada 30", pero la envia cada 60"(2 ciclos)

// Control alarma Puerta entrada
if ((Aviso_puerta==true)&&(circuits[9].Value !=249)){
circuits[9].Value++;
if (circuits[9].Value >= Consignas[3]){
SetAlarm(1);
circuits[9].Value = 1;
ResetAlarm(1);
}
}

Estoy haciendo algo mal?

No importa el valor de la consigna, lo mismo 10" que 120", envia la alarma al segundo ciclo.

Me da la sensacion viendo la pantalla de alarmas del servidor que envia la alarma, en el siguiente ciclo resetea la alarma y al siguiente la vuelve a enviar.

Muchas gracias.

Ya que esta puesto el post, me respondo a mi mismo.

He estado leyendo parte de foro antiguo y al parecer no se puede desactivar una alarma hasta que no la recibe el server, por eso pienso que en el ciclo intermedio que ya esta activa en el server es cuando la desactiva y se puede volver a activar.

Si lo dejo de esa forma, poniendo la mitad de tiempo en la consigna podria solucionarlo, pero no se si al activar y desactivar la alarma así podria generar algun problema.

 

 

En principio usando exserver no debe tardar tanto... Si subes el codigo le doy un vistazo

Estado = Overload.

Gracias Roberto.

Modificando la parte de reseteo de alarma trabaja perfectamente con un tiempo de consigna muy bajo 2 ó 3" hasta el valor que le he asignado 120"

Con este codigo controlo alarma de puerta entrada vivienda abierta.

GLOBAL VARIABLES ZONE

boolean Aviso_puerta = false;

 

void UserLoop(){ //EQUIVALENT ARDUINO LOOP FUNCTION

// Cerradura y puerta abierta inicia contador para envio alarma
if ((ReadInput(0)==LOW)&&(ReadInput(1)==LOW)){
if (Aviso_puerta == false){ circuits[9].Value = 1; Aviso_puerta = true;}
}
else{
ResetAlarm(1); Aviso_puerta = false;
}
// Cerradura abierta y puerta cerrada
if ((ReadInput(0)==LOW)&&(ReadInput(1)==HIGH)){
circuits[9].Value=249;
}
// Cerradura y puerta cerrada
if ((ReadInput(0)==HIGH)&&(ReadInput(1)==HIGH)){
circuits[9].Value=0;
}

void LoopNewSecond(){//This event occurs every second

// Control alarma Puerta entrada
if ((Aviso_puerta==true)&&(circuits[9].Value !=249)){
circuits[9].Value++;
if (circuits[9].Value >= Consignas[3]/2){ ResetAlarm(1);}
if (circuits[9].Value >= Consignas[3]){
SetAlarm(1);
circuits[9].Value = 1;
}
}