El proyecto OpenDomo

OpenDomo es un proyecto libre que pretende crear un sistema de control domótico accesible y seguro. La licencia bajo la que se está desarrollando el proyecto es la Licencia Pública General (GPL.) . Esta licencia garantiza la libertad en el uso del software, uno de los principales valores de la sociedad tecnológica actual. En términos generales, esto implica que OpenDomo puede ser usado, copiado, modificado y distribuido libremente.

 

Historia

Fue fundado en 2006 por Daniel Lerch y rediseñado íntegramente un año después junto a Oriol Palenzuela. Actualmente, OpenDomo es un proyecto en activo desarrollo, y  ya ofrece los servicios básicos de todo sistema de control domótico: control de dispositivos eléctricos, videovigilancia, acceso remoto, etc.

 

Soporte de Diferentes Protocolos

OpenDomo surge de la necesidad de unificar las diferentes tecnologías existentes en el mundo de la domótica, como uPnP, X10, EIB, etc, con el protocolo de comunicaciones más usado en la actualidad TCP/IP.

Así, una sistema OpenDomo deberá permitir el uso de hardware de diferentes fabricantes y estándares, aunque principalmente se centrará en dispositivos TCP/IP.

 

Accesibilidad

El control del hogar debe ser sencillo, al alcance incluso de un niño, y debe ofrecer ventajas al usuario, no dolores de cabeza y la obligación de estar continuamente consultando el manual. Es por esto que OpenDomo pretende crear un sistema fácil de usar e intuitivo.

Además, OpenDomo se centra en integrar todos los componentes del hogar, desde el control de sensores y actuadores, los sistemas multimedia, la seguridad, etc. Todos controlables desde una misma interfaz: PC, PDA, Teléfono Móvil, etc.

 

Seguridad

Un sistema de domótica debe ser seguro, pues controlará la apertura de puertas, persianas, sistemas de videovigilancia, alarmas, etc. Un acceso indeseado a estos sistemas o un fallo de funcionamiento comprometerá la seguridad física del usuario. Es por este motivo que uno de los objetivos principales de OpenDomo es construir un sistema seguro, estable y tolerante a fallos.

 

Red de Agentes Distribuidos

Una instalación OpenDomo está formada por gran cantidad de dispositivos de bajo coste, como pueden ser cámaras IP, sistemas embebidos (Agentes OpenDomo), Sistemas Multimedia, placas de control, etc.

Conseguir tolerancia a fallos en estas circunstancias resulta bastante complicado. OpenDomo afronta el problema mediante una red de agentes distribuidos, consideando un agente distribuido como un sistema hardware que corre la distro OpenDomo.

Un Agente se encarga de gestionar un conjunto de servicios de la red OpenDomo, siendo el responsable de los mismos. En caso de caída de un Agente o de cualquier fallo que impida a este continuar dando el servicio, otro agente de la red ocupará su lugar. De esta manera, se consigue que los servicios importantes como alarmas, alertas por SMS, etc, no dejen de funcionar a menos que caiga toda la red domótica.

 

Módulos OpenDomo

El proyecto se organiza en toda una serie de módulos que juntos forman OpenDomo. El módulo principal es opendomo-distro. Este consiste en una distribución GNU/Linux cuyo objetivo principal es tener un reducido tamaño. Sobre opendomo-distro corren los demás módulos, extendiendo así las funcionalidade de la red domótica.

Algunos de los módulos base de OpenDomo son opendomo-cgi que implementa el sistema gráfico que permite administrar la red domótica, opendomo-discovery que permite a los agentes comunicarse en la red, opendomo-pkg que forma el sistema de paquetes de opendomo, opendomo-events que gestiona la comunicación de eventos y opendomo-koloader, que permite la carga automática de drivers desde la red.

Otros módulos de OpenDomo que no forman parte del sistema base son opendomo-video, para la gestión de cámaras de vigilancia, opendomo-ai que implementa la inteligencia del sistema, opendomo-control que permite el control de placas hardware (I/O) y opendomo-upnp que da soporte para el protocolo uPnP.

 

Interfaz Gráfica

La interfaz gráfica principal de OpenDomo se basa en un sistema CGI que corre como servicio en uno de los Agentes (opendomo-cgi). Este servicio implementa un sistema de procesado de scripts que permite de forma sencilla y muy rápida crear aplicaciones. Estas aplicaciones son pequeños scrips que siguen un formato especificado y documentado. Soporta cualquier tipo de lenguaje que pueda funcionar sobre GNU/Linux (base de opendomo-distro) aunque el preferido es shellscript, por no tener dependencias externas a opendomo-distro y funcionar sobre cualquier plataforma de hardware.

Así, para añadir una funcionalidad a OpenDomo solo será necesario crear un conjunto de scripts y empaquetarlos en el formato de paquetes soportado por opendomo-pkg.

 

Tecnología Base

Los diferentes módulos que forman OpenDomo se desarrollan principalmente en C y shellscript. Opendomo-distro usa un kernel GNU/Linux y el conjunto de binarios BusyBox, la librería de C uclibc y su su sistema buildroot.

 

Presente y Futuro

Actualmente los desarrolladores de OpenDomo se centran en finalizar los módulos básicos del sistema y darle estabilidad, así como de la documentación. En un futuro próximo, los objetivos del proyecto girarán alrededor de la seguridad, el soporte de nuevo hardware y el port de paquetes que puedan resultar interesantes para el proyecto (reconocimiento de voz, síntesis de voz, multimedia, etc). Otro de los focos de atención será el desarrollo de opendomo-ai que gestionará la inteligencia del sistema.