Instalando y configurando Mqttitude/Owntracks en Android
Durante estos últimos días ha cambiando el nombre de la aplicación que estábamos usando para reportar la información de localización de nuestro móvil al sistema domótico. Ha pasado de llamarse mqtttitude a owntracks. A continuación vamos a ver como se configura paso a paso, pantalla por pantalla.
Lo primero que debemos hacer es enviarnos el certificado de la CA que creamos en la entrada anterior por email al dispositivo y almacenarlo en una ubicación conocida (la tarjeta SD nos puede valer). En mi caso, el certificado, el certificado lo he guardado en /sdcard/Download/ca.pem, he tenido que renombrarlo de .crt a .pem antes del envío para evitar problemas al guardarlo en Android.
Abrimos la aplicación Owntracks y nos vamos a Preferences:
Entramos en Advanced y activamos la opción Advanced connection preferences para que en el siguiente paso nos permita especificar una conexión segura con nuestro servidor, y en Publish topic le especificamos el topic donde publicaremos la información de localización:
Hecho esto, vamos a Connection para especificar los parámetros de la conexión segura con nuestros servidor:
Lo primero que nos pide es el nombre del host (que no se ve en la imagen), luego el puerto para la conexión segura, el usuario y su contraseña, el ID del dispositivo (que puede ser un nombre cualquiera), y lo importante, la seguridad mediante TLS y usando el certificado que anteriormente nos hemos enviado al dispositivo.
Si todo va bien, cuando pulsamos en Connect nos debería aparecer la siguiente pantalla, indicando Connecting y después Connected:
Si nos vamos al los registros del servidor mosquitto, veremos unas lineas parecidas a las siguientes:
1393355256: New connection from 192.168.10.90 on port 8883. 1393355256: New client connected from 192.168.10.90 as moviljose (c0, k900). 1393355256: Sending CONNACK to moviljose (0) 1393355256: Received SUBSCRIBE from moviljose 1393355256: owntracks/+/+ (QoS 1) 1393355256: moviljose 1 owntracks/+/+ 1393355256: Sending SUBACK to moviljose
Para comprobar los datos en tiempo real nos podemos suscribir a todos los eventos del topic owntracks y después darle al botón de publicar en la aplicación Owntracks del móvil:
root@raspberrypi:~# mosquitto_sub -v --cafile ca.crt -h 127.0.0.1 -p 8883 --tls-version tlsv1 -v -t /owntracks/# -u jose -P mipasswd /owntracks {"_type": "location", "lat": "32.4003471", "lon": "-0.5565546", "tst": "1393355444", "acc": "1020.0" }
Con esto ya tenemos dos de las tres piezas del puzle: un servidor donde publicar la información de localización de forma segura y un dispositivo que nos la envíe. Solo nos queda suscribir a openHAB a esta información y que actúe en consecuencia, dependiendo de donde nos encontremos.
Un saludo, y ¡a trastearlo!
ACTUALIZACIÓN 17/04/2014: El hecho de activar el cifrado en la conexión no implica que la conexión sea segura, ya que si no activamos la autenticación de usuarios en el servidor MQTT se podría dar el caso de que podamos entrar sin usuario y contraseña. Hay por tanto una incoherencia entre la configuración que publiqué en la primera entrada sobre mosquitto y lo que digo en esta entrada sobre especificar usuario y contraseña en la conexión, pero como de sabios es rectificar, tenéis una entrada para activar la autenticación en mosquitto aquí, y así hacer que solo se conecten a nuestro servidor los dispositivos que usen usuario y contraseña (con cifrado o sin él, dependiendo de nuestras necesidades). Además en el comando mosquitto_sub anterior hay que especificar con -u el nombre del usuario y con -P la contraseña de dicho usuario.
Hola,
Todos los días miro a ver si sigues con la serie de post sobre openhab….
Por cierto mi pregunta (por eso escribo aquí) es si has conseguido integrar owntracks y openhab…. Aunque en principio parece fácil según la configuración indicada aquí: https://github.com/openhab/openhab/wiki/Mqttitude-Binding yo aún no he conseguido hacerlo funcionar… :/
Saludos
Hola Eduardo, lo primero: pedirte disculpas por la tardanza en contestar.
Aunque llevo un tiempo liado con otras cosas (fugas de agua en la instalación de riego…), he podido sacar tiempo para terminar de hacer las pruebas oportunas y ya he conseguido hacer funcionar Owntracks con openHAB, y que se me muestre la latitud y longitud de un dispositivo en la aplicación habdroid :), con un poco de suerte entre esta tarde y mañana publicaré la entrada con todas las configuraciones y pruebas que he ido haciendo.
Espero que te sean útiles,
¡Un saludo!
Hola otra vez Eduardo, repasando toda la configuración a la hora de integrarlo todo en openHAB me he dado cuenta de un fallo de seguridad que tenía lo que había hecho y probado sobre mosquitto, ya esta modificada la entrada sobre mosquitto, una nueva sobre activar la autenticación, modificada también ésta y la de integración en openHAB casi casi 🙂
Estupendo, ya estoy deseando leerla. Y voy a actualizar mi configuración, pues yo también tengo mosquitto sin autenticación… 😀
Gracias, y no te preocupes por la tardanza entiendo que todos tenemos cosas que hacer… 😉
Hola José María quería preguntarte si sabes si puedo conectar Arduino por MQTT usando TLS ya que no lo he conseguido y no encuentro nada de información por Internet.
Gracias de antemano!
Hola Carbans, gracias por tu comentario. En su día yo también estuve mirando ese tema, y es bastante simple la respuesta: implementar toda la gestión que hace TLS para el cifrado de las comunicaciones en un Arduino es poco menos que imposible por la falta de memoria que tiene, 32kB no dan para hacer un programa, un bootloader, una librería que lleve toda la gestión del cifrado y otra que lleve la gestión de la red. Si quieres usar TLS tendrías que cambiar el Arduino por una Raspberry o algo con más potencia y memoria.