:::

我能夠用手機的藍芽訊號判斷是否在家嗎? / Can I Determine the Location via Phone' Bluetooth Signal?

2023-0423-152948.png

簡單來說,不行。


手機的藍芽地址 / The MAC address on a phone bluetooth 

如果要使用手機的藍芽訊號來判斷所在位置,那麼必須要先確定那個才是「這臺手機」的藍芽訊號。

https://stackoverflow.com/a/61825938

https://stackoverflow.com/a/61825938

一般來說,我們是用MAC地址來分辨網路上的設備。不過Android 6.0之後,為了避免軟體侵犯使用者隱私,系統關閉了從軟體取得硬體資訊的途徑。不過就算是手機自己不知道自己的硬體資訊,我們還是可以從外部偵測到手機的MAC位址。畢竟沒有MAC位址就沒辦法連線。

https://community.home-assistant.io/t/track-phones-using-bluetooth/472873/2

https://community.home-assistant.io/t/track-phones-using-bluetooth/472873/2

儘管如此,現今大多手機都使用了隨機MAC地址的技術,導致每次手機的藍芽位址都不太一樣,那就自然無法用手機藍芽的MAC地址來定位了。

其他方案 / Other solutions

https://play.google.com/store/apps/details?id=io.homeassistant.companion.android&hl=zh-TW

https://play.google.com/store/apps/details?id=io.homeassistant.companion.android&hl=zh-TW 

原本我使用手機的Home Assistant APP作為位置判斷。這個APP大多時候運作並沒有什麼問題,位置運作能夠正常使用。不過手機重新啟動的時候,Home Assistant通常不會自動啟動,設定在APP上的感應器就不會有反應。

太仰賴手機似乎有點不妙,所以我才開始想有沒有其他方案。

https://www.youtube.com/watch?v=qiSkDGU6gLI 

很久以前我就看過Home Assistant利用ESP32來追蹤藍芽裝置的影片,這邊是用小米手環來做定位。就跟大部分的做法一樣,我們要先取得手環的MAC地址,然後就能用訊號強度來判斷該裝置是否在家。

可惜這個方法不能用在手機上。


https://youtu.be/Z_xtnzmh49M?t=21 

如果只是要個能夠用來偵測藍芽訊號的裝置的話,那是不是買個藍芽防丟器就好了呢?但就如神奇買家評測的結果一樣,為了省電,當它處於待機狀態的時候,其實是不會發出藍芽訊號,也就失去了用它判斷位置的意義。

其他還有些判斷位置的方案:

  • 實體按鈕式:按一下出門,按一下回家。
  • NFC按鈕式:用NFC感應,第一次感應出門,下一次感應回家。
  • 電子鎖:開門表示離開家裡,電子鎖解鎖表示回家。

至於紅外線熱度感測器跟毫米波感測器肯定不是好做法,真的。

只是要判斷人是不是在家,總覺得越來越複雜了orz


最後要來問大家的是:你有用過自動感應的智慧家居嗎?你用過那種的感應器呢?

歡迎下面留言喔!