Siguiendo con las diversas utilidades de MQTT en Home Assistant, hoy os presentamos la guía Life360. Esta guía te permitirá configurar Home Assistant para conocer la ubicación de dispositivos móviles y el estado de su batería utilizando la plataforma Life360.
Life360 es una aplicación de seguimiento de ubicación que permite a los usuarios compartir su ubicación en tiempo real con familiares y amigos. Integrar Life360 con Home Assistant te brinda la capacidad de utilizar esta información de ubicación en tus automatizaciones y escenarios domésticos inteligentes.
Para conocer la ubicación de los móviles nos valdremos de la app Life360 que deberás instalar en los móviles que quieras localizar, siempre con el consentimiento de su propietari@
Una vez instalada y creado el usuario en la app, hay que integralo en HA.
Lo primero que hemos de hacer es crear dentro de /.homeassistant la carpeta /shell_commands
Dentro de esta carpeta hay que guardar el archivo 360_mqtt_broker.sh, que puedes descargar de aquí.
Lo editaremos con nuestros datos actualizando lo que esté en rojo:
1 2 3 4 5 6 7 8 |
username360="email@email.com" password360="password" mosquitto_pub="/usr/bin/mosquitto_pub" mqtt_host="127.0.0.1" mqtt_port="1883" mqtt_user="usermqtt" mqtt_pass="passmqtt" timeout=150 |
Ahora le damos permisos de ejecución al script:
1 |
sudo chmod +x 360_mqtt_broker.sh |
Este archivo lo que hace es conectarse a life360 cada 300 segundos y descargarse la información al mqtt local
Para que el script se inicie cada vez que se encienda tu Raspberry Pi, se configura un autoarranque del mismo:
Creamos el siguiente archivo:
1 |
sudo nano /lib/systemd/system/life360.service |
Y pegamos dentro lo siguiente:
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=Life360 service After=multi-user.target [Service] Type=simple ExecStart=/bin/bash /home/homeassistant/.homeassistant/shell_commands/360_mqtt_broker.sh Restart=on-abort [Install] WantedBy=multi-user.target |
OJO CON ExecStart, ahi va la ruta de vuestro script.
Y guardamos el archivo.
Ahora damos permisos al script
1 2 3 4 5 6 7 |
sudo systemctl enable life360.service sudo chmod 644 /lib/systemd/system/life360.service sudo chmod +x /lib/systemd/system/life360.service sudo systemctl daemon-reload sudo systemctl start life360.service sudo systemctl status life360.service |
A continuación debemos instalar lo siguiente:
1 |
sudo apt-get install jq |
Ahora debemos crear dentro de /.homeassistant la carpeta /device_tracker y dentro de ésta, el archivo device_tracker.yaml.
En este archivo pegamos lo siguiente:
1 2 3 4 5 6 7 8 |
- platform: nmap_tracker hosts: 192.168.1.1-255 #tu red y el rango de IP's que quieres escanear home_interval: 15 interval_seconds: 30 track_new_devices: yes - platform: owntracks max_gps_accuracy: 100 |
Esto además nos permitirá escanear nuestra red un busca de nuevos dispositivos
En configuration.yaml, hemos de añadir lo siguiente:
1 |
device_tracker: !include_dir_merge_list device_tracker |
Para que funcione correctamente hemos de instalar NMAP con los siguientes comandos:
1 2 3 |
sudo apt-get update sudo apt-get install nmap |
Reiniciamos HA
En la carpeta /.homeassistant encontraremos el archivo known_devices.yaml en el que nos deben aparecer los dispositivos conectados a nuestra red, y los vinculados a life360 aparecerán de la siguiente forma
1 2 3 4 5 6 7 8 |
AAAAAAA_BBBBBBBBBBBBBBBBBBBBBBB: hide_if_away: false icon: mac: name: picture: track: true vendor: |
Para conocer en todo momento el estado de las baterías de los móviles, si no lo has hecho ya, has de crear un archivo sensors.yaml en la carpeta /sensors dentro de /.homeassistant.
En este archivo has de pegar lo siguiente por cada uno de los dispositivos a controlar y sustituyendo los valores AAAA y BBBB por los que hayas obtenido en known_devices.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
- platform: template sensors: battery_AAAAA: friendly_name: Batería Móvil nombre unit_of_measurement: '%' value_template: > {%- if states.device_tracker.AAAAA_BBBBBBBBBBBBBBBBBBBBBBB.attributes.battery %} {{ states.device_tracker.AAAAA_BBBBBBBBBBBBBBBBBBBBBBB.attributes.battery|round }} {% else %} {{ states.sensor.battery_AAAAA.state }} {%- endif %} icon_template: '{%- if is_state("sensor.battery_AAAAAAA", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.AAAAA_BBBBBBBBBBBBBBBBBBBBBBB", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.AAAAA_BBBBBBBBBBBBBBBBBBBBBBB.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.AAAAA_BBBBBBBBBBBBBBBBBBBBBBB.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.AAAAA_BBBBBBBBBBBBBBBBBBBBBBB.attributes.battery|float / 10)|round*10}}{%- endif %}' |
Una vez reinicies tu Home Assistant, te aparecerá la ubicación de los móviles que hayas configurado (excepto si están en la ubicación Home que no aparecen) y el estado de su batería.
Para situar los móviles sobre un mapa has de añadir a configuration.yaml
1 |
map: |
Y con esto ya habremos acado.