Servidor IoT doméstico – Las motivaciones y el proyecto
Motivaciones
Actualmente existen multitud de fabricantes y dispositivos (interruptores, enchufes, bombillas, termostatos, alarmas…) que nos permiten automatizar o «domotizar» nuestros hogares y continuamente están apareciendo en el mercado aparatos (neveras, lavadoras, cafeteras, aspiradoras …) que se pueden conectar a Internet para que los podamos manejar cuando no estemos en casa, nos informen de que ya han realizado su trabajo o podamos pedirles de viva voz que limpien o nos preparen un café a través de los asistentes virtuales Siri, Google o Alexa. Todo esto forma parte de la denominada «Internet de las Cosas» o IoT (Internet of Things) que está creciendo de manera exponencial en los últimos años.
Cada uno de esos dispositivos utiliza un protocolo de comunicación para hablarse entre ellos o con el resto de los dispositivos que tengamos en casa y pude ocurrir que no puedan comunicarse entre ellos impidiendo que por ejemplo podamos encender una lámpara al abrirse una puerta, ya que la bombilla WiFi no entiende lo que le dice el sensor de la puerta que funciona por radiofrecuencia. Esto viene motivado por la existencia de múltiples estándares incompatibles entre ellos o por una motivación meramente comercial al limitar una marca que sus dispositivos puedan ser accesibles de manera abierta o hablen con los de otro fabricante.
También para facilitarnos a los usuarios el uso de los dispositivos y aparatos, cada marca crea sus propias aplicaciones para móvil (iOS o Android) para que cómodamente configuremos y manejemos nuestras luces, calefacciones y cafeteras, pero puede que al final nos encontremos con varias aplicaciones en el móvil y que para encender la luz tengamos que abrir una, para encender la calefacción otra, para la aspiradora otra y esta situación se va haciendo cada vez más caótica a medida que incorporamos más y más dispositivos en nuestra casa.
También para que todos nuestros dispositivos hablen con esas aplicaciones de nuestro móvil necesitamos conexión permanente a Internet en nuestros hogares y dependemos a su vez de cada una de las infraestructuras de servidores de cada marca o fabricante que en caso de tener problemas impedirá que podamos simplemente encender una lámpara, además del componente de privacidad o seguridad que puede hacer que no sabemos donde está y a quién damos la información de cómo es nuestra casa o cuando encendemos o apagamos la alarma.
Algunos de los problemas de comunicación o compatibilidad entre dispositivos y fabricantes pueden solucionarse con aplicaciones de integración como IFTTT que permite que la salida o respuesta de un dispositivo actúe como entrada para otro, pudiendo crear acciones encadenadas entre ellos y con ello resolviendo en parte los problemas entre fabricantes o protocolos, aunque IFTTT es una aplicación que necesita continuamente conexión con Internet, por lo que ante una pérdida de conexión dejarán de ejecutarse las acciones programadas.
Para un gran número de usuarios la simplicidad de uso o configuración de esas aplicaciones será motivo justificado para no buscar otras soluciones, ya que con lo que viene de serie en cada dispositivo, aparato o aplicación les es más que suficiente para el uso diario que hacen de los mismos o en otros casos la falta de conocimientos técnicos de esos mismos usuarios les impide, aunque puedan echar en falta funcionalidades o mayor interacción entre los dispositivos, el plantearse soluciones abiertas más potentes y con más funcionalidades.
Hay un tercer grupo de usuarios, donde me incluyo, a los que no les puede la comodidad, les gusta la tecnología y con una cantidad de conocimientos más o menos amplios dedican parte de su tiempo libre a chacharrear con todo aquello que tenga que ver con la informática y que pueda conectarse a Internet y de paso a tener curiosidad por aprender nuevas cosas .
Después de todas estas consideraciones y también después de haber comprado algunos dispositivos Shelly para automatizar la iluminación de alguna habitación de casa, he decidido abordar un pequeño proyecto para montar un servidor doméstico de Internet de las cosas.
El proyecto
El servidor IoT debe cumplir los siguientes requisitos y proporcionar las siguientes funcionalidades:
- Tamaño y consumo lo más bajos posibles
- Sistema Operativo y aplicaciones de software libre
- Posibilidad de instalar en él distintas aplicaciones
- Estas aplicaciones deben poder comunicar con los dispositivos y sensores instalados en nuestra casa independientemente de su fabricante o marca e interactuar con ellos sin necesidad de conexión a Internet
- Disponer de un panel de control web en la red local para interactuar con los dispositivos y sensores
- También deben poder comunicar con servicios en Internet para enviar alertas o notificaciones de estado
Esta lista de requisitos podría hacerse más rígida o más amplia, pero para no ser demasiado ambicioso, creo que no está mal para empezar y si consigo los objetivos, me daré por satisfecho.
En la próxima entrada comentaré las opciones elegidas en hardware y software.