miércoles, 25 de mayo de 2016

Instalación OpenHab Capítulo 9 (OpenHab)

Instalación de OpenHab

(Traducción libre del artículo de Gabriele Ribichini y de la Wiki de Souliss)








Desde el terminal y una vez establecida la conexión (SSH en Linux o Putty en Windows).

1.       Crear la carpeta openhab:
sudo mkdir /opt/openhab

2.       Cambiar al directorio openhab
cd /opt/openhab

3.       Descargar el paquete runtime
sudo wget https://bintray.com/artifact/download/openhab/bin/distribution-1.8.2-runtime.zip

*(Visitar la página de descargas de OpenHAB para verificar la dirección de la última versión del Runtime Core)

Si no os funciona:
sudo apt-get update
sudo apt-get upgrade.

 Y volver al paso 3.

4.       Descomprimir el paquete runtime
sudo unzip distribution-1.8.2-runtime.zip

5.       Eliminar el paquete comprimido runtime
sudo rm distribution-1.8.2-runtime.zip

6.       Cambiar al directorio de complementos
cd addons

7.       Descargar el paquete de complementos (addons)
sudo wget https://bintray.com/artifact/download/openhab/bin/distribution-1.8.2-addons.zip

*(Visitar la página de descargas de OpenHAB para verificar la dirección de la última versión del addons)

8.       Descomprimir el paquete addons
sudo unzip distribution-1.8.2-addons.zip

9.       Eliminar el paquete comprimido addons
sudo rm distribution-1.8.2-addons.zip






Instalar y configurar Souliss binding

Instalación


1.       Visitar la página

https://drive.google.com/folderview?id=0BzyjHRwlzov4WlgtSG0tejJ3aE0&usp=sharing#list  para obtener la última versión de Souliss OpenHAB binding


2.       Copiar el fichero org.openhab.binding.souliss_1.7.0.201511201827 (current).jar (o el nombre que tenga el fichero que habéis bajado) mediante el FileZilla al directorio /tmp.

3.       Desde la consola de comandos mover el fichero al directorio  /addons/

En OSMC
cd /tmp
sudo mv *.jar /opt/openhab/addons

En Raspbian
cd /tmp
sudo mv *.jar /home/pi/addons/


Configuración básica

1.       Cambiar a la carpeta de configuración:

En OSMC:
cd /opt/openhab/configurations

En Raspbian:
cd /home/pi/configurations


2.       Crear una copia de los archivos cfg por defecto, para para añadir los parámetros personales:
sudo cp openhab_default.cfg openhab.cfg


3.       Editar el fichero:
sudo nano openhab.cfg
                                                  

4.       Añadir las siguientes líneas en la parte inferior: (si pulsais Control + V bajareis mucho más rápido).

################################ Souliss Binding ##########################################
#
# Souliss 
#
# For ITEM defination in file .item
#{souliss#<Typical>:<nodeID>:<slot>:[<bit>|<useOfSlot>]}

souliss:IP_LAN=192.168.1.74
souliss:USER_INDEX=71
souliss:NODE_INDEX=134
#SERVERPORT - Leave empty for casual port
souliss:SERVERPORT=

#time in mills - min 50
souliss:REFRESH_DBSTRUCT_TIME=600000
souliss:REFRESH_SUBSCRIPTION_TIME=120000
souliss:REFRESH_HEALTY_TIME=60000
souliss:REFRESH_MONITOR_TIME=500
souliss:SEND_DELAY=1500
souliss:SEND_MIN_DELAY=100
souliss:SECURE_SEND_TIMEOUT_TO_REQUEUE=5000
souliss:SECURE_SEND_TIMEOUT_TO_REMOVE_PACKET=30000
###########################################################################################

Cambiar la línea souliss:IP_LAN=192.168.1.74 por la IP de vuestro Gatteway.

Salvar y salir con Ctrl + O, Enter, Ctrl X.

Configuración de items

1.       Cambiar a la carpeta items:

En OSMC
cd /opt/openhab/configurations/items

En Raspbian
                cd /home/pi/configurations/items

2.       Crear un fichero de items:
sudo nano souliss.items

3.       Añadir vuestros items de souliss utilizando la sintaxis
{souliss=<Typical>:<nodeID>:<slot>:[<bit>]}



Ejemplo de archivo souliss.items con el e01_HelloWorld:

Group All
Group grp1              (All)
Group Diagnostic        (All)
Group TechnicView_Node0 (All)
 
Switch SimpleLight  "SimpleLight" (grp1, TechnicView_Node0) {souliss="T11:0:0", autoupdate="false"}
 
Number HEALTHNodo0 "Health Node 0 [%1d]" <keyring> (Diagnostic, TechnicView_Node0, Health) {souliss="D98:0:998"}
String TIMESTAMP_Nodo0 "Update Node 0 [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" <keyring> (Diagnostic, TechnicView_Node0) {souliss="D99:0:999"}
Salvar y salir con Ctrl + O, Enter, Ctrl X.

Configuración de sitemaps


1.       Cambiar a la carpeta sitemaps:

En OSMC
cd /opt/openhab/configurations/sitemaps

En Rapbian
cd /home/pi/configurations/sitemaps

2.       Crear un fichero sitemaps:

sudo nano souliss.sitemap

3.       Edita el fichero sitemap personal de acuerdo con la sintaxis OpenHAB.


Ejemplo de archivo souliss.sitemap con el e01_HelloWorld:

sitemap default label="Menú Principal"
{
Frame label="Souliss - Hello World" {
        Switch item=SimpleLight mappings=[ON="ON", OFF="OFF"]
        Text item=HEALTHNodo0 icon="icon16x16"
        Text item=TIMESTAMP_Nodo0 icon="icon16x16"
    }       
}

Salvar y salir con Ctrl + O, Enter, Ctrl X.


Los sitemaps se pueden diseñar utilizando iconos personalizados, para ello, se deberán de copiar estos en el directorio / opt / openhab / webapps / imatges. Para los Typicals deben de tener una resolución de 32 x 32 píxeles.

Iniciar OpenHAB manualmente

Por defecto el script "start.sh" no es un archivo ejecutable. Por lo cual se le deberá indicar que lo sea, con el siguiente comando:


1.- Cambiar al directorio openhab:
En OSMC
cd /opt/openhab

En Raspbian
cd /home/pi
2.- Asignar atributos de ejecutable:
sudo chmod + start.sh
3.- Iniciar OpenHab introducir el siguiente comando:
sudo ./start.sh

Una vez arrancado el sistema, se podrá verificar a través del navegador, introduciendo la siguiente dirección: (sustituir la dirección IP con la de vuestra Raspberry):
http://192.168.1.78:8080/openhab.app?sitemap=souliss
·         Cambiar por la dirección de vuestra respberry.
Y el resultado será el siguiente:



Visualización en aplicación de android

Configuramos en settings y allí en openHAB remote URL la siguiente dirección http://IP_del_servidor:8080/openhab.app.

A partir de ese momento comenzará a cargarse la información en la aplicación móvil.


Configurar OpenHAB para que se ejecute automáticamente al iniciar

Algo imprescindible es configurar la raspberry, para que en caso de reinicio cargue automáticamente el servicio de OpenHab, para ello se deberán de seguir los siguientes pasos.
1.       Desde el terminal editar el fichero init.d:
sudo nano /etc/init.d/openhab
Coopiar el contenido de este script y pegarlo en el editor que acabáis de abrir:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          openhab
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: OpenHAB Daemon
# Description: Build your smart home in no time!
### END INIT INFO


ROOT_DIR=/opt/openhab


# set path to eclipse folder. If local folder, use '.'; otherwise, use /path/to/eclipse/
eclipsehome="$ROOT_DIR/server";


# set ports for HTTP(S) server
HTTP_PORT=8080
HTTPS_PORT=8443


# get path to equinox jar inside $eclipsehome folder
cp=$(find $eclipsehome -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);




# This next line determines what user the script runs as.
# Root generally not recommended but necessary if you are using the Raspberry Pi GPIO from Python.
#USER=root
DAEMON_USER=root
DAEMON_NAME=openhab


DAEMON=/usr/bin/java
DAEMON_ARGS="-Djna.boot.library.path=/usr/lib/jni -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0 -Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djetty.port=$HTTP_PORT -Djetty.port.ssl=$HTTPS_PORT -Djetty.home=. -Dlogback.configurationFile=configurations/logback.xml -Dfelix.fileinstall.dir=addons -Djava.library.path=lib -Djava.security.auth.login.config=./etc/login.conf -Dorg.quartz.properties=./etc/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Dfelix.fileinstall.active.level=4 -Djava.awt.headless=true -jar $cp $* -console "
PIDFILE=/var/run/$DAEMON_NAME.pid


. /lib/lsb/init-functions

do_start() {     
  log_daemon_msg "Starting system $DAEMON_NAME daemon"
  start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --chdir $ROOT_DIR --exec $DAEMON -- $DAEMON_ARGS
  log_end_msg $?
}
do_stop() {
  log_daemon_msg "Stopping system $DAEMON_NAME daemon"
  start-stop-daemon --stop --pidfile $PIDFILE --retry 10
  log_end_msg $?
}

case "$1" in

    start|stop)
        do_${1}
        ;;

    restart|reload|force-reload)
        do_stop
        do_start
        ;;

    status)
        status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $?
        ;;
    *)
        echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}"
        exit 1
        ;;

esac
exit 0

 
Salvar y salir con Ctrl + O, Enter, Ctrl X.
 

2.       Convertir el script en ejecutable: 
sudo chmod 777 /etc/init.d/openhab
 
 
A partir del reinicio del sistema (sudo reboot) se dispondrá de unos nuevos comandos para arrancar OpenHAB,  verificar su estado, detenerlo o reiniciarlo:
 
Arrancar 
sudo /etc/init.d/openhab start
 
Verificar estado
/etc/init.d/openhab status
 
Parar
sudo /etc/init.d/openhab stop
 
Reiniciar
sudo /etc/init.d/openhab restart
 
 
 
3.       Incluir el script en el arranque: 
 
sudo update-rc.d openhab defaults
 
 
4.       Si en algún momento se desea deshacer esta última opción:
 
sudo update-rc.d -f openhab remove
 
 
 
La próxima vez que reiniciemos la Raspberry se iniciará el servicio OpenHab, (recordad que tarda un rato en iniciarse este último). Para verificar el estado podemos utilizar la orden que detallábamos un poco más arriba:

/etc/init.d/openhab status

10 comentarios:

  1. Hola pep,
    Entre otros he probado este tutorial sin exito. Quisiera preguntarte un par de cosas.
    1 esta configuración está "marchando" en alguna raspberry?
    2 que rasberry? (1,2,3)
    3 en caso de si que versión de raspbian es?
    4 en caso que si que versión de java?
    5 en caso que si que binding?
    Saludos y gracias

    ResponderEliminar
    Respuestas
    1. Aunque he visto en el foro tu respuesta y que lo has solucionado, como comentabas era problema de la Codificacion del Archivo de configuracion te contesto aqui a estas preguntas para que los que lean despues no tengan que buscar :P

      1. Si, hay varios usuarios.
      2. Yo mismo lo he tenido en una Pi y una Pi2
      3. Yo lo tuve en su dia con Raspbian y actualmente con OSMC en su ultima version.
      4. Java 1.8
      5. El ultimo Binding descargable de aqui:
      https://drive.google.com/folderview?id=0BzyjHRwlzov4WlgtSG0tejJ3aE0&usp=sharing#list
      y quitando el (current) al nombre.

      Respecto a la instalacion estamos pendientes de incluir tambien un tutorial para instalarlo a traves de apt-get, lo que facilitará bastante la instalacion.

      Salu2

      Eliminar
  2. Hola,
    Como este tutorial es para el openhab 1.8 y ya va la 2.0 (aparte el Java es la 8) Lo he instalado tal y como explican aquí: http://docs.openhab.org/installation/linux.html#installation

    Todo bien, pero como instalo el binding the Souliss en esta version? No me funciona segun este tuto

    ResponderEliminar
    Respuestas
    1. Hola Jvi, pues te hablo de memoria, pero creo recordar que habia que meter el addon igual, pero la configuracion en lugar de meterla en openhab.cfg habia que crearle un fichero aparte.

      Yo lo llegue a probar en un PC hace tiempo, pero en la Raspberry aun mantengo OH1.8.

      A ver si alguien que lo haya probado se anima y nos echa una mano con un tutorial :P

      Salu2

      Eliminar
  3. hola, una duda, tengo openhab 1.8, pero no consigo conectarme por 4G a mi red, cosa que con Souliss si puedo, ¿como tendria que configurar OH para conseguirlo? un saludo

    ResponderEliminar
    Respuestas
    1. Tienes que abrir el puerto del interfaz web de OH a la IP de la PI en tu router. :P

      Eliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. ¿y que puerto es? lo he buscado pero no lo encuentro.....
    es valido para cualquier OH

    ResponderEliminar
  6. ese esta abierto entonces esta mal configurado el OH, abrire un post en el foro con una captura de la configuracion de Oh y vemos que he echo mal, gracias

    ResponderEliminar