Antes de explicar qué es chispas voy a tratar de presentar que problema trata de solucionar chispas. Los sistemas «inteligentes» actuales tienen necesidad de elementos externos a tu propia infraestructura. Si compras una bombilla inteligente necesita estar conectada a Internet. Nuestra bombilla inteligente realmente se vuelve bastante tonta si no tiene un «cerebro» que le diga que hacer. ¿Por qué tiene que estar ese cerebro en la nube?. ¿Por qué tengo que depender de una empresa externa para que funcionen las luces de mi casa?. Puede parecer una tontería pero si la compañía cierra o es comprada por otra, como paso hace poco con Revolv, comprada por Nest (la propia Nest había sido comprada por Google) y que dejo tirados a un montón de usuarios de sus productos. ¿Como puede ser que cuando compro algo ese algo no sea mio?. Bueno, es mio como pisapapeles porque gran parte de sus funcionalidades se pierden sin los servicios que le dota una empresa que es la primera interesada en que les compre un pisapapeles nuevo. No soy de naturaleza desconfiada pero me suena sospechoso. Actualmente cualquier electrodoméstico puede durar fácilmente una década. ¿Va a mantener una empresa tanto tiempo los servicios que dotan de inteligencia a tu electrodoméstico?. Ojo, que mantener no es solo tener los servicios funcionando es también ir actualizando y corrigiendo los fallos y errores de seguridad que vayan apareciendo. Todo eso tiene un coste. ¿Van a seguir gastando dinero en un producto que hace tiempo que ya no venden y no les da actualmente ningún beneficio?. ¿Estamos seguro de que van a darnos la mejor solución o solo la más barata?. De hecho ya hay casos de productos con brechas grandes en su seguridad que al no poder, o no querer, actualizar su firmware no queda más remedio que tirarlos a la basura.
Al problema de depender de empresas externas se suma que a su vez estas contratan los servicios de otras empresas y al final no sabes quién tiene acceso a tus datos. Y no es que estas empresas tengan que tener oscuros intereses en tus datos, pero un fallo de seguridad en cualquiera de ellas puede poner en peligro tu privacidad.
A todo esto hay que añadirle que muchos productos tienen incompatibilidades entre ellos. A veces por motivos técnicos, otras por motivos económicos para encerrarte en su «ecosistema». Y ya no hablo de integrar tus propios desarrollos que muchas veces todo son problemas.
amablemente le dices a tu teléfono «teléfono enciende la luz» y ocurre lo siguiente:
- Le dices a tu móvil «teléfono enciende la luz»
- Tu móvil graba tu voz y lo envía a unos servidores en algun otro lugar del mundo
- Allí procesan tu voz, extraen el texto y lo envían de vuelta a tu móvil
- Tu móvil procesa el texto y le pasa a la aplicación correspondiente
- La aplicación le envía la petición al servidor de la empresa que te vendió la bombilla
- El servidor procesa la petición y le envía a tu bombilla la orden de encenderse
- Tu bombilla , conectada por WiFi a la red de tu casa, recibe la orden de encenderse
- Tu bombilla se enciende
Todo ello para sustituir a un trozo de plástico y metal que cierra o abre un circuito según en que posición lo pongas y que a una mala puedes montar con un alambre y un clavo.
¿Chispas va ser la solución de todo este gran problema?. La verdad es que no. Chispas pretende ser el intento de crear un sistema que facilite la creación de tus propios agentes de software inteligentes. La idea es que funcione en sistemas muy sencillos (y baratos) de tal forma que sea fácil montarte tu . De hecho mi plan es que funcione sobre una raspberry pi, arduino y el navegador de cualquier dispositivo (tablet, movil, PC) que soporten HTML5
Hasta ahora he dicho tres palabras mágicas que suena mucho pero no he explicado en que consisten. Como una imagen vale más que mil palabras la idea es esta:
Bueno, quizás lo que valga más que mil palabras sea una buena imagen y no esta. Pero como mis habilidades no dan para más tendremos que apañarnos con lo que hay. El dibujo explica que chispas se compone de:
- Un servidor web, en este caso una Raspberry Pi, aunque puede ser cualquier ordenador. El único requisito es que pueda servir páginas sobre HTTPS. A su vez puede tener otras funciones como servidor de archivos o base de conocimiento (entendiendo como tal cualquier servicio que aporte información a nuestros agentes)
- Uno o varios dispositivo con navegador web. El agente web de chispas actúa como intermediario entre el usuario y las funciones de chispas. Al ser una aplicación web no requiere instalación, solo conectarse con el navegador.
- Chispas firmware funciona sobre uno o varios arduinos. Cada arduino se comporta a su vez como un agente independiente y tiene asociado un servidor web muy sencillo por lo que desde un navegador podrias conectarte directamente al arduino y controlarlo desde la interface que sirva el propio arduino. Para que esto funcione el arduino debe de ser capaz de conectarse a la red ya sea usando una shield, un desarrollo propio, o alguna placa que incorpore la conexión a ethernet
Cada uno de estas partes es independiente de las demás y trabaja de forma colaborativa entre ellas. si por ejemplo fallara la raspberry los arduinos seguirían funcionando y el agente web seguiría pudiendo interactuar con ellos.
Todo funciona sobre la red local con intercambio de peticiones HTTP. Es una arquitectura simple y que hace muy sencillo poder introducir componentes propios a cualquier nivel. Nada es propietario y cualquier parte es prescindible o modificable. No se depende de servicios externos pero eso no te impide conectar a Chispas a los mismos. Por ejemplo si queremos que reaccione a nuestro email nada nos impide poner en la raspberry código que lo haga y enviar esa información a los agentes.
En resumen, sencillo, barato, abierto y extensible.