Cómo enviar notificaciones HTTP con cámaras IP Edimax y tratar la información

La variedad de funciones que con las que los fabricantes dotan a estos dispositivos es inimaginable. Hemos hecho varios manuales de cámaras IP del fabricante Edimax, y podría decirse que este nos sirve para poner la guinda. Podríamos considerar que es el más complejo de todos, ya que se tocan aspectos relacionados con la programación. A pesar de todo, lo vamos a explicar con todo lujo de detalles. En este artículo, os enseñaremos como enviar notificaciones HTTP y realizar su tratamiento.
Para este manual necesitamos un servidor web con Apache y PHP. Veréis que se puede realizar el tratamiento de las notificaciones de formas diversas. Nosotros hemos querido optar por una que no revista excesiva complicación. Conoce cómo cambiar la IP en Windows.
Para conseguir esto vamos a hacer gala de nuestro NAS Synology DS416, con el software Web Station instalado junto con PHP 5.6.
Cualquier cámara IP del fabricante Edimax es compatible con esta función. Es recomendable comprobar si existen actualizaciones. De forma periódica, desde el fabricante publican revisiones que permiten disfrutar de un funcionamiento mucho más estable.
El manual lo vamos a dividir en dos partes:
- Configuración de la cámara IP
- Programación
Configuración de la cámara IP
En este apartado, hablaremos de todo lo relacionado con la cámara IP y la configuración para que las notificaciones HTTP funcionen de forma correcta.
Como es habitual, comenzamos iniciando sesión en el menú de configuración web del dispositivo del fabricante Edimax. Recordar que, para acceder a este, debemos teclear en la barra de direcciones de nuestro navegador web la dirección IP.
Una vez realizada esta operación, nos tenemos que dirigir al apartado Configuración. Para ser más precisos, al apartado Eventos, seleccionando posteriormente Notificación, donde accederemos a Notificación HTTP.
El usuario cuenta con dos opciones:
- Notificaciones generadas por detección de movimiento.
- Notificaciones generadas por detección de sonido.
Ambas se pueden activar de forma simultánea sin ningún problema. En nuestro caso, nos centraremos en las generadas por la detección de movimiento.
En la siguiente imagen se puede observar el formulario que se debe cumplimentar para «activar» estas notificaciones.
Estos son los campos que forman parte del formulario:
- Notificación: Activar o Desactivar.
- URL: La dirección del «servicio» que será el encargado de procesar la información enviada. El formato es el mismo que el de una URL de un servicio web. En primer lugar, se introduce la dirección o la IP del recurso acompañada del puerto. Por defecto es el 80. Si fuese otro, le podríamos especificar. El último espacio de texto sirve para indicar el «servicio» se que será cargo. en nuestro caso será prueba.php que irá acompañado de los parámetros. Se separan utilizando ? del resto de la URL y se puede añadir tantos como se quiera utilizando &.
Un ejemplo:
http://192.168.1.48:80/prueba.php?id1=valor1&id2=valor2
- Método: GET o POST
- Autenticación para activar al servicio: Activar o Desactivar
- Nombre de usuario: Usuario para utilizar el recurso web del servidor remoto.
- Contraseña: La correspondiente al usuario anterior.
- Tiempo de espera: Desde que se detecta el Evento, cuánto tarda en «emitirse» la notificación HTTP.
En la siguiente imagen se puede observar como los campos existentes en el caso de las notificaciones generadas por de la detección de sonido son idénticos:
Aún no hemos terminado en lo que respecta a la cámara IP. En el apartado Eventos, debemos acceder a Detección de Movimiento y Detección de sonido para asegurarnos de que la función está activada. De lo contrario, aunque configuremos las Notificaciones HTTP, estas nunca llegarán a utilizarse.
Con esto, damos por finalizada la configuración relacionada con la cámara IP.
Código del archivo de gestión
Ahora es el turno para el código. Ya hemos comentado que vamos a utilizar un servidor web que se ofrece en la misma LAN que la cámara IP gracias a nuestro NAS. Una vez configurado de forma correcta, vamos a crear un sencillo manejador que nos permitirá capturar la información enviada en la notificación HTTP.
A continuación, os dejamos el código:
$file = fopen(«almacenamiento.txt», «w»);
echo $_GET[‘id’];
foreach($_GET as $key => $value)
{fwrite($file, $key.» «.$value. PHP_EOL);
}
fclose($file);
?>
Como vamos a utilizar envíos de tipo GET, nos centraremos en capturar la información existente en $_GET. Como se trata de un array asociativo, lo que vamos a realizar es un tratamiento muy simple: Buscaremos todas las claves existentes y almacenaremos en un fichero la dupla clave-valor.
Es un tratamiento muy sencillo. Cada usuario valorará qué es lo que más le conviene. Como demostración creemos que este es un ejemplo válido.
Resultado
El resultado de una detección de movimiento es el siguiente:
Cada vez que se produce un evento, se realiza la llamada al archivo PHP y este escribe el envío de los datos existentes en $_GET.
Sugerencias
Si somos personas con cierta experiencia en lo que se refiere a programación, podemos optar por un tratamiento mucho más elaborado, asignando a cada entrada de eventos una fecha y almacenándolo en una base de datos. Incluso el uso de un fichero es una buena opción, siempre y cuando se trate de un almacenamiento incremental.
Con estos pasos, seremos capaces de enviar notificaciones HTTP desde cualquier cámara IP del fabricante Edimax a un servicio web.