米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

在 如何讓米家設備輕鬆接入 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」進行下載。

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

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

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

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

<code>cd /Volumes/boot
touch ssh
touch wpa_supplicant.conf
sudo nano wpa_supplicant.conf/<code>

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

<code>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
}/<code>

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

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

就像上面這樣

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

安裝 HomeBridge

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

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

<code>ssh pi@樹莓派的IP地址/<code>

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

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

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

<code>sudo nano /etc/apt/sources.list/<code>

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

<code>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/<code>
米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

<code>sudo nano /etc/apt/sources.list.d/raspi.list/<code>

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

<code>deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui/<code>
米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

<code>sudo apt-get update
sudo apt-get upgrade/<code>

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

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

<code>curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -sudo apt-get install -y nodejs gcc g++ make pythonnode -vsudo npm i -g npmsudo npm install -g --unsafe-perm homebridge homebridge-config-ui-xsudo hb-service install --user homebridge/<code>

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

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

安裝插件,編寫 config.json

得益於安裝了 homebridge-config-ui-x 這一款插件,現在你可以打開一個瀏覽器,輸入上面返回的任意一個 IP 地址,進入 HomeBridge 後臺管理界面(默認的賬戶密碼都是 admin)。

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

首先,在插件頁面用關鍵詞搜索到對應的插件,點擊安裝。兩款插件安裝完成後,來到配置頁面,開始編寫 config.json。

米家設備也能喊 Siri 控制,手把手教你把米家設備接入 Homekit

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

這裡我貼出我的一部分 config.json,對裡面的內容進行細緻的講解。不過需要注意的是,json 格式的文件並不支持註釋,如果需要使用這份 config.json 文件,除了需要將對應內容更改為你的設備之外,還需要

刪除掉 # 和後面的中文註釋

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

<code>{    "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 #空調的額定功率,非必須參數        }    ]}/<code> 

其中,獲得 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 已經默默為我服務多年,但當年成功點亮燈泡那一刻的喜悅,至今都記憶猶新。


分享到:


相關文章: