眾所周知,蘋果手機的查詢功能,可以讓我們方便的查詢家人以及朋友的位置資訊,但前提是大家使用的都是iPhone。如果使用Android手機,是否可以實現相同的功能呢?並且,如果家人既有iPhone,又有Android,如何實現在同一個介面中查詢位置呢?其實,透過Home Assistant就可以實現這些功能。
關於如何安裝Home Assistant的介紹,請參考文章:智慧家居Home Assistant閘道器:安裝篇
以下圖片中展示的是透過Home Assistant實現的效果,既可以在地圖上查詢家人的位置,也可以根據狀態顯示家人是在家還是離開。
下面,介紹一下如何在Home Assistant中實現位置的定位和追蹤。
iOS
對於iOS手機,只需要安裝Home Assistant客戶端軟體,並且Home Assistant的定位服務許可權設定為始終允許。iPhone手機就會自動上報位置給HA閘道器。
iPhone手機註冊到HA閘道器後,就會出現實體ID: device_tracker.iPhone,可以透過該實體ID來配置位置資訊。
Android
對於Android手機,由於Home Assistant客戶端的定位服務依賴於Google Play Service,因此,在國內無法使用Home Assistant的定位功能。但是,我們可以使用另外一個開源軟體OwnTracks,該軟體可以與Home Assistant整合。
首先,OwnTracks for Android有兩個版本:gms和oss,gms依賴於Google Play Service,並且使用的是谷歌地圖,而oss不需要依賴於Google Play Service,並且使用的地圖是 OpenStreetMap。所以,我們應該下載並安裝oss版本的OwnTracks。
安裝成功後,需要將連線模式更改為HTTP。
Host設定為HA閘道器的Web API地址,具體內容請參考以下HA閘道器配置章節的配置OwnTracks整合。
另外,建議可以將上傳資料的間隔設定為300s,預設為900s。
提示:OwnTracks分為幾種執行模式:
Move mode: 只能當OwnTracks在前臺執行的時候,才能啟用Move模式。這種模式下,當裝置出現位置變化,就會發布位置訊息。好處是資料比較精確,但是比較耗電。
Significant location change mode: 該模式可以在後臺執行,並且只有當距離變化大於500米時(iOS,Android略微不同),才會按照一定的時間間隔,例如5分鐘,釋出位置訊息。這種模式比較省電。
對於Android,建議將locatorDisplacement設定為200,該引數的作用是當距離大於200米,OwnTracks才會釋出位置訊息。
Manual mode: 在OwnTracks應用中手動釋出位置訊息。
Quiet mode: 與Manual mode相同,但是不釋出區域事件。
一般建議使用Significant location change mode。
HA閘道器配置
- 配置OwnTracks整合
首先,在HA閘道器中,需要先配置與OwnTracks的整合,這樣Android手機才會自動將位置資訊上傳到HA閘道器。
在配置 - 整合 - 新增整合中,查詢並新增OwnTracks。新增成功後,會出現提示框,顯示HA閘道器的Web API地址,該地址必須記錄下來,配置OwnTracks客戶端時,需要使用。
Web API地址的格式如下:
https://ha.example.com:8123/api/webhook/1323dcce3365adfaf3dafsaf511afdaf8e3259dfafafafasf121324454
如果忘了記錄地址,可以到Home Assistant的配置檔案所在目錄下,開啟檔案.storage/core.config_entries,查詢關鍵字OwnTracks,找到webhook_id對應的值,然後替換URL中webhook/後面的id就可以了。
- 建立使用者
透過建立使用者,可以將人和裝置關聯起來,這樣就可以定位人員的位置了。對於同一個使用者,可以定義多個追蹤裝置,除了GPS以外,還可以定義藍芽,Wi-Fi等。
- 建立檢視
我們可以建立兩種檢視,一種是地圖卡片,會將人員顯示在地圖上。配置卡片時,需要將實體設定為需要追蹤的人員。
另外一種檢視是概覽檢視,可以顯示人員的位置狀態,例如在家,離開。配置卡片時,需要將實體設定為需要追蹤的人員。