Tracciamento della nostra posizione di casa con Home Assistant

In questo post andremo a vedere qualcosa di molto interessante, E non è altro che la capacità di tracciare o rintracciare determinati dispositivi Bluetooth (Braccialetti intelligenti, Cellulari…) Per casa, con l'obiettivo di localizzare la posizione in ogni momento per effettuare automazioni.

Cosa ho detto, Tutti noi abbiamo un cellulare che ci segue ovunque, Oppure indossiamo un braccialetto intelligente o una smartband, Tutti questi dispositivi sono dotati di Bluetooth, e possiamo utilizzare l'indirizzo MAC di ogni dispositivo per localizzarlo all'interno della nostra casa. Per cosa? Beh, prima di tutto dalle statistiche, Possiamo visualizzare quanto tempo dedichiamo e dove, È molto curioso. Ovviamente possiamo farlo per mettere le automazioni, Per esempio, se è notte e sei nella stanza e la porta d'ingresso della casa non è chiusa a chiave, Beh, lascia che si chiuda. Quando arrivi in cucina la mattina ti dico buongiorno, Ho messo la notizia su di te… O che ne so, per dipingerci direttamente sul Planimetria o Planimetria animata della nostra casa, Sedersi sul divano, mangiare, dormiente… 😉 Occhio, che possiamo anche localizzare i nostri animali, Se mettiamo un tracker di questi bluetooth, e che se il gatto/cane entra in una stanza non dovrebbe, Lasciamo che siano i relatori a casa a dircelo.

Come possiamo farlo? Dobbiamo pensare che alcuni dispositivi devono essere posizionati in ogni stanza della casa, in ogni camera, bagno… dove vogliamo localizzarci. E la soluzione ovviamente deve parlare tra ogni dispositivo, per sapere a chi siamo più vicini.

La soluzione migliore personalmente se non si dispone di questi dispositivi è quella di affidarsi a ESP32-mqtt-camera, che per mezzo di schede basate sul chip ESP32 e soprattutto molto economiche si possono facilmente distribuire e nascondere in giro per casa. Devo dirti che ho utilizzato questa soluzione per circa un anno, Alla fine sono migrato alla soluzione che vedremo oggi in questo post, dato che ne ho diversi Raspberry Pi sparsi per casa, Non mi è costato nulla aggiungere questa funzionalità. Un giorno se mi annoio faccio un post per la ESP32-mqtt-room, che è anche molto bello.

Cosa ho detto, Oggi vedremo assistente di stanza, Anche un'ottima soluzione, e che possiamo installare ed eseguire sul nostro amato Raspberry Pi, e ovviamente come l'opzione precedente, completamente integrabile nel nostro Home Assistant, quindi resta sintonizzato!

Installazione su Raspbery Pi,

Avviato! Seguiremo questi passaggi in ogni Raspberry Pi che abbiamo e vogliamo installare room-assistant, Per prima cosa, installare NodeJS:

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

Instalamos todas las dependencias que necesitaremos:

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

Instalamos room-assistant, trasformatore di classe y validatore di classe:

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

Añadimos los siguientes permisos:

sudo setcap cap_net_raw+eip $(eval readlink -f 'quale nodo')
sudo setcap cap_net_raw+eip $(eval readlink -f 'quale hcitool')
sudo setcap cap_net_admin+eip $(eval readlink -f 'quale hciconfig')

Sinceramente no recuerdo muy bien porqué hice lo siguiente, pero lo tengo documentado 🙂

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

Creiamo la directory e il file di configurazione per room-assistant (Attenzione, compiliamo quindi il file di configurazione, Solo così sai dove si trova):

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

Prima di iniziare con il file di configurazione, Creiamo il servizio per avviare room-assistant:

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

E introduciamo la seguente configurazione al servizio:

[Unità]
Description=servizio di assistente di stanza

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

[Installare]
WantedBy=multi-utente.target

Abilitiamo il servizio, L'abbiamo iniziato (Bene, prima di avviarlo devi avere il file di configurazione per il tuo assistente di stanza che vedremo di seguito) e verifichiamo che sia strappato:

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

File di configurazione dell'assistente di sala, di Esempio individuale, Cioè, un Raspberry Pi funzionante individualmente, senza parlare con il resto dei lamponi, a cui daremo un nome in 'instanceName', aggiungeremo gli indirizzi MAC dei dispositivi bluetooth da rintracciare o rintracciati in 'indirizzi', e importante, indicheremo il nostro server broker MQTT, per inviarti i dati:

globale:
  instanceName: Integrazioni per il garage:
    - homeAssistente
    - bluetoothAssistente domestico classico:
  mqttUrl: MQTT://DIRECCIÓN_IP_BROKER_MQTT:1883
  mqttOpzioni:
    nome utente: NOME UTENTE password: bluetoothClassic PASSWORD:
  minRssi: -20
  indirizzi:
    - 'FD:72:03:6B:A.C:XX'
    - 'EA:4B:B2:2A:56:XX'
    - '7C:2F:80:CE:61:XX'
    - 'B4:C4:FC:64:19:XX'

Ed ecco un Esempio in modalità cluster del file di configurazione di room-assistant, che sarà quello che useremo quando avremo più di un Raspberry Pi con room-assistant. A differenza del precedente, in questo dovremo aggiungere l'indirizzo IP di ogni Raspberry Pi in peerAddresses:

globale:
   Grappolo:
     Individuazione automatica: Porta falsa: 6425
     Indirizzi pari:
       - 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: Integrazioni in cucina:
     - homeAssistente
     - bluetoothAssistente domestico classico:
   mqttUrl: MQTT://DIRECCIÓN_IP_BROKER_MQTT:1883
   mqttOpzioni:
     nome utente: NOME UTENTE password: bluetoothClassic PASSWORD:
   minRssi: -20
   hciDeviceId: 0
   indirizzi:
    - 'FD:72:03:6B:A.C:XX'
    - 'EA:4B:B2:2A:56:XX'
    - '7C:2F:80:CE:61:XX'
    - 'B4:C4:FC:64:19:XX'

Bene, Ora sì, dopo la registrazione e il possesso del file di configurazione, Ricordati di riavviare il servizio (O demone) di room-assistant.

Impostazioni dell'assistente domestico,

Bene, Ce l'abbiamo già! Ora non resta che aggiungere il nostro caro. amato e desiderato Home Assistant i dispositivi che vogliamo visualizzare, Questo è, Cellulari, Bracciali… quindi andiamo al file di configurazione di Home Assistant, configuration.yaml e nella sezione 'Sensor'’ Aggiungiamo il seguente blocco, indicando il MAC e la descrizione del dispositivo:

sensore:
...
  - Piattaforma: mqtt_room device_id: "b4c4fc6419XX"
    Nome: 'Teléfono móvil de Héctor'
    state_topic: 'room_presence'
    timeout: 5
    away_timeout: 0
...

E come sempre, salvare il file e riavviare Home Assistant per caricare la configurazione. Saremo in grado di aggiungere facilmente ogni entità che abbiamo registrato con il filtro del mouse per dispositivi di tipo 'room_presence'.

E niente, Lascia correre la magia, Vedremo come a seconda di dove ci troviamo, vedremo in questa storia lo stato dell'Entità e il suo posizionamento.

Se ti spingi troppo lontano e hai un Grafana in giro, Si possono visualizzare, ad esempio, con una vista del formaggio in modo molto semplice i tempi, E naturalmente, Questo ha una storia… Ai pettegolezzi, Ho tolto il tempo che passo in bagno, Hehe, E con questo tipo di query lo avremmo:

Stato SELECT come metrica, TIMESTAMPDIFF(SECONDO, Min(last_updated), Max(last_updated)) come valore, last_changed come time_sec DA STATI IN CUI $ __timeFilter(creato) and state = 'Cocina' and entity_id = 'sensor.maixu_dordoka_room_presence' GROUP BY last_changed ORDER BY created DESC ;

Oh, bene, È il momento di guardare a un esempio di automazione, Nelle immagini lo vedrete facile, in questo caso è, Di notte, Quando io o la mia txabala siamo a letto, se la porta non è stata bloccata, Bene, chiudilo, L'ho anche avvisato tramite gli altoparlanti di casa, Invia un telegramma, bla, bla…

Come sempre un piacere, Spero che ti piaccia, Un abbraccio e grazie mille per quei like sui social network che non costano nulla!! 🙂

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!