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, Gaur egun ditugun telefono móvil que nos sigue a todas partes, o llevamos una pulsera inteligente o smartband, todos estos dispositivos tienen bluetooth, eta erabili dezakegu MAC norabidea de cada dispositivo para localizarlo dentro de nuestra casa. ¿Para qué? Pues primero por estadística, visualizar cuánto tiempo pasamos y donde, es muy curioso. Evidently lo egin ahal izango dugu meter automatizaciones, adibidez, si es de gau eta zaude etxeko atean eta sarrera atea etxea ez itxita llave, pues que se cierre. When llegues a la cocina a la mañana te de los ones days, te ponga las noticias… O yo qué sé, para pintarnos zuzenean en el Floorplan o plano animado de nuestra casa, sentados en el sofa, comiendo, durmiendo… 😉 Ojo, que también podemos lokalizar a gure animaliak, si les ponemos an tracker de these bluetooth, y si el gato/perro sartzen da etxeko gela batean ez debe, que gure etxeko altxavoces altuak.

¿Cómo egiten dugu esto? Pentsatu behar dugu etxeko etxeko bizileku bakoitzean zenbait gailu jartzen ditugula, etxeko etxe bakoitzean, baño… non queramos localizar. Eta soluzioa ezinbestean hitz egin behar du gailu bakoitzaren artean, jakiteko zer gaude gehiago hurbil.

La hobeto soluzioa pertsonalki si ez tienes dispositivos hauek basarte en ESP32-mqtt-room, que unas placas basadas en el chip ESP32 y sobre guzti oso baratas podrás repartir eta erraz ezkutatu etxean. Esan behar dizuet soluzio hau gutxi gorabehera urtebetez erabili nuela, azkenean gaur post honetan ikusiko dugun soluziora migratu nuela, etxean hainbat Raspberry Pi ditudala kontuan hartuta, ez zitzaidan batere kostatzen funtzionalitate hau gehitzea. Egun batean aspertzen banaiz, ESP32-mqtt-room-i buruzko post bat egingo dut, hau ere oso polita delako.

Esan dut, hoy veremos gelako laguntzailea, soluzio bikaina ere bai, eta gure maite diren Raspberry Pi-ean instalatu eta exekutatu ahal izango dugu, eta noski, aurreko aukerarekin bezala, oso ondo integratzen den gure Home Assistant-en ¡beraz adi!!

Raspberry Pi-n instalazioa,

Empezamos! Raspberry Pi bakoitzean, room-assistant instalatu nahi badugu, pauso hauek jarraituko ditugu, lo primero, NodeJS instalatu:

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, pulseras… así 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!!!