OpenHAB 2, instalación y primeros pasos
Hace tiempo que apareció la versión 2 de openHAB y tenía ganas de probarla. En esta entrada vamos a ver como instalarla en nuestra Raspberry Pi/Odroid corriendo Debian/Ubuntu. En mi caso lo haré sobre una Odroid C1, con una Ubuntu 16.04.
Lo primero que hay que decir es que hay dos formas de instalarla: usando su repositorio para Debian/Ubuntu o bajándose el paquete zip, descomprimiéndolo y poniendo cada cosa en su lugar. Vamos a aprovechar la facilidad que nos da la instalación desde repositorio oficial:
root@servidor:~# echo 'deb https://openhab.ci.cloudbees.com/job/openHAB-Distribution/ws/distributions/openhab-offline/target/apt-repo/ /' | sudo tee /etc/apt/sources.list.d/openhab2.list root@servidor:~# echo 'deb https://openhab.ci.cloudbees.com/job/openHAB-Distribution/ws/distributions/openhab-online/target/apt-repo/ /' | sudo tee --append /etc/apt/sources.list.d/openhab2.list
Con estos dos comandos añadimos los repositorios oficiales a nuestra lista de orígenes de instalación de apt, ahora instalamos la key del repositorio, y actualizamos:
root@servidor:~# wget -qO - 'http://www.openhab.org/keys/public-key-snapshots.asc' | sudo apt-key add - OK root@servidor:~# apt-get update Hit:1 http://ports.ubuntu.com/ubuntu-ports xenial InRelease Hit:2 http://ports.ubuntu.com/ubuntu-ports xenial-updates InRelease Ign:3 http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04 InRelease Hit:4 http://ports.ubuntu.com/ubuntu-ports xenial-backports InRelease Hit:5 http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04 Release Hit:6 http://ports.ubuntu.com/ubuntu-ports xenial-security InRelease Hit:7 https://openhab.ci.cloudbees.com/job/openHAB-Distribution/ws/distributions/openhab-offline/target/apt-repo InRelease Get:8 https://openhab.ci.cloudbees.com/job/openHAB-Distribution/ws/distributions/openhab-online/target/apt-repo InRelease [1,607 B] Get:10 https://openhab.ci.cloudbees.com/job/openHAB-Distribution/ws/distributions/openhab-online/target/apt-repo Packages [616 B] Fetched 2,223 B in 3s (734 B/s) Reading package lists... Done W: http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.gpg: Signature by key DDA2C105C4B73A6649AD2BBD47AE7F72479BC94B uses weak digest algorithm (SHA1)
Al final aparece una alerta sobre la key del repositorio, que podemos ignorar sin mayor problema. Para instalar el paquete tenemos dos posibilidades: usar el paquete completo, con todos los addons, o hacerlo con un paquete mínimo que se irá descargando lo que necesite cuando lo necesite. Personalmente prefiero descargármelo todo, y no depender más adelante de la red para que mi sistema funcione 🙂
root@servidor:/mnt/Data/openhab2# sudo apt-get install openhab2-offline Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: openhab2-offline 0 upgraded, 1 newly installed, 0 to remove and 17 not upgraded. Need to get 165 MB of archives. After this operation, 174 MB of additional disk space will be used. Get:1 https://openhab.ci.cloudbees.com/job/openHAB-Distribution/ws/distributions/openhab-offline/target/apt-repo openhab2-offline 2.0.0~20161103223609 [165 MB] Fetched 165 MB in 1min 8s (2,395 kB/s) Selecting previously unselected package openhab2-offline. (Reading database ... 177633 files and directories currently installed.) Preparing to unpack .../openhab2-offline_2.0.0~20161103223609_all.deb ... Unpacking openhab2-offline (2.0.0~20161103223609) ... Processing triggers for systemd (229-4ubuntu11) ... Processing triggers for ureadahead (0.100.0-19) ... Setting up openhab2-offline (2.0.0~20161103223609) ... ### NOT starting on installation, please execute the following statements to configure openHAB to start automatically using systemd sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable openhab2.service ### You can start openhab2 by executing sudo /bin/systemctl start openhab2.service
El mensaje que nos da al final nos dice que para recargar la configuración de systemd (sustituto de upstart) y activar el servicio en nuestro sistema debemos ejecutar los dos primeros comandos, y que para arrancar el servicio hay que ejecutar el tercero (personalmente no me gusta mucho systemd, pero es lo que hay…). Los ejecutamos los tres y ya tendremos openHAB2 corriendo en nuestra máquina:
root@servidor:~# sudo /bin/systemctl enable openhab2.service Synchronizing state of openhab2.service with SysV init with /lib/systemd/systemd-sysv-install... Executing /lib/systemd/systemd-sysv-install enable openhab2 Created symlink from /etc/systemd/system/multi-user.target.wants/openhab2.service to /usr/lib/systemd/system/openhab2.service. root@servidor:~# sudo /bin/systemctl start openhab2.service
¿Ya? ¿Tan fácil? Pero… y ¿donde están los archivos de configuración? ¿y los archivos de datos, logs y demás?
Sí, así de fácil. Y los archivos de configuración están en /etc/openhab2, el resto en /var/lib/openhab2 y /usr/share/openhab2:
root@servidor:~# ls /etc/openhab2 html icons items persistence rules scripts services sitemaps things transform root@servidor:~# ls /var/lib/openhab2 cache deploy etc generated-bundles kar lock mapdb persistence port tmp root@servidor:~# ls /usr/share/openhab2/ addons bin LICENSE.TXT runtime start_debug.sh start.sh
Como veis, la estructura de directorios y archivos cambia comparado con openHAB 1, como os decía al principio de la entrada. Para comprobar la instalación con la demo que suele venir con openHAB, tenemos que ir al archivo /etc/openhab2/services/addons.cfg y cambiar la linea #package=standard por package=demo. Una vez hecho el cambio reiniciamos el servicio de openHAB y comprobamos con el navegador que todo funciona correctamente:


Personalmente me gusta más la interfaz básica, que incluso se mueve mucho mas ágil que la clásica, pero para gustos los colores, como se suele decir, jajajaja.
Ahora os dejo trasteando la instalación demo que hemos hecho y en la siguiente entrada veremos alguna cosa más para empezar a personalizar y adaptar la instalación a lo que nosotros queramos.
buenas jose maria, me he leido todos tus tutoriales de openhab pero no me queda clara unas cuantas cosillas jejeje.
Actualmente tengo raspberry y algunos reles y pulsadores la idea es controlar la iluminacion de casa con la rasp y los pulsadores… este sistema esta muy bien y me gusta pero tengo mis dudas….
1 Tengo que instalar la libreria GPIO?
2 Donde le digo a openhub que puertos gpio estoy utilizando y para que..?
Para usar los GPIO tienes que usar el binding GPIO de openHab (https://github.com/openhab/openhab/wiki/GPIO-Binding). En esa web esta bastante bien explicado, con un ejemplo para configurar los pines de la RPi cuando arranca, y luego hacer referencia a ellos desde openHab. Personalmente, es una cosa que tengo pendiente de probar, pero para controlar las luces creo que es mejor solucion un sistema zwave (con un pincho USB emisor/receptor AEOEZW090, y los módulos de Fibaro dentro de las cajas de los interruptores). Ahora estoy montando un sistema con estos módulos, y tiene muy buena pinta, se integran perfectamente en cualquier instalación, y permiten hacer mil cosas con los interruptores de la luz, …
El problema que yo veo con los interruptores de la luz, es que tienes que situar la Raspberry cerca de donde pasen los cables del interruptor para hacer la conmutación. Si tienes muchos para controlar es un lio. Cuando tenga el sistema con zwave montado no dudes que lo documentaré todo aquí para que tengáis un buen ejemplo, que a veces faltan por la red…
Un saludo, y gracias por el comentario! 🙂
Hola Jose Maria, estamos realizando unos estudiantes un proyecto domotico en la universidad y utilizamos Raspberry Pi3 i Arduino para controlar diversos sensores. Tenemos un problema en la conexión entre OpenHab y Arduino, ya que intentamos encender un LED desde Openhab pero no sabemos que hacemos mal en la conexión serie. Tu sabrias alguna página web donde explique como realizar la conexión? O si tu mismo lo sabes, nos podrias decir cómo hacerlo?
Muchas Gracias!
Hola Adrià! Si habéis conseguido encender y apagar el led mediante comandos desde la Raspberry, prácticamente lo tenéis hecho ya que no tenéis mas que usar un par de scripts y llamarlos con el binding Exec (https://github.com/openhab/openhab/wiki/Exec-Binding) desde openHab. Personalmente me parece mucho mas fácil hacer un script en bash, que una rutina en código de openHab (y configurar el addon correspondiente).
Si lo que no os funciona es la conexión mediante las GPIO de la Raspberry, en este blog https://mcuoneclipse.com/2015/12/24/blinky-led-with-openhab-on-raspberry-pi/ tenéis exactamente lo que queréis hacer usando el binding GPIO… Espero que os sirva.
De todas formas, lo más cómodo es añadir una pasarela IP a Arduino (un shield Ethernet o un ESP8266), montarle un pequeño servidor web que permita lanzarle comandos en remoto al Arduino, y mediante el comando wget hacer todo lo que quieras con tus sensores. Si os interesa, tengo varias entradas sobre esto en el blog (por ejemplo, las de conectar una electroválvula a internet…).