Home Assistant #8: Detección de dispositivos en casa

Después de un pequeño tiempo de parón, vamos a detectar y poder aprovechar los dispositivos de la casa, para lo que necesitemos, como, podría ser el hecho de hacer que nuestra casa se comporte de una forma cuando estamos y otra cuando no.

Este apartado, Home Assistant lo llama “Presence detection” y tenemos multitud de formas de hacerlo, unas más precisas que otras pero también, algunas más intrusivas que otras, sobretodo cuando vivimos con familia en casa y queremos controlar esos dispositivos.

En mi caso, he  querido configurar Home Assistant para detectar los móviles de las personas que están en casa para poder notificar de ciertos eventos cuando hay gente en casa y hacer otros (principalmente funcionar como alarma) cuando no hay nadie en casa. Para esto, he probado diferentes maneras y, os voy a explicar la mejor que he conseguido poner y que, funciona bastante bien, aunque, con sus fallos.

Lo primero que tenemos que hacer, es determinar si alguno de los componentes específicos de los routers, encaja con nuestro router, en mi caso, tengo un router flasheado con dd-wrt, una versión gratuita y libre para los routers y que, permite en el Home Assistant ser usado como control, si ninguno de los componentes encaja, tendremos que usar el “generico” por medio de nmap. Si es tu caso y no tienes un router de los mencionados en el listado, vamos a poner el nmap a funcionar de la siguiente forma:

  • Lo primero que tenemos que hacer es conectarnos por ssh ya que necesitaremos instalar un software
  • Ejecutamos:

sudo apt-get install net-tools nmap

  • Una vez que termina la instalación, insertaremos en nuestro fichero de configuración (configuration.yaml) esto:
device_tracker:
  - platform: nmap_tracker
    hosts: 192.168.1.0/24

Suponiendo que nuestras IPs internas son del tipo 192.168.1…. si nuestra subred cambia (eso lo podemos comprobar viendo la ip que asignamos a nuestra Raspberry Pi en la instalación.

  • Ya con todo cambiado, solo nos queda salvar la configuración y reiniciamos Home Assistant.
  • Una vez que arranca el sistema de nuevo, si entramos a la web vemos como en la parte superior, donde están los circulos con los sensores como el del sol, aparecen todos los dispositivos que tenemos en nuestra red
  • Volvemos a conectar a nuestra Raspberry Pi por ssh
  • Vamos al directorio donde tenemos toda la configuración y vemos que se ha creado un fichero nuevo llamado known_hosts.yaml en el que si lo editamos con nano, podemos ver contenido lleno de todos los equipos que se han encontrado en la red, como por ejemplo:

chromecast:
hide_if_away: false
icon:
mac: zz:xx:63:zz:zz:xx
name: chromecast
picture:
track: false
vendor: Google, Inc.

  • Supongamos que este Chromecast es uno de los dispositvos que queréis controlar, como podría ser vuestro móvil. Para poder seguirlo tendremos que poner:

chromecast:
hide_if_away: false
icon:
mac: zz:xx:63:zz:zz:xx
name: MiNombre
picture: /local/mifoto.jpg
track: true
vendor: Google, Inc.

  • Si vemos los cambios, hemos cambiado el nombre en “name” para que aparezca nuestro nombre o el nombre del dispositivo que queremos seguir, hemos puesto a true el valor de “track” y, por último hemos puesto /local/mifoto.jpg para poder personalizar la foto mostrada por el dispositivo. Para poder hacer eso, en el directorio de la configuración de home assistant, crearemos una carpeta llamada www  con el comando:

mkdir www

  • Por último pondremos el fichero con la foto llamado “mifoto.jpg” dentro para que Home Assistant lo muestre.
  • El resto de dispositivos del fichero “known_hosts.yaml” podremos poner a false el valor de “track” para evitar que nos aparezca y, una vez que tengamos la red controlada, podemos añadir a la configuración:

– platform: nmap_tracker
hosts: 192.168.1.0/24
interval_seconds: 10
consider_home: 360
scan_options: ” –privileged -sP –host-timeout 10s ”
new_device_defaults:
track_new_devices: False
hide_if_away: True

De esta manera conseguimos evitar algunos errores de posibles desconexiones por ahorro energético de nuestros teléfonos, así como no meter nuevos dispositivos a ser controlados de forma automática.

Una vez que tenemos esto configurado, podemos jugar con la presencia de estos dispositivos, ya que, estarán con el estado “home” cuando esten detectados o “not_home” cuando se encuentran fuera de la LAN, por lo que podemos usarlos para o bien lanzar algún trigger en una automatización (por ejemplo, el dispostivo entra o se va) o, hacer que sean la condición para que se ejecute algo, por ejemplo si está o no en casa.

Espero que os siga ayudando los tutoriales, ¡muy pronto más!

IMPORTANTE: Con el fin de ayudaros de una forma más directa, he creado un grupo en Telegram donde podemos ayudarnos todos así como evitar que os quedéis atascados, si tenéis telegram podéis pulsar aquí para uniros y si no lo tenéis, os recomiendo que os lo instaléis ya que lo usaremos en el tutorial para notificarnos.

Eduardo Ruiz

Amante de la tecnología, escribo para compartir una de las mayores aficiones que tengo y poder estar al día en el aspecto tecnológico.