jueves, 18 de noviembre de 2010

¿Homy.es?

Con el fin de documentar mis progresos en el proyecto y dar un poco a conocer Homy, que es y para que sirve, iré posteando regularmente mis progresos, por el momento:


¿Que es Homy.es?

Bueno, Homy es proyecto que partió de la idea de domotizar mi casa, siempre he sido muy geek así que con la llegada de la independencia tenia una casa con la que trastear, y quería instalar algún elemento domótico, pero viendo el coste que tenía la compra y su instalación y que además no cubría todas mis "necesidades", descarte esa solución, así que como uno es muy apañado decidí ponerme manos a la obra e idear algo que cubriera mis necesidades.
La idea era poder controlar desde internet calefacción, riego, sensores (humedad, temperatura, fotosensibles, etc) luces

Fase de Desarrollo
Llegado a este punto entra en juego todo lo aprendido en mi vida estudiantil y profesional y ponerlo en practica.

Me decante por una arquitectura cliente-servidor con el fin de poder realizar las consultas y operaciones domóticas desde cualquier ordenador conectado a internet,  en cuanto a la arquitectura de cara al desarrollo opte por el paradigma MVC, me pareció el mas acertado para este desarrollo.
Aunque desde l principio tenía muy claro las tecnologías a utilizar que serían Struts 1.3.8 para dejar mas clara la perpectiva de MVC, Hibernate para el trataniento de los datos de la BBDD y JSP para mostrar al usuario los controles y acciones disponibles desde cualquier explorador de intenet, y despues de realizar una primera alpha y ver que mis ideas no parecían tan descabelladas, quise dar un paso más y sustituir JSP por Flex por ser un lenguaje que tiene un comportamiento excepcional trabajando conjuntamente con JAVA, y que además haría ganar enteros a la aplicación de cara al diseño y aspecto.
De momento la aplicación quedaba de la siguiente manera:
Front End => Flex
Back End => JAVA


Esta sería a grandes rasgos la aquitectura con la que trabaja Homy:







¿Que tenemos en casa?

El problema de los sistemas domóticos modernos es que los equipos utilizados que están basados en estándares domóticos (KNX o X10) son bastante caros y una de las bases de este proyecto es el ahorro económico, después de varios años yendo a la Campus Party y escuchar maravillas de Arduino me decante por utilizar esta plataforma.
En nuestra casa contaremos con un Arduino al que le hemos añadido un upgrade para que pueda estar conectado a internet (Ethernet Shield o Wifi Shield) y al que irá conectado todos los elementos domoticos de la casa: sensores, reles, etc.
Que problematica tiene? muy sencillo, el cableado, los sistemas domóticos modernos aprovechan las red eléctrica de la casa para transmitir las ordenes a los distintos elementos domóticos  de forma que, para encender la luz nosotros necesitaremos añadir reles, sin embargo KNX o X10 desde la propia red eléctrica lo controlan. En una fase avanzadísima del proyecto tratare de mezclar tecnologías, por el momento como el principal objetivo del proyecto es aprender y entretenerme, esta parte del desarrollo lo dejaremos para mas tarde.



Funcionamiento.

A grandes rasgos el funcionamiento es bastante sencillo, la aplicación desarrollada en JAVA y FLEX enviará información encriptada con MD5 que consiste en una password, identificadora para el arduino y una serie de ordenes. El Arduino contestará a la aplicación enviando un XML con el estado de todos los sensores de forma que java se lo pasara a Flex y Flex lo tratará para mostrárselo al usuario en el explorador, cuando el usuario realice cualquier operación volveremos a realizar el proceso anterior refrescando la web con el nuevo XML recibido del Arduino.