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.