Cómo utilizar dispositivos X10 en un sistema domótico Z-Wave basado en Vera Lite
- En este tutorial, explicamos paso a paso cómo utilizar dispositivos X10 en una instalación domótica basada en el protocolo Z-Wave con la central Vera Lite
No sé si será vuestro caso, pero yo tenía ciertas partes de mi vivienda automatizadas con un sistema domótico basado en X-10. Después de comprobar alguna de sus carencias, como por ejemplo la falta de bidireccionalidad en las comunicaciones entre dispositivos, decidí que era el momento de buscar algo que me diera más versatilidad y control.
Después de investigar por la red, me decidí por la tecnología inalámbrica Z-Wave, y en concreto por el controlador Vera Lite de micasaverde, principalmente por la amplia cantidad de plugins disponibles, y la posibilidad de desarrollo de nuevas funcionalidades que posee a través del lenguaje de programación LUA.
Como quería combinar mis dos instalaciones domóticas para poder amortizar el material X-10 que ya tenía instalado, consulté los foros de micasaverde, donde se hacía mención a un plugin que permitía controlar esos dispositivos X-10 que ya poseía utilizando como puerta de enlace o pasarela una Raspberry Pi. Así que me puse manos a la obra.
Después de tener configurados tanto la Raspberry Pi como el plugin para la Vera Lite, y una vez realizadas las pruebas pertinentes con un enchufe controlado, empecé a añadir todos mis dispositivos X-10 a la Vera Lite. Cual fue mi sorpresa al comprobar que funcionaban todos los dispositivos que tenía cableados, enchufes, lámparas regulables, lámparas fijas, menos los motores de persianas y toldos, que precisamente habían sido los dispositivos que me habían impulsado a dar el salto a la domótica doméstica.
Después de analizar el código fuente del plugin, vi que lo único que le faltaba era poder enviar unos comandos extendidos específicos para motores de persiana, que supongo que el autor del plugin no necesitaría o desconocería cuando lo programó.
Y es aquí donde, por necesidad, me puse a investigar. Al final he podido controlar todos mis periféricos X-10 y es lo que quiero compartir con los lectores de Domótica Doméstica.
Para poder realizar todo este montaje necesitaremos lo siguiente:
1.- Raspberry Pi con un sistema operativo funcionando
2.- Interface X10 USB, en nuestro caso la CM15A
3.- Centralita domótica Vera Lite de micasaverde
4.- Plugin X10 modificado para actuar sobre motores de persiana/toldos
5.- Plugin MOCHAD X10 para la Raspberry Pi (tendremos que compilarlo)
6.- Ganas de aprender
Configuración de la Raspberry Pi como pasarela X10
Debemos elegir un sistema operativo que tenga herramientas de desarrollo, para poder compilar el plugin MOCHAD X-10 en la propia Raspberry Pi, ya que el autor entrega el código fuente para que cualquiera con conocimientos de Linux lo pueda compilar y ejecutar en cualquier dispositivo.
En mi caso he optado por una distribución de Linux llamada Volumio, basada en Raspbian, que está específicamente orientada para utilizarse como servidor de música. Con ella mato dos pájaros de un tiro (esto es una elección personal) ya que mi Raspberry Pi está muy cerca de mi amplificador home cinema, y como las funciones de pasarela X-10 no necesitan muchos recursos, el resto lo aprovecho para poder reproducir música de emisoras. Así que va a gusto del consumidor. Mientras la distribución tenga herramientas de desarrollo, los pasos son los mismos en todos los casos.
Una vez preparada la memoria SD con la distribución elegida (consultar los tutoriales de cada distribución, en los cuales se indican los procesos necesarios para preparar una memoria SD con el sistema operativo de nuestra Raspberry Pi), podemos acceder a ella de dos maneras: conectando un monitor y un teclado a nuestra Raspberry Pi o accediendo a ella mediante terminal si la tenemos conectada vía LAN. Esta segunda opción es la que voy a explicar, aunque se puede realizar todo localmente mediante teclado y monitor directamente conectados a nuestra Raspberry Pi.
Primero tenemos que averiguar qué dirección IP tiene la Raspberry Pi. Lo podemos saber de tres maneras distintas: 1) Si hemos instalado la distribución Volumio, tan sólo tenemos que acceder con un navegador a la dirección http://volumio.local una vez alimentada y conectada la Raspberry Pi a nuestra red local, y nos aparecerá lo siguiente:
Luego, haciendo clic en el MENU y posteriormente en Network, podremos ver la siguiente pantalla, que nos muestra qué dirección IP tiene nuestra Raspberry Pi. Si queremos ponerle una IP fija, tan sólo tenemos que modificar el parámetro DHCP de automático a manual, salvar los cambios y ya está.
2) Entramos en la configuración de nuestro router en el apartado DHCP, en el cual se visualizan todos los equipos a los cuales les ha asignado una dirección IP, y localizamos la IP del dispositivo Volumio en nuestro caso.
3) Conectamos un monitor y teclado a nuestra Raspberry Pi y si observamos detenidamente el proceso de arranque, se puede ver qué dirección DHCP le ha asignado nuestro router. Una vez ha finalizado el proceso de arranque y nos hemos logueado con el usuario/contraseña proporcionado según la distribución Linux elegida, escribimos ifconfig, pulsamos intro y veremos en la pantalla la dirección IP asignada a nuestra Raspberry Pi.
Ya tenemos apuntada la dirección IP que utilizaremos en el proceso con configuración. Ahora, utilizaremos una aplicación distinta dependiendo del tipo de ordenador que tengamos. Si es un Mac/Linux utilizaremos la aplicación de terminal/consola y si es Windows nos decantaremos por un software de terminal SSH freeware denominado Putty, por poner un ejemplo. En mi caso utilizaré la aplicación de terminal que viene con OSX, pero como he dicho antes es indiferente ya que todo depende del ordenador que tengáis para poder seguir el proceso.
Abrimos la aplicación de terminal de nuestro OS X, y tecleamos lo siguiente:
ssh 192.168.2.96 -l root
Nos pedirá el password de root, que en esta distribución es volumio. Si todo ha ido bien, nos saldrá el siguiente texto:
root@volumio:~#
Después, modificaremos el origen de los paquetes necesarios para poder instalar las herramientas de desarrollo. Para ello teclearemos lo siguiente:
root@volumio:~# nano /etc/apt/sources.list
Y añadiremos las siguientes líneas al archivo existente:
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi deb http://archive.raspbian.org/raspbian jessie main contrib non-free rpi deb-src http://archive.raspbian.org/raspbian jessie main contrib non-free rpi
Guardaremos las modificaciones tecleando CRTL+X, y confirmaremos los cambios con Y.
Una vez realizado este paso, actualizaremos las fuentes tecleando lo siguiente:
root@volumio:~#apt-get update
Veremos en pantalla como se van descargando los datos necesarios, y esperaremos hasta que finalice el proceso, para después instalar el entorno de desarrollo tecleando lo siguiente:
root@volumio:~#apt-get install build-essential
Nos preguntará si queremos instalar los paquetes, a lo que contestaremos con Y, y en este momento empezará a descargar los elementos requeridos para poder compilar el software necesario, para después instalar y configurar el entorno. Estaremos atentos a la consola para certificar que no se produce ningún error.
Una vez que tengamos el entorno instalado, empezaremos a instalar en primer lugar el soporte para dispositivos USB mediante el siguiente comando:
root@volumio:~# apt-get install libusb-1.0-0-dev
Si no se ha producido ningún error, nuestra Raspberry Pi ya tendrá los elementos necesarios para poder manejar dispositivos USB. Ahora pasaremos a instalar el software que hará de intermediario entre nuestra Raspberry Pi y la CM-15A, que no es otro que el plugin MOCHAD, en su versión 0.1.16. Para ello desde nuestra consola teclearemos lo siguiente:
root@volumio:~# wget http://sourceforge.net/projects/mochad/files/mochad-0.1.16.tar.gz
Comprobaremos que se ha descargado correctamente ejecutando el comando ls, el cual nos debería de mostrar lo siguiente:
root@volumio:~#ls root@volumio:~# mochad-0.1.16.tar.gz
Descomprimiremos el plugin descargado tecleando lo siguiente:
root@volumio:~# tar xf mochad-0.1.16.tar.gz
Entraremos dentro del directorio:
root@volumio:~# cd mochad-0.1.16/
Seguiremos estos pasos para compilar el plugin:
root@volumio:~/mochad-0.1.16# ./configure
root@volumio:~/mochad-0.1.16# make
root@volumio:~/mochad-0.1.16# make install
Conectaremos en este punto nuestra CM15A a cualquier puerto disponible de nuestra Raspberry Pi y haremos un reset tecleando el siguiente comando:
root@volumio:~/mochad-0.1.16# reboot
Después de esperar a que se reincide, volveremos a conectarnos como lo hemos hecho al principio, y comprobaremos que nuestra Raspberry Pi detecta correctamente la interface X-10 CM15A con el siguiente comando:
root@volumio:~# lsusb
En este punto, deberíamos ver lo siguiente en pantalla:
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 0bc7:0001 X10 Wireless Technology, Inc. ActiveHome (ACPI-compliant)
Si vemos la última línea es que nuestra Raspberry Pi puede interactuar con nuestra interface X-10.
Ahora vamos a probar si podemos enviar comandos X-10 a nuestro dispositivo de pruebas. En mi caso, tengo un módulo de enchufe configurado con la dirección A6, al cual le he conectado una lámpara de pie, en la consola teclearemos lo siguiente:
root@volumio:~# echo pl a7 on | nc localhost 1099
para encender la lámpara,
root@volumio:~# echo pl a7 off | nc localhost 1099
para apagarla.
En la segunda parte del artículo, veremos cómo podemos enviar estas órdenes desde nuestra centralita Vera Lite, y tener perfectamente operativos todos nuestros dispositivos X10 en un entorno Z-Wave.
Si tenéis cualquier duda, os responderé encantado en los comentarios de este post. Hasta muy pronto.
Para cuando la segunda parte. Un saludo.
¡hola
cuando se publica la segunda parte
mi proyecto es incompleto … como terminar?
Hola, pronto la vamos a publicar. Un saludo.
gracias, yo estaría muy agradecido
un gran saludo