Introducción a OpenHAB Home Automation en Raspberry Pi

¡Compartelo con tus amigos!

Introducción a OpenHAB Home Automation

OpenHAB es una plataforma de automatización del hogar de código abierto y madura que se ejecuta en una variedad de hardware y es independiente del protocolo, lo que significa que puede conectarse a casi cualquier hardware de automatización del hogar en el mercado actual.

OpenHAB es una plataforma de automatización del hogar de código abierto y madura que se ejecuta en una variedad de hardware y es independiente del protocolo, lo que significa que puede conectarse a casi cualquier hardware de automatización del hogar en el mercado actual. Si se ha sentido frustrado con la cantidad de aplicaciones específicas del fabricante que necesita ejecutar solo para controlar sus luces, entonces tengo una gran noticia para usted: OpenHAB es la solución que estaba buscando: es la casa inteligente más flexible hub que jamás encontrarás.

Durante un tiempo, la gente pensó en la idea como nada más que un truco, pero los lanzamientos recientes de productos han demostrado que la domótica inteligente está comenzando a cumplir sus promesas.

Desafortunadamente, es todo lo que puede llegar a ser amigable para el consumidor, pero como siempre, ahí es donde entra MakeUseOf: le mostraremos cómo comenzar a usar el sistema doméstico inteligente definitivo que el dinero no necesita comprar (porque OpenHAB es 100% gratis, solo proporcione el hardware).

La primera parte de esta guía se centra específicamente en cómo configurar OpenHAB con una Raspberry Pi 2 , pero más adelante, los tutoriales y los consejos se pueden aplicar a cualquier lugar donde esté instalado OpenHAB.

Esta guía cubre tres temas introductorios y uno un poco más avanzado.

  • Poner en funcionamiento OpenHAB en el Pi e instalar la configuración de la casa de demostración para comprobar que los sistemas centrales funcionan.
  • Cómo agregar enlaces y perfiles para dispositivos. Trabajaré con Philips Hue.
  • Habilitar el acceso remoto y conectarse a IFTTT.
  • Agregar un sensor de presencia de bricolaje mediante Bluetooth y una introducción a la interfaz REST.
  • Configuración de la aplicación móvil OpenHAB.

Lo que necesitarás

Como mínimo, necesitará una Raspberry Pi (v2, preferiblemente) y un adaptador Ethernet o inalámbrico (preferiblemente Ethernet, esta guía no incluirá instrucciones sobre cómo hacer que su adaptador Wi-Fi funcione ). Todo lo demás es opcional. Tenga en cuenta que OpenHAB también se ejecutará en la Raspberry Pi original, pero hay un problema conocido con un procesamiento más lento y dispositivos Z-Wave. Si no necesita Z-Wave, puede ignorar esta advertencia con seguridad y seguir adelante con una Raspberry Pi modelo B o B +, porque todo lo demás parece funcionar bien. Siempre puede actualizar a la última Pi si agrega Z-Wave y cuando lo haga.

introduccion-a-openhab-home-automation
¡Esta pequeña cosa puede ser el mejor centro de hogar inteligente que haya tenido!

En el momento de escribir este artículo, la última versión estable de OpenHAB es la versión 1.71; Se espera la versión 1.8 pronto, y todo en esta guía debería seguir siendo relevante, aunque algunos enlaces pueden tener más funciones. La versión 2 también está disponible actualmente como una vista previa alfa muy temprana, pero adopta una arquitectura dramáticamente diferente a la serie OpenHAB 1: esta guía no es compatible con la versión 2.

Le sugiero encarecidamente que siga esta guía de manera lenta y metódica ; no intente saltar al extremo más profundo y agregar todo a la vez. Sí, es una guía larga: OpenHAB es un sistema difícil que a menudo requiere ajustes para sus necesidades, y la mejor manera de garantizar el éxito es trabajar lentamente y completar una pieza a la vez.

La buena noticia es que una vez que está funcionando, es una experiencia sólida como una roca e increíblemente gratificante.

Instalación de OpenHAB

No hay una imagen preconfigurada para OpenHAB, por lo que la instalación se realiza de la manera antigua a través de una línea de comando. Le sugiero que trabaje sin cabeza en el RPi: la sobrecarga de administrar una GUI que rara vez usará no vale la pena.

Comience con la última imagen (completa) de Raspbian SD  (no la versión “lite”, estas no incluyen la máquina virtual Java). Conecte su cable de red, luego inicie y navegue a través de SSH. Correr:

sudo raspi-config

Expanda el sistema de archivos; y en el menú avanzado, cambie la división de memoria a 16. Cuando haya terminado, reinicie y, como buena práctica, ejecute una actualización completa

sudo apt-get update
sudo apt-get upgrade

La forma más fácil de instalar el tiempo de ejecución de OpenHAB es a través de apt-get , pero primero debemos agregar una clave segura y el nuevo repositorio:

wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' |sudo apt-key add -
echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.list
sudo apt-get update
sudo apt-get install openhab-runtime
sudo update-rc.d openhab defaults

Curiosamente, todo fue instalado como propiedad de “root”. Necesitamos arreglar eso con los siguientes comandos.

sudo chown -hR openhab:openhab /etc/openhab
sudo chown -hR openhab:openhab /usr/share/openhab

A continuación, instalaremos Samba y compartiremos la configuración y las carpetas de usuario; esto facilitará la instalación de complementos y el cambio del mapa del sitio de forma remota.

sudo apt-get install samba samba-common-bin
sudo nano /etc/samba/smb.conf

Cambie el nombre del grupo de trabajo si es necesario, pero de lo contrario habilite la compatibilidad con WINS:

wins support = yes

(deberá descomentar la línea y cambiar no por sí)

luego agregue lo siguiente a la sección de definiciones de recursos compartidos (desplácese hasta el final del archivo largo):

[OpenHAB Home]
comment= OpenHAB Home
path=/usr/share/openhab
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=no
[OpenHAB Config]
comment= OpenHAB Site Config
path=/etc/openhab
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=no

También comenté la sección de Impresoras. He compartido dos veces, ya que los archivos de configuración se almacenan en realidad por separado de los complementos.

Guardar y Salir. Finalmente necesitamos establecer una contraseña de Samba para el usuario de openhab:

sudo smbpasswd -a openhab

Sugeriría “openhab” como contraseña solo para facilitar su uso, pero en realidad no importa.

Gracias al lector David L, parece que el método para reiniciar Samba ha cambiado en el último Raspian. Aquí están las instrucciones actualizadas:

sudo update-rc.d smbd enable
sudo update-rc.d nmbd enable
sudo service smbd restart

Después de reiniciar Samba (las instalaciones anteriores usan sudo service samba restart ), pruebe que puede acceder a la unidad compartida. Es posible que no se detecte automáticamente en una Mac; pero puede usar el Finder -> Ir -> Conectarse al servidor y la dirección

smb://openhab@raspberrypi.local

Autentíquese con el nombre de usuario openhab y su contraseña elegida, luego abra ambos recursos compartidos para echar un vistazo. Incluso debería poder abrir http: //raspberrypi.local: 8080 / en su navegador web, pero se encontrará con un error porque aún no hemos creado un mapa del sitio. Eso es normal.

introduccion-a-openhab-home-automation

Ahora sería un buen momento para aprender el comando para seguir el registro de OpenHAB para que pueda estar atento a los errores.

tail -f /var/log/openhab/openhab.log

Manténgalo funcionando y abierto en una ventana SSH separada en todo momento mientras continúa con la guía.

Instalar la casa de demostración

Antes de profundizar en las complejidades de los archivos de configuración, agregar dispositivos y enlaces, etc. verifiquemos que todo funciona agregando el contenido de demostración. Encontrará “Configuración de demostración” en la sección de descargas de OpenHAB.org.

Una vez que lo haya descomprimido, hay dos carpetas: complementos y configuraciones .

introduccion-a-openhab-home-automation

Utilizando los recursos compartidos de red, copie las configuraciones en el recurso compartido de OpenHAB Config y sobrescriba la carpeta existente. Copie los complementos  al otro recurso compartido de OpenHAB Home , nuevamente, sobrescribiendo las carpetas existentes. Si no se le pide que sobrescriba algo, lo está haciendo mal. Si tiene el ojo puesto en el archivo de registro de depuración, debería ver un aleteo de actividad cuando se da cuenta de los nuevos enlaces y se pone en acción. Abra raspberrypi.local: 8080 / openhab.app? Sitemap = demo para ver la demostración.

Es un poco básico en este momento, pero la naturaleza abierta de OpenHAB significa que podemos instalar un tema nuevo y encantador más tarde o una interfaz completamente alternativa. Por ahora, solo necesitábamos saber que todo funciona. Tenga en cuenta que lo que estamos viendo se llama mapa del sitio  (nada que ver con un mapa del sitio web). Un mapa del sitio describe la interfaz de usuario, no los dispositivos reales en su red o sensores, solo la interfaz para verlos. Cada parte es completamente personalizable. Para ver cómo se creó este, abra el archivo sitemaps / demo.sitemap en el recurso compartido OpenHAB Config.

introduccion-a-openhab-home-automation

Es bastante desalentador, pero en su mayor parte, copiará y pegará fragmentos de código de ejemplos en otros lugares para crear su propia interfaz personalizada. Aquí está la descripción general técnica de todos los elementos posibles del mapa del sitio, pero por ahora será suficiente con comenzar a pensar en qué tipo de interfaz desea crear y qué información desea mostrar.

Mientras esté allí, abra items / demo.items también. Nuevamente, parece aterrador, pero aquí es donde crea elementos para controlar y definir sensores para rastrear.

Entonces, ¿cómo funciona OpenHAB?

Ahora que ha examinado rápidamente el mapa del sitio y la carpeta de elementos, analicemos exactamente qué son estos archivos y los otros componentes principales de OpenHAB que se combinan para crear su hogar inteligente completo. Encontrará subdirectorios para cada uno de estos en la carpeta compartida de OpenHAB Config.

Elementos  es un inventario de cada dispositivo de control, sensor o elemento de información que desea en su sistema. Tampoco es necesario que sea un dispositivo físico; puede definir una fuente web como el clima o los precios de las acciones. Cada elemento puede tener un nombre, asignar varios grupos (o ninguno) y conectarse a un enlace específico. (Consejo para principiantes: el uso de mayúsculas es importante cuando se trata de encuadernaciones. Pasé mucho tiempo tratando de averiguar por qué mis bombillas “Hue” no funcionaban; era porque deberían haber sido “hue” en su lugar).

Sitemaps  se ocupa únicamente de la interfaz que verá cuando abra la aplicación web o móvil OpenHAB. Puede controlar con precisión cómo desea que se distribuyan los botones y se presente la información. Puede definir grupos de nivel superior para cada habitación de su casa; al hacer clic en cada uno, verá una lista de todos los dispositivos en esa habitación. O quizás prefiera mostrar grupos para cada tipo de dispositivo: un botón para luces, otro para enchufes eléctricos. Es posible que haya algunos dispositivos que use con tanta frecuencia que solo desee un interruptor para ellos directamente en la pantalla de inicio.

Las reglas  es donde entra en juego el aspecto de la domótica, donde se pueden definir horarios o condiciones para que suceda una acción. Eventos simples como encender las luces del dormitorio a las 10 pm a un color rojo cálido; o una lógica más compleja como encender un calentador de espacio si la temperatura es menor que 0 y alguien está presente en esa habitación. También encontrará una carpeta de scripts , que ofrece una funcionalidad similar a las reglas pero a un nivel más complejo de lógica programable.

La persistencia  es un tema avanzado que no cubriremos en esta guía, pero la persistencia define los datos de los que desea mantener un registro. De forma predeterminada, OpenHAB solo mostrará el estado actual de algo; si desea realizar un seguimiento de ese valor a lo largo del tiempo, debe configurar una definición de persistencia para esa fuente de datos. En esto, especificará cosas como la frecuencia con la que se debe medir un punto de datos o cuándo descartar puntos de datos antiguos; también deberá indicarle qué tipo de motor de persistencia usar, como MySQL o registro simple en un archivo .

Transform contiene asignaciones de valores de datos a etiquetas. Por ejemplo, el archivo humidex.scale define un rango de valores de índice de humedad y cómo deben mostrarse en inglés: 29-38 es “algunas molestias”.

El mapa del sitio y los  archivos de elementos son esenciales para que se ejecute OpenHAB; el resto son opcionales. Puede tener varios elementos y mapas del sitio, por lo que puede conservar el contenido de demostración y consultarlo en cualquier momento, o probar un nuevo diseño para la interfaz de control de su hogar. No se preocupe si todo esto parece un poco abrumador en este momento, lo dividiremos en partes manejables y le prometo que al final de esta guía tendrá confianza para crear su propia configuración de OpenHAB.

A continuación, lo guiaremos para agregar algunos kits domésticos inteligentes comunes, comenzando desde cero en un nuevo mapa del sitio. Cada uno presentará algunos conceptos básicos, como cómo instalar enlaces y definiciones de elementos, por lo que le recomiendo encarecidamente que lea estas instrucciones incluso si no posee esos dispositivos en particular .

Empiece por crear un archivo home.items nuevo (en blanco)  y un archivo home.sitemap nuevo en los directorios correspondientes. Abre home.sitemap y pega el siguiente código. Esto solo actúa como un esqueleto básico al que agregaremos bits más adelante.

sitemap home label="My Home"
{

}

Debería ver un aviso para informar que OpenHAB ha identificado un nuevo mapa del sitio y un archivo de elementos.

Habilitar el modo de depuración

Si bien todavía está tratando de que OpenHAB funcione correctamente, puede ser útil habilitar un registro de depuración más detallado que enumere todo, y no solo lo importante. Para habilitar este modo, abra la carpeta compartida de OpenHAB Config y edite logback.xml . En la línea 40, cambie la siguiente línea para que lea DEBUG en lugar de INFO. Deberá reiniciar después de cambiar esto.

<logger name = "org.openhab" level = "INFO" />

Este es un cambio global, por lo que obtendrá mucha más información una vez que termine el archivo de registro.

Adición de Philips Hue

Empezaré con Philips Hue. Como la mayoría de las cosas con las que querrá interactuar en OpenHAB, las bombillas Hue requieren que instale un  enlace ; piense en los enlaces como un controlador de dispositivo. En el momento de redactar este artículo, hay alrededor de 160 enlaces disponibles para OpenHAB 1, razón por la cual OpenHAB es un sistema tan poderoso: puede interactuar con cualquier cosa, combinando todos esos sistemas de control dispares en una sola interfaz unificada. Aquí hay una demostración y una descripción general rápida de los pasos involucrados.https://www.youtube.com/embed/II2A_sPYQvg

Los enlaces primero deben descargarse, y la forma más fácil de hacer esto en la Pi es usar apt-get y luego forzar la propiedad al usuario de openhab.

sudo apt-get install openhab-addon-binding-hue
sudo chown -hR openhab:openhab /usr/share/openhab

A continuación, debe decirle a OpenHAB que cargue en ese enlace y configure las variables necesarias. Busque la carpeta de configuraciones y haga una copia de openhab-default.cfg , asígnele el nombre openhab.cfg . Ábrelo, busca HUE  y reemplaza toda la sección con el siguiente código. Lo único que debe cambiar es el valor de IP de su puente; si aún no lo sabe, pruebe la herramienta de descubrimiento en línea. El valor secreto realmente no importa, es solo una especie de nombre de usuario que OpenHAB usará para identificarse en el puente.

Consejo rápido : para habilitar una línea, simplemente elimine el # desde el principio. Por defecto, la línea que especifica la dirección IP del puente está desactivada (o técnicamente, “comentada”). Además, si está probando una configuración alternativa, puede ser útil simplemente copiar la línea existente y poner un # al principio para marcarla como un comentario, para que pueda revertir fácilmente si algo sale mal. 

################################ HUE Binding #########################################
# IP of the Hue bridge
hue:ip=192.168.1.216
hue:secret=makeuseofdotcom
hue:refresh=10000
introduccion-a-openhab-home-automation

Guardar y Salir. Al igual que cualquier aplicación de Hue de terceros, deberá aprobar OpenHAB en Hue Bridge presionando el botón en la parte frontal; solo necesita hacer esto una vez. Verá un mensaje sobre la espera de ser emparejado si está siguiendo el archivo de registro, pero si olvidó o se perdió la cuenta regresiva, simplemente restablezca el Pi; obtendrá un temporizador de 100 segundos desde el momento en que el Hue vinculante es iniciado. Asegúrese de haberse emparejado correctamente antes de continuar.

A continuación, abra el   archivo home.items , al que agregaremos algunas bombillas Hue. Aquí hay una definición de elemento de ejemplo:

Color Bedroom_Hue "Bedroom Hue" <hue> (Bedroom) {hue="1"}
  • La palabra Color especifica qué tipo de control tenemos sobre este elemento. Las bombillas RGB Hue son de “Color”, ya que tenemos un control de color completo de ellas. Otras luces pueden ser simplemente un interruptor.
  • El siguiente es el nombre en clave del elemento: Elegí Bedroom_Hue , pero literalmente cualquier cosa está bien, solo algo descriptivo que te resulte natural, porque tendrás que recordarlo más adelante al crear el mapa del sitio. El nombre en clave no debe tener espacios.
  • Entre las comillas está la etiqueta. El nuestro es simple en este caso, pero para algunos elementos como la temperatura o algo que informa un valor, agregará un código especial que le diga cómo mostrar ese valor o usar qué transformación. La etiqueta es para la interfaz y puede tener espacios.
  • Entre los corchetes angulares está el nombre del icono. Encontrará todos los iconos disponibles en el recurso compartido de OpenHAB, en el directorio webapps / images . En realidad, hay una amplia gama de iconos de tonos que representan diferentes brillos o se encienden / apagan. Simplemente especifique el nombre del icono base: OpenHAB sabrá buscar automáticamente los diferentes iconos de encendido / apagado si se trata de un elemento cambiado. Esto es opcional.
  • En los corchetes, le indicamos de qué grupos formar parte, en este caso, solo el grupo Dormitorio .
  • Finalmente, y de manera crucial, conectamos el elemento al enlace apropiado con las variables necesarias. En este caso, el enlace de tono y el número de la bombilla es 1. Puede encontrar el número abriendo la aplicación oficial de Hue y mirando la pestaña de luces. Cada bombilla tiene un número único.

Agregué un total de cuatro bulbos, así como una declaración simple de los grupos que ampliaremos más adelante. Aquí está mi home.items completo en este punto:

Group Bedroom
Group Office
Group Kai
Group Living_Room
Group Cinema
Group Secret
Group Lights
/* Lights */
Color Bedroom_Hue "Bedroom Hue" <hue> (Bedroom,Lights) {hue="1"}
Color Office_Hue "Office Hue" <hue> (Office, Lights) {hue="2"}
Color Secret_Hue "Secret Hue" <hue> (Secret, Lights) {hue="3"}
Color Kai_Hue "Kai's Hue" <hue> (Kai, Lights) {hue="4"}

El texto / * Lights * / es solo un comentario, no tiene otra función que ayudarnos a escanear el archivo más tarde cuando se agranda. Ahora tenemos los dispositivos agregados, pero abrir http: //raspberrypi.local: 8080 /? Sitemap = home da como resultado una interfaz en blanco, por supuesto, porque todavía no hemos creado elementos de interfaz en el mapa del sitio. Comencemos realmente simple por ahora. Abre home.sitemap .

El código utilizado para describir la interfaz es diferente a los elementos, pero por ahora crearemos un nuevo “marco” y agregaremos un par de controles de grupo junto con algunos iconos.

sitemap home label="My Home"
{
Frame {
Group item=Lights label="All lighting" icon="hue"
Group item=Bedroom label="Bedroom" icon="bedroom"
Group item=Office label="Office" icon="desk"
}
}

Los grupos son una herramienta útil para realizar pruebas rápidas, pero en realidad querrá tener más control sobre cómo se muestran los elementos. Por ahora, esto será suficiente. Guarde y vuelva a cargar su mapa del sitio de inicio en el navegador. Debería ver esto (o cualquier grupo que haya agregado).

Haga clic en Toda la iluminación para ver todas las luces de tono, ya que las hemos definido como pertenecientes a ese grupo de luces general.

introduccion-a-openhab-home-automation

Observe que el elemento Office Hue se muestra con un ícono diferente; eso se debe a que la luz de mi oficina ya está encendida, y OpenHAB lo sabe cuando habló con el puente Hue y fue lo suficientemente inteligente como para ajustar el ícono a la versión “encendida” del archivo. Desafortunadamente, no refleja el color, pero si tiene una aplicación móvil instalada, reflejará el color actual.

Si ve más elementos de los que pensaba que había definido o recibe errores sobre varias definiciones, sepa que, aunque solo puede cargar un mapa del sitio a la vez en la página,  todos los mapas del sitio extraerán elementos de todos los archivos .item , así que si ha dejado el archivo de elementos de demostración allí, es posible que también aparezcan algunos elementos adicionales en sus grupos. Sugeriría en este punto hacer una copia de seguridad del contenido de los elementos de demostración y sacarlo de la carpeta para evitar errores de duplicación.

Acceso remoto e IFTTT con My.OpenHAB

En este momento, debe estar en la misma red local para acceder a su sistema OpenHAB, pero ¿qué sucede si desea controlar sus dispositivos y verificar los sensores cuando está fuera del alcance de su Wi-Fi? Para eso, necesitaremos configurar el acceso remoto, y lo haremos de la manera más fácil, con el servicio web My.OpenHAB [URL rota eliminada], que evita la necesidad de perder el tiempo con el reenvío de puertos y las configuraciones del enrutador. Como beneficio adicional, el servicio My.OpenHAB también tiene un canal IFTTT, que le brinda infinitas posibilidades de control remoto y automatización.

Primero: instale la encuadernación. Consejo rápido: si no conoce el nombre exacto de un paquete de instalación en particular, intente buscarlo con apt-cache.

introduccion-a-openhab-home-automation
sudo apt-get install openhab-addon-io-myopenhab
sudo chown -hR openhab:openhab /usr/share/openhab

Antes de poder registrarse en el sitio My.OpenHAB, deberá crear una clave secreta y encontrar su UUID, que identifica de manera única su instalación. Compruebe en el recurso compartido de OpenHAB Home -> webapps -> static y debería encontrar un archivo UUID que contenga su identificador único. Es en este punto que descubrí que mi Pi estaba usando una versión anterior de Java que no crea correctamente la clave secreta. Tipo

java -version

verificar. Si no dice 1.7 o superior, tiene la versión incorrecta. Curiosamente, la última versión de Raspbian viene con Oracle Java 8 instalado, pero no está configurado como predeterminado.

sudo update-alternativas --config java
introduccion-a-openhab-home-automation

Elija la opción que indica jdk-8-oracle , luego reinicie OpenHAB. Bono: ¡Oracle Java 8 es más rápido que el OpenJDK predeterminado!

Ahora también debería encontrar un archivo secreto en la carpeta webapps / static . Abra tanto el secreto como el uuid y esté listo para copiar y pegar.

introduccion-a-openhab-home-automation

Ahora vaya a crear una cuenta My.OpenHAB, use esos detalles, luego regrese; también deberá confirmar su correo electrónico antes de que nada funcione. Hay un par de pasos más para este. Primero, debemos configurar el motor de persistencia predeterminado en myopenhab (la persistencia es algo para una guía posterior, pero independientemente, debemos configurar algo básico para “exportar” nuestros datos al servicio en línea y hacerlos visibles para IFTTT) . Para hacer esto, abra openhab.cfg y busque la variable que dice  persistence: default = y cámbiela a  persistence: default = myopenhab . Salvar.

Por último, cree un nuevo archivo en la carpeta de configuraciones / persistencia llamado myopenhab.persist y pegue la siguiente regla.

Strategies {
default = everyChange
}
Items {
* : strategy = everyChange
}

No es necesario que comprenda esto por ahora, pero sepa que dice “guardar el estado de cada elemento cuando cambie”.

introduccion-a-openhab-home-automation

Para conectarse con IFTTT, diríjase al canal OpenHAB ; deberá autenticarse y otorgarle acceso a su cuenta MyOpenHAB. También tenga en cuenta que hasta que sus elementos hayan cambiado al menos una vez, no estarán visibles en la lista de elementos en IFTTT, por lo que si no está visible, active y desactive algo, luego vuelva a cargar. ¡Felicitaciones, ahora tiene acceso IFTTT completo a todo en su sistema OpenHAB!

introduccion-a-openhab-home-automation

Sensor de presencia Bluetooth usando REST

Hace poco le mostré cómo hacer una cerradura automática para la puerta de la oficina usando el escaneo de Bluetooth para detectar la presencia del usuario. Quería traer algo así a OpenHAB.

En cualquier plataforma que no sea Raspberry Pi, esto sería simple gracias a un enlace Bluetooth listo para usar; desafortunadamente, no funciona en Pi debido a un archivo Java crucial que debería recompilarse para la arquitectura ARM, agregarse al enlace y luego reconstruir el enlace. Basta decir que lo intenté, fue terriblemente complicado y no funcionó. Sin embargo, existe una solución mucho más sencilla que también sirve como una buena introducción a la gran extensibilidad de OpenHAB: simplemente adaptaremos nuestro script Python anterior para que informe directamente a la interfaz RESTful de OpenHAB.

Aparte: una interfaz RESTful significa que puede interactuar con un sistema utilizando su servidor web integrado, simplemente llamando a las URL y pasando o recuperando datos. Puede visitar esta URL para ver un ejemplo simple de esto en su propio servidor: http: //raspberrypi.local: 8080 / rest / items – que genera una lista codificada de todos sus elementos definidos. Esto es increíblemente poderoso, ya que expone todo el potencial de OpenHAB y le permite escribir interfaces personalizadas; o al revés usado, para informar el estado de los sensores sin tener un enlace específico. Usaremos esta capacidad para informar la presencia de un dispositivo Bluetooth específico sin recurrir al enlace de Bluetooth.

Comience agregando un nuevo elemento Switch a su archivo home.items . He llamado al mío “JamesInOffice”, y lo he convertido en un interruptor en lugar de un simple contacto de encendido / apagado para poder controlar manualmente mi presencia en caso de que mi teléfono muera.

Switch JamesInOffice "James in Office" (Office)

Observe que no he definido un icono ni asociado un enlace específico. Es solo un cambio genérico.

A continuación, inserte una llave USB Bluetooth compatible e instale algunas herramientas básicas para interactuar con ella.

sudo apt-get install bluez python-bluez python-pip
sudo pip install requests
hcitool dev

El último comando debería mostrar su adaptador Bluetooth. Si no aparece nada, pruebe con otro adaptador, el suyo no es compatible con Linux. El siguiente paso es encontrar la dirección de hardware Bluetooth de su dispositivo.

wget https://pybluez.googlecode.com/svn/trunk/examples/simple/inquiry.py
python inquiry.py

Asegúrese de que su teléfono esté abierto en la página de configuración de Bluetooth (que lo pone en modo de emparejamiento / público) y, obviamente, que Bluetooth esté activado. Debería encontrar una dirección de hardware hexadecimal en la lista.

introduccion-a-openhab-home-automation

Desde el directorio de inicio de su usuario Pi, cree un nuevo script de Python y pegue este código .

Hay algunas cosas que deberá editar, comenzando con la dirección de su dispositivo en particular:

result = bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5)

Además de esta línea, que está en dos lugares (sí, esto probablemente podría estructurarse mejor). Cambie JamesInOffice por el nombre en clave del conmutador que definió.

r = requests.put("http://localhost:8080/rest/items/JamesInOffice/state",data=payload)

El último paso es decirle a este script que se inicie en el momento del arranque.

sudo nano /etc/rc.local

Desplácese hacia abajo y justo antes de la salida 0, agregue las siguientes líneas:

python /home/pi/detect.py &

El signo & significa “hacer esto en segundo plano”. Continúe y ejecute el script si aún no lo ha hecho, y abra su interfaz OpenHAB. Si lo ha agregado a un grupo, haga clic para ir a ese grupo. La actualización demora unos 10 segundos, pero verá que el ícono de bombilla predeterminado se enciende o apaga dependiendo de si su teléfono se detecta o no. Verifique el archivo de registro si no sucede nada, podría ser que haya utilizado el nombre del elemento incorrecto.

Aplicación móvil OpenHAB

Aunque, por supuesto, puede usar la interfaz web desde un dispositivo móvil, OpenHAB tiene aplicaciones nativas para iOS y Android , y se ven mucho mejor que la interfaz del navegador predeterminada. En la pantalla de configuración, ingrese la URL local como la IP interna que ha estado usando hasta ahora, incluido el número de puerto. Para la URL remota, ingrese https://my.openhab.org , y su nombre de usuario (correo electrónico) y contraseña que ingresó cuando se registró. Si aún no se ha registrado en MyOpenHAB, deje la autenticación y la URL remota en blanco, pero solo podrá acceder a su sistema desde su Wi-Fi local.

introduccion-a-openhab-home-automation

Avanzar y obtener ayuda

La cantidad de personalización y características interesantes que puede agregar a su controlador OpenHAB es realmente épica. Además de la amplia lista de dispositivos compatibles con enlaces, puede usar la interfaz RESTful, las extensiones HTTP e IFTTT para leer o controlar literalmente cualquier tipo de dispositivo IoT, y más (pruebe algunas de nuestras ideas creativas de iluminación ). Sí, es una molestia instalarlo, pero ni un solo sistema comercial puede acercarse al poder de un sistema OpenHAB personalizado.

Dicho esto, el viaje no fue nada fácil para mí, y es precisamente por eso que escribí esta guía, para facilitarle el proceso. Y si encuentra que el sistema OpenHAB es abrumador, hay otras opciones cuando se trata de la automatización del hogar Raspberry, como usar Raspberry Pi para automatizar la puerta de su garaje, por ejemplo.

Estén atentos a MakeUseOf para obtener una guía avanzada que cubre Z-Wave y otros trucos interesantes que puede configurar.

Si necesita ayuda con una parte específica de esta guía, pregunte en los comentarios. Si desea ayuda con otro enlace o algunos temas avanzados que aún no hemos cubierto, los foros oficiales de OpenHAB son un lugar acogedor.

¡Compartelo con tus amigos!

Comentarios 0

Deja una respuesta

Su dirección de correo electrónico no se publicará. Los campos obligatorios están marcados *