Suivi de l’emplacement de notre maison avec Home Assistant

Dans cet article, nous allons voir quelque chose de très intéressant, Et ce n’est rien de plus que la possibilité de suivre ou de suivre certains appareils Bluetooth (Bracelets intelligents, Téléphones portables…) Par maison, dans le but de localiser le poste à tout moment pour effectuer des automatisations.

Ce que j’ai dit, Nous avons tous un téléphone portable qui nous suit partout, ou nous portons un bracelet intelligent ou un bracelet intelligent, Tous ces appareils sont équipés du Bluetooth, et nous pouvons utiliser l’adresse MAC de chaque appareil pour le localiser à l’intérieur de notre maison. Pour quoi? Eh bien, d’abord par les statistiques, Nous pouvons visualiser combien de temps nous passons et où, C’est très curieux. Evidemment on peut le faire pour mettre des automatisations, Par exemple, s’il fait nuit et que vous êtes dans la pièce et que la porte d’entrée de la maison n’est pas verrouillée, Eh bien, qu’il se termine. Quand vous arrivez à la cuisine le matin, je vous dis bonjour, Je vous mets la nouvelle… Ou qu’est-ce que j’en sais, pour nous peindre directement sur le Plan d’étage o Plan d’étage animé de notre maison, Assis sur le canapé, Manger, sommeil… 😉 Oeil, que nous pouvons aussi localiser nos animaux, Si nous mettons un tracker de ces bluetooth, et que si le chat/chien entre dans une pièce, il ne doit pas, Laissez les intervenants à la maison nous le dire.

Comment procédons-nous ?? Nous devons penser que certains appareils doivent être placés dans chaque pièce de la maison, dans chaque chambre, bain… Où nous voulons nous implanter. Et la solution doit évidemment parler entre chaque appareil, pour savoir de laquelle nous sommes les plus proches.

La meilleure solution personnelle si vous n’avez pas ces appareils est de compter sur ESP32-mqtt-chambre, que grâce à des planches basées sur la puce ESP32 et surtout très bon marché, vous pouvez facilement les distribuer et les cacher dans la maison. Je dois vous dire que j’ai utilisé cette solution pendant environ un an, Finalement, j’ai migré vers la solution que nous allons voir aujourd’hui dans ce post, depuis que j’ai plusieurs Raspberry Pi éparpillés dans la maison, Cela ne m’a rien coûté d’ajouter cette fonctionnalité. Un jour, si je m’ennuie, je fais un post pour la salle ESP32-mqtt, Ce qui est aussi très cool.

Ce que j’ai dit, Aujourd’hui, nous allons voir Assistant-chambre, Une excellente solution aussi, et que nous pouvons installer et exécuter sur notre bien-aimé Raspberry Pi, et bien sûr comme l’option précédente, entièrement intégrable dans notre Home Assistant, alors restez à l’écoute!

Installation sur Raspbery Pi,

Commencé! Nous suivrons ces étapes dans chaque Raspberry Pi que nous avons et que nous voulons installer room-assistant, Tout d’abord, installer NodeJS:

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

Nous installons toutes les dépendances dont nous aurons besoin:

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

Nous installons room-assistant, transformateur de classe et validateur de classe:

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

Nous avons ajouté les autorisations suivantes:

SUDO SETCAP cap_net_raw+EIP $(eval readlink -f 'quel nœud')
SUDO SETCAP cap_net_raw+EIP $(eval readlink -f 'quel hcitool')
SUDO Setcap cap_net_admin+EIP $(eval readlink -f 'which hciconfig')

Honnêtement, je ne me souviens pas très bien pourquoi j’ai fait ce qui suit, Mais je l’ai documenté 🙂

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

Nous créons le répertoire et le fichier de configuration pour room-assistant (Attention, on renseigne ensuite le fichier de configuration, Juste pour que vous sachiez où il se trouve):

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

Avant de commencer avec le fichier de configuration, Créons le service pour démarrer room-assistant:

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

Et nous introduisons la configuration suivante dans le service:

[Unité]
Description=service d’assistant de chambre

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

[Installer]
WantedBy=multi-utilisateur.cible

Nous activons le service, Nous l’avons commencé (Eh bien, avant de le commencer, vous devez avoir le fichier de configuration de votre assistant de salle que nous verrons ci-dessous) et nous vérifions qu’il est arraché:

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

Fichier de configuration de l’assistant de salle, de Exemple individuel, C’est, un Raspberry Pi fonctionnant individuellement, sans parler au reste des framboises, dont nous donnerons un nom dans 'instanceName', nous ajouterons les adresses MAC des appareils Bluetooth à suivre ou suivis dans 'adresses', et important, nous indiquerons notre serveur de broker MQTT, pour vous envoyer les données:

global:
  instanceName: Intégrations de garage:
    - homeAssistant
    - BluetoothClassique maisonAssistant:
  mqttUrl: MQTT://DIRECCIÓN_IP_BROKER_MQTT:1883
  mqttOptions:
    nom d’utilisateur: NOM D’UTILISATEUR mot de passe: bluetoothClassic MOT DE PASSE:
  minRssi: -20
  Adresses:
    - 'FD:72:03:6B:Av. J.-C:XX'
    - 'EA:4B:B2:2À:56:XX'
    - '7C:2F:80:CE:61:XX'
    - 'B4:C4:FC:64:19:XX'

Et voici un Exemple en mode cluster du fichier de configuration de room-assistant, qui sera celui que nous utiliserons lorsque nous aurons plus d’un Raspberry Pi avec room-assistant. Contrairement au précédent, dans celui-ci, nous devrons ajouter l’adresse IP de chaque Raspberry Pi dans peerAddresses:

global:
   Grappe:
     Découverte automatique: Faux port: 6425
     peerAdresses:
       - 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: Intégrations de cuisine:
     - homeAssistant
     - BluetoothClassique maisonAssistant:
   mqttUrl: MQTT://DIRECCIÓN_IP_BROKER_MQTT:1883
   mqttOptions:
     nom d’utilisateur: NOM D’UTILISATEUR mot de passe: bluetoothClassic MOT DE PASSE:
   minRssi: -20
   hciDeviceId: 0
   Adresses:
    - 'FD:72:03:6B:Av. J.-C:XX'
    - 'EA:4B:B2:2À:56:XX'
    - '7C:2F:80:CE:61:XX'
    - 'B4:C4:FC:64:19:XX'

Puits, Maintenant oui, après l’enregistrement et la possession de votre fichier de configuration, N’oubliez pas de redémarrer le service (Ou démon) par room-assistant.

Paramètres de l’assistant à domicile,

Puits, Nous l’avons déjà! Il ne reste plus qu’à ajouter à notre cher. Home Assistant aimé et désiré les appareils que nous voulons visualiser, C’est, Téléphones portables, Bracelets… passons donc au fichier de configuration de Home Assistant, configuration.yaml et dans la section 'Capteur'’ Nous ajoutons le bloc suivant, en indiquant l’adresse MAC et la description de l’appareil:

capteur:
...
  - Plateforme: mqtt_room device_id: "b4c4fc6419XX"
    Nom: 'Teléfono móvil de Héctor'
    state_topic: 'room_presence'
    timeout: 5
    away_timeout: 0
...

Et comme toujours, enregistrez le fichier et redémarrez Home Assistant pour charger la configuration. Nous pourrons ajouter chaque entité que nous avons enregistrée facilement avec le filtrage de la souris par des appareils de type 'room_presence'.

Et rien, Laissez la magie opérer, Nous verrons comment en fonction de l’endroit où nous nous trouvons, nous verrons dans cet historique l’état de l’Entité et son positionnement.

Si vous allez trop loin et que vous avez un Grafana qui traîne, Vous pouvez visualiser, par exemple, avec une vue du fromage de manière très simple les temps, Et bien sûr, Cela a une histoire… Aux commères, J’ai enlevé le temps que je passe dans la salle de bain, héhé, Et avec ce genre de requête, nous l’aurions:

SELECT en tant que métrique, TIMESTAMPDIFF(DEUXIÈME, Min(last_updated), Max(last_updated)) comme valeur, last_changed comme time_sec DES ÉTATS OÙ __timeFilter $(créé) and state = 'Cocina' and entity_id = 'sensor.maixu_dordoka_room_presence' GROUP BY last_changed ORDER BY created DESC ;

Oh, bien, Il est temps de se pencher sur un exemple d’automatisation, Dans les images, vous le verrez facilement, dans ce cas, c’est, La nuit, Quand mon txabala ou moi sommes au lit, si la porte n’a pas été verrouillée, Eh bien, fermez-le, Je l’ai également notifié par le biais des haut-parleurs à la maison, Envoyer un télégramme, Bla, Bla…

Comme toujours un plaisir, J’espère que vous l’apprécierez, Un câlin et un grand merci pour ces likes sur les réseaux sociaux qui ne coûtent rien!! 🙂

Articles recommandés

Auteur

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, N’hésitez pas à me contacter, J’essaierai de vous aider chaque fois que je le pourrai, Partager, c’est vivre ;) . Profiter des documents!!!