scieee AI-readable full text Open interactive document viewer

Control domótico

Sanchis Hernández, José Antonio

Full text

UNIVERSIDAD POLITÉCNICA DE VALENCIA PROYECTO FINAL DE CARRERA Control domótico TITULACIÓN: I.T. Informática de Gestión Realizado por Jose Antonio Sanchis Hernández Dirigido por Dr. Lenin G. Lemus Zúñiga 2 3 Índice Introducción ……………………………………………………………………………………………………………. 7 Objetivo ………………………………………………………………………………………………………………… 7 Capítulo 1. Definiciones básicas …………………………………………….…………………………… …… 9 1.1. Domótica ………………………………………………………………....…………………………… 9 1.2. Aportaciones de la domótica ………………………………………….…………………… 10 1.2.1 Gestión energética ……………………………………………….…………………. 10 1.2.2 Accesibilidad ……………………………………………..…………..………………. 10 1.2.4 Seguridad …………………………….………………………………..……………… 10 1.2.5 Confort ………………………………………………………………………........... 10 1.2.6 Centralización de la comunicación ……………………………………..….…. 11 Capítulo 2. Estándares utilizados en la domótica…………………………………………………… 13 2.1. X10 ………………………………………………………………………………………………….. 13 2.2. KNX/EIB ………………………………………………………………………………………….…… 14 2.2.1 Especificaciones ………………………………………………………………………….…. 15 Capítulo 3. Selección del estándar para realizar la aplicación Web……………………………….….. 17 Capítulo 4. Diseño de la BBDD ………………………………………………………………………………………. 19 4.1. Tablas ………………………….…………………………………………………………………………….… 19 4.1.1. Tabla Edificio ……………………………………………….………………………………….19 4.1.2. Tabla Planta …………………………………………………….………………………………19 4.1.3. Tabla Estancia ………………………………………………….……………………………..20 4.1.4. Tabla Aparato ………………………………………………….……………………………..20 4.1.5. Tabla grupo . …………………………………………………….…………………………….20 4.1.5. Tabla grupo_aparato …………………………………………….………………………..20 4.2. Diagrama Entidad-Relación ………………………………..………………….……………………….21 Capítulo 5. Estructura e implementación de la aplicación Web ………………….………………………22 5.1. Arquitectura ……………………………………………………………………………………………….. 22 5.1.1. Capa Presentación ………………………………………………………………….…….. 23 5.1.2. Capa lógica ……………………………………………………………………………………. 25 5.1.3. Capa persistencia ………………………………………………………………………….. 28 Capítulo 6. Programación de los componentes ………………………………………………………………. 29 6.1. Componentes del circuito……………………………………………………………………………… 29 6.1.1. Actuador ………………………………………………………………………………………. 29 6.1.2. Fuente de alimentación ……………………………………….………………………….30 6.1.3. Detector de movimiento……………………………………………………………….. 30 6.1.4. Pulsador ……………………………………………………………………………………..… 30 6.1.5. Sensor de luminosidad. ………………………………………………………………… 31 6.1.6. Acoplador de bus …………………………………………………………………………… 31 6.1.7. Interface ……………………………………………………………………………………….. 31 6.1.8. Enchufe estándar …………………………………………………………………………… 32 6.1.9. Interruptores diferenciales……………………………………………………………… 32 4 6.1.9.1. Interruptor diferencial CFI6, tipo CA ……………………………….. 32 6.1.9.2. Interruptor diferencial DG62 C1 ……………………………….………33 6.2. Programación de los aparatos …………………………………………………………………………33 6.2.1. Preparación de ETS3 …………………………………………………..……….………. 34 6.2.2. Configuración del edificio ……………………………………………………………… 34 6.2.3. Inserción de aparatos …………………………………………………………………… 35 6.2.4. Configurando las direcciones de grupo ………………………………………… 36 Capítulo 7. Configuración y puesta en marcha del servidor………………………………………………. 39 7.1 Servidor Web ………………………………………………………………………….…………………….…39 7.2. eibcontrol……………………………………………………………………………………………………… 39 7.2.1. Instalación…………………………………………………………………..………………... 39 7.2.2. Configuración………………………………………………………………………………… 40 7.2.3. Encendido……………………………………………………………………………………… 41 7.2.4. Funcionamiento ………………………………………………………………………..……41 Conclusiones………………………………………………………………………………………………..………………….. 43 Trabajo Futuro …………………………………………………………………………………………..………………….. 43 Referencias Bibliográficas…………………………………………………………………………..……………………. 45 5 Índice de Figuras Figura 1. Estructura de la base de datos de la aplicación ........................................................... 21 Figura 2. Arquitectura de 3 capas de nuestro sistema ................................................................ 23 Figura 3. Actuador A6F16H Serie eibSOLO .................................................................................. 29 Figura 4. Fuente alimentación NT160-4 ...................................................................................... 30 Figura 5. Detector de movimiento (5WG1 255-2A12) ................................................................ 30 Figura 6. Pulsador (5WG1 243-2AB11) ........................................................................................ 30 Figura 7. Sensor de luminosidad (5WG1 254-4AB01) ................................................................. 31 Figura 8. Acoplador de bus (5WG1 110-2AB03).......................................................................... 31 Figura 9. Interface (5WG1 148-1AB04) ....................................................................................... 31 Figura 10. Enchufe Estándar ........................................................................................................ 32 Figura 11. Interruptor diferencial CF16 ....................................................................................... 32 Figura 12. Interruptor diferencial DG62 ...................................................................................... 33 Figura 13. Detalle creación edificio en ets3 ................................................................................ 34 Figura 14. Estructura del edificio en ets3 .................................................................................... 34 Figura 15. Direcciones de grupo en ets3 ..................................................................................... 37 Figura 16. Ventana programación en ets3 .................................................................................. 37 Índice de listados de código Listado 1. Formulario alta de un nuevo edificio .......................................................................... 24 Listado 2. Fragmento código, redirección a la página de operación .......................................... 24 Listado 3. Código operationNuevoEdificio.php pasando datos a la capa lógica. ........................ 25 Listado 4. Fragmento formulario de formNuevaEstancia.php, solicitando datos al sistema ..... 25 Listado 5. Fragmento de código de sistema.php ........................................................................ 25 Listado 6. Función obtenerEstadoAparato de la clase sistema ................................................... 27 Listado 7. Fragmento de formConmutarGrupo.php ................................................................... 27 Listado 8. Función conmutar de la clase sistema ........................................................................ 27 Listado 9. Fragmento de eibdb.xml ............................................................................................. 41 6 7 Introducción En la actualidad la domótica ofrece a hogares y a empresas una mejora en la calidad de vida y una mejora en la eficiencia del consumo energético. La domótica permite dar respuesta a los requerimientos que plantean estos cambios sociales y las nuevas tendencias de nuestra forma de vida, facilitando el diseño de casas y hogares más humanos, más personales, polifuncionales y flexibles. Este proyecto pretende crear un sitio web para el control de instalaciones domóticas basadas en el estándar EIB. Para el desarrollo del mismo, se ha hecho uso de un circuito que simula una instalación EIB real prestado por el departamento de ingeniería de sistemas y computadores (DISCA) de la Universidad Politécnica de Valencia (UPV). Objetivo Diseñar una aplicación Web para realizar el control de dispositivos EIB desde una interfaz amigable para el usuario. 8 9 Capítulo 1 Definiciones básicas Para iniciar con la exposición del proyecto vamos a introducir el concepto de domótica y las ventajas y oportunidades que esta ofrece a sus usuarios e instaladores. 1.1. Domótica 1 La domótica es el conjunto de tecnologías aplicadas al control y la automatización inteligente de la vivienda, que permite una gestión eficiente del uso de la energía, además de aportar seguridad, confort, y comunicación entre el usuario y el sistema. El funcionamiento básico de en sistema domótico se basa en la capacidad de recoger información proveniente de unos sensores o entradas, procesarla y emitir órdenes a unos actuadores o salidas. El sistema puede acceder a redes exteriores de comunicación o información. La domótica aplicada a edificios no destinados a vivienda, es decir oficinas, hoteles, centros comerciales, de formación, hospitales y terciario, se denomina, inmótica. El sector de la domótica ha evolucionado considerablemente en los últimos años, y en la actualidad ofrece una oferta más consolidada. Hoy en día, la domótica aporta soluciones dirigidas a todo tipo de viviendas, incluidas las construcciones de vivienda oficial protegida. Además, se ofrecen más funcionalidades por menos dinero, más variedad de producto, y gracias a la evolución tecnológica, son más fáciles de usar y de instalar. En definitiva, la oferta es mejor y de mayor calidad, y su utilización es ahora más intuitiva y perfectamente manejable por cualquier usuario. Paralelamente, los instaladores de domótica han incrementado su nivel de formación y los modelos de implantación se han perfeccionado. Asimismo, los servicios posventa garantizan el perfecto mantenimiento de todos los sistemas. En definitiva, la domótica de hoy contribuye a aumentar la calidad de vida, hace más versátil la distribución de la casa, cambia las condiciones ambientales creando diferentes escenas predefinidas, y consigue que la vivienda sea más funcional al permitir desarrollar facetas domésticas, profesionales, y de ocio bajo un mismo techo. La red de control del sistema domótico se integra con la red de energía eléctrica y se coordina con el resto de redes con las que tenga relación: telefonía, televisión, y tecnologías de la información, cumpliendo con las reglas de instalación aplicables a cada una de ellas. Las distintas redes coexisten en la instalación de una vivienda o edificio. La instalación interior eléctrica y la red de control del sistema 1 http://www.cedom.es/que-es-domotica.php 16 También se pretendió que el EIB funcionase sobre otros medios físicos, aunque en la práctica sólo el par trenzado ha conseguido una implantación masiva: • EIB.PL Corrientes portadoras sobre 230 Vac y 50 Hz a 1200/2400 bps. • EIB.net Ethernet a 10 Mbps. • EIB.RF Radiofrecuencia. • EIB.IR Infrarrojo. • EIB.bluetooth. Por último, es importante destacar que EIB contempla una serie de herramientas software basadas en el PC. Por ejemplo el ETS3 es un programa sobre plataforma Windows que facilita el desarrollo de proyectos de ingeniería EIB, como el diseño y la configuración, con independencia del fabricante de los productos. 17 Capítulo 3 Selección del estándar para realizar la aplicación Web 8 Tras estudiar las dos posibilidades ofrecidas para el desarrollo del proyecto, se ha elegido el estándar de KNX/EIB, por considerarse un firme candidato a convertirse a largo plazo en el único estándar a nivel Europeo. Las razones que se quieren destacar por las cuales se considera esto son las siguientes: - Se trata de un estándar europeo abierto, por lo que no existe una dependencia de un fabricante en concreto. Esto implica una competencia de mercado con la consecuencia de una progresión hacia precios cada vez más competitivos y una calidad cada vez más alta. - La cantidad y la diversidad de dispositivos existentes supera la de cualquier otro sistema en la actualidad. Esta amplia variedad de dispositivos disponibles cubrirán adecuadamente las necesidades de funcionalidad de cualquier tipo de proyecto domótico. - En las instalaciones tradicionales cada función requiere una línea eléctrica propia, y cada sistema de control precisa una red separada. Por el contrario, con el EIB se pueden controlar, comunicar y vigilar todas las funciones de servicio y su desarrollo, con una única línea común. Con esto se puede dirigir la línea de energía sin desvíos, directamente hasta el aparato consumidor. - Además del ahorro en el cableado se presentan adicionalmente otras ventajas: La instalación en un edificio se puede realizar de un modo más sencillo desde el principio, y después se puede ampliar y modificar sin problemas. Ante cambios de uso o reorganización del espacio, el EIB consigue una adaptación rápida y sin problemas, mediante una fácil ordenación (cambio de parametrización) de los componentes del bus, sin necesidad de un nuevo cableado. - El EIB se puede conectar mediante las correspondientes interfaces con los centros de control de otros sistemas de automatización de edificios o con una red digital de servicios integrados (RDSI). De este modo el uso del EIB en una vivienda unifamiliar resulta tan rentable como en hoteles, escuelas, bancos, oficinas o edificios del sector terciario. Por todas estas razones, se ha querido aprovechar la oportunidad de realizar este proyecto como una apuesta de futuro aprendiendo de un estándar que está en auge liderando los mercados y esperemos que cada vez generando más puestos de trabajo. 8 http://www.mundomotica.es/web1/knx1.htm 18 19 Capítulo 4 Diseño de la BBDD Durante la realización del proyecto, llegado al punto en el que nuestro circuito esta correctamente programado y se puede controlar a través del programa eibcontrol como veremos más adelante, surge un nuevo problema. En los enlaces usados por eibcontrol debe estar especificada la dirección de grupo de cada uno de los aparatos que queremos controlar, esto supone saber con antelación cuales son las direcciones de cada aparato, limitando el diseño de la web a este circuito en concreto y no pudiendo ser usado en otros proyectos con direcciones y aparatos distintos. Para solucionar esta barrera en el proyecto se ha incluido el uso de una sencilla base de datos que permite que nuestra web sea una web dinámica y adaptable a diferentes proyectos domóticos. Con ella se permite que sea el instalador o el propio usuario, el que configure su portal, dando de alta los aparatos de su instalación que quiera controlar vía HTTP. Es decir, esta opción permite que la web pueda ser usada en cualquier circuito EIB eliminando la barrera que nos limitaba al circuito usado en el proyecto usando enlaces estáticos. Con la creación de una base de datos modificable por el propio usuario, los enlaces html que eran necesarios para el control de eibcontrol se pueden generar de forma dinámica con la información de incluida en la base de datos. Para el diseño de la base de datos se ha hecho uso de MYSQL por ser un software de uso libre, además de combinarse perfectamente con nuestro servidor Apache. Por otra parte, ya se tenían conocimientos de su uso lo cual ha facilitado el trabajo. 4.1. Tablas Dentro de la base de datos ha surgido la necesidad de incluir un total de 6 tablas: edificio, planta, estancia, aparato, grupo y grupo_aparato. A continuación describimos la finalidad con la que se ha creado cada una. 4.1.1. Tabla Edificio En el caso de encontrarnos en un proyecto domótico grande, pueden existir varios edificios en nuestro hogar o empresa. A sí que se ha querido separar correctamente, en caso necesario, las instalaciones por edificios para facilitar así su localización en la web. Del edificio tan solo guardaremos un nombre, descripción y una clave que los identificara que se genera automáticamente. 4.1.2. Tabla Planta Nuestro edificios, como en una situación real están compuestos con una o más plantas. La creación de estas tiene la misma finalidad que los edficios, facilitar el 20 usuario encontrar lo que necesita. Cada una de estas plantas vendrá identificada con una clave única que se genera automáticamente llamada “id”. En ella se escribirá el nombre que desee el usuario y una descripción si fuera necesaria. 4.1.3. Tabla Estancia Dentro de cada uno nuestro edificios, dividiremos las diferentes zonas de nuestro hogar en estancias, estas podrán ser de tipo dormitorio, cocina, salón, baño, entrada, terraza, recibidor, porche o garaje. Cada una de estas estancias vendrá identificada con una clave única que se genera automáticamente llamada “id”. En ella se escribirá el nombre que desee el usuario y una descripción si fuera necesaria. 4.1.4. Tabla Aparato Dentro de cada una de las estancias de nuestro hogar encontraremos los aparatos (luces, calefacción, vigilancia…). En esta tabla identificaremos con una clave automática los aparatos dentro de cada estancia. Para darlos de alta el usuario o instalador, como información relevante, tan sólo deberá conocer la dirección de grupo de cada aparato para su correcta instalación. Esta dirección de grupo será la que use la aplicación web para consultar el estado del mismo o para conmutarlo. Cómo información adicional, se deberá de insertar un nombre y descripción del aparato en cuestión. Además se puede, si se conoce, añadir la dirección física del aparato para posibles ampliaciones del proyecto en las que se pudiera programar el aparato. 4.1.5. Tabla grupo En un primer momento esta tabla no estaba incluida en el proyecto ya que se consideraba oportuno que cada aparato almacenará la dirección del grupo al que pertenece. En el caso de que participara en más de un grupo, se debía de dar de alta nuevamente el aparato tantas veces como direcciones de grupo tuviera, indicando su uso en la descripción del mismo. El problema surge a la hora de mostrar el estado de la casa, en el que un mismo aparato aparecería en diversas ocasiones en los listados (tantas como direcciones de grupo) y peor todavía, podía tener estados distintos (encendido/apagado) dependiendo del estado de la dirección de grupo. Debido a que se buscaba una solución más profesional, se incluyo esta tabla en la que se registran una única vez las direcciones de grupo que hay en nuestro sistema, y mediante un código complejo en la capa lógica de nuestra aplicación web obtener adecuadamente el estado del grupo y el estado de cada aparato independientemente del estado de todas sus direcciones. 4.1.5. Tabla grupo_aparato Ya que la cardinalidad entre la tabla grupo y la tabla aparato es de muchos a muchos (un aparato TIENE muchas direcciones de grupo y una dirección de grupo TIENE muchos aparatos), se ha necesitado incluir esta tabla para que se cumpla esta. En ella relacionamos un grupo con un aparato. 21 4.2. Diagrama Entidad-Relación A continuación, observamos el diagrama entidad-relación que forma nuestra base de datos. Las cardinalidades de las relaciones son todas 1:N: Un edificio tiene n plantas. Una planta tiene n estancias. Una estancia tiene n aparatos. Un aparato tiene n grupos (grupo_aparato) Un grupo tiene n aparatos (grupo_aparato) Figura 1. Estructura de la base de datos de la aplicación 22 Capítulo 5 Estructura e implementación de la aplicación Web En el siguiente capítulo se va a describir que estructura sigue nuestra aplicación web y a continuación describiremos los detalles de su implementación e instrucciones de funcionamiento. El objetivo a alcanzar con la aplicación es crear una página que permita ver el estado de los aparatos de nuestro hogar/empresa y permitir su encendido/apagado. Además como se ha comentado en el capitulo anterior se ha dotado de una base de datos con la que es posible que este proyecto sea usado en diferentes instalaciones EIB. Para ello, como veremos más adelante, tan solo se deberán de dar de alta en la web los distintos aparatos y las direcciones de grupo. Nuestro sitio web está escrito en html con php embebido y operar sobre una base de datos MySQL. 5.1. Arquitectura La arquitectura elegida para el desarrollo del proyecto ha sido la división en tres capas (Presentación, Lógica y Persistencia). Se ha decidido implementar la división en capas puras (cada capa se comunica únicamente con la capa subyacente) y cerradas (cada capa se comunica con la capa inferior a través de una clase interfaz de capa), para mejorar la modificabilidad del sistema y la independencia inter-capa y de datos, mejorando así la calidad del SW desarrollado. 23 Figura 2. Arquitectura de 3 capas de nuestro sistema Como muestra el diagrama anterior, la clase AccesoBD se sitúa entre la capa de persistencia y la base de datos para aumentar la abstracción de la aplicación respecto al sistema de información. La implementación utilizada en el proyecto, hace uso del motor de bases de datos MySQL. Incluir otra implementación de esta clase, permitiría trabajar con otros motores de bases de datos. 5.1.1. Capa Presentación En la capa de presentación encontramos distintos formularios que se encargan de recoger los datos necesarios para las altas en la base de datos y paginas que recogen datos de la base de datos para mostrarlas al usuario. Cada formulario de recogida de datos, opera sobre otra pagina php de prefijo operation que se encarga de mandar los datos a la función correspondiente de sistema.php para que los datos sean procesados. Aquí vemos, como ejemplo, el formulario de alta de un nuevo edificio. <h3>Nuevo edificio en la instalación</h3><br> <form method="post" action="index.php?contenido=operationNuevoEdificio"> <TABLE> <TR valign="top"> <TD align="right"><span class="obligatorio"> </span></TD> 24 <TD>Datos obligatorios</TD> </TR> <TR valign="top"> <TD>Nombre:</TD> <TD><input class="obligatorio" type="text" name="nombre" title="Nombre que aparecer´ para identificar el edificio"></TD> </TR> <TR> <TR> <TD>Descripción:</TD> <TD><input class="obligatorio" type="text" name="descripcion" title="Descripción del edificio"></TD> </TR> <TR> <TD></TD> <TD align="right"><INPUT type="submit" VALUE="Crear" title="Enviar los datos para dar de alta un nuevo edificio" /></TD> </TR> </TABLE> </form> Listado 1. Formulario alta de un nuevo edificio Como podemos ver en la segunda línea, al pulsar sobre el botón Crear, los datos se enviarán a index y este se encargará, tras comprobar la variable “contenido”, de redirigir hacia la página php correspondiente como vemos en el siguiente fragmento de contenidoCentral.php que forma parte de index.php. switch($contenido){ case " operationNuevoEdificio ": $nombreContenidoCentral= ""; $contenidoZonaInformacion= " operationNuevoEdificio.php"; break; Listado 2. Fragmento código, redirección a la página de operación Vemos ahora como ahora operationNuevoEdificio.php pasa los datos a nuestra capa de lógica. <? require_once "preambulo.php"; if(!empty($_POST["nombre"])){ $resultado=$Sistema->nuevoEdificio($_POST["nombre"], $_POST["descripcion"]); if($resultado!=0){ echo "Operación realizada con exito."; } else echo "Error, vuelva a intentarlo"; 25 } ?> Listado 3. Código operationNuevoEdificio.php pasando datos a la capa lógica. Existen fragmentos y páginas de la capa de lógica en las que se muestra información obtenida de la base de datos al usuario. En este caso se hace uso de igual modo de funciones de la capa lógica, pero estas ahora nos retornan un array de datos con los que trabajar. Vemos aquí un fragmento de código en las que se solicita las plantas existentes en nuestra instalación para que el usuario pueda seleccionar una en un desplegable. <?php $plantas=$Sistema->obtenerPlantas(); if(!empty($plantas)){ $nPlantas=count($plantas); for($i=0;$i<$nPlantas;$i++){ $planta= $plantas[$i]; $idPlanta=$planta["id_planta"]; $nombrePlanta=$planta["nombre"]; echo '<OPTION value="'.$idPlanta.'">'.$nombrePlanta.'</OPTION>'; } } ?> Listado 4. Fragmento formulario de formNuevaEstancia.php, solicitando datos al sistema 5.1.2. Capa lógica La capa lógica de nuestro sitio web está escrita en su totalidad en el archivo sistema.php. Dentro encontramos la clase sistema, la cual incluye todas las funciones que necesitamos para recuperación e inserción de datos en la base de datos. Podemos ver a continuación un fragmento de código de la clase con o un metódo de recuperación de datos y otro de inserción de datos en la base de datos. class Sistema{ private $persistencia; function __construct(){ $this->persistencia=new comunicacion_persistencia(); } function nuevaEstancia($idPlanta,$nombre,$descripcion,$tipo){ return $this->persistencia->addEstancia($idPlanta, $nombre, $descripcion, $tipo); } function obtenerEstancias(){ return $this->persistencia->obtenerEstancias(); } Listado 5. Fragmento de código de sistema.php 32 6.1.8. Enchufe estándar El enchufe hembra, tomacorriente o toma de corriente generalmente se sitúa en la pared, ya sea colocado de forma superficial (enchufe de superficie) o empotrado en la pared montado en una caja (enchufe de cajillo o tomacorriente empotrado), siendo éste el más común. Constan, como mínimo, de dos piezas metálicas que reciben a sus homólogas macho para permitir la circulación de la corriente eléctrica. Estas piezas metálicas quedan fijadas a la red eléctrica por tornillos o, actualmente con mayor frecuencia, por medio de unas pletinas plásticas que, al ser empujadas, permiten la entrada del hilo conductor y al dejar de ejercer presión sobre ellas, unas chapas apresan el hilo, impidiendo su salida. Figura 10. Enchufe Estándar 6.1.9. Interruptores diferenciales La instalación cuenta con dos diferenciales. 6.1.9.1. Interruptor diferencial CFI6, tipo CA 10 Un interruptor diferencial exponencial, también llamado disyuntor por corriente diferencial o residual, es un dispositivo electromecánico que se coloca en las instalaciones eléctricas con el fin de proteger a las personas de las derivaciones causadas por faltas de aislamiento entre los conductores activos y tierra o masa de los aparatos. Figura 11. Interruptor diferencial CF16 Especificaciones: Tipo de disyuntor diferencial Corriente de choque 250 A Capacidad de cortocircuito 6 kA Característica AC Desconexión instantáneo Durabilidad mecánica 4000 ciclos Montaje DIN 10 http://es.wikipedia.org/wiki/Interruptor_diferencial 33 Sección de conductos de conexión 1,5...35 mm 2 Grueso de carriles de conexión 0,8...2 mm Clase de impermeabilidad IP40 6.1.9.2. Interruptor diferencial DG62 C1 11 Interruptor diferencial en caja moldeada serie M2 Figura 12. Interruptor diferencial DG62 Especificaciones: Intensidad nominal In 6-40A Tensión nominal en c.a. Un 230/400V Curva de disparo C Capacidad de cortocircuito según EN/IEC 60898-1 6kA Clase de selectividad 3 Capacidad de terminales 25 ó 2 x 10 mm2 Polos 1,1 + N; 2 Peso 115 g/pol 6.2. Programación de los aparatos Antes de poder usar un producto basado sobre el protocolo EIB, este debe ser programado. La programación, básicamente se basa en ajustar algunos parámetros de configuración sobre el uso que le vamos a dar al aparato (normalmente los que traen por defecto son validos) y en asignar una dirección o varias de grupo a un aparato, estas direcciones serán las que serán usadas para enviar/recibir los telegramas necesarios para la comunicación. La programación de los componentes del circuito se ha realizado gracias a una versión de evaluación de eib tool software 3(ETS3). ETS facilita la configuración de instalaciones domóticas, en esta memoria se van a describir los pasos generales que se han seguido sin entrar en detalles específicios del programa, ya que no es el propósito del proyecto. Para más información sobre el uso general del programa podemos usar el manual de ETS3. 11 http://www.gepowercontrols.com/es/resources/literature_library/catalogs/downloads/Instal Cat_ES_final_LR.pdf 34 6.2.1. Preparación de ETS3 Tras la instalación de ETS3, el primer paso que hemos tenido que realizar es añadir las bases de datos de los fabricantes de los aparatos que vamos a usar. Estas bases de datos son aportadas por los propios fabricantes y se pueden bajar desde su propia web. Urls de descarga: - Base de datos para EIB de Siemens: https://www.swe.siemens.com/spain/web/es/industry/automatizacion/Formacio n/sce/Documents/PDB_J_ES.VD2 - Base de datos para EIB de Lingg-Janke : http://www.linggjanke.de/uploads/tx_sbdownloader/LJ0506_01.vd2 6.2.2. Configuración del edificio Una vez actualizadas nuestras bases de datos comenzaremos a crear un nuevo proyecto ETS3 con la estructura de nuestra casa “ficticia” (ya que nosotros tenemos todos los componentes juntos). En nuestro caso hemos configurado un edificio de una planta y una única habitación en la que se encuentran todos nuestros componentes descritos anteriormente. Hemos llamado a nuestro proyecto domoticaW. A continuación en la ventana de Edificios vamos a dar de alta un nuevo edificio. Vamos a darle como nombre “EdificioPrincipal”. Figura 13. Detalle creación edificio en ets3 Ahora dentro del edificio daremos de alta una parte del edificio y la llamaremos “PlantaPrincipal” y dentro de esta una habitación que llamaremos HabitacionPrincipal. Como resultado debe de quedar la estructura de la imagen. Figura 14. Estructura del edificio en ets3 35 6.2.3. Inserción de aparatos Una vez creada la estructura de nuestro edificio, vamos a añadir los aparatos que componen nuestra instalación, para ello pulsamos sobre la habitación con el botón derecho y en el menú contextual seleccionamos Añadir Aparatos. Debemos de seleccionar el fabricante sobre el que queremos hacer la búsqueda y escribir su número de pedido. A veces su búsqueda no es trivial y debemos de escribir parte del numero de pedido y buscarlo manualmente, por ejemplo el pulsador costo de encontrar bastante porque se escribía su número de pedido completo (5WG1 243-2AB11) y en la base de datos está guardado como 5WG1 243-2AB_1 debido a que la programación y configuración es igual para los modelos 5WG1 243-2AB11 y 5WG1 243-2AB21.Despues de encontrarlo debemos insertarlo con un doble clic, debemos tener en cuenta que el orden de inserción determinara la dirección física de cada aparato. Aunque esta dirección puede ser modificada a posteriori. Llegados a este punto en el que se ha citado la dirección física es conveniente que aclaremos que en ets3 existen dos tipos de direcciones: las físicas y las lógicas 12 : - Las direcciones físicas, son asignadas automáticamente a cada aparato en el momento de su inserción en el proyecto, y serán usadas por ets3 para identificar a cada aparato para su comunicación con el programa, una vez que termines la labores de programación y configuración de los aparatos podemos olvidarnos de estas direcciones pues no volverán a hacernos falta. Dicha dirección está definida conforme a la posición del dispositivo en la matriz de conexión y cada componente se identifica por su zona, línea y número de componente, de manera que la estructura topológica es la siguiente: Zona + Línea + Dispositivo (4 bits) (4 bits) (8 bits) - Las direcciones lógicas, llamadas en ETS direcciones de grupo. Estas direcciones son con la que trabajará realmente la instalación mientras está en funcionamiento y no tiene por qué ser única, es decir, durante la realización del proyecto se pueden determinar hasta catorce direcciones de grupo, en función de las diferentes partes de la instalación, de forma que varios dispositivos pueden compartir una misma dirección lógica. Esto sirve para definir grupos de dispositivos desde el punto de vista de la función técnica que van a desempeñar (del tipo "luces del piso de arriba", "interruptores", "sensores de alarma", etc.). Cada grupo principal contiene, según el criterio del usuario, hasta 2.048 subgrupos. Como se ha dicho antes, las direcciones de grupo de los componentes se ordenan independientemente de las direcciones físicas. De este modo, cada componente puede comunicarse con cualquier otro. Así pues, para el funcionamiento práctico del sistema se requiere una dirección, llamada dirección de grupo, destinada al tráfico de telegramas. En cada telegrama se incluye la dirección de grupo del receptor, de manera que los componentes del bus leen esta dirección, lo que determina si deben aceptar o no la información. Los componentes del bus pueden responder a más de una dirección de grupo. La 12 http://www.ingecasa.com/Sistema%20EIB.pdf 36 recepción del telegrama será efectiva sólo si la dirección de grupo coincide con alguna de las que tiene el componente y, además, la transmisión es correcta. Una vez introducidos todos los aparatos, pasaremos a conectar el circuito a nuestro PC mediante el puerto COM para la programación de la dirección física de los mismos. Debemos aclarar en este momento que ETS funciona sobre protocolo estándar no sobre ft1.2, así que habrá que conmutar nuestra interfaz a protocolo estándar. Ahora bastará con pulsar una a uno con el botón derecho y pulsar en programar, en la nueva ventana seleccionaremos programar dirección física. 6.2.4. Configurando las direcciones de grupo Pasamos ahora a configurar las direcciones de grupo, que serán las que nos permitirán dar la funcionalidad que necesitemos a nuestra instalación, por ejemplo si en una misma dirección de grupo añadimos la función de conmutar de la tecla izquierda de nuestro pulsador y añadimos la entrada A de conmutación de nuestro actuador, al pulsar el pulsador izquierdo, será la entrada A y solo la A la que sea conmutada. Digamos que hemos sustituido el cable físico que iba desde el interruptor al enchufe en las instalaciones estándar por un enlace lógico que se puede cambiar a nuestro antojo durante la programación de los aparato. Hemos creado una serie de direcciones de grupo en las que interviene los mismos aparatos en combinaciones diferentes para dar una mayor cantidad de ejemplos y acercarnos más a una instalación real en la que una luz por ejemplo se pueda encender por medio de un pulsador y además de conmutarse por el encendido de un sensor de presencia. En nuestro caso hemos añadido dos grupos principales en la ventana de direcciones de grupo, uno para las funciones en las que los sensores (presencia y luz) y nuestro pulsador conmutaran los enchufes enlazados a nuestro actuador llamado grupo “Funciones” y otro para la conmutación individual del actuador sobre los enchufes llamado “enchufes”. Dentro de este grupo se han creado 1 grupo intermedio llamado actuador, debido a que las funciones que añadamos operaran sobre este. Dentro de este grupo intermedio hemos añadido 4 direcciones de grupo, una por cada una de los enchufes que están conectados al conmutador. La primera dirección de grupo conmutara la entrada A del actuador cuando sea pulsada la tecla izquierda de nuestro pulsador, la hemos llamado por ello “pulsador izquierdo”. Para que la programación de la dirección de grupo funcione correctamente deberemos arrastrar a la ventana de la dirección de grupo las operaciones de apagado y encendido de la tecla izquierda de nuestro pulsador y seguidamente la entrada A del conmutador. Podemos encontrar ambos en la ventana de Edificios o de topología. Las demás direcciones se configuran siguiendo la misma idea, uniendo las funciones de los aparatos sobre entradas de nuestro actuador. 37 Figura 15. Direcciones de grupo en ets3 El segundo grupo principal funcionara de un modo un poco distinto, ya que no existirá un actuador que opere sobre nuestro actuador. En la dirección de grupo, tan solo añadiremos las entradas del actuador que queremos que queden afectadas. El motivo es porque estas direcciones serán conmutadas desde nuestro servidor web, por tanto no es necesario que haya ningún pulsador ni similar que conmute la entrada. Una vez creadas todas las direcciones de grupo tan solo nos queda programar los aparatos. Para ello, en la ventana de topología o edificios, debemos pulsar uno a uno sobre los aparatos con el botón derecho y seleccionar programar, y en la siguiente ventana pulsamos sobre Programar Aplicación. Figura 16. Ventana programación en ets3 Ahora ya está listo para funcionar, y podemos realizar las primeras pruebas. 38 39 Capítulo 7 Configuración y puesta en marcha del servidor Para poder disponer de una web que acceda a nuestra instalación EIB, necesitamos de un pc-servidor que esté conectado a esta. Pasamos ahora describir los pasos a seguir para poner en macha nuestro servidor sobre una maquina Linux. 7.1 Servidor Web Este pc deberá ser configurado como servidor para que pueda atender las peticiones de los clientes. Dado que nuestro proyecto necesita de un servidor que soporte php y mysql se ha pensado como solución instalar XAMPP. Este software permite instalar de forma fácil un servidor apache que contiene todo lo que necesitamos. Descargamos pues el paquete de instalación disponible en: http://www.apachefriends.org/es/xampp.html. Una vez descargado, descomprimimos el paquete de instalación y lo movemos a la carpeta /opt y listo. Ahora para la puesta en marcha del servidor tan solo debemos de iniciar xampp con esta instrucción (con permisos de administrador): /opt/lampp/./lampp start Si queremos entrar a nuestra interfaz para la configuración de algunos servicios de xampp, lo podemos hacer a través del navegador con la siguiente url: http://localhost/.Si lo que queremos es tener acceso a nuestro servidor de bases de datos Mysql para la modificación e inserción de tablas, debemos hacerlo mediante la siguiente url: http://localhost/phpmyadmin/index.php 7.2. eibcontrol Pasamos ahora a comentar los pasos a seguir para instalar, configurar y poner en marcha el software. 7.2.1. Instalación Lo primero que deberemos hacer es descargarnos el paquete desde http://sourceforge.net/projects/eibcontrol/ concretamente el enlace de la versión utilizada en nuestro proyecto es este http://sourceforge.net/projects/eibcontrol/files/eibcontrol/0.9.1/eibcontrol0.9.1.tgz/download?_test=goal .Una vez descargado, descomprimiremos el paquete en el directorio raíz. cp eibcontrol-0.9.1.tgz / 40 Llegado a este momento es importante recordar que debemos tener instalado en nuestra maquina Linux g++ para poder compilar los archivos. Para instalar g++ bastara con ejecutar la siguiente orden: apt-get install g++ Ahora ya estamos preparados para compilar el programa. cd /eibcontrol make Ya tenemos nuestro programa instalado, faltará ahora configurarlo para nuestra instalación concreta . 7.2.2. Configuración Eibcontrol necesita saber la estructura lógica de nuestra instalación .El fichero de ejemplo XML eibcontrol/homeserver/eibdb.xml hay que adaptarlo a la instalación EIB con la que vamos a trabajar. El XML tiene que contener entradas para todas las direcciones de grupo que se desean controlar. En el fichero xml se debe almacenar las diferentes direcciones de grupo, por cada dirección de grupo debemos de indicar obligatoriamente su eistype, curvalue y timestamp. La función de cada variable es: - eistype, indicar el tipo de componente. En nuestro caso son todo de tipo 1. - curvalue, esta variable es usada por el programa para almacenar el estado de la dirección de grupo (0 apagado, 1 encendido). - timestamp, aquí se guarda el momento en el que sucedió el ultimo evento en esta dirección de grupo. Vemos a continuación un fragmento del fichero usado en nuestra instalación, en el podemos observar 4 direcciones de grupo: 1/0/0, 1/0/1, 1/0/2 y 1/0/3. <node name="eib"> <node name="groups"> <node level="1" name="1"> <node level="2" name="0"> <node level="3" name="0"> <node name="eistype">1</node> <node name="curvalue">0</node> <node name="timestamp">1317233294</node> </node> <node level="3" name="1"> <node name="eistype">1</node> <node name="curvalue">0</node> <node name="timestamp">1316772386</node> </node> <node level="3" name="2"> <node name="eistype">1</node> <node name="curvalue">1</node> <node name="timestamp">1317235153</node> 41 </node> <node level="3" name="3"> <node name="eistype">1</node> <node name="curvalue">1</node> <node name="timestamp">1316777872</node> </node> </node> </node> Listado 9. Fragmento de eibdb.xml 7.2.3. Encendido Antes de poner en marcha nuestro servidor EIB, el pc, como hemos comentado antes, debe estar conectado con el bus EIB mediante un acoplador de bus compatible con el protocolo FT1.2 (una BCU2), por ello en este momento debemos de conmutar nuestra interfaz a ft1.2. Una vez conectado, para su puesta en marcha tan solo deberemos de escribir en el terminal la siguiente instrucción /eibcontrol/./eibcontrol start 7.2.4. Funcionamiento Si todo ha ido bien, se pueden controlar los dispositivos registrados en el fichero XML vía EIB Server. Se pueden manejar los dispositivos desde un navegador web como Mozilla o IE. Existen dos tipos de instrucciones una para la lectura de un valor y otra para la escritura vemos aquí unos ejemplos: - Lectura: 'http://localhost:8080/eibhomeserver?instruction=<eib type="read" path="/eib/groups/2/0/1/curvalue"/>';. - Escritura: 'http://localhost:8080/eibhomeserver?instruction=<eib type="write" path="/eib/groups/2/0/1/curvalue" data="1"/>';. En la variable type escribiremos el tipo de operación, en el path debemos de sustituir la dirección del ejemplo por la dirección de grupo que queramos leer y en el caso de querer escribir un valor lo tengo que indicar en la variable data (0 apagar, 1 encender).