當前位置: 華文星空 > 知識

HomeBridge 操作指南:從零開始,將你的米家裝置接入 Homekit

2020-04-02知識

在 如何讓米家裝置輕松接入 HomeKit? 這篇文章中,我看到了大家對於 HomeKit 的熱情,不少小夥伴都表示,文章裏主要介紹了不同的方向,但在實際操作過程,想要一份更清晰的「說明書」。想來上一次寫接入 HomeKit 的文章已經是 2016 年,正好就趁著這個機會來更新一下。

這篇文章將從零開始,向你介紹如何透過在樹莓派安裝 HomeBridge,將幾個典型的米家裝置接入到 HomeKit 中。準備好了嗎?那我們話不說,直接開始吧。

你需要準備的東西

在開始之前,我們首先得購買對應的硬體裝置。在這個方案中,你需要準備的有這些東西:

  • 一台電腦(此處以 Mac 為例子)
  • 一個樹莓派(建議 3B+ 及以上)
  • 一張 16GB 以上的 TF 卡和讀卡器(用來給樹莓派裝系統)
  • 一根 MicroUSB 線(給樹莓派連線電源,如果是樹莓派 4,則需要準備一根 USB-C 線)
  • 一個安卓模擬器
  • 有了這些硬體裝置之後,我們就可以開始在電腦上進行操作了
  • 當然了,這裏只是以我的環境作為例子,如果你想在其他平台上安裝 HomeBridge 肯定也是沒問題的,官方也給出了對應的安裝指南。只不過考慮到要保持接入家居的即時可用性,就需要一台常開的裝置來執行 HomeBridge,所以樹莓派無論是在功耗還是價效比上,都是再合適不過的選擇。

    macOS 和 Linux 的小夥伴可以用系統內建的終端進行操作,而 Windows 的小朋友們可以選擇剛推出不久的 Windows Terminal。

    給樹莓派安裝系統

    首先自然是給樹莓派安裝 Raspbian 系統。開啟 這個網站,並選擇「Raspbian Buster with desktop」進行下載。

    至於為什麽選擇它的原因,主要有兩點:一是「Raspbian Buster with desktop and recommended software」解壓之後的系統映像比較大,會占用更多空間,而它所推薦的軟體都是我們不需要的;二是我並不確定 lite 版的系統是否缺失一些必要的支持,因此最保險的還是選擇「Raspbian Buster with desktop」版本的系統。

    下載好 zip 檔之後解壓,可以獲得一個 img 格式的映像檔。這時候將我們的 TF 卡連線到電腦上,開啟 balenaEtcher 這款軟體,選擇剛剛解壓好的 Raspbian 系統,將它刷進 TF 卡中。

    大約十分鐘之後,你就擁有了一張能夠讓樹莓派啟動的「系統槽」了。不過這時候先不要著急著給樹莓派開機,因為我們還需要做一些設定,好讓電腦能夠直接無線遠端連線到樹莓派,省去插拔 HDMI 和鍵鼠的麻煩。

    將 TF 卡重新連線到電腦,可以看到一個名為 boot 的磁盤。接著,我們開啟終端,依次輸入下面的程式碼:

    cd /Volumes/boot touch ssh touch wpa_supplicant.conf sudo nano wpa_supplicant.conf

    輸入完之後,會提示你需要密碼。這裏輸入你電腦的登陸密碼即可。需要提醒的是,輸入密碼的過程中終端不會顯示任何內容,輸入完回車就行了。完成之後,你會在終端進入到一個文字編輯器中。在編輯器內復制以下內容,並將對應 Wi-Fi 的 SSID 和密碼改成你家的。

    country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="你家Wi-Fi的名稱" psk="你家Wi-Fi的密碼" key_mgmt=WPA-PSK priority=1 }

    需要提醒的是,如果你家的 ssid 是隱藏的,那麽就需要在 priority=1 的後面加入一條 scan_ssid=1 的參數。

    設定完成後,按下 ⌃control+X ,然後輸入 y 並按下回車鍵進行保存,就可以將 TF 卡插入樹莓派,連線電源開機啟動了。回到 Mac 上,我們繼續用終端進行操作。

    安裝 HomeBridge

    要正式開始安裝 HomeBridge 了。跟著下面的步驟一步一步來,你也可以在一杯咖啡的時間裏,將 HomeBridge 輕松地安裝在樹莓派上。

    不過在此之前,你需要到路由器後台,找到樹莓派的區域網路 IP 地址。接著在終端內輸入

    ssh pi@樹莓派的IP地址

    隨後,電腦可能會向你問一個問題,不用管它問什麽,直接輸入 yes ,然後輸入連線樹莓派的 ssh 預設密碼:raspberry。

    再次需要提醒的是,輸入密碼的過程中終端不會顯示任何內容,輸入完回車就行了。如果出現了下面的界面,說明連線就成功建立了。

    第二步,是對樹莓派內建軟體源進行更換。由於眾所周知的原因,Raspbian 在更新軟體包時可能會遇到速度緩慢甚至是無法更新的問題,因此我們將國外的軟體源更換為國內的清華映像源,加快連線速度。替換軟體源的很簡單,按照下面的操作步驟執行即可。

    sudo nano /etc/apt/sources.list

    將原有的內容刪除,或是加 # 進行註釋,並替換為下面的內容:

    deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

    完成後,按下 ⌃control+X ,然後輸入 y 回車進行保存。接著,繼續修改 /etc/apt/sources.list.d/raspi.list 檔,輸入:

    sudo nano /etc/apt/sources.list.d/raspi.list

    將裏面內容用下面的內容取代,然後同樣用上面的方法進行保存:

    deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

    完成後,先進行一遍軟體源更新。在終端中依次輸入以下程式碼:

    sudo apt-get update sudo apt-get upgrade

    中途會詢問你,是否進行更新,輸入 y 之後回車即可。好了,等待十分鐘左右,你就可以將樹莓派裏的軟體包都更新到最新的版本了。

    現在,我們可以正式開始安裝 HomeBridge,話不多說,直接依次在終端中執行下面的程式碼:

    curl -sL https://deb.nodesource.com/setup_12.x | sudo bash - sudo apt-get install -y nodejs gcc g++ make python node -v sudo npm i -g npm sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x sudo hb-service install --user homebridge

    需要註意,第二步和第五步由於需要從國外的伺服器下載對應的軟體包,因此建議大家配置一下網路環境,不然可能會十分慢。其次,第三步中, node -v 的含義是為了檢視安裝的 node 版本。如果輸入之後得到類似 v12.X.X 的結果,那就說明 node 安裝成功,可以進行下一步。

    跑完所有程式碼之後,HomeBridge 便已經成功部署在了樹莓派上,接下來我們就可以安裝對應的外掛程式,將米家裝置接入到 HomeKit 中。

    安裝外掛程式,編寫 config.json

    得益於安裝了 homebridge-config-ui-x 這一款外掛程式,現在你可以開啟一個瀏覽器,輸入上面返回的任意一個 IP 地址,進入 HomeBridge 後台管理界面(預設的帳戶密碼都是 admin )。

    進入到這裏之後,我們就可以在外掛程式頁面搜尋對應的米家外掛程式進行安裝。這裏我推薦來自「deserteagle」(GitHub 使用者名稱為銀行碼 YinHangCode)的米家外掛程式,不僅種類較多,而且基本上都能長期穩定工作。這裏我們以米家空氣凈化器和米家空調伴侶作為例子,演示如何將它們接入 HomeKit 中。

    首先,在外掛程式頁面用關鍵詞搜尋到對應的外掛程式,點選安裝。兩款外掛程式安裝完成後,來到配置頁面,開始編寫 config.json。

    說到編寫 config.json 這個檔,就到了新手最頭疼的地方。但其實不用害怕,都是四級水平不到的英語,理解起來並不困難。 但請一定一定要認真閱讀一遍作者的 Readme 和 config 例子,不然你必然會出現錯誤。

    這裏我貼出我的一部份 config.json,對裏面的內容進行細致的講解。不過需要註意的是,json 格式的檔並不支持註釋,如果需要使用這份 config.json 檔,除了需要將對應內容更改為你的裝置之外,還需要 刪除掉 # 和後面的中文註釋

    另外還需要提醒大家的是,json 檔的 {} [] , 等符號一定不能弄錯,否則一定會報錯。如果是執行時提示 config 檔出現錯誤,首先檢查自己是不是哪裏打多了一個 , ,或者是哪裏遺漏了一個括弧,再檢查語法是否正確。

    { "bridge": { #homebridge基礎設定,大部份都不需要修改 "name": "HomeBridge", "username": "00:00:00:00:00:02", "port": 58888, "pin": "199-71-226" #你在家庭套用進行配對時的配對碼,支持自訂 }, "platforms": [ { "platform": "MiAirPurifierPlatform", #外掛程式平台名稱,固定不可更改 "deviceCfgs": [ { "type": "MiAirPurifier2S", #型號名稱,固定不可更改 "ip": "192.168.1.195", #空氣凈化器的IP地址 "token": "b5d7120997c45761f3adac05887c5fc2", #空氣凈化器的token "airPurifierDisable": false, #是否在家庭套用中不顯示空氣凈化器 "airPurifierName": "空氣凈化器", #在家庭套用中顯示的名稱 "silentModeSwitchDisable": false, #是否在家庭套用中不顯示空凈睡眠模式開關 "silentModeSwitchName": "空凈睡眠模式", #在家庭套用中顯示的名稱 "temperatureDisable": false, #是否在家庭套用中不顯示空凈檢測的環境溫度 "temperatureName": "溫度", #在家庭套用中顯示的名稱 "humidityDisable": false, #是否在家庭套用中不顯示空凈檢測的環境濕度 "humidityName": "濕度", #在家庭套用中顯示的名稱 "buzzerSwitchDisable": true, #是否在家庭套用中不顯示空凈的靜音開關 "buzzerSwitchName": "MiAirPurifier2S Buzzer Switch", #在家庭套用中顯示的名稱 "ledBulbDisable": true, #是否在家庭套用中不顯示空凈的螢幕顯示開關 "ledBulbName": "空氣凈化器顯示器", #在家庭套用中顯示的名稱 "airQualityDisable": false, #是否在家庭套用中不顯示空凈檢測的空氣品質 "airQualityName": "空氣品質" #在家庭套用中顯示的名稱 } ] },{ "name": "Config", #這部份不需要修改,是homebridge UI外掛程式自動生成的 "port": 8581, "auth": "form", "theme": "pink", "tempUnits": "c", "platform": "config" } ], "accessories": [ #是使用「platform」還是「accessories」,需要根據外掛程式的說明進行選擇 { "accessory": "MiHeaterCooler", #外掛程式名稱,固定不可更改 "name": "空調", #在家庭套用中顯示的名稱 "address": "192.168.1.146", #空調伴侶的IP地址 "token": "5ff11db226e994e41a4b7653cd713c6f", #空調伴侶的token "ratedPower": 735 #空調的額定功率,非必須參數 } ] }

    其中,獲得 token 的操作相對麻煩一些,但卻又是米家裝置接入 HomeKit 必不可少的一項參數。那麽,要如何獲取對應裝置的 token?如果你不了解,可以跟著下面的步驟操作:

  • 第一步,我們開啟準備好的安卓虛擬機器,安裝一個舊版的米家 app( 必須要舊版 ,建議找 2017 年左右的版本);
  • 第二步,開啟米家 App,登陸你的帳號,檢查你需要接入的裝置是否顯示在 App 中,然後簡單進行操作,確定裝置能夠響應;
  • 第三步,安裝 RE 瀏覽器,進入到 /data/data/com.xiaomi.smarthome/databases/ 目錄下,找到 miio2.db 檔,並將它復制到電腦上;
  • 第四步,開啟 這個網站,將 miio2.db 檔上傳,然後點選 submit,就可以獲取到所有裝置的 token 了。建議將這份表格保存好,以備後期萬一出現 bug 時進行修復。
  • 至此,將米家裝置接入 HomeKit 的所有操作完成。你終於可以拿起 iPhone,將裝置加入到家庭套用中,享受 Siri、快捷指令和家庭自動化帶來的便利體驗了。

    總結

    文章的篇幅看起來有一些長,但實際上莫過於就是三大步:「裝系統 - 裝 HomeBridge - 裝外掛程式並適配」,熟練之後,你可以輕松在半小時不到的時間裏接入數個米家裝置。

    但落實到每一步來說,都需要你的細心和耐心,如果中途出錯,不要急於放棄,好好閱讀返回的報錯內容,並學會用 Google、百度搜尋一下,或者是再仔細閱讀外掛程式開發者所寫的 Readme 檔,看看問題是出在了哪裏,對癥下藥進行解決。

    當然,如果實在是有一些你無法找到的 config.json 錯誤,私信我,帶上你的 config 檔和報錯內容,我也很樂意提供幫助。

    也是不禁回想起過去,為了折騰一個 YeeLight 彩光燈,而耗費的一天時間。雖說現在 HomeBridge 已經默默為我服務多年,但當年成功點亮燈泡那一刻的喜悅,至今都記憶猶新。