Hoy vamos a instalar ESPresense en Home Assistant para poder crear automatizaciones en función de la habitación en la que nos encontremos.
Índice
¿Qué es ESPresence y cómo funciona?
ESPresense es un complemento que nos va a permitir detectar en qué habitación de nuestra casa nos encontramos, diferenciando entre los distintos usuarios. Al instalar ESPresense en Home Assistant podrás automatizar y personalizar rutinas, como por ejemplo encender luces o ventiladores al entrar en la habitacion, y apagarlos al abanadonarlas, o reproducir la playlist favorita de la persona que está en la habitación.
Para ello utiliza placas ESP32 repartidas por las habitaciones que quieras rastrear. Cada una de estas placas rastrea la señal que emiten distintos dispositivos por bluetooth (smartphones, relojes, pulseras, iBeacon…), identificando en qué habitación se encuentra cada uno de ellos.
Requisitos previos
Para poder instalar ESPresense en Home Assistant necesitas lo siguiente:
- Tantas placas ESP32 como habitaciones quieras rastrear. Puedes conseguirlas en Aliexpress por menos de 5€ cada una.
- Un cable USB de datos para instalar el firmware en las placas (no sirve un cable de carga). Si no tienes ninguno a mano, puedes comprarlo muy barato en Aliexpress.
- Algún dispositivo que emita una señal bluetooh (como tu teléfono).
- Haber instalado previamente MQTT en Home Assistant.
- Por último, si quieres proteger tu dispositivo y tienes impresora 3D puedes diseñar una carcasa o descargar alguna como la nuestra. Si no es tu caso, también puedes comprar una de estas cajitas baratas para alojar tu placa y tus sensores. Sea como sea, verifica antes que las medidas son válidas para tu modelo de placa!
Proceso de instalación
En primer lugar vamos a instalar el firmware de ESPresense en las placas ESP32, siguiendo estos pasos:
- Conecta la placa a tu ordenador con el cable USB de datos.
- Entra en la página web de ESPresense, y accede al apartado de ‘Firmware Installation’.
- Pulsa en el botón de ‘Connect’.
- En la ventana emergente desplegada, selecciona la placa ESP32 que acabas de conectar.
- Pulsa en ‘Install ESPresense’, ‘Erase device’, ‘Install’ y espera a que se complete el proceso.
- Si observas que no comienza la instalación, probablemente tengas que mantener pulsado un pequeño botón (‘boot’) que se encuentra en la placa, hasta que empiece la instalación.
- Cuando finalice la instalación te ofrecerá configurar tu red WiFi desde el asistente, pero este falla habitualmente así que pulsa en ‘Skip’.
- En su lugar conéctate con tu ordenador o teléfono al punto WiFi que ha creado la placa. Automáticamente se abrirá una página web donde podrás configurar el acceso a tu red WiFi. Después pulsa el botón de ‘Save’ y ‘Restart device’.
- Una vez hecho esto, si pulsas de nuevo en el botón ‘Connect’ del asistente de la web ESPresense y seleccionas la opción ‘Logs & Console’ ya podrás acceder al registro de la placa. Además, si pulsas en ‘Back’ y ‘Visit device’ podrás abrir el menú de configuración desde el navegador.
- En este menú de configuración, vamos a hacer los siguientes ajustes:
- Room. Indica el nombre de la habitación en el que vas a situar la placa.
- MQTT. Indica los datos de tu servidor MQTT tal y como figuran en Home Assistant. Si no los recuerdas, accede a Ajustes > Dispositivos y servicios > MQTT > Configurar > Volver a configurar MQTT. En el campo ‘Server’ indica la IP local de tu instancia de Home Assistant.
- Pulsa sobre ‘Save’ y ‘Restart device’.
- Accede a Ajustes > Dispositivos y servicios > MQTT > Dispositivos. Si todo ha ido bien, verás que la placa aparece entre los dispositivos.
- Si pulsas sobre el dispositivo podrás ajustar los parámetros de ‘Absorption’ y ‘Max distance’. El primero sirve para calibrar la detección de la señal bluetooth, y el segundo para establecer una distancia máxima (y así evitar que la señal se solape entre distintas habitaciones).
- Repite el proceso con todas las placas que quieras configurar.
Rastreo de dispositivos
Después de instalar ESPresense en Home Assistant, tenemos que preparar nuestros dispositivos para ser rastreados. Para ello necesitamos que emitan una señal Bluetooth consistente, es decir, que no varien en el tiempo. La forma de conseguirlo varía dependiendo del tipo de dispositivo.
Dispositivos Android & Wear OS
Si quieres rastrear un dispositivo Android (como tu teléfono), instala la aplicación de Home Assistant en el mismo. Después ve a Ajustes > Aplicación complementaria > Administrar sensores > Sensores de Bluetooth y activa la opción ‘Transmisor BLE’.
Entre los atributos, modifica el «Modo de publicidad» a «Equilibrado (3Hz)» y la «Potencia del transmisor» a «Bajo». El código que aparece en el campo ‘id’ te ayudará a identificarlo más tarde.
Dispositivos Apple
Para rastrear dispositivos de Apple (iPhone o Ipad) necesitas obtener el IRK (Identity Resolving Key) del dispositivo. Para ello sigue estos pasos
- Ve a Ajustes > Dispositivos y servicios > MQTT > Dispositivos y selecciona la placa que tengas más cerca de tu dispositivo.
- Haz clic en «Visitar». En la ventana emergente, añade ‘/ui’ en la ruta del navegador (por ejemplo, ‘http://192.168.0.30/ui’). De esta forma abriremos la interfaz de ESPresence.
- Accede al apartado ‘Devices’ y pulsa en el botón ‘Enroll’. Indica un nombre para tu dispositivo (por ejemplo «Iphone») y pulsa de nuevo en ‘Enroll’.
- En tu dispositivo Apple, accede a los ajustes del Bluetooth y vincúlalo al dispositivo ‘ESPresense’.
- Tan pronto como lo hagas este se desconectará, pero se habrá añadido entre los dispositivos rastreables con el nombre indicado.
Xiaomi Band
Las Xiaomi Band son las pulseras de actividad más populares por no tener competencia en cuanto a calidad precio. Además en este caso son el complemento perfecto para rastrear en qué habitación te encuentras. Sólo tienes que asegurarte de que has activado el «Modo visible» del bluetooth desde la aplicación y consultar la dirección MAC desde el apartado «Acerca del dispositivo» de la aplicación.
Además, en el listado de dispositivos empieza por la palabra ‘mifit’ por lo que es bastante fácil de identificar.
iTags
Los iTags son dispositivos muy pequeños y baratos que pueden colocarse, por ejemplo, en el collar de las mascotas o en un llavero. Esto hace que sean una solución perfecta para rastrear usuarios que no utilicen otro tipo de dispositivos. Más tarde podrás identificarlos fácilmente en el listado de dispositivos, ya que su ‘id’ comienza por ‘itag’.
Puedes conseguir nuestro ‘aguatec mágico’ personalizado con nuestros aguacoins.
Otros dispositivos
Además de los anteriores es posible rastrear otros dispositivos capaces de emitir una señal BLE (Bluetooth Low Energy). En la web de ESPresense puedes encontrar un listado de dispositivos compatibles. En todo caso te animo a que hagas la prueba con tus dispositivos. Mientras que el proceso será diferente para cada dispositivo, básicamente tienes que encontrar la forma de identificar el dispositivo entre el listado que detecta ESPresence.
En mi caso tengo un Garmin Forerunner 45 que también tengo integrado en Home Assistant. Para identificarlo entre el listado simplemente he tenido que encontrar su dirección MAC en el menú del reloj. Para ello tienes que mantener pulsado el botón central («UP») para abrir el menú, luego seleccionar «Acerca de» y bajar hasta que aparece la dirección MAC del Bluetooth.
Además, en el listado de dispositivos empieza por la palabra ‘garmin’ por lo que es bastante fácil. Eso sí, tal y como he leido por internet y he podido comprobar, sólo funciona mientras que no está emparejado con el teléfono.
Creación de sensores
Una vez preparados los dispositivos a rastrear tenemos que crear un sensor para cada uno de ellos. Para ello haz lo siguiente:
- Ve a Ajustes > Dispositivos y servicios > MQTT > Dispositivos y selecciona la placa que tengas más cerca de tu dispositivo.
- Haz clic en «Visitar». En la ventana emergente, añade ‘/ui’ en la ruta del navegador (por ejemplo, ‘http://192.168.0.30/ui’). De esta forma abriremos la interfaz de ESPresense.
- Selecciona la opción ‘Fingerprints’. En este apartado aparecerán todos los dispositivos que están transmitiendo la señal bluetooth a la placa.
- Identifica el dispositivo a rastrear, según he explicado en el apartado anterior, y copia su ‘ID’.
- Accede a tu fichero ‘sensors.yaml’ y pega el siguiente código, reemplazando el ID (donde indica ‘XXXXXX’) y el nombre de tu dispositivo (donde indica ‘DISPOSITIVO’). También puedes calibrar el valor del campo ‘away_timeout’, que representa el número de segundos que ESPresense espera para marcar un dispositivo como ausente.
- platform: mqtt_room device_id: "iBeacon:XXXXXX" name: 'DISPOSITIVO' state_topic: 'espresense/devices/iBeacon:XXXXXX' timeout: 10 away_timeout: 60
- Reinicia Home Assistant.
- Si ahora visitas Herramientas para desarrolladores > Estados y buscas el sensor que acabas de crear, verás que indica como valor la habitación en la que te encuentras (o para ser más exactos, que placa se encuentra más cerca).