Problema para actualizar datos de pagina sin tener que abrirla.

diegodelpiero

Lanero Reconocido
4 Jun 2009
215
Saludos, estoy desarrollando un pequeño Dashboard con placas arduino, hasta ahora todo funciona bien, las placas leen los datos de temeperatura y consumo de unos cuartos frios, los envia a mi hosting, y puedo ver los datos en tiempo real en mi pagina, la cuestion es que necesito que cuando se sobrepase cierta temperatura se me envie un mensaje a telegram informando la novedad, todo esto lo he logrado hacer, pero el mensaje me llega siempre y cuando tenga la pagina abierta como tal, mi idea es que el mensaje llegue sin tener que estar la pagina abierta, no se si me hago entender..

este es el codigo con el cual llamo los datos, hago la verificacion y llamo la pagina que envia el mensaje:

JavaScript:
<script> // generamos alerta cuando la temperatura suba cierta medida
    
    setInterval(function () {
        var JSON=$.ajax({
        url:"https://xxxxxxxxx.com.co/sensores/DatoSensores.php?q=1",
        dataType: 'json',
        async: false}).responseText;
        var Respuesta=jQuery.parseJSON(JSON);
        //var temperatura = Respuesta[0].temperature;
        temperatura = parseFloat(Respuesta[0].temperature); //Leemos la temperatura de json
        humedad = parseFloat(Respuesta[0].humidity); //llemos la humedad del json
        var x = (new Date()).getTime(), // current time
        y = temperatura;
        
        if(temperatura > 20.30){
            
            $.ajax({
                url: 'https://www.xxxxxxxxxx.com.co/sensores/puntos/mensaje.php',
                type: 'get',
                success: function(response) {
                    $('body').html(response);
                }
            });
        }
    }, 2000);
    
</script>
 
Cómo está usando PHP, efectivamente solo se ejecuta con cada visita. Lo que puede hacer es que desde el HOSTING cree un CRON JOB que abra la página cada ...20 minutos, 1 hora. Los intervalos que requiera. Si está usando un shared hosting le ponen problema si es menor a 15 minutos (si mal no recuerdo). Si es un hosting/cuenta privada podría hacerlo más frecuentemente.

Si requiere una frecuencia más alta podría jugar con las sesiones de PHP y listeners de Javascript. Haciendo que cada visita se repita la verificación por mucho más tiempo.

Lo otro que se me ocurre es que sea el arduino el que genere la alerta/visite la página cuando la temperatura suba y así se ahorraría el CRON JOB. Pero no sé que tan factible sea esa opción.


Tony.
 
gracias por tu respuesta, efectivamente surgieron 3 soluciones, la primera la de la tarea cron, la segunda hacer la validacion en el arduino y enviar el mensaje desde alli, y la tercera que es la que aplique fue hacer la validacion en el archivo php que recibe e ingresa los datos a la base de datos, puesto que este archivo es "requerido" siempre que el arduino envia el dato.
 

Los últimos temas