- Que no arranca automáticamente. Dado que OpenHAB va a ser el sistema que controle todos los automatismos de mi hogar, es importante que arranque automáticamente si, por ejemplo, se va la luz y vuelve.
- No tiene usuario y contraseña, lo que significa que cualquiera que pueda conectarse a su servidor web, podrá ver y controlar todos sus automatismos.
- Tiene instalados un gran número de extensiones que, al menos de momento, no usamos y que lo unico que hacen es hacer que el sistema vaya más lento y generar mensajes de error.
- conectate a tu raspberry Pi por SSH o abriendo una ventana de terminal desde el entorno gráfico.
- es conveniente crear un usuario específico para que ejecute el entorno OpenHAB y no usar el usuario "pi" que trae por defecto la Raspberry Pi. (Le has cambiado la contraseña al usuario pi, ¿verdad?, si no lo has hecho la forma más sencilla es, desde el usuario "pi" ejecutar el comando "passwd" y te pedirá dos veces la nueva contraseña -no se verá en pantalla. Si escribes lo mismo las dos veces, cambiará la contraseña anterior por la que acabas de escribir, asi que conviene que te acuerdes MUY BIEN de cual has puesto). Para crear un usuario openhab escribe:
- El sistema te pedirá una contraseña, escríbela (y acuerdate de ella) y al resto de preguntas que hace contesta pulsando simplemente Intro sin escribir nada.
- Seguidamente se cambia la propiedad de todos los archivos instalados de OpenHAB
- Cuando arranca cualquier sistema Unix/Linux y especificamente la Raspberry Pi, busca en un directorio los llamados script de arranque. Un script es una secuencia de comandos que se graba en un fichero para poder ejecutarlos todos de golpe con solo escribir el nombre del fichero. Los scripts de arranque, como su nombre indica son los que se ejecutan al arrancar el sistema y en nuestro caso queremos crear uno para que arranque OpenHAB. Para crear el archivo vamos a usar el editor de textos nano y copiar y pegar la lista de comandos. En primer lugar ejecuta el comando:
- El sistema te pide la contraseña de tu usuario y a continuación tienes que copiar y pegar el texto siguiente que son los comandos a ejecutar:
- Una vez lo hayas pegado, pulsa Control-X y el programa te preguntará si quieres guardar los cambios: "Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?". Pulsa Y cuando te pregunte "File Name to Write: /etc/init.d/openhab" pulsa Intro para que lo guarde con el nombre que le hemos dado.
- Después de crear el script hay que cambiar los permisos para que el sistema pueda ejecutarlo:
- Aunque no es extrictamente necesario vamos a crear el sitemap por defecto usando la configuración "demo" cargada previamente. Así podrás ver que funciona y es más fácil usar esa configuración e irla modificando que partir de cero. Para ello simplemente ejecuta en una sola linea, si te aparece cortado en dos es por el tamaño de la línea):
- Ahora reinicia el sistema para que arranque automáticamente:
- Después de arrancar hay que dejar pasar unos minutos para OpenHAB haga sus tareas internas y esté listo para trabajar. Para comprobar que funciona abre un navegador y ejecuta:
Al terminar la
entrada de blog anterior indiqué tres deficiencias a corregir de la
instalación:
Ahora vamos a ver
como resolver cada una de estas deficiencias.
Nota: Por si no te
has dado cuenta con las anteriores entradas, se asume que el usuario tiene
cierta experiencia con el uso de una Raspberry Pi, de su entorno gráfico y es
capaz de abrir una ventana de terminal y ejecutar comandos sencillos de Unix,
también es conveniente saber usar SSH. Aunque la mayoría de las veces intento
dar instrucciones detalladas tipo "copia y pega", el entender lo que
se está haciendo ayuda mucho.
Arranque automático
==================
Para que este
arranque se produzca es necesario crear un script especial. En Internet es
posible encontrar varios scripts que hacen esta función. Sin embargo ninguno
me funcionó a la primera y opté por crear mi propio script de arranque, aunque
está basado mas o menos libremente, en alguno de los que he visto:
sudo adduser openhab
chown -R openhab:openhab /opt/openhab
sudo nano /etc/init.d/openhab
#!/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
PIDFILE=/opt/openhab/openhab.pid
cd
$ROOT_DIR
#
set path to eclipse folder.
eclipsehome="/opt/openhab/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);
OPENHAB_ARGS="-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
-Dfelix.fileinstall.filter=.*\\.jar \
-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"
do_start()
{
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile
--user openhab --chuid openhab --chdir /opt/openhab --exec /usr/bin/java --
$OPENHAB_ARGS
}
do_stop()
{
start-stop-daemon --stop --pidfile $PIDFILE --retry 10
}
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
sudo chmod a+x /etc/init.d/openhab
sudo update-rc.d openhab defaults
sudo update-rc.d openhab defaults
sudo cp
/opt/openhab/configurations/sitemaps/demo.sitemap /opt/openhab/configurations/sitemaps/default.sitemap
sudo reboot
sustituyendo 192.168.1.3 por la IP fija que ajustaste en el
paso anterior. En la pantalla del navegador te tiene que aparecer:

Usuario
y Contraseña
======================
En
el paso anterior has visto que has podido conectarte a la página de OpenHAB
sin usuario y contraseña. Imaginate que sigue así cuando lo tengas todo
configurado y cualquier persona que acceda a tu red pueda encender y apagar
las luces o cualquier otra operación.
Queda
claro que es necesario protegerlo con usuario y contraseña.
Para
ello en primer lugar hay que indicarle al sistema que tiene que solicitar
usuario y contraseña. Esto se consigue modificando la opción security en el
archivo de configuración de OpenHAB. Lo editamos
sudo
nano /opt/openhab/configurations/openhab_default.cfg
Busca
y cambia la línea (está al principio del archivo):
security:option=
Por
security:option=ON
A
continuación tienes que dar de alta al menos un usuario. Tienes que editar el
archivo /opt/openhab/configurations/users.cfg y añadir uno o varios usuarios
con su contraseña con el formato <usuario>=<contraseña> :
sudo
nano/opt/openhab/configurations/users.cfg
admin=123456
Ahora
sólo tienes que parar y arrancar el servidor y ya estará funcionando.
Eliminar
extensiones innecesarias
============================
Un
pequeño inconveniente de OpenHAB (también puede ser una ventaja) es que trae
todas las extensiones activadas. Evidentemente la ventaja es que según lo
arrancamos puede, en teoría, funcionar con todos los dispositivos –aunque hay
que configurarlos. El inconveniente es que muchas de estas extensiones van a
dar error.
La
forma de desactivar las que queramos es sencilla. OpenHAB busca al arrancar
todas las extensiones en un directorio específico. Basta con mover las que no
queremos fuera de ese directorio y ya no molestarán.
El
directorio en cuestión se llama addons y está dentro del directorio openhab.
En nuestro caso /opt/openhab/addons.
Vamos
a crear otro directorio addons.bak:
cd
/opt/openhab
mkdir
addons.bak
Ahora
entramos en addons y movemos todo lo que no nos interese a addons.bak
cd
addons
ls
La
lista que aparece puede asustar, son 198 archivos, pero en caso de duda deja
los que no sepas y mueve los que estés seguro/a que no necesitas. Basicamente
los que tengan nombres de dispositivos comerciales y los que te den error en
el log de OpenHAB. Cuando vayas aprendiendo podrás desactivar mas.
El
comando para hacerlo es:
sudo mv org.openhab.action.ecobee-1.8.3.jar ../addons.bak
sustituyendo org.openhab.action.ecobee.... por la extensión que
quieres desactivar.
Entre los que tienes que conservar (y no mover) porque se usan,
están:
org.openhab.action.mqtt-1.8.3.jar
org.openhab.binding.configadmin-1.8.3.jar
org.openhab.binding.http-1.8.3.jar
sudo
mv org.openhab.persistence.rrd4j-1.8.3.jar
Una
vez hechos estos pasos, estamos listos para configurar el OpenHAB para que
gestione nuestros equipos domésticos.
No hay comentarios:
Publicar un comentario