miércoles, 26 de octubre de 2016

RaPi - Instalando y probando el binding MQTT

El objetivo era instalar, configurar y probar el binding MQTT que va a permitir que cada sensor o grupo de sensores envie su estado al openHab. Para probar voy a configurar un item simulando la información que enviaría un sensor de temperatura ubicado en la cocina. Básicamente los pasos son los mismos para configurar cualquier binding.

Paso 1: Instalar binding


El primer paso consiste en instalar el binding de MQTT en openHab. Lo que yo hice fue mover el archivo org.openhab.binding.mqtt-1.8.3.jar a mi carpeta de addons (/opt/openhab/addons) desde la carpeta alladdons donde tengo todos guardados.

Paso 2: Configurar openHab


El segundo paso es configurar en openhab.cfg la direccion del broker. En mi caso como mosquitto corre en la misma raspberry y por ahora no tiene nada de seguridad, fue fácil:

 mqtt:broker:url=tcp://localhost:1883

* para abrir el archivo de configuración desde la Rapi, hay que pararse en el directorio donde esta guardado y usar sudo nano
   cd /opt/openhab/configurations
   sudo nano openhab.cfg
Para guardar los cambios se usa Ctrl+O y para cerrar la ventan Ctrl+X


Paso 3: Agregar items


Una vez cambiada la configuración hay que agregar los items necesarios en el archivo de items el que recibe la información especificando:

direction: < para recibir mensajes
broker: alias del broker especificado en la configuracion
topic: topico al que se suscribe
type: tipo de mensaje que se recibe, puede ser
state : actualización de estado
command: comando
transformation: regla que define como transformar el mensaje en algo que openHab reconozca.
default
transformation name > cualquiera de los definidos en org.openhab.core.transform.bundle
regex_filter: texto que representa una expresión regular para filtrar mensajes

Item myItem {mqtt="<direction>[<broker>:<topic>:<type>:<transformer>:<regex_filter>], <direction>[<broker>:<topic>:<type>:<transformation>], ..."}

En mi caso solo configuré un item de prueba:

Number MQTT_Tempe "Temperatura Cocina [%.1f °C]" <temperature> {mqtt="<[broker:tempe/cocina:state:default]"}

Para más información hay ejemplos de salida y entrada en la wiki del binding

* para abrir el archivo de items, se usa también sudo nano pero desde la carpeta /opt/openhab/configurations/items


Paso 4: Ajustar sitemap


El cuarto paso consiste en agregar ese item en el sitemap, yo lo agregué en uno casi vacío que se llama casa (tengo ese y el demo), donde configuré también el binding de weather.

Simplemente agregué en /opt/openhab/configurations/sitemaps/casa.sitemap la siguiente línea:

    Text item=MQTT_Tempe

Recuerden chequear que las mayusculas y minúsculas esten iguales... les puede pasar que pongan MQTT_tempe en un lado y MQTT_tempe en otro y no funcione...


Paso 5: Probar!


Con esto configurado, y con openhab y mosquitto corriendo en la Raspberry, solo quedaba probar a publicar un mensaje al tópico tempe/cocina del broker (desde la aplicación MQTTool) y ver si lo recibía...


Funcionó! Desde la ventana de openHab en la RaPi se puede ver la siguiente información:

2016-10-26 09:47:30:182 [INFO ] [runtime.busevents   ] - MQTT_Tempe state updated to 32  


No hay comentarios.:

Publicar un comentario