Home Assistant-ekin gure etxeko lokalizazioa jarraitzea

Post honetan oso gauza interesgarri bat ikusiko dugu, eta ez da bestelakorik, baizik eta Bluetooth gailu jakin batzuk jarraitu edo trackeatzeko aukera (uholde adimentsuak, telefono mugikorrak…) etxean, con el objetivo de localizar la posición en todo momento para realizar automatizaciones.

Esan dut, todos a día de hoy tenemos un teléfono móvil que nos sigue a todas partes, o llevamos una pulsera inteligente o smartband, todos estos dispositivos tienen bluetooth, y podemos usar la dirección MAC de cada dispositivo para localizarlo dentro de nuestra casa. ¿Para qué? Pues primero por estadística, podemos visualizar cuánto tiempo pasamos y donde, es muy curioso. Obviamente lo podremos hacer para meter automatizaciones, adibidez, si es de noche y estás en la habitación y la puerta de entrada a casa no está cerrada con llave, pues que se cierre. Cuando llegues a la cocina a la mañana te de los buenos días, te ponga las noticiasO yo qué sé, para pintarnos directamente en el Floorplan o plano animado de nuestra casa, sentados en el sofá, comiendo, durmiendo😉 Ojo, que también podemos localizar a nuestros animales, si les ponemos un tracker de estos bluetooth, y que si el gato/perro entra en una habitación que no debe, que nos lo chiven los altavoces de casa.

¿Cómo hacemos esto? Tenemos que pensar que hay que colocar ciertos dispositivos en cada habitáculo de la casa, en cada habitación, bañodonde queramos localizar. Y la solución obviamente tiene que hablar entre cada dispositivo, para saber de cuál estamos más cerca.

La mejor solución personalmente si no tienes estos dispositivos es basarte en ESP32-mqtt-room, que mediante unas placas basadas en el chip ESP32 y sobre todo muy baratas podrás repartir y esconder fácilmente por casa. He de deciros que yo utilicé esta solución durante un año aproximadamente, al final migré a la solución que veremos hoy en este post, ya que como tengo varias Raspberry Pi repartidas por casa, no me costaba nada añadir esta funcionalidad. Un día si me aburro hago un post para el ESP32-mqtt-room, que también está muy chulo.

Esan dut, hoy veremos gelako laguntzailea, una solución buenísima también, y que podremos instalar y correr en nuestras queridas Raspberry Pi, y por supuesto como la anterior opción, totalmente integrable en nuestro Home Assistant ¡así que atentos!

Instalación en Raspbery Pi,

Empezamos! Seguiremos estos pasos en cada Raspberry Pi que tengamos y queramos instalarle room-assistant, lo primero, instalar NodeJS:

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

Guztiak behar ditugun menpekotasunak instalatzen ditugu:

sudo apt-get update && sudo apt-get install -y build-essential libavahi-compat-libdnssd-dev bluetooth libbluetooth-dev libudev-dev libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

Instalatzen dugu room-assistant, class-transformer eta class-validator:

sudo npm i --global --unsafe-perm room-assistant
sudo npm install i --global class-transformer
sudo npm install i --global class-validator

Hurrengo baimenak gehitzen ditugu:

sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)
sudo setcap cap_net_raw+eip $(eval readlink -f `which hcitool`)
sudo setcap cap_net_admin+eip $(eval readlink -f `which hciconfig`)

Zintzoki esateko, ez dut oso ondo gogoratzen zergatik egin nuen hau, baina dokumentatuta daukat 🙂

sudo nano /etc/avahi/avahi-daemon.conf
enable-dbus=yes

Room-assistant bidezko direktorioa eta konfigurazio fitxategia sortzen ditugu (kontuz, gero konfigurazio fitxategia beteko dugu, zuretzat non dagoen jakiteko bakarrik):

mkdir -p ~/room-assistant/config
touch ~/room-assistant/config/local.yml

Konfigurazio fitxategiarekin hasteko aurretik, room-assistant martxan jartzeko zerbitzua sortuko dugu:

sudo nano /etc/systemd/system/room-assistant.service

Eta honako konfigurazioa sartzen dugu zerbitzuan:

[Unit]
Description=room-assistant zerbitzua

[Service]
ExecStart=/usr/bin/room-assistant
WorkingDirectory=/home/pi/room-assistant
Restart=always
RestartSec=10
User=pi

[Install]
WantedBy=multi-user.target

Zerbitzua gaitzen dugu, abiarazten dugu (ongi, abiarazi aurretik zure room-assistant-eko konfigurazio fitxategia izan beharko duzu, hurrengoan ikusiko duguna) eta egiaztatzen dugu martxan dagoela:

sudo systemctl enable room-assistant.service
sudo systemctl start room-assistant.service
sudo systemctl status room-assistant

room-assistant konfigurazio fitxategia, de banakako adibidea, edo, bestela, banaka funtzionatzen duen Raspberry Pi bat, beste Raspberryekin hitz egin gabe, ‘instanceName’-en izena emango dioguna, bluetooth gailuetako MAC helbideak 'addresses'-ean jarri edo jarraitu beharrekoak, eta garrantzitsua, gure MQTT broker zerbitzaria adieraziko dugu, datuak bidaltzeko:

global:
  instanceName: Garaje
  integrazioak:
    - homeAssistant
    - bluetoothClassic
homeAssistant:
  mqttUrl: mqtt://BROKER_MQTT_IP_HELBIDEA:1883
  mqttOptions:
    username: ERABILTZAILEA
    pasahitza: PASAHITZA
bluetoothClassic:
  minRssi: -20
  addresses:
    - 'FD:72:03:6B:BC:XX'
    - 'EA:4B:B2:2A:56:XX'
    - '7C:2F:80:EC:61:XX'
    - 'B4:C4:FC:64:19:XX'

Eta ondoren, pasatzen dizuet cluster moduko adibidea room-assistant konfigurazio fitxategiaren, que será el que utilicemos cuándo tengamos más de una Raspberry Pi con room-assistant. A diferencia del anterior, en este tendremos que añadir la dirección IP de cada Raspberry Pi en peerAddresses:

global:
   klusterra:
     autoDiscovery: false
     port: 6425
     peerAddresses:
       - DIRECCION_RASPBERRY_PI_1:6425
       - DIRECCION_RASPBERRY_PI_2:6425
       - DIRECCION_RASPBERRY_PI_3:6425
       - DIRECCION_RASPBERRY_PI_4:6425
       - DIRECCION_RASPBERRY_PI_5:6425
   instanceName: Cocina
   integrations:
     - homeAssistant
     - bluetoothClassic
homeAssistant:
   mqttUrl: mqtt://BROKER_MQTT_IP_HELBIDEA:1883
   mqttOptions:
     username: USUARIO
     password: PASAHITZA
bluetoothClassic:
   minRssi: -20
   hciDeviceId: 0
   addresses:
    - 'FD:72:03:6B:BC:XX'
    - 'EA:4B:B2:2A:56:XX'
    - '7C:2F:80:EC:61:XX'
    - 'B4:C4:FC:64:19:XX'

Onena, ahora sí, tras grabar y tener tu fichero de configuración, acuérdate de reiniciar el servicio (o demonio) de room-assistant.

Home Assistant-en konfigurazioa,

¡Bueno, que ya lo tenemos! Ahora sólo queda añadir en nuestro querido. amado y deseado Home Assistant los dispositivos que queremos visualizar, hau da, los teléfonos móviles, pulserasasí que vamos al fichero de configuración de Home Assistant, configuration.yaml y en la section de 'sensor’ añadimos el siguiente bloke, indicando la MAC y la description del dispositivo:

sensor:
...
  - platform: mqtt_room
 device_id: "b4c4fc6419XX"
    name: 'Teléfono móvil de Héctor'
 state_topic: 'room_presence'
 timeout: 5
    away_timeout: 0
...

Eta beti bezala, grabamos el fichero y reiniciamos Home Assistant para que cargue la configuración. Ahal dugu gehitu ahal izango ditugun Entidad bakoitza erraz dada de alta con el ratón filtrando dispositivos mota 'room_presence'.

Eta ezer, dejemos que la magia corra, veremos cómo dependiendo de dónde estemos, iremos viendo en este historial el status de la Entidad y su positionamiento.

If se os va much la pinza y tenéis an Grafana por ahí, adibidez ikus dezakezue gazta-ikuspegi batekin modu erraz batean denborak, y claro, honek historial bat dauka… kuxkuxeatzaileentzat, kentzen dut bainugelan pasatzen den denbora, jeje, eta motz-bilaketa honetaz izango genuke:

SELECT state as metric, TIMESTAMPDIFF(SEGUNDO, min(last_updated), max(last_updated)) as value, last_changed as time_sec FROM states WHERE $__timeFilter(created) eta state = 'Sukaldea' eta entity_id = 'sensor.maixu_dordoka_room_presence' GROUP BY last_changed ORDER BY created DESC ;

Y bueno, automazioa adibide bat ikusteko garaia da, irudietan erraz ikusiko duzue, kasu honetan da, gauean, nik edo nire txabala ohean gaudenean, ateak giltzaz ez badu itxita, ba, itxi dezala, gainera etxeko bozgorailuetan jakinarazi dezala, Telegram bidali dezala, bla, bla…

beti bat placer, usteko espero dut disfrutatuko duzuelako, un abrazo y muchas gracias por esos likes en las redes sociales que no cuesta nada!! 🙂

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!