Tutorial: Device tracker usando la Xiaomi Mi Band o Amazfit Bip

Tutorial: Device tracker usando la Xiaomi Mi Band o Amazfit Bip

Hoy os traemos un tutorial creado por un usuario del grupo de Telegram (LeidenSpain) que nos ha permitido el uso del mismo para que podáis ponerlo en práctica en vuestros sistemas.

Se trata de poder hacer tracking de nuestras Mi Band o bien del Amazfit Bip para poder saber si estamos o no en casa por medio de estos dispositivos.

Uso de Mi Band o Amazfit Bip como trackers en Home Assistant

Estos son los pasos que he seguido para poder integrar las pulseras Miband2 y Amazfit Bip dentro de Home Assistant, y poderlas usar como controles de presencia (tracker).

El primero punto es tener claro que estas pulseras usan el protocolo BLE y no el BT, por lo que hay que integrar el componente BLE de home assistant:

https://www.home-assistant.io/components/device_tracker.bluetooth_le_tracker/

Lo primero sería instalar la pila Bluetooth:

sudo apt install bluetooth

La propia web de home assistant nos indica que es necesario dar permisos root a Python y a la herramienta de detección:

sudo apt-get install libcap2-bin
sudo setcap 'cap_net_raw,cap_net_admin+eip' `readlink -f `which python3``
sudo setcap 'cap_net_raw+ep' `readlink -f `which hcitool``

En este punto, verificar que tenemos activada la opción de pulsera visible dentro de MiFit. Como cosa curiosa, en casa tenemos dos miband2 y una amazfit bip, pero una de las miband2 no me muestra esta opción.

Al final lo he achacado a algo del móvil con el que está emparejado, porque si apago el BT de este móvil, la pulsera si me aparece. Una vez hecho esto, si ejecutamos desde la consola el comando de búsqueda de dispositivos BLE deberían aparecer las pulseras cercanas (la propia y la de todos los vecinos):

hcitool lescan

En caso de que no funcionara, usar estos comandos:

sudo pip install --target=/srv/homeassistant/lib/python3.5/site-packages/ package_name pexpect
sudo pip install --target=/srv/homeassistant/lib/python3.5/site-packages/ package_name ptyprocess

Me he encontrado con el problema de que las pulseras dejan de detectarlas con bastante frecuencia, por lo que he tenido que aumentar el tiempo que HA considera que están fuera de casa al dejar de detectarlas.

Estos son mis ejemplos de ficheros tracker.yaml y know_devices.yaml:

## Sensores ##
device_tracker:
- platform: bluetooth_le_tracker
  track_new_devices: false
  interval_seconds: 60
  consider_home: 240
  blacklist_names:
    - 'dtvbluetooth'
    - 'tv_samsung_led46'
    - 'ulefone_s7'
    - 'mibox'
    - 'ble_3c_bd_xx_xx_xx_xx'
    - 'ble_68_a8_xx_xx_xx_xx'
    - 'ble_58_d8_xx_xx_xx_xx'
    - 'mibcs'
# hci_device: 'hci0'
# hide_unnamed: true
# - platform: bluetooth_le_tracker
# interval_seconds: 60
# new_device_defaults:
# track_new_devices: true
# - platform: bluetooth_tracker
# interval_seconds: 60
# new_device_defaults:
# track_new_devices: true

know_devices.yaml:

amazfit_bip_watch:
hide_if_away: false
icon:
mac: BLE_D8:CC:xx:xx:xx:xx
name: xxx
picture: /local/images/icon_xxx.jpg
track: true

mi_band_2_xxx:
hide_if_away: false
icon:
mac: BLE_DA:14:xx:xx:xx:xx
name: xxx
picture: /local/images/icon_xxx.jpg
track: true

mi_band_2_xxx:
hide_if_away: false
icon:
mac: BLE_D0:DA:xx:xx:xx:xx
name: Ania
picture: /local/images/icon_ania.jpg
track: true

amazfit_cor:
hide_if_away: true
icon:
mac: BLE_F5:01:
name: amigo1
picture:
track: true

dtvbluetooth:
hide_if_away: false
mac: BT_D0:66:
name: DTVBluetooth
track: false
tv_samsung_led46:
hide_if_away: false
mac: BT_0C:89:
name: '[TV]Samsung LED46'
track: false

ulefone_s7:
hide_if_away: false
mac: BT_CC:73:
name: Ulefone S7
track: false
mibox:
hide_if_away: false
mac: BT_E4:DB:
name: MiBox
track: false

ble_3c_bd:
hide_if_away: false
mac: BLE_3C:BD:
name: ble 3c bd
track: false
ble_68_a8
hide_if_away: false
mac: BLE_68:A8:
name: ble 68 a8
track: false

ble_58_d8_:
hide_if_away: false
mac: BLE_58:D8:
name: ble 58 d8
track: false
mibcs:
hide_if_away: false
mac: BLE_C1:D1:
name: MIBCS
track: false

Muchas gracias por el tutorial y, en caso de que tengáis alguna duda, podéis entrar al grupo para preguntar.

Si os interesa hacer el tutorial, podéis comprar las pulseras (Mirad el precio en las 3 tiendas para ver el más económico):

Fuente: Link, Link, Link y Link.

La entrada Tutorial: Device tracker usando la Xiaomi Mi Band o Amazfit Bip se publicó primero en Domótica en Casa.

Eduardo Ruiz

Informático de vocación, apasionado de la tecnología y blogger desde hace mucho tiempo, escribo de lo que me entretiene y disfruto con ello. Si deseas seguirme, usa el rss del blog o en mi perfil de .