Verfolgen Sie unseren Standort zu Hause mit Home Assistant

In diesem Beitrag werden wir etwas sehr Interessantes sehen, und es ist nichts weiter als die Möglichkeit, bestimmte Bluetooth-Geräte zu verfolgen oder zu verfolgen (intelligente Armbänder, Mobiltelefone…) Zuhause, mit dem Ziel, die Position jederzeit zu lokalisieren, um Automatisierungen durchzuführen.

ich sagte:, Heute haben wir alle ein Handy, das uns überallhin folgt, oder wir tragen ein schickes Armband oder ein Smartband, Alle diese Geräte haben Bluetooth, und wir können die MAC-Adresse jedes Geräts verwenden, um es in unserem Haus zu lokalisieren. Wofür? Nun zuerst für Statistiken, Wir können uns vorstellen, wie viel Zeit wir wo verbringen, Es ist sehr neugierig. Natürlich können wir damit Automatisierungen einsetzen, zum Beispiel, Wenn es Nacht ist und Sie im Zimmer sind und die Haustür zum Haus nicht verschlossen ist, Nun, lass es schließen. Wenn du morgens in die Küche kommst, sage ich dir guten Morgen, Bring dir die Neuigkeiten… Oder was weiß ich, uns direkt auf die zu malen Gebäudeplan oder animierter Plan unseres Hauses, auf der Couch sitzen, Essen, Schlafen… 😉 Auge, dass wir auch unsere Tiere lokalisieren können, wenn wir einen Tracker dieser Bluetooth setzen, und was ist, wenn die Katze / der Hund einen Raum betritt, den sie nicht betreten sollte?, Lassen Sie sich von den Lautsprechern zu Hause informieren.

Wie machen wir das? Wir müssen denken, dass bestimmte Geräte in jedem Raum des Hauses platziert werden müssen, in jedem Raum, Badezimmer… wo wir suchen wollen. Und die Lösung muss natürlich zwischen jedem Gerät sprechen, zu wissen, welchem ​​wir am nächsten sind.

Die beste Lösung, wenn Sie diese Geräte nicht haben, ist, sich darauf zu verlassen ESP32-mqtt-Raum, Mit Hilfe von Platten, die auf dem ESP32-Chip basieren und vor allem sehr günstig sind, können Sie diese problemlos zu Hause verteilen und verstecken. Ich muss Ihnen sagen, dass ich diese Lösung ungefähr ein Jahr lang verwendet habe, Am Ende bin ich auf die Lösung umgestiegen, die wir heute in diesem Beitrag sehen werden, da habe ich mehrere raspberry pi im haus verstreut, Es war nicht schwer für mich, diese Funktionalität hinzuzufügen. Eines Tages, wenn mir langweilig wird, mache ich einen Beitrag für den ESP32-mqtt-Raum, das ist auch sehr cool.

ich sagte:, Heute werden wir sehen Zimmerassistentin, Eine großartige Lösung, und dass wir auf unserem geliebten Raspberry Pi installieren und ausführen können, und natürlich wie die vorherige Option, vollständig in unseren Home Assistant integrierbar, achten Sie also darauf!

Installation auf Raspbery Pi,

wir begonnen! Wir werden diese Schritte auf jedem Raspberry Pi ausführen, den wir haben, und möchten den Raumassistenten dafür installieren, zuerst, Installieren Sie NodeJS:

curl -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, class-transformer y class-validator:

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 `which node`)
sudo setcap cap_net_raw+eip $(eval readlink -f `which hcitool`)
sudo setcap cap_net_admin+eip $(eval readlink -f `which hciconfig`)

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

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

Creamos el directorio y el fichero de configuración para room-assistant (ojo que luego rellenamos el fichero de configuración, sólo para que sepas donde queda):

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

Antes de empezar con el fichero de configuración, vamos a crear el servicio para arrancar room-assistant:

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

E introducimos la siguiente configuración al servicio:

[Unit]
Description=room-assistant service

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

[Installieren]
WantedBy=multi-user.target

Habilitamos el servicio, lo iniciamos (bueno antes de iniciarlo deberás tener el fichero de configuración para tu room-assistant que veremos a continuación) und wir überprüfen, ob es gestartet ist:

sudo systemctl enable room-Assistant.service
sudo systemctl start room-Assistant.service
sudo systemctl status raumassistent

Konfigurationsdatei für den Raumassistenten, von individuelles Beispiel, das heißt, ein Himbeer-Pi, der einzeln läuft, ohne mit dem Rest der Himbeeren zu sprechen, zu dem wir in "instanceName" einen Namen angeben werden, Wir werden die MAC-Adressen der Bluetooth-Geräte hinzufügen, um 'Adressen' zu verfolgen oder zu verfolgen., es ist wichtig, Wir werden unseren MQTT-Broker-Server angeben, um Ihnen die Daten zu senden:

global:
  Instanzname: Garaje
  Integrationen:
    - homeAssistant
    - bluetoothClassic
homeAssistant:
  mqttUrl: getötet://ADDRESS_IP_BROKER_MQTT:1883
  mqttOptions:
    Nutzername: NUTZER
    Passwort: PASSWORT
bluetoothClassic:
  minRssi: -20
  Adressen:
    - 'FD:72:03:6B:BC:XX '
    - 'SIE:4B:B2:2EIN:56:XX '
    - '7c:2F:80:EG:61:XX '
    - 'B4:C4:FC:64:19:XX '

Und dann übergebe ich dir einen Beispiel im Cluster-Modus aus der Konfigurationsdatei des Raumassistenten, Dies ist diejenige, die wir verwenden, wenn wir mehr als einen Raspberry Pi mit Raumassistent haben. Im Gegensatz zu den vorherigen, In diesem Fall müssen wir die IP-Adresse jedes Raspberry Pi in peerAddresses hinzufügen:

global:
   Gruppe:
     autoDiscovery: falsch
     Hafen: 6425
     PeerAddresses:
       - DIRECTION_RASPBERRY_PI_1:6425
       - DIRECTION_RASPBERRY_PI_2:6425
       - DIRECTION_RASPBERRY_PI_3:6425
       - DIRECTION_RASPBERRY_PI_4:6425
       - DIRECTION_RASPBERRY_PI_5:6425
   Instanzname: Cocina
   Integrationen:
     - homeAssistant
     - bluetoothClassic
homeAssistant:
   mqttUrl: getötet://ADDRESS_IP_BROKER_MQTT:1883
   mqttOptions:
     Nutzername: NUTZER
     Passwort: PASSWORT
bluetoothClassic:
   minRssi: -20
   hciDeviceId: 0
   Adressen:
    - 'FD:72:03:6B:BC:XX '
    - 'SIE:4B:B2:2EIN:56:XX '
    - '7c:2F:80:EG:61:XX '
    - 'B4:C4:FC:64:19:XX '

gut, Ja jetzt, nach dem Speichern und haben Sie Ihre Konfigurationsdatei, Denken Sie daran, den Dienst neu zu starten (oder Dämon) de Zimmerassistent.

Setup-Assistenten zu Hause,

Gut, wir haben es schon! Jetzt bleibt nur noch unser Lieber hinzuzufügen. liebte und begehrte Home Assistant die Geräte, die wir visualisieren möchten, nämlich, Mobiltelefone, Armbänder… Gehen wir also zur Konfigurationsdatei des Home Assistant, configuration.yaml und im Abschnitt „Sensor“’ Wir fügen den folgenden Block hinzu, Angabe des MAC und der Gerätebeschreibung:

Sensor:
...
  - Plattform: mqtt_room
    Geräte ID: "b4c4fc6419XX"
    Name: "Hectors Handy"
    state_topic: 'room_presence'
    Auszeit: 5
    away_timeout: 0
...

Und wie immer, Speichern Sie die Datei und starten Sie Home Assistant neu, um die Konfiguration zu laden. Wir können jede Entität, die wir registriert haben, einfach mit der Maus hinzufügen und nach Geräten vom Typ "room_presence" filtern..

und nichts, lass die Magie laufen, Wir werden sehen, wie abhängig davon, wo wir sind, Wir werden in dieser Geschichte den Zustand der Entität und ihre Positionierung sehen.

Wenn Sie viel von der Klammer verlieren und eine Grafana da draußen haben, Sie können zum Beispiel die Zeiten mit einer Käseansicht auf sehr einfache Weise visualisieren, und klar, Das hat eine Geschichte… Zu den Gerüchten, Ich habe mir die Zeit genommen, die ich im Badezimmer verbringe, hehe, und mit dieser Art von Abfrage hätten wir es:

SELECT-Status als Metrik, TIMESTAMPDIFF(ZWEITE, mir(zuletzt aktualisiert), max(zuletzt aktualisiert)) als Wert, last_changed as time_sec FROM gibt WHERE $ __ timeFilter an(erstellt) und state = 'Cocina' und entity_id = 'sensor.maixu_dordoka_room_presence' GROUP BY last_changed ORDER BY created DESC ;

gut, Zeit, ein Beispiel für Automatisierung zu sehen, In den Bildern sehen Sie es einfach, in diesem Fall ist es, nachts, wenn meine txabala oder ich im bett sind, wenn die Tür nicht verschlossen wurde, so nah es, zum Teil von den Haussprechern benachrichtigen, Senden Sie ein Telegramm, Blau, Blau…

Wie immer ein Vergnügen, Ich hoffe du genießt es, eine Umarmung und vielen Dank für die Likes in sozialen Netzwerken, die nichts kosten!! 🙂