ホームアシスタントで自宅の位置を追跡する

この投稿では、非常に興味深いものを見ていきます, そして、それは特定のBluetoothデバイスを追跡または追跡する機能にすぎません (スマートブレスレット, 携帯電話…) 一軒あたり, 自動化を実行するために常に位置を特定することを目的としています.

私が言ったこと, 私たちは皆、どこにでもついて行く携帯電話を持っています, または、スマートブレスレットまたはスマートバンドを着用します, これらのデバイスはすべてBluetoothを搭載しています, また、各デバイスのMACアドレスを使用して、自宅内でデバイスを見つけることができます. 何のためですか? まあ、まず統計で, どれだけの時間をどこで費やしたかを視覚化できます, とても不思議です. もちろん、自動化を行うこともできます, 例えば, 夜で部屋にいて、家の玄関のドアがロックされていない場合, まあ、それは閉じてください. 朝、キッチンに着いたら、おはようございますと言います, 私はあなたにニュースを載せました… または私は何を知っていますか, 私たちを直接描くために フロアマップ o私たちの家のアニメーションフロアプラン, ソファに座る, 食べること, 眠り… 😉 目, 私たちはまた、私たちの動物を見つけることができること, これらのBluetoothのトラッカーを置くと, そして、猫/犬が部屋に入った場合、それはすべきではありません, 自宅のスピーカーに教えてもらいましょう.

これはどのように行うのですか? 私たちは、家の各部屋に特定のデバイスを配置する必要があると考えなければなりません, 各部屋に, 風呂… 配置したい場所. そして、解決策は明らかに各デバイス間で話す必要があります, どちらに最も近いかを知るために.

これらのデバイスがない場合、個人的に最善の解決策は、頼ることです ESP32-mqtt-ルーム, ESP32チップをベースにしたボード、とりわけ非常に安価なボードを使用すると、家の周りに簡単に配布して隠すことができます. 私はこのソリューションを約1年間使用したと言わざるを得ません, 結局、今日この投稿で紹介するソリューションに移行しました, 私は家の周りにいくつかのRaspberry Piが散らばっているので, この機能を追加するのに費用はかかりませんでした. ある日、退屈したらESP32-mqtt-roomに投稿します, これもとてもクールです.

私が言ったこと, 今日は、 ルームアシスタント, 素晴らしい解決策でもあります, そして、私たちは私たちの最愛のラズベリーパイにインストールして実行できること, そしてもちろん、前のオプションと同様に, ホームアシスタントに完全に統合されているので、ご期待ください!

Raspbery Piへのインストール,

開始! 私たちが持っている各RaspberryPiでこれらの手順に従い、ルームアシスタントをインストールします, まず最初に, NodeJSのインストール:

カール -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 アップデート && 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ルームアシスタント, クラス-トランスフォーマー y クラスバリデーター:

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 'どのノード')
sudo setcap cap_net_raw+EIP $(eval readlink -f 'どのHCIツール')
sudo setcap cap_net_admin+eip $(eval readlink -f 'どのHCIconfig')

Sinceramente no recuerdo muy bien porqué hice lo siguiente, Pero lo Tengo Documentado 🙂

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

room-assistant のディレクトリと設定ファイルを作成します (注意してください、次に設定ファイルを入力します, それがどこにあるかを知るために):

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

設定ファイルを使用する前に, ルームアシスタントを起動するサービスを作成しましょう:

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

そして、サービスに以下の構成を導入します:

[単位]
description=room-assistantサービス

[サービス]
ExecStart=/usr/bin/room-assistant WorkingDirectory=/home/pi/room-assistant Restart=常に RestartSec=10 User=pi

[取り付ける]
WantedBy=マルチユーザー.ターゲット

サービスを有効にします, 私たちはそれを始めました (さて、それを始める前に、以下に示すルームアシスタントの設定ファイルが必要です) そして、それが引き裂かれていることを確認します:

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

ルームアシスタント設定ファイル, の 個々の例, それです, Raspberry Pi を個別に動作させる, ラズベリーズの他のメンバーと話すことなく, これは 'instanceName'で名前を付けます, 追跡するBluetoothデバイスのMACアドレスまたは追跡するMACアドレスを「アドレス」に追加します, そして重要, MQTTブローカーサーバーを示します, データを送信するため:

グローバル:
  インスタンス名: ガレージ統合:
    - ホームアシスタント
    - bluetoothクラシックホームアシスタント:
  mqttUrl の: MQTTの://DIRECCIÓN_IP_BROKER_MQTT:1883
  mqttオプション:
    ユーザー名: USERNAMEパスワード: bluetoothClassic パスワード:
  minRssi: -20
  アドレス:
    - 'FD:72:03:6B:紀元前:XX'
    - 'EA:4B:B2 の:2宛先:56:XX'
    - '7C:2F:80:EC事業:61:XX'
    - 'B4:C4の:FCの:64:19:XX'

そして、ここにがあります クラスター・モードの例 ルームアシスタント設定ファイルの, これは、ルームアシスタント付きのRaspberry Piが複数ある場合に使用するものになります. 前のものとは異なり, この1つでは、各RaspberryPiのIPアドレスをpeerAddressesに追加する必要があります:

グローバル:
   クラスター:
     オートディスカバリー: False ポート: 6425
     ピアアドレス:
       - 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
   インスタンス名: キッチンの統合:
     - ホームアシスタント
     - bluetoothクラシックホームアシスタント:
   mqttUrl の: MQTTの://DIRECCIÓN_IP_BROKER_MQTT:1883
   mqttオプション:
     ユーザー名: USERNAMEパスワード: bluetoothClassic パスワード:
   minRssi: -20
   hciDeviceId (英語): 0
   アドレス:
    - 'FD:72:03:6B:紀元前:XX'
    - 'EA:4B:B2 の:2宛先:56:XX'
    - '7C:2F:80:EC事業:61:XX'
    - 'B4:C4の:FCの:64:19:XX'

まぁ, 今はい, 設定ファイルを記録しておいていただいた後, サービスを再起動することを忘れないでください (または悪魔) by ルームアシスタント.

ホームアシスタントの設定,

まぁ, 私たちはすでにそれを持っています! 今残っているのは、私たちの愛する人を追加することだけです. 愛され、望まれていたホームアシスタント 私たちが視覚化したいデバイス, これは, 携帯電話, ブレスレット… それでは、HomeAssistant構成ファイルに移動しましょう, configuration.yaml と 'Sensor' セクション’ 次のブロックを追加します, MACとデバイスの説明:

センサー:
...
  - プラットホーム: mqtt_room device_id: "b4c4fc6419XX"
    名前: 'Teléfono móvil de Héctor'
    state_topic: 'room_presence'
    timeout: 5
    away_timeout: 0
...

そしていつものように, ファイルを保存し、Home Assistantを再起動して設定を読み込みます. 登録した各エンティティは、マウスで「room_presence」タイプのデバイスでフィルタリングすることで簡単に追加できます.

そして何もない, 魔法を走らせる, 私たちは、私たちがどこにいるかに応じて、どのように見ていきますか, この履歴では、エンティティの状態とその位置を確認します.

行き過ぎてグラファナが転がっている場合, たとえば、チーズを眺めながら、非常に簡単な方法で時間を視覚化できます, そしてもちろん, これには歴史があります… ゴシップに, トイレで過ごす時間を奪ってしまいました, 笑, そして、この種のクエリでは、それを手に入れることができます:

メトリックとして状態を選択, タイムスタンプ差分(秒, 分(last_updated), マックス(last_updated)) 値として, last_changed time_sec 州 どこから $__timeFilter(作成) and state = 'Cocina' and entity_id = 'sensor.maixu_dordoka_room_presence' GROUP BY last_changed ORDER BY created DESC ;

あ、まあ, 自動化の例を見てみましょう, 画像では、簡単に確認できます, この場合は、, 夜です, 私のチャバラまたは私がベッドにいるとき, ドアがロックされていない場合, まあ、閉じてください, 私も自宅のスピーカーで通知しました, 電報を送る, 何とか, 何とか…

いつものように喜び, 楽しんでいただければ幸いです, ハグと、費用がかからないソーシャルネットワークのいいねに感謝します!! 🙂

おすすめの投稿

著者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 私に連絡することを躊躇しないでください, できる限りお手伝いします, シェアリングは生きていること ;) . ドキュメントを楽しむ!!!