Full text
Aplicación web para la generación y Aplicación web para la generación y Aplicación web para la generación y Aplicación web para la generación y simulación de eventos domóticos simulación de eventos domóticossimulación de eventos domóticos simulación de eventos domóticos Realizado por: Realizado por:Realizado por: Realizado por: Javier González Serrano Javier González SerranoJavier González Serrano Javier González Serrano Dirigido por: Dirigido por:Dirigido por: Dirigido por: José JoséJosé José Luis Poza Luján Luis Poza LujánLuis Poza Luján Luis Poza Luján
Tabla de contenidos Introducción ....................................................................................................................... 4 Entorno .......................................................................................................................... 4 Motivación ..................................................................................................................... 4 Objetivos ........................................................................................................................ 4 Descripción del documento ........................................................................................... 5 Entornos domóticos ........................................................................................................... 6 Introducción ................................................................................................................... 6 Sistemas simulación domótica....................................................................................... 6 • Sistemas de vigilancia ............................................................................................. 6 • Botón del pánico ..................................................................................................... 6 • Alarmas ................................................................................................................... 7 Sistema: VISIR (Simulador de Instalaciones Domóticas) ......................................... 7 Sistema: PROSIMAX (Simulador de Procesos) ....................................................... 8 Sistema: ACTIVE HOME (X-10) ............................................................................. 9 Eventos en domótica ...................................................................................................... 9 Fuentes de los eventos ............................................................................................... 9 Organización ............................................................................................................ 10 Conclusiones ................................................................................................................ 12 Diseño del sistema ........................................................................................................... 12 Introducción ................................................................................................................. 12 Especificación conceptual ........................................................................................... 12 Especificación de requisitos ........................................................................................ 12 Introducción ............................................................................................................. 12 Propósito .................................................................................................................. 12 Ámbito del Sistema ................................................................................................. 13 Definiciones, Acrónimos y Abreviaturas ................................................................ 13 Descripción General ............................................................................................... 15 Características de los Usuarios ................................................................................ 17 Requisitos Futuros ................................................................................................... 17 Requisitos Específicos ............................................................................................. 17 Interfaces Externas .................................................................................................. 18 Funciones ................................................................................................................. 18 Atributos del Sistema .............................................................................................. 20 En esta sección se detallarán los atributos de calidad del sistema: ......................... 20 Especificación formal: capa de datos .......................................................................... 20 Tablas ...................................................................................................................... 21 Relaciones ................................................................................................................ 23 Especificación formal: capa de negocio ...................................................................... 24 Especificación formal: capa de presentación............................................................... 31 Conclusiones ................................................................................................................ 41 Desarrollo del sistema ..................................................................................................... 42 Introducción ................................................................................................................. 42 Aspectos técnicos ........................................................................................................ 42 Lenguajes de programación (SW) .......................................................................... 42 Plataformas (HW) ................................................................................................... 42
Prototipos ..................................................................................................................... 42 Prototipo 1 ............................................................................................................... 42 Prototipo 2 ............................................................................................................... 43 Prototipo 3 ............................................................................................................... 44 Pruebas realizadas........................................................................................................ 47 Cargas de estrés ....................................................................................................... 47 Resultados ................................................................................................................ 47 Conclusiones ................................................................................................................ 48 Documentación ................................................................................................................ 49 Introducción ................................................................................................................. 49 Usuario ........................................................................................................................ 49 Manual de usuario ....................................................................................................... 49 Configuración inicial ............................................................................................... 49 Primeros pasos ......................................................................................................... 50 Generando eventos, secuencias y patrones. ............................................................. 51 Conclusiones ................................................................................................................ 52 Conclusiones .................................................................................................................... 54 Resumen ...................................................................................................................... 54 Trabajo futuro .............................................................................................................. 54 Referencias ...................................................................................................................... 55
Resumen ResumenResumen Resumen Para la gestión inteligente de la energía en el hogar es necesario probar las diferentes estrategias implementadas por medio de diferentes algoritmos. Para poder comparar las estrategias es necesario realizar pruebas simuladas, generalmente mediante las llamadas cargas. Las cargas de prueba son secuencias de mensajes que simulan los eventos que se dan en el sistema. Los eventos son tratados por medio de los algoritmos de gestión energética que proponen gestionar los eventos para minimizar los parámetros de calidad que se hayan definido. Además debe tenerse en cuenta, que tanto los eventos como la gestión energética debe aplicarse al mismo entorno, para ello se deberá diseñar un generador y diseñador de entorno que permita definir los eventos que se pueden generar y gestionar. En este proyecto se desarrolla una herramienta que, a partir de los datos almacenados en una base de datos, configura la generación de los eventos de un sistema domótico. La herramienta se ha desarrollado como aplicación Web para poder ser empleada en sistemas distribuidos a través de conexiones TCP
Introducción IntroducciónIntroducción Introducción Entorno EntornoEntorno Entorno La domótica se podría definir como el conjunto de servicios proporcionados por sistemas tecnológicos e informáticos integrados bien en nuestras casas o en otros lugares (oficinas, hoteles, jardines, etc.) que nos ayudan en nuestras tareas diarias y mejoran nuestra calidad de vida. ¿Cuál es el origen de esta palabra? La domótica proviene del latín domus que significa casa, y de robótica, del checo robota (esclavo), uniendo ambas nomenclaturas aparece la "vivienda robotizada o informatizada". Una vivienda al servicio del usuario. Solo podrá hablarse de domótica si la automatización de sus servicios está integrada en el conjunto de sistemas de una vivienda. Es decir, ha de estar presente tanto en su gestión de energía como en los sistemas de seguridad, comunicación y en diversas áreas que el habitante de la casa utiliza a diario (como por ejemplo, los mecanismos para subir y bajar las persianas, encender y apagar la luz, regular la calefacción, etc.) Los sistemas pueden estar integrados por medio de redes interiores y/o exteriores de comunicación. ¿Sus ventajas? La domótica ofrece al usuario una mejor calidad de vida, con menor gasto tanto de dinero (al ahorrar energía en la realización de tareas) como de tiempo (ya que su utilización es sencilla y ágil). Motivación MotivaciónMotivación Motivación Para la gestión inteligente de la energía en el hogar es necesario probar las diferentes estrategias implementadas por medio de diferentes algoritmos. Para poder comparar las estrategias es necesario realizar pruebas simuladas, generalmente mediante las llamadas cargas.
Las cargas de prueba son secuencias de mensajes que simulan los eventos que se dan en el sistema. Los eventos son tratados por medio de los algoritmos de gestión energética que proponen gestionar los eventos para minimizar los parámetros de calidad que se hayan definido. Además debe tenerse en cuenta, que tanto los eventos como la gestión energética debe aplicarse al mismo entorno, para ello se deberá diseñar un generador y diseñador de entorno que permita definir los eventos que se pueden generar y gestionar. Objetivos ObjetivosObjetivos Objetivos Los principales objetivos del proyecto son: Diseñar una aplicación configurable que permita generar eventos que simulen los eventos que se producen en un hogar, para poder aplicarse en los algoritmos de gestión energética. Desarrollar y documentar una aplicación que permita diseñar entornos y lanzar la generación y la gestión de los eventos para el entorno determinado. Descripción del documento Descripción del documentoDescripción del documento Descripción del documento En el siguiente capítulo se revisará el entorno de la domótica, presentando las arquitecturas y las herramientas de las que disponemos hoy en día para simular o crear sistemas domóticos virtuales.
Entornos domóticos Entornos domóticosEntornos domóticos Entornos domóticos Introducción IntroducciónIntroducción Introducción Una vez introducidos los términos relacionados con la domótica y explicado las motivaciones y objetivos que se pretenden conseguir, ha llegado la hora de ver realmente la viabilidad del proyecto. Esto lo conseguiremos comparando la
funcionalidad que nos ofrecen las aplicaciones de hoy en día con la que queremos desarrollar. Por último veremos una posible clasificación de los dispositivos existentes en un sistema domótico con sus respectivos eventos asociados. Sistemas simulación domótica Sistemas simulación domóticaSistemas simulación domótica Sistemas simulación domótica El objetivo principal de las nuevas aplicaciones de la domótica actual son las prevenciones, la seguridad y la confortabilidad. A menudo solemos preguntarnos si estamos realmente seguros en nuestro hogar, ante cualquier tipo de riesgos, tanto si nos hallamos dentro de nuestra vivienda como si no. Todo este tipo de sistemas de seguridad seguridadseguridad seguridad se vienen aplicando desde hace algún tiempo, habiendo mejorado considerablemente a medida que la domótica ha ido ampliando sus prestaciones, aplicaciones y dispositivos. Dentro del campo de las alarmas, podemos encontrar una gran variedad de modelos, los cuales actúan de formas distintas, como son: • • • • Sistemas de vigilancia Este sistema nos ofrece una serie de garantías en caso de intrusión o intento de robo. Para ello, pone a nuestro alcance artículos como las cámaras de vigilancia con dispositivo de infrarrojos, que en caso de detección de presencia activan una alarma a la central de seguridad seguridadseguridad seguridad o a la de policía. • Botón del pánico Este sistema nos permite, en caso de detectar ruidos o una presencia extraña, activar un botón que provocaría que se encendieran todas las luces de la vivienda, pudiéndose también conectar a la central de vigilancia o incluso a la de policía.
• Alarmas Estos dispositivos están conectados, de la misma manera, a los distintos puntos de seguridad con los que están relacionados, por ejemplo, un sistema de escapes de gas o agua o una alarma de incendios. En este caso, se mandaría un aviso a la central de seguimiento y otro a los Bomberos. También cabe destacar que en la domótica, dentro del sistema de prevención del hogar, existe lo que se llama sistema de simulación de presencia. Es muy efectivo, ya que activa el encendido y apagado de luces o la bajada y subida de toldos y persianas. Esto da una sensación de que la casa está habitada, aunque sus dueños estén de vacaciones. La activación de este dispositivo se realiza vía telefónica o vía Internet. También existe software que permiten diseñar y simular entornos domóticos como vamos a ver a continuación. Sistema: Sistema: Sistema: Sistema: VISIR VISIR VISIR VISIR (Simulador de Instalaciones Domóticas) (Simulador de Instalaciones Domóticas)(Simulador de Instalaciones Domóticas) (Simulador de Instalaciones Domóticas) Es una aplicación para entorno Windows que permite diseñar instalaciones domóticas y efectuar la simulación del comportamiento de las mismas en conexión directa con los autómatas programables de las series SIMATIC S5 y SIMATIC S7-200 de SIEMENS , encargado del control de la instalación dada. Consta de dos módulos principales:
climatización o poner una colada lavadora. Estas acciones se pueden modelar por medio de eventos. Los eventos pueden tener márgenes de actuación, por ejemplo, se puede proponer variar la temperatura del aire acondicionado para evitar un tanto por cien de gasto, se puede programar la lavadora para que realice su tarea en un margen de horas en las que otros electrodomésticos no estén consumiendo energía. Propósito PropósitoPropósito Propósito Para la gestión inteligente de la energía en el hogar es necesario probar las diferentes estrategias implementadas por medio de diferentes algoritmos. Para poder comparar las estrategias es necesario realizar pruebas simuladas, generalmente mediante cargas. Las cargas son secuencias de mensajes que simulan los eventos que se dan en el sistema. Los eventos son tratados por medio de los algoritmos de gestión energética que proponen gestionar los eventos para minimizar los parámetros. Además debe tenerse en cuenta, que tanto los eventos como la gestión energética debe aplicarse al mismo entorno, para ello se deberá diseñar un generador y diseñador de entorno que permita definir los eventos que se pueden generar y gestionar. Ámbito del Sistema Ámbito del SistemaÁmbito del Sistema Ámbito del Sistema El futuro sistema consistirá en: -Desarrollar una aplicación configurable que permita generar eventos que simulen los eventos que se producen en un hogar, para poder aplicarse en los algoritmos de gestión energética. -Desarrollar una aplicación que permita diseñar entornos y lanzar la generación de los eventos para el entorno determinado.
-Desarrollar una aplicación cuya interfaz facilite la simulación del envio de eventos, añadiendo la posibilidad de poder registrar patrones de comportamiento o secuencias de eventos. Definiciones, Acrónimos y Abreviaturas Definiciones, Acrónimos y AbreviaturasDefiniciones, Acrónimos y Abreviaturas Definiciones, Acrónimos y Abreviaturas En esta sección se definirán algunos términos comúnmente usados tanto en el ámbito de los sistemas domóticos como en el de la informática. Sistema domótico o domótica Sistema domótico o domóticaSistema domótico o domótica Sistema domótico o domótica: El término Domótica DomóticaDomótica Domótica proviene de la unión de las palabras domus (que significa casa en latín) y tica (de automática , palabra en griego, 'que funciona por sí sola'). Se entiende por domótica al conjunto de sistemas capaces de automatizar una vivienda, aportando servicios de gestión energética, seguridad, bienestar y comunicación, y que pueden estar integrados por medio de redes interiores y exteriores de comunicación, cableadas o inalámbricas, y cuyo control goza de cierta ubicuidad, desde dentro y fuera del hogar. Se podría definir como la integración de la tecnología en el diseño inteligente de un recinto cerrado . Evento EventoEvento Evento: Un evento en lo que a la domótica respecta es un mensaje o señal que transmite un actuador o un sensor cuando se produce un determinado suceso, con el fin de informar al sistema gestor. Actuador ActuadorActuador Actuador: Consiste en un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre un proceso automatizado. Este recibe la orden de un regulador o controlador y en función a ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula. Sensor SensorSensor Sensor: Dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas. Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, pH, etc.
Ahorro energético Ahorro energéticoAhorro energético Ahorro energético: El ahorro energético no es algo tangible, sino un concepto al que se puede llegar de muchas maneras. En muchos casos no es necesario sustituir los aparatos o sistemas del hogar por otros que consuman menos sino una gestión eficiente de los mismos. -Climatización: Programación y zonificación. -Gestión eléctrica: Racionalización de cargas eléctricas: desconexión de equipos de uso no prioritario en función del consumo eléctrico en un momento dado. Gestión de tarifas, derivando el funcionamiento de algunos aparatos a horas de tarifa reducida. -Uso de energías renovables. Confort ConfortConfort Confort: Conlleva todas las actuaciones que se puedan llevar a cabo que mejoren el confort en una vivienda. Dichas actuaciones pueden ser de carácter tanto pasivo, como activo o mixtas. -Iluminación: Apagado general de todas las luces de la vivienda. Automatización del apagado/ encendido en cada punto de luz. Regulación de la iluminación según el nivel de luminosidad ambiente. -Automatización de todos los distintos sistemas/ instalaciones / equipos dotándolos de control eficiente y de fácil manejo. -Integración del portero al teléfono, o del videoportero al televisor. -Control vía Internet. -Gestión Multimedia y del ocio electrónicos. -Generación de macros y programas de forma sencilla para el usuario. Seguridad SeguridadSeguridad Seguridad: Consiste en una red de seguridad encargada de proteger tanto los Bienes Patrimoniales y la seguridad personal. -Alarmas de intrusión (Antiintrusión): Se utilizan para detectar o prevenir la presencia de personas extrañas en una vivienda o edificio. Detección de un posible intruso (Detectores volumétricos o perimetrales). Cierre de persianas puntual y seguro. Simulación de presencia.
-Alarmas de detección de incendios, fugas de gas, escapes de agua, concentración de monóxido en garajes cuando se usan vehículos de combustión. -Alerta médica. Teleasistencia. -Acceso a Cámaras IP. Comunicaciones ComunicacionesComunicaciones Comunicaciones: Son los sistemas o infraestructuras de comunicaciones que posee el hogar. -Ubicuidad en el control tanto externo como interno, control remoto desde Internet, PC, mandos inalámbricos (p.ej. PDA con WiFi), aparellaje eléctrico. -Tele asistencia -Tele mantenimiento -Informes de consumo y costes -Transmisión de alarmas. -Intercomunicaciones. -Accesibilidad: Bajo este epigrafe se incluyen las aplicaciones o instalaciones de control remoto del entorno que favorecen la autonomía personal de personas con limitaciones funcionales, o discapacidad. El concepto "diseño" para todos es un movimiento que pretende crear la sensibilidad necesaria para que al diseñar un producto o servicio se tengan en cuenta las necesidades de todos los posibles usuarios, incluyendo las personas con diferentes capacidades o discapacidades, es decir, favorecer un diseño accesible para la diversidad humana. La inclusión social y la igualdad son términos o conceptos más generalistas y filosóficos. La domótica aplicada a favorecer la accesibilidad es un reto ético y creativo pero sobre todo es la aplicación de la tecnología en el campo más necesario, para suplir limitaciones funcionales de las personas.
El objetivo no es que las personas con discapacidad puedan acceder a estas tecnologías, porque las tecnologías en si no son un objetivo, sino un medio. El objetivo de estas tecnologías es favorecer la autonomía personal. Los destinatarios de estas tecnologías son todas las personas, ya que por enfermedad o envejecimiento, todos somos o seremos discapacitados, más pronto o más tarde. Descripción General Descripción GeneralDescripción General Descripción General Esta sección nos presenta una descripción general del sistema con el fin de conocer las funciones que debe soportar, los datos asociados, las restricciones impuestas y cualquier otro factor que pueda influir en la construcción del mismo. Las funciones que debe realizar el sistema se pueden agrupar de la siguiente manera: Simulación de eventos: Simulación de eventos: Simulación de eventos: Simulación de eventos: Debe permitir la creación y el envío de eventos emulando un sistema domótico real. Gestión de eventos: Gestión de eventos: Gestión de eventos: Gestión de eventos: Debe tener la posibilidad añadir un nuevo evento a un dispositivo concreto, así como editar los existentes o borrarlos, realizando las acciones pertinentes para conservar la aplicación en un estado estable. Gestión de dispositivos: Gestión de dispositivos: Gestión de dispositivos: Gestión de dispositivos: Debe proporcionar la opción de insertar un nuevo dispositivo en el sistema, editarlo y borrarlo sin comprometer la integridad de los datos de la aplicación. Bus BusBus Bus (o canal): Es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por
cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados. Dirección IP: Dirección IP:Dirección IP: Dirección IP: Es una etiqueta numérica que identifica, de manera lógica y jerárquica, a un interfaz (elemento de comunicación/conexión) de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red del protocolo TCP/IP. Dicho número no se ha de confundir con la dirección MAC que es un identificador de 48bits para identificar de forma única a la tarjeta de red y no depende del protocolo de conexión utilizado ni de la red. La dirección IP puede cambiar muy a menudo por cambios en la red o porque el dispositivo encargado dentro de la red de asignar las direcciones IP, decida asignar otra IP (por ejemplo, con el protocolo DHCP), a esta forma de asignación de dirección IP se denomina dirección IP dinámica (normalmente abreviado como IP dinámica). Puerto: Puerto:Puerto: Puerto: Es una forma genérica de denominar a una interfaz a través de la cual los diferentes tipos de datos se pueden enviar y recibir. Dicha interfaz puede ser de tipo físico, o puede ser a nivel de software (por ejemplo, los puertos que permiten la transmisión de datos entre diferentes ordenadores) (ver más abajo para más detalles), en cuyo caso se usa frecuentemente el término puerto lógico. XML: XML:XML: XML: siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML, Android.
Características de los Usuario Características de los UsuarioCaracterísticas de los Usuario Características de los Usuarios ss s A continuación se van a describir las características generales de los usuario del producto, incluyendo nivel educacional, experiencia y experiencia técnica. Como ya sabemos, la funcionalidad de dicho producto es simular eventos como si de un ambiente domótico se tratase, con el fin de analizarlos mediante otro modulo o dispositivo por lo que se presupone que el usuario será un usuario con experiencia técnica en el ámbito de la domótica. Requisitos Futuros Requisitos FuturosRequisitos Futuros Requisitos Futuros A continuación voy a proponer posibles mejoras que se le podrían añadir a la aplicación en un futuro. En primer lugar centrándonos en la eficiencia, la mejora mas significativa seria la implementación de varias funcionalidades mediante la tecnología Ajax. Este cambio dotaría a la aplicación de una ejecución mas fluida, además reduciría la carga en la red producida por las diversas consultas que realiza al servidor. Por otro lado sería una buena opción para hacer mas vistosa la aplicación, dotarla de una interfaz animada en la que el usuario pudiese interactuar con los distintos dispositivos existentes en el entorno domótico configurándolos a su gusto. Requisitos Específicos
En esta sección se van a describir los requisitos que deberá satisfacer nuestra aplicación cuando este finalizada. Interfa InterfaInterfa Interfaces Externas ces Externasces Externas ces Externas A continuación se van a describir los requisitos que afecten a la interfaz de usuario, interfaz con otros sistemas (hardware y software) e interfaces de comunicaciones. Interfaz de usuario debe: -Disponer de toda la funcionalidad mas utilizada en una misma pantalla. -Tener toda su funcionalidad accesible. -Proporcionar una forma eficiente de realizar las funciones para las que ha sido pensada la aplicación. -Tener una buena usabilidad. -Ser amigable, con una curva de aprendizaje mínima. -Poder utilizarse en cualquier tipo de sistema operativo o navegador. Interfaz con otros sistemas debe: -Comunicarse mediante un bus con la aplicación gestora. -Permitir elegir una dirección IP destino y un puerto asociado a esa dirección. -Poder enviar mensajes mediante el bus a la otra aplicación. Interfaz de comunicaciones debe: -Poder lanzar una conexión a un computador remoto. -Permitir la comunicación unidireccional con un la aplicación gestora. -Enviar mensajes XML informando a la aplicación gestora de los eventos simulados siguiendo un protocolo determinado.
Funciones FuncionesFunciones Funciones En esta subsección se van a describir todas aquellas acciones (funciones) que deberá llevar a cabo el software. La aplicación estará constituida por estos objetos: -Evento -Dispositivo -Patrón -Simulador Evento: Evento: Evento: Evento: Es un suceso que genera un dispositivo por lo que contendrá un nombre, una descripción, una id para el manejo interno y un dispositivo asociado. Dispositivo: Dispositivo: Dispositivo: Dispositivo: Como puede ser un electrodoméstico, sensor, persiana...por lo que estará formado por un nombre, una descripción, un id para el manejo interno y un conjunto de eventos asociados, dicho conjunto puede ser vacío. Patrón: Patrón: Patrón: Patrón: Se trata de una simulación preestablecida que intenta imitar el comportamiento humano o permite hacer pruebas a la aplicación gestora. Dicho patrón se compone de una secuencia de eventos que previamente ha lanzado el usuario y ha decidido guardar en el sistema para su posterior uso. Por tanto estará compuesto por un id para identificarlo, un nombre, una descripción y un conjunto de id's de eventos y dispositivos asociados a ese evento. Simulador: Simulador: Simulador: Simulador: Este objeto será el encargado de manejar a los citados anteriormente con el fin de producir la funcionalidad con la que la aplicación será creada. Por tanto dicha clase ofrecerá la posibilidad de: -Listar los dispositivos guardados. El sistema mostrará una lista con todos los dispositivos introducidos en él.
-Insertar un dispositivo. Se permitirá la inserción de nuevos dispositivos en la aplicación. -Modificar un dispositivo. Una vez listados los dispositivos en el sistema dará opción de editar su nombre, descripción y eventos asociados. -Borrar un dispositivo lo que borrará sus eventos asociados. En el mismo listado de dispositivos aparecerá la opción de borrar el dispositivo. -Listar los eventos asociados a un dispositivo. El sistema mostrará una lista de todos los eventos clasificados por el dispositivo asociado disponibles en la aplicación -Insertar un evento indicando el dispositivo asociado. Se ofertará la posibilidad de insertar un evento asociándolo a un dispositivo existente en el sistema insertado los campos pertinentes. -Modificar un evento indicando el dispositivo asociado. El sistema permitirá modificar los campos de un evento concreto. -Borrar un evento indicando el dispositivo asociado. Dentro del listado de eventos asociados a un dispositivo, la aplicación nos dará la posibilidad de borrar un evento determinado. -Generar un evento, que consistirá en localizar el evento asociado a un determinado dispositivo, generar un xml con los datos obtenidos de dicho evento mas la fecha y la hora a la que se ha generado para posteriormente enviarlo a un computador remoto. Por último se guardará dicho evento. -Listar patrones. Mostrará todos los patrones guardados en el sistema. -Enviar patrón. Generará y enviará los eventos tal y como fueron generados en la secuencia guardada. -Guardar una secuencia de eventos como patrón. El usuario puede generar una secuencia de eventos y guardarla como un patrón indicando su nombre y una descripción. -Configurar la conexión especificando la ip del sistema gestor y el puerto en el que esta escuchando mediante un archivo de configuración que la aplicación leerá al iniciarse.
• Propiedades PropiedadesPropiedades Propiedades también llamados atributos o características, son valores que corresponden a un objeto, como color, material, cantidad, ubicación. Generalmente se conoce como la información detallada del objeto. Suponiendo que el objeto es una puerta, sus propiedades serían: la marca, tamaño, color y peso. • Operaciones OperacionesOperaciones Operaciones comúnmente llamados métodos, son aquellas actividades o verbos que se pueden realizar con/para este objeto, como por ejemplo abrir, cerrar, buscar, cancelar, acreditar, cargar. De la misma manera que el nombre de un atributo, el nombre de una operación se escribe con minúsculas si consta de una sola palabra. Si el nombre contiene más de una palabra, cada palabra será unida a la anterior y comenzará con una letra mayúscula, a excepción de la primera palabra que comenzará en minúscula. Por ejemplo: abrirPuerta, cerrarPuerta, buscarPuerta, etc. • Interfaz InterfazInterfaz Interfaz es un conjunto de operaciones que permiten a un objeto comportarse de cierta manera, por lo que define los requerimientos mínimos del objeto. Hace referencia a polimorfismo. • Herencia HerenciaHerencia Herencia se define como la reutilización de un objeto padre ya definido para poder extender la funcionalidad en un objeto hijo. Los objetos hijos heredan todas las operaciones y/o propiedades de un objeto padre. Por ejemplo: Una persona puede especializarse en Proveedores, Acreedores, Clientes, Accionistas, Empleados; todos comparten datos básicos como una persona, pero además cada uno tendrá información adicional que depende del tipo de persona, como saldo del cliente, total de inversión del accionista, salario del empleado, etc.
Simulador: Simulador:Simulador: Simulador: Esta clase es la encargada de manejar al resto de clases, a través de ella se puede realizar toda la funcionalidad de la aplicación. Atributos: Atributos:Atributos: Atributos: − Dispositivos: Contiene un array de objetos de tipo Dispositivo. − Patrones: Contiene un array con los objetos Patrón existentes en el sistema.
Métodos: Métodos:Métodos: Métodos: − ListarDispositivos() Consiste en una función que se encarga de recuperar todos los dispositivos existentes en el sistema y mostrarlos por pantalla en una lista. − GenerarEvento() Esta es una de las funciones mas importantes de la aplicación ya que es la encargada de generar el evento y enviarlo por red. Su funcionamiento es el siguiente: Lo primero que hace una vez seleccionado el evento asociado a un dispositivo que se desea generar es recuperar dicho objeto. Una vez obtenido, saca parte de sus atributos como el nombre, la id del evento, la id del dispositivo, etc. y con estos datos genera un mensaje XML añadiéndole la hora y la fecha en la que este evento se ha generado. Lo segundo que hace es abrir una conexión tcp con la estación gestora que estará escuchando mediante los parámetros que se han configurado previamente en el archivo de configuración. Una vez esta establecida la comunicación, envía el mensaje XML por la red. Por último guarda las características del evento generado en la tabla secuencia para la posible creación de un patrón. − GuardarSecuencia() La funcionalidad de este método consiste en una vez generados uno o varios eventos, guardar esa secuencia de generación de eventos como un patrón. − CargarConfiguracion() Esta función es la encargada de leer el fichero de configuración y configurar la aplicación en torno a los parámetros leídos.
− ListarPatrones() Consiste en una función que se encarga de recuperar todos los patrones existentes en el sistema y mostrarlos por pantalla en una lista. − EnviarPatron() Dicho método como su nombre indica es el encargado de enviar un patrón previamente seleccionado. Para ello buscara la secuencia de eventos asociada a dicho patrón e irá enviado uno a uno los eventos que aparecen en ella tal y como se enviaron cuando se creó la secuencia. − CargarPatron() Este método oferta la funcionalidad de cargar un patrón desde un archivo de texto con un formato determinado. Dispositivo DispositivoDispositivo Dispositivo: :: : Esta clase representa los distintos aparatos o dispositivos que podemos contener en nuestro sistema. La misma contiene la funcionalidad asociada a los dispositivos, así como una serie de atributos para identificar y describir cada uno de los objetos almacenados.
Atributos: Atributos:Atributos: Atributos: − Id_dispositivo: Consiste en un integer que identifica de manera inequívoca a cada dispositivo. − Nombre: Es la cadena de caracteres correspondiente al nombre del dispositivo. − Descripción: Se trata de una cadena de caracteres de longitud media que se usa para dar una descripción del dispositivo almacenado. − Eventos: Consiste en un array que contiene los eventos asociados al dispositivo. Métodos: Métodos:Métodos: Métodos: − Insertar() Este método es el que permite dar de alta los dispositivos en nuestra aplicación. Funciona de la siguiente manera, el primer paso es introducir los datos requeridos por la aplicación. Una vez introducidos, la aplicación validará dichos datos y dependiendo de el resultado de la validación almacenará o no el nuevo dispositivo en la base de datos. − Borrar() Esta función es la encargada de eliminar un dispositivo. Además de eliminar el dispositivo, si este tiene eventos asociados, con el fin de mantener la integridad de los datos y ser fiel al modelo UML descrito, estos eventos se eliminarán también.
− Modificar() Dicho método es el que nos permite editar la información o atributos asociada a un dispositivo. Al igual que en la inserción, cuando se quiera editar información relevante de algún dispositivo, se deberá proceder a la validación de los datos introducidos por lo comentado en la inserción y dependiendo del resultado obtenido se aceptarán los cambios o se denegarán. − ListarEventosAsociados() La utilidad de esta función como su nombre indica es buscar los eventos asociados a un dispositivo concreto y mostrarlos en un listado. Evento: Evento:Evento: Evento: Esta clase representa el objeto de tipo Evento. Dicho objeto es una de las partes mas importantes del sistema ya que participa prácticamente en toda la aplicación. Atributos: Atributos:Atributos: Atributos: − Id_evento: Consiste en un integer que identifica de manera inequívoca a cada evento.
− Nombre: Es la cadena de caracteres correspondiente al nombre del evento. − Descripción: Se trata de una cadena de caracteres de longitud media que se usa para dar una descripción del evento almacenado. Métodos: Métodos:Métodos: Métodos: − Insertar() Este método es el que permite dar de alta los eventos asociados a un dispositiv en nuestra aplicación. Funciona de la siguiente manera, el primer paso es seleccionar el dispositivo al que se le va a asociar dicho evento, el segundo paso es introducir los datos requeridos por la aplicación. Una vez introducidos, la aplicación validará dichos datos y dependiendo de el resultado de la validación almacenará o no el nuevo evento en la base de datos. − Borrar() Esta función es la encargada de eliminar un evento de la aplicación. Para ello habrá que seleccionar un dispositivo, listar los eventos asociados y seleccionar el que se desea eliminar. − Modificar() Dicho método es el que nos permite editar la información o atributos asociada a un evento. Al igual que en la inserción, cuando se quiera editar información relevante de algún evento, se deberá proceder a la validación de los datos introducidos por lo comentado en la inserción y dependiendo del resultado obtenido se aceptarán los cambios o se denegarán.
Patrón: Patrón:Patrón: Patrón: Esta clase es la que se encarga de almacenar secuencias de eventos como puede ser un determinado comportamiento humano o un testeo de la aplicación. Dicha clase nos permite almacenar una secuencia de eventos previamente generados, ofreciendo la posibilidad de volver a generarla cuando el usuario lo deseé. Atributos: Atributos:Atributos: Atributos: − Id_dispositivo: Consiste en un integer que identifica de manera inequívoca a cada dispositivo. − Nombre: Es la cadena de caracteres correspondiente al nombre del patrón. − Descripción: Se trata de una cadena de caracteres de longitud media que se usa para dar una descripción del patrón almacenado. − Dispositivos: Consiste en un array que contiene los dispositivos que intervienen en un patrón determinado. Métodos: Métodos:Métodos: Métodos:
− Insertar() Este método es el que permite guardar una secuencia de eventos como un patrón en nuestra aplicación. Una vez pulsado el botón de guardar secuencia como patrón, la aplicación recuperará la secuencia de eventos y la guardará como un patrón una vez se introduzcan y se validen los datos requeridos por la aplicación. Por ultimo se vaciará la tabla de secuencia de eventos. − Borrar() Esta función es la encargada de eliminar un patrón de la aplicación. Para ello bastaría con seleccionar uno patrón y darle al botón eliminar. − Modificar() Dicho método es el que nos permite editar la información o atributos asociada a un patrón. Al igual que en la inserción, cuando se quiera editar información relevante de algún patrón, se deberá proceder a la validación de los datos introducidos por lo comentado en la inserción y dependiendo del resultado obtenido se aceptarán los cambios o se denegarán. Especificación formal: capa de presentación Especificación formal: capa de presentaciónEspecificación formal: capa de presentación Especificación formal: capa de presentación Interfaz de usuarios. UML, bloques, prototipado En esta sección vamos a ver como se ha diseñado la capa de presentación mediante el diagrama de casos de uso. Un Diagrama de Casos de Uso muestra la relación entre los actores y los casos de uso del sistema. Representa la funcionalidad que ofrece el sistema en lo que se refiere a su interacción externa. En el diagrama de casos de uso se representa también el sistema como una caja rectangular con el nombre en su interior. Los casos de uso están en el interior de la caja del sistema, y los
actores fuera, y cada actor está unido a los casos de uso en los que participa mediante una línea. En la Figura 1 se muestra un ejemplo de Diagrama de Casos de Uso para un cajero automático. Figura 1 – Ejemplo de diagrama de casos de uso Elemento ElementoElemento Elementos ss s Los elementos que pueden aparecer en un Diagrama de Casos de Uso son: actores, casos de uso y relaciones entre casos de uso. Actores ActoresActores Actores No se pude mostrar la imagen vincu lada. Puede que se haya mov ido, cambiado de nombre o eliminado el archivo. Compr uebe que el vínculo señala al archivo y ubicaciones corr ectos.
En primer lugar, la aplicación nos muestra un listado de los eventos asociados al dispositivo elegido. El usuario puede seleccionar un evento y proceder a su modificación o borrado del mismo. Si lo que se desea es introducir un evento asociado a este dispositivo el usuario deberá pinchar en la opción de nuevo, lo que nos llevaría a la siguiente interfaz. Interfaz de inserción de eventos asociados a un dispositivo En ella debemos introducir un nombre y una descripción del nuevo evento que queremos ingresar y una vez introducido pulsar el botón Aceptar. Si no hay ningún error en la inserción de datos, la aplicación insertará el nuevo evento y mostrará la anterior interfaz. Retomando la interfaz principal, nos encontramos con la siguiente figura en la que se muestra la funcionalidad relacionada con el envío de patrones. Interfaz de envío de patrones.
Esta interfaz muestra al usuario el listado de todos los patrones guardados en el sistema. Si se desea enviar un patrón bastaría con seleccionar uno y pulsar el botón enviar. Por ultimo tenemos la interfaz relativa a la gestión de la secuencia de eventos. En ella como se puede apreciar en la siguiente imagen, se muestra un listado de todos los eventos generados desde el inicio de la aplicación. Interfaz gestión de secuencias de eventos. Como podemos observar esta interfaz nos permite ver la secuencia de eventos generada hasta el momento, ofreciendo al usuario la posibilidad de resetearla o bien de guardarla como un patrón lo que nos llevaría a la siguiente interfaz.
Interfaz de inserción de un nuevo patrón. En ella se nos permite dar un nombre al nuevo patrón que se desea insertar y describir cual va a ser su comportamiento a imitar. Una vez introducidos los datos la aplicación correctamente la aplicación insertará el nuevo patrón y nos mostrará la interfaz principal. Por último y no por ello menos importante nos queda la interfaz de carga de patrón mediante archivo. Interfaz de carga de patrón desde archivo. Esta nos ofrece la posibilidad de cargar un patrón desde un archivo y si tiene éxito la carga enviarlo.
Conclusiones ConclusionesConclusiones Conclusiones Una vez visto toda la arquitectura y el diseño de la aplicación en profundidad ha llegado la hora de pasar a temas de implementación como son los lenguajes de programación a elegir, el hardware sobre el que va a ejecutarse la aplicación, etc. Desarrollo del sistema Desarrollo del sistemaDesarrollo del sistema Desarrollo del sistema Introducción IntroducciónIntroducción Introducción A continuación se van a comentar los aspectos técnicos de la aplicación como son los lenguajes de programación usados en la implementación, el IDE utilizado, así como los diversos prototipos que marcaron la evolución de la aplicación. Aspectos técnicos Aspectos técnicosAspectos técnicos Aspectos técnicos Lenguajes de programación (SW) Lenguajes de programación (SW) Lenguajes de programación (SW) Lenguajes de programación (SW) En este apartado analizamos los lenguajes utilizados argumentando su uso en la implementación de esta aplicación. En primer lugar, como IDE se ha utilizado Adobe Dreamweaver CS5 ya que da soporte a los lenguajes utilizados, es completo y no tiene a penas curva de aprendizaje. Como gestor y servidor de base de datos se ha utilizado PostgreSQL 9.0.4, ya que debido al uso que se le va a dar, PostgreSQL no tiene nada que envidiar en comparación con otros gestores como son Oracle o MySQL. También ha influido la destreza al manejar la herramienta obtenida previamente. Por otro lado, para implementar la lógica de la aplicación se ha utilizado PHP ya que al tratarse de una aplicación web necesitaba un lenguaje de
programación en el servidor capaz de crear paginas web dinámicas y por motivos éticos y funcionales lo he elegido frente a la otra opción que es ASP. Plataformas (HW) Plataformas (HW)Plataformas (HW) Plataformas (HW) Esta aplicación esta pensada y diseñada para correr sobre cualquier hardware ya que los requisitos mínimos que necesita la aplicación para ejecutarse son insignificantes a día de hoy. El único hardware que requiere es una tarjeta de red que pueda enviar paquetes tpc a un destino concreto. Prototipos PrototiposPrototipos Prototipos En el desarrollo de la aplicación se ha llevado a cabo la implementación de 3 prototipos no desechables y acumulativos en lo que a funcionalidad se refiere. Prototipo 1 Prototipo 1Prototipo 1 Prototipo 1 La primera versión o prototipo 1 abarca únicamente la generación de los eventos con su posterior envió. En esta versión el esfuerzo se centró en construir el XML, leyendo los datos del evento de la base de datos y añadiendo la fecha y hora a la que se ha generado, para posteriormente enviarlo por red a un servidor tcp. Dicho servidor mostraba el XML recibido en formato de texto por pantalla. Interfaz del primer prototipo. Una vez comprobado el buen funcionamiento de lo explicado anteriormente, lo siguiente que se implementó fue parte de la base de datos. Concretamente las tablas de evento, eventos_por_dispositivo y dispositivo. Después se implemento la funcionalidad de leer la configuración relativa al envío de datos por la red mediante un fichero de configuración.
Por ultimo se comprobó la integridad de la base de datos y se procedió a llenarla de datos. Prototipo 2 Prototipo 2Prototipo 2 Prototipo 2 La segunda versión de la aplicación se centró básicamente en la gestión de los dispositivos y los eventos asociados. Se implementó toda la lógica que permite acceder a la base de datos para recuperar información relativa a los dispositivo y eventos asociados y gestionar dispositivo y eventos asociados (insertar, modificar y borrar). También se desarrolló toda la parte de la interfaz gráfica que permite listar los datos de los dispositivo y eventos asociados y la que da soporte a la lógica mencionada en el párrafo anterior. La interfaz resultante la podemos ver en la siguientes imágenes. Interfaz del segundo prototipo
Interfaz de gestión de dispositivos y eventos asociados. Interfaz de inserción de eventos asociados a un dispositivo Al igual que en la anterior versión se comprobó que el funcionamiento de la aplicación fuese correcto.
Prototipo 3 Prototipo 3Prototipo 3 Prototipo 3 En la tercera y ultima versión se desarrolló todo la funcionalidad referente a los patrones y las secuencias de eventos. En primer lugar se implementó la parte de las secuencias de eventos agregando una nueva tabla a la base de datos para guardarlas y mostrarlas posteriormente. Después se desarrolló la lógica necesaria para el funcionamiento de los patrones y se insertó una nueva tabla en la base de datos para almacenarlos. A la par que se implementaba lo citado anteriormente se desarrollaban las interfaces que ofertan dicha funcionalidad. Dichas interfaces las podemos observar a continuación en las siguientes imágenes. Interfaz de patrones y secuencias de eventos
Interfaz de inserción de un nuevo patrón Quedando como interfaz resultante la que se muestra a continuación.
Por ultimo se añadió la funcionalidad de cargar un patrón desde archivo y enviarlo y se comprobó igual que en las anteriores versiones que todo funcionase correctamente. Pruebas realizadas Pruebas realizadasPruebas realizadas Pruebas realizadas En esta sección se comentarán las pruebas a las que se le ha sometido a la aplicación para garantizar un correcto funcionamiento. Además de las pruebas unitarias, funcionales y de integración, se realizaron pruebas de rendimiento con el fin de determinar la cantidad de usuarios que iba a ser capaz de soportar. Cargas de estrés Cargas de estrésCargas de estrés Cargas de estrés La prueba empieza con 5 usuarios y consistía en que a la vez estos 5 usuarios mandaran el patrón 2. Se repitió hasta 3 veces incrementado el número de usuario al doble cada vez y la aplicación seguía funcionando. Se apreciaba bastante la ralentización de la aplicación ya que tardaba mas en servir las peticiones. Esto ultimo se debe a que no se disponía de un servidor y el pc en el que se realizó la prueba carecia de grandes recursos. Resultados ResultadosResultados Resultados Tiempos y recursos (%procesador, memoria, y otros) 1ª Prueba: 1ª Prueba:1ª Prueba: 1ª Prueba: 5 Usuarios. Tiempo en finalizar: 1 segundo. Procesador 3%. Memoria 73000 KB. 2ª Prueba 2ª Prueba2ª Prueba 2ª Prueba: 10 Usuarios. Tiempo en finalizar: 3 segundo. Procesador 4%.
Conclusiones ConclusionesConclusiones Conclusiones A continuación vamos a exponer las conclusiones a las que se ha llegado una vez desarrollada la aplicación. Resumen ResumenResumen Resumen A la vista de lo redactado anteriormente, se podría decir que se ha conseguido la mayoría de los objetivos marcados. Se ha conseguido una aplicación capaz de emular a un entorno domótico real. Ademas, se ha logrado desarrollar la parte de los patrones, la cual nos permite simular comportamientos humanos, automatizar baterías de pruebas, etc. También se ha conseguido la posibilidad de cargar estos patrones desde un archivo de texto, lo que facilita bastante sobre todo a la hora de hacer pruebas. Todo ello integrado en una interfaz fácil de usar, con una curva de aprendizaje mínima y con la funcionalidad mas utilizada a la vista, evitando engorrosos procedimientos para su uso. Se ha conseguido una aplicación eficaz y eficiente, a la par que fiable y estable por lo que el grado de satisfacción obtenido por el desarrollador es bastante alto. Trabajo futuro Trabajo futuroTrabajo futuro Trabajo futuro Como trabajo futuro se podría ampliar la interfaz existente, adornándola con CSS. También se podría hacer una nueva interfaz en la que existiese un mapa del entorno domótico con todos los dispositivo existentes y en la que se pudiesen generar los eventos a golpe de ratón observando sus efectos de forma visual. Otra posible ampliación seria adaptar la actual interfaz para los nuevos dispositivos móviles como son los smartphones o las tablets.
Referencias ReferenciasReferencias Referencias Http://es.wikipedia.org/wiki/Domotica Domótica: Un enfoque sociotécnico. Hugo Martín Domínguez y Fernando Sáez Vacas. Fundación Rogelio Segovia para el Desarrollo de las Telecomunicaciones. 2006. http://www.domoticausuarios.es/un-hogar-seguro-con-una-buena-tecnologia/2692/ http://www.clikear.com/manuales http://www.wordreference.com/es/ http://www.diccionarios.com/ http://www.google.es/ http://www.buscamultiple.com/ http://monstercrawler.com/ http://www.ixquick.com/esp/?&cat=web&query= http://ardilladigital.com/ http://www.discapnet.es http://www.indracompany.com Clasificación y proyecto del edificio inteligente Valencia : Universidad Politécnica de Valencia , 1995 Base de datos domotica Ibañez Ibañez, Maria-Jose Valencia : Universidad Politécnica de Valencia , 1998 Aplicación domótica basada en X10 [Recurso electrónico-CD-ROM] Tárrega Artieda, Asís Valencia : Universidad Politécnica de Valencia , 2009 DOMOTICA PARA VIVIENDAS Y EDIFICIOS - WERNER HARKE, MARCOMBO, S.A., 2010