不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

我曾經在少數派寫過不少關於將米家接入 HomeKit 的教程,儘管方法和步驟越來越簡單,但無一例外都需要透過程式碼來進行操作。這對於有程式設計基礎的朋友來說不難,但對大部分不懂程式碼的人來說就有較高的門檻。一個明顯的案例是,每當我發表完一篇教程後,私信裡都是各種求助,希望我能夠幫他們看看到底是因為什麼原因導致的程式碼報錯。

隨著智慧家居平臺和協議的日漸成熟,終於在如今,米家和 HomeKit 之間的互通迎來了一個新的維度:我們已經完全可以在圖形化的介面下,來實現過去這些繁瑣的操作。在這個過程中,你不會接觸到任何一條程式碼或指令碼,只需要用滑鼠輕點,就能完全絕大部分的工作。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

從 HomeBridge 到 Home Assistant

在過去,我選擇將米家接入 HomeKit 的方案一直是 HomeBridge。但這一次我們則要捨棄它,轉投到 Home Assistant 的懷抱中。關於二者的原理和差別,這裡就不展開細說,主要來了解一下,為什麼要轉投到一個新的平臺上。

首先,Home Assistant 豐富的開發者和生態環境,是這次能夠實現無程式碼操作的根本。雖然如今 HomeBridge 也在往無程式碼操作的方向努力,但由於不少舊外掛作者已經不再更新,自然就不會再支援圖形化編輯。所以,選擇 HomeBridge 大都還是無法擺脫寫 config。json 檔案的命運 —— 而這正好是新手最容易出錯的地方。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

標有 Verified 的就是可以圖形化操作的外掛,但是一些老舊的外掛就無法使用了

其次是 Home Assistant 更加豐富的接入型別。如果是用 HomeBridge,則每個裝置必須要有一個對應的外掛,否則便無法接入。例如米家後續推出的一些基於藍芽 Mesh 網路產品,HomeBridge 完全沒轍,至今都找不到對應的外掛。但 Home Assistant 屬於來者不拒,無論是 Zigbee、BLE 還是藍芽 Mesh,都可以接入。

最後,從功能性上來說,Home Assistant 也比 HomeBridge 要強大不少。畢竟前者本身就是一個開源智慧家居平臺,至今已經有 8 年曆史,它推出的時候蘋果的 HomeKit 可能還在玩泥巴,除了支援 HomeKit 橋接之外,還支援大量的智慧裝置和完整的自動化操作。而後者則更像是一個單純的「橋接器」,僅僅只是用來實現其他平臺的裝置接入到 HomeKit 這一個單獨的功能。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

開始操作

簡單鋪墊完成後,我們正式開始進入實操環節。由於裝置型別不同,具體的操作步驟可能會有變化,你可以自行根據自己的情況查詢適合自己的教程。

1。安裝 Home Assistant

安裝 Home Assistant 的方法有很多,官方文件給到的方法有四種:

直接在硬體裝置上安裝 Home Assistant 系統;

透過 Docker 這類的容器來安裝;

在傳統的 Linux 發行版機器上手動安裝;

在 Python 虛擬環境中安裝

這四種方案各有優缺點,我個人建議有樹莓派的朋友選擇第一種,有 NAS(或支援 Docker 且效能較強的路由器)的朋友選擇第一種或第二種。因為前者可以透過刷寫 SD 卡直接將 Home Assiatant 安裝在樹莓派上,後者可以在 NAS 中的 Docker 管理器中直接搜尋安裝或透過虛擬機器來安裝。它們都是裝好即用,不用再費時去做環境搭建,避免絕大部分的報錯。

如果上述兩個裝置都沒有,那麼最好的建議是購買一個,當然如果你要能找到一臺可以 24 小時執行的電腦也沒問題。另外,用後面兩種方法也可以安裝一個較為完整的 Home Assistant 環境,但是這就與我們「不涉及程式碼」的初衷相違背了。

所以這裡我們就以樹莓派和 NAS 做案例,簡單演示如何安裝 Home Assistant。

對於樹莓派方案,你需要準備一個樹莓派 3B 或樹莓派 4 (不然呢)、一個讀卡器和一條網線。需要注意的是,Home Assistant 對裝置的效能還是有一定需求的,儘量選擇配置更高一些的樹莓派 4,搭配一張 16G 以上的高速 SD 卡作為系統儲存,會讓後續操作順滑不少。

接著,到 Home Assistant OS 的 GitHub 釋出頁面下載對應你手中樹莓派的映象,並在電腦上用 balenaEtcher 刷寫到 SD 卡中。如果你拿不準到底要下哪一個,那麼根據你的樹莓派型號,在下面的連結就可以直接下載。

樹莓派 4:

https://github。com/home-assistant/operating-system/releases/download/7。0。rc1/haos_rpi4-64-7。0。rc1。img。xz

樹莓派 3:

https://github。com/home-assistant/operating-system/releases/download/7。0。rc1/haos_rpi3-64-7。0。rc1。img。xz

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

注意刷寫的目標磁碟不要選錯

刷寫完成後,將樹莓派接上電源和網線,啟動完成後在電腦的瀏覽器中輸入

homeassistant.local:8123

,即可進入到 Home Assistant 後臺管理介面。

對於方案二,操作就更加簡單了。由於我目前使用的是 NAS 品牌是威聯通 NAS,因此後面也將用它來舉例,其他品牌的 NAS 可以自行查詢對應的資料。

首先是透過 Docker 來安裝的方式。登陸到 NAS 後臺後,在儲存池的任意一個位置新建 homeassistant 共享資料夾,用於儲存 Home Assistant 所產生的配置檔案。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

例如我是直接建立在儲存池的根目錄下

接著,開啟 Container Station,然後點選左側的建立,搜尋 Home Assistant,選擇「Docker Hub」下的第一個搜尋結果,點選安裝。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

然後,選擇最新版本的映像,並按照下面的引數來進行設定。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

設定完成後,點選確認安裝,並等待安裝完成。完成後,在電腦瀏覽器中輸入你的

NAS IP 地址:8123

,就可以登陸到 Home Assistant 後臺管理頁面。

而透過虛擬機器來安裝,則需要先下載 Home Assistant 的虛擬機器映象。首先到這裡下載最新的 vmdk 虛擬機器檔案,然後解壓後上傳到 NAS 任意一個資料夾中。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

由於 NAS 中的虛擬機器檔案為 img 格式,因此在執行之前,我們需要進行一步轉換操作。開啟 Virtualization Station,然後點選「匯入 - 映像轉換器」,選擇你上傳的 vmdk 檔案和轉換後的儲存位置,點選確定並等待一段時間即可。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

完成之後,我們就可以開始建立虛擬機器了。同樣是在 Virtualization Station 中,點選「建立」,然後按照下面的圖片來進行設定。需要注意的是,啟動韌體一定要選擇 UEFI,否則必然出錯。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

這樣我們就成功建立了一個 Home Assistant 虛擬機器。在虛擬接列表中點選開始,然後開啟遠端桌面,等到介面中顯示了 ha > 即表示啟動完成。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

回到虛擬機器列表後,就可以找到 Home Assistant 的 IP 地址,在瀏覽器中輸入這個 IP 地址,然後加上

:8123

,就能進入到 Home Assistant 後臺管理介面了。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

不過,透過虛擬機器安裝的 Home Assistant 首次啟動需要等待大概 20 分鐘或更長

需要注意的是,透過 Docker 方案安裝的 HomeAssistant 是沒有 Supervisor 的(你可以理解為官方提供的一個外掛庫)。如果你只是為了和我一樣只是單純地想將米家的裝置接入到 HomeKit,不打算使用 HomeAssistant 的其它功能,那麼可以採用這個方案。否則,我強烈建議使用樹莓派來刷寫 HomeAssistant 的官方系統,或是用虛擬機器來安裝。

無論是何種方案,耗費的時長都不一定相同,且首次啟動 Home Assistant 也需要較長時間。在這之中影響的因素包括機器效能、硬碟速度和網路環境。如果某一步卡住了,可以耐心等待一段時間,或是試試萬能的重啟 / 重頭再來操作。

現在,我們安裝好了 Home Assistant,其實就已經完成了最難的一步,接下來的操作,就非常簡單了。

2。安裝 Xiaomi MIoT

能實現無程式碼安裝,除了 Home Assistant 外,另一位大功臣就是 Xiaomi MIoT 外掛。這個外掛採用了 MIoT 通訊協議,所有已接入米家的智慧裝置(注意是所有),無論是藍芽、藍芽 Mesh 還是 ZigBee 裝置,均可透過這個外掛快速接入 Home Assistant,而且還支援本地(區域網)和雲端兩種工作方式。

MIoT 通訊協議是小米智慧家居從 2018 年起推行的智慧裝置通訊協議規範,此後凡是已接入米家的裝置均可透過此協議進行通訊。此外掛按照 MIoT 協議規範與米家裝置或小米伺服器通訊,實現對裝置的狀態讀取及控制。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

https://github。com/ha0y/xiaomi_miot_raw/archive/refs/heads/master。zip

要安裝這個外掛也非常簡單,到上方連結下載外掛的壓縮包,解壓後在「xiaomi miot raw-master > custom components」資料夾中,找到「xiaomi miot raw」資料夾,將它複製到 Home Assistant 目錄中的「custom components」資料夾即可。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

最後,重新啟動 Home Assistant,外掛就成功安裝了。

如果 Home Assistant 目錄中沒有 custom components 資料夾,手動建立一個就可以了。鑰匙你不知道安裝目錄在哪,在 Home Assistant 後臺管理介面中點選「配置 - 資訊」,頁面中的「configuration。yaml 路徑」即是 Home Assistant 的安裝目錄。

除此之外,作者還提供了透過 HCAS 商店來安裝 Xiaomi MIoT 的方法。但這一方法需要科學上網的環境,對一些同學來說可能比較棘手,且耗費的時間可能還會更長,所以我認為最便捷保險方式式還是手動安裝。

對了,開發這個外掛的作者是一位叫 ha0y 的國人,在這裡向他表示由衷的感謝。

3。新增米家裝置

https://github。com/ha0y/xiaomi_miot_raw

這裡作者 ha0y 已經在 GitHub 頁面寫的非常詳細了,你可以直接學習。等你成功將米家裝置新增到 Home Assistant 之後,我們就可以進行下一步操作。

不過需要注意的是,Home Assistant 所支援的裝置型別並不如米家的豐富,因此一些不支援的裝置可能會被對映稱其他型別,例如空氣清淨機會被對映為風扇。不過不用擔心,這並不影響後續的操作。

目前,外掛所支援的裝置型別有(包括但不限於):

sensor:各種感測器

switch:開關、插座

light:燈

climate:空調、空調伴侶等

fan:風扇、空氣清淨機

cover:窗簾

camera:攝像頭

humidifier:加溼器、除溼器

media player:小愛音箱(支援紅外線控制)

route:路由器

vacuum:掃地機器人

water_heater:熱水器

binary_sensor - 馬桶蓋等

4。接入 HomeKit

新增好米家的裝置後,我們就可以著手將它們加入到 HomeKit 了。

在「配置 - 整合」中,點選右下角的新增整合,搜尋 HomeKit,然後選擇 HomeKit,便可以進入到最關鍵的一步。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

別選錯了

這時,Home Assistant 會提示我們「選擇要包含的域」。其實這句話的意思是,要將什麼型別的裝置新增到 HomeKit 中。這裡我建議新增基本的燈、開關、風扇、感測器和空調即可,其他裝置如果你有則可以按需新增(如窗簾、加溼器等)。

在選擇時,千萬不要一股腦全部勾選所有選項,因為 HomeKit 所支援的裝置型別相比米家和 Home Assistant 來說都非常少,所以如果你全部勾選,到時候你就會發現自己的家庭 App 中被對映多了一堆不知所云的裝置按鈕。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

接著,你可能還會遇到需要選擇包含或排除某個實體的操作,這裡也是很多人容易犯錯的地方。實體是 HomeAssistant 中的最小單位,表示某個裝置內的一種或多種屬性及狀態,如燈的亮滅、開關的閉合、掃地機器人的各種動作,以及天氣預報、電池電量、使用者這些引數等等。

一般來說,一個裝置可能會包含一個或多個實體。但是,千萬不要將「實體」和某個「米家裝置」劃等號,裝置是實體的上一層,屬於包含和被包含關係。而透過「選擇要包含的實體」這個功能,我們就可以手動設定讓哪些裝置顯示在家庭 App 中。

或許看到這裡你已經暈了,不用怕,我舉個例子,相信你看完就會馬上理解。我的小米空氣清淨機 2S 這一個「裝置」中,就包含開關 / 風速(風速最小就是關閉)、PM2。5、溫度、溼度、濾網使用時間和濾網剩餘壽命這六個「實體」。但是在我的房間裡,已經有了一個可以原生接入 HomeKit 且更精確的溫溼度計,所以我就可以在 HASS Bridge 的實體中選擇排除掉來自空氣清淨機的溫溼度資料,這樣就不會在家庭 App 的裝置狀態中看到兩個溫溼度的感測器了。

而對於 HomeKit 中沒有的裝置型別,像是「濾網壽命」和「濾網使用時間」這樣專案,則不會被新增到家庭 App 中。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

我這裡沒有選的原因是在上一步直接把整個感測器的域排除了

完成後,電腦上的操作就全部搞定了,HomeAssistant 就會在左側的「通知」介面下顯示 HomeKit 的配對碼。在 iPhone 或 iPad 上開啟家庭 App,掃描這個二維碼,上面這些選定的米家的裝置就會全部新增到 HomeKit 中了。

對了,如果你發現更改了 HomeKit 外掛的一些設定之後,家庭 App 中沒有及時更新,在整合頁面裡對它進行過載或禁用後再啟用,基本就能解決。如果依然沒有反應,重啟整個 Home Assistant 系統或是硬體裝置即可。而後續你在調整 HASS Bridge 是,還會在域選擇頁面下出現模式選項,保持預設即可,不要瞎改。因為只有「bridge」模式才能一次性橋接多個裝置,而「accessory」模式一次只能接入一個裝置。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

如果你的裝置比較多,那麼在改回 bridge 模式之後,就需要全部重新分配房間和改名……

總結

總的來說,相比此前跑程式碼可能會遇到的各種情況,這一次真的不難了,絕大部分情況下是真的可以一條程式碼和指令碼都遇不到,親自上手試試吧,感受一下成功的快樂。

順帶一提,之前我隨手在小米有品買的燈帶,找遍了 HomeBridge 外掛也沒有找到接入的方法。直到某天晚上我隨手試了一下 Home Assistant,沒想到只用 5 分鐘就搞定了。

可以說,有了 Home Assistant + Xiaomi MIoT 這一套強大的組合,小米的智慧家居幾乎可以隨便買,再也不用再擔心 HomeBridge 外掛不支援的問題,只要簡單幾步就能把它新增到 Home Assistant 中,同時立刻同步到家庭 App 上,享受雙平臺帶來的愉悅。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

題外話

我去翻了翻過去我在少數派寫過的文章,無意間發現閱讀量最高的一篇正好就是《如何讓米家裝置輕鬆接入 HomeKit?》,達到了 16 萬。

說實話,這個結果是讓我有點驚訝的,畢竟我一直以為我閱讀量最高的文章還是前年的年度徵文(不要問我為什麼不是去年,因為咕了)。不過這其實也反映出一個現象,我們對於多平臺智慧家居裝置的互通真的有非常高的需求,尤其是目前銷量和使用者佔比很高的小米米家和 Apple HomeKit。

在過去,我們總是要透過各種曲線救國的方法來實現這些功能。儘管今天已經進步到了不需要程式碼的地步,但卻距離我心中所想的「大一統」還是有很遙遠的距離。好在如今有了大廠牽頭的 Matter 協議,讓充滿了品牌和生態壁壘的智慧家居行業出現了一絲融合和統一的曙光。只希望即將到來的 Matter 能夠打破品牌的壁壘,將這些裝置都集合到一個控制平臺之下,讓這些繁瑣的操作成為歷史。

但從另一個角度來說,折騰的過程就是體會挫折與克服困難的過程。5 年前的那個冬天,我在幾乎沒有中文教程的情況下,努力了兩個下午,真的將一個 YeeLight 燈泡接入了 HomeKit,並激動地發了條影片朋友圈。在智慧家居還沒有像今天一樣普及的 2016 年,很多身邊的同學朋友都被這個操作給小小驚訝到,甚至有不少對科技從不關心的女生也好奇地來問我是怎麼做到的。

或許,從「無序生長、擴充套件橫行」到「統一標準,規範升級」,就是每個科技產品和服務的必經之路。也許在多年以後,智慧家居已經被 Matter 協議所引領,所有人都可以不用擔心品牌和生態隨意購買的時候,我們便不會再頻繁地回想起以前用智慧家居時,還有這麼多的品牌和協議需要去糾結。

不寫一行程式碼,輕鬆將米家智慧家居接入 Apple HomeKit

就像如今,可能已經沒有多少 iPhone / iPad 使用者再聽說過「越獄」和「美化」這個兩個詞了,但在學生時代,他們簡直是我每次 Apple 新品釋出會後最期待的事情。然而,隨著 iOS 的逐步完善的功能和更加規範的開放,曾經讓 iOS 使用者耳熟能詳的「紅雪」「綠毒」「盤古」和「太極」,都已經逐漸消散在了科技發展的歷史中。

說來一件有意思的事情是,之前有一位對科技並不感興趣的閨蜜來我家做客,看到我客廳上擺的一臺 iPhone 4S,好奇地問我,「這是喬布斯最後釋出的那臺手機嗎?」我說是。當我點亮這臺 iOS 6 系統的 iPhone 4S 時,她略帶驚訝地和我說:

原來以前的蘋果系統長這樣子啊。

作者:宛潼

責編:Tp

TAG: homeAssistantHomeKit裝置外掛