打造舒適的 WFH 智慧居家環境,控制家電盡在指尖

ZhgChgLi
ZRealm Life.
Published in
32 min readApr 20, 2020

示範使用樹莓派當 HomeBridge 主機,將所有米家家電串上 HomeKit

photo by picjumbo.com

關於

因為疫情的關係,在家時間變長了;尤其是要 Work From Home 的話,家裡的電器設備最好都能在 APP 上智能控制,就不用一下子離開去開燈、一下子去開電鍋…等等,很浪費時間。

之前寫過一篇「智慧家居初體驗 — Apple HomeKit & 小米米家,初試使用 HomeBridge 將小米家電串上 HomeKit,實證理論上可行,但實際應用提到的不多,今天這篇算是綜合前篇的進階完整版,包含選擇樹莓派當主機的話該怎麼設定,從頭到尾手把手教學。

起因是最近換了 iPhone 11 Pro 能支援 iOS ≥ 13 捷徑的 NFC 自動化功能,就是手機感應到 NFC Tag 就能執行相應的捷徑;雖然可以直接拿舊的悠遊卡當 NFC Tag,但太占空間也沒那麼多張卡;我去光華問了一圈都沒有再賣 NFC Tag 感應貼紙,最後才在蝦皮找到 $50 一張,買了 5 張來玩玩,賣家還很貼心的幫我用顏色區隔開。

*NFC 自動化功能是綁機型的,只有 iPhone XS/XS max/XR/11/11pro/11pro max 支援這個功能,之前拿 iPhone 8 完全沒 NFC這選項。

稍微把玩了一下發現有個問題,就是執行米家 APP 的捷徑時一定要打開「執行時顯示」選項(否則不會真的執行),感應到 Tag 要執行時還要解鎖 iPhone 、執行時也會開啟捷徑,無法在後台直接感應執行;另外實測了如果捷徑是原生蘋果的服務(如:HomeKit 的家電)就能在背景&免解鎖下直接執行;而且 homeKit 的反應速度、穩定度都比米家好很多。

這在爽度上有很大的差別,所以就又深入研究了將米家智慧家居系列的產品都接上 HomeKit,有支援 HomeKit 的就直接綁定本篇不贅述;不支援的就照此文教學也一起綁定上去!

我的米家智慧家居項目

  1. 米家智慧攝影機 雲台版 1080P
  2. 米家直流變頻電風扇
  3. 米家 LED 智慧檯燈
  4. 小米空氣淨化器 3
  5. 米家檯燈 Pro(本身就支援 HomeKit)
  6. 米家 LED 智慧燈泡 彩光版 * 2 (本身就支援 HomeKit)

運作原理

做了一張簡易的參考圖,如果智慧家電有支援 HomeKit 就直接串上去、不支援的智慧家電透過架設「HomeBridge」服務主機(要一直開機)也能橋接串上去;在同一個網路環境下(EX: 同個 WiFi)iPhone 可以自由地控制 HomeKit 中的所有家電項目;但若在外部網路,如 4G 行動網路情況下,就需要有一台 Apple TV/HomePod 或 iPad 當家庭中樞主機,在家待命(一樣要一直開著)才能在外面控制家中的 HomeKit,若無家庭中樞在外面打開家庭 APP 會顯示「無回應」。

*若是米家的話,會經由米家伺服器控制家裡的電器,要說的話會有安全問題,資料都要經過大陸

需求環境

所以一共有兩個設備要一直開著待命,一台是 Apple TV/HomePod 或 iPad 家庭中樞主機;這部分目前無解,無法用其他方式模擬,只能想辦法取得這些設備,如果沒有就只能在家使用 HomeKit

另一台只要是能 24 hr 待命的電腦(如您的 iMac/MacBook)、閒置的主機(舊的 iMac、Mac Mini)或樹莓派都可以。

*windows 系列未嘗試,不過應該也可以!

亦或是你想玩玩也可以直接用目前的電腦來用(可搭配前篇文章一起服用)。

本文將以樹莓派(Raspberry Pi 3B)、使用 Macbook Pro (MacOS 10.15.4) 操作下作示範,從設定樹莓派的環境從頭開始講;若不是使用樹莓派的朋友可以直接略過跳到 HomeBridge 串接 HomeKit 的部分(這裡都一樣)。

Raspberry Pi 3B (special thanks to Lu Xun Huang)

若是使用樹莓派還需要一張 micro SD 記憶卡(不用太大,我用 8G)、讀卡機、網路線(設定用,之後可連 WiFi);還有樹莓派需要的軟體:

  1. 樹莓派桌面版作業系統(方便大家入門,使用 GUI 版)
  2. Etcher 燒錄軟體

樹莓派環境設定

燒錄作業系統

下載完需求的兩個軟體後,我們先將記憶卡放入讀卡機插上電腦;打開 Etcher 程式(balenaEtcher)

第一項選擇剛下載的樹莓派作業系統「xxxx.img」、第二項選擇你的記憶卡裝置,然後點擊「Flash!」開始燒錄!
此時會跳出要你輸入 MacOS 的密碼,輸入後按「Ok」繼續。
燒錄中…請稍候….
驗證中…請稍候….
燒錄成功!

*若有出現紅色的 Error ,可嘗試將記憶卡格式化後再次燒錄。

重新將讀卡機接上電腦,並在記憶卡內容目錄下建立一個空的 「ssh」 檔案(或點此下載)內容空白、不用副檔名,就是個「ssh」檔;讓我們可以用 Terminal 連線進樹莓派。

ssh

設定樹莓派

將記憶卡退出,插入樹莓派上並接上網路線,然後通電開機;並讓 MacBook 跟樹莓派在同個網路環境下。

查看樹莓派分配到的 IP 位置

得到 樹莓派分配到的 IP 位置是:192.168.0.110 (本文所有出現的 IP 請自行更換成你查到的結果)

建議將樹莓派設定為指定/保留 IP,否則開機重連後 IP 位置可能會變動,要重新查。

使用 SSH 連入樹莓派進行操作

打開 Terminal 輸入:

ssh pi@你的樹莓派IP位址

有詢問就輸入 yes ,密碼輸入預設密碼:raspberry

連線成功!

*若有出現 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 之類的錯誤訊息就先去 /Users/xxxx/.ssh/known_hosts 用文字編輯器打開清空即可

樹莓派基本工具安裝、設定

  1. 輸入以下指令安裝 Vim 編輯器:
sudo apt-get install vim

2.解決以下語系警告:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_LANG = "zh_TW.UTF-8",
LANG = "zh_TW.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

輸入

vi .bashrc

按「Enter」進入

按「i」進入編輯模式

移動到文件最底部,加上一行「export LC_ALL=C

按「Esc」輸入「:wq!」儲存退出。

再下「source .bashrc」更新即可。

3.安裝 nvm 管理 nodejs/npm:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

4.用 nvm 安裝最新版 nodejs

nvm install 12.16.2

*這邊選擇安裝「12.16.2」版本

5.確認環境安裝完成:

輸入以下指令

npm -v

node -v

確認

沒錯誤訊息即可!

6.建立 nodejs 連結

輸入以下指令

which node

取得 nodejs 所在路徑資訊

再輸入

sudo ln -fs 這邊貼上你 which node 查到的路徑(不用"雙引號) /usr/local/bin/node

建立連結

設定完成!

啟用樹莓派 VNC 遠端桌面功能

這邊我們雖然是裝 GUI 版,你當然可以直接將樹莓派接上鍵盤、HDMI 當一般電腦使用,但為了方便我們將使用遠端桌面的方式控制樹莓派。

輸入:

sudo raspi-config

進入設定:

選擇第五項「Interfacing Options
選擇第三項「P3 VNC
使用 「」選擇「Yes」打開
VNC 遠端桌面功能啟用成功!
使用 「 」直接切到「Finish」退出設定介面。

將 VNC 遠端桌面服務加入到開機自動啟動項

我們希望 VNC 遠端桌面服務是樹莓派開機後就自動啟用的。

輸入

sudo vim /etc/init.d/vncserver

按「Enter」進入

按「i」進入編輯模式

#!/bin/sh
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop vncserver
### END INIT INFO

# More details see:
# http://www.penguintutor.com/linux/vnc

### Customize this entry
# Set the USER variable to the name of the user to start vncserver under
export USER='pi'
### End customization required

eval cd ~$USER

case "$1" in
start)
su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1024x768 :1'
echo "Starting VNC server for $USER "
;;
stop)
su $USER -c '/usr/bin/vncserver -kill :1'
echo "vncserver stopped"
;;
*)
echo "Usage: /etc/init.d/vncserver {start|stop}"
exit 1
;;
esac
exit 0

「Commend」+「C」、「Commend」+「V」複製貼上以上內容進去,按「Esc」輸入「:wq!」儲存退出。

再輸入:

sudo chmod 755 /etc/init.d/vncserver

修改文件權限。

再輸入:

sudo update-rc.d vncserver defaults

加入到開機自動啟動項目。

最後輸入:

sudo reboot

重新啟動樹莓派。

*重新啟動完成後,再照之前的步驟重新使用 ssh 連線進來。

使用 VNC Client 進行連線:

這邊使用的是 Chrome 的 APP 「VNC® Viewer for Google Chrome™」,安裝完啟動後,輸入 樹莓派 IP 位置:1,請注意後面的 Port:1 要加上!

*我使用 Mac 自帶的 VNC:// 無法連線,不確定原因。

點選「Connect」。
點選「OK」。
輸入登入帳號密碼,同 SSH 連線,帳號 pi 預設密碼 raspberry
成功連入!

完成樹莓派初始化設定:

再來都是圖形介面!很容易!

設定語言、地區、時區。
更改樹莓派預設密碼,輸入你要設定的密碼。
直接下一步「Next」。
設定使用 WiFi 連線,之後就不用在插線了。

*但請注意樹莓派 IP位置可能會改變,要再進路由器查詢

是否要更新當前作業系統,不趕時間就選「Next」更新吧!

*更新大約需要20~30分鐘(依照你的網路速度)

更新完成後,點擊「Restart」重新啟動。

樹莓派環境設定完成!

HomeBridge 安裝

正式進入重頭戲,安裝使用 HomeBridge。

使用Terminal ssh 連線進樹莓派或直接使用 VNC 遠端桌面裡的 Terminal。

輸入:

npm -g install homebridge - unsafe-perm

^(不加 sudo)

安裝 HomeBridge

安裝完成!

建立/修改設定檔(config.json):

為了方便編輯,使用 VNC 遠端桌面連線至樹莓派(也可直接用指令)

點左上角打開「檔案管理程式」-> 進入「/home/pi/.homebridge

若沒看到「config.json」檔案則在空白處點右鍵「New File」-> 輸入檔案名稱「config.json

在「config.json」上按右鍵用「Text Editor」打開

貼上以下基礎設定內容:

{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "123-45-568"
}

內容不用特別更改,直接照搬即可!

記得存檔!

完成!

綁定 HomeBridge 到 Homekit

輸入:

homebridge start

^(不加 sudo)

啟用

*若出現 Error: Service name is already in use on the network / port被佔用之類的錯誤可嘗試砍掉服務、改用 homebridge restart 重啟、或重新開機。

*若出現was not registered by any plugin之類的錯誤則代表你還沒有安裝相應的homebridge plugin。

啟動中有更改 設定檔(config.json)內容的話要改下:

sudo homebridge restart

重新啟動 HomeBridge

*按「Control」+「C」可在 Terminal 關閉退出 HomeBridge 服務。

拿出 iPhone 打開「家庭」APP,在「家庭」右上角點「+」,選「加入配件」,掃描你出現的 QRCode

這時應該會出現「找不到配件」,別擔心!因為我們還沒有加入任何配件到 HomeBridge 橋接器上,沒關係,讓我們繼續往下看。

至少要有一個配件才能掃描加入!!!(這邊以攝影機為範例)
至少要有一個配件才能掃描加入!!!
(這邊以攝影機為範例)
至少要有一個配件才能掃描加入!!!
(這邊以攝影機為範例)

第一次掃描加入會出現警告視窗,按「強制加入」即可!

加入過一次後,後面再新增的配件都不用再次掃描了,會自己更新進去!

將 HomeBridge 服務加入樹莓派開機自動啟動項目

同 VNC 遠端桌面服務,我們也希望 HomeBridge 服務是樹莓派開機後就自動啟用的,不然一但重開機就要再次手動連進來啟用。

輸入:

which homebridge

取得 homebridge 路徑資訊

記下此路徑。

再輸入:

sudo vim /etc/init.d/homebridge

按「Enter」進入

按「i」進入編輯模式

#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO


dir="/home/pi"
cmd="DEBUG=* 這邊貼上你 which homebridge 查到的路徑"
user="pi"


name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"


get_pid() {
cat "$pid_file"
}


is_running() {
[ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1
}


case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
cd "$dir"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
for i in 1 2 3 4 5 6 7 8 9 10
# for i in `seq 10`
do
if ! is_running; then
break
fi


echo -n "."
sleep 1
done
echo


if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0

將:

cmd=”DEBUG=* 這邊貼上你 which homebridge 查到的路徑

替換入你查到的路徑資訊(不用“雙引號)

「Commend」+「C」、「Commend」+「V」複製貼上以上內容進去,按「Esc」輸入「:wq!」儲存退出。

再輸入:

sudo chmod 755 /etc/init.d/homebridge

修改文件權限。

最後輸入:

sudo update-rc.d homebridge defaults

加入到開機自動啟動項目。

完成!

可直接使用 sudo /etc/init.d/homebridge start 啟用 homebridge 服務。
另可使用:tail -f /var/log/homebridge.err 查看啟動錯誤訊息、tail -f /var/log/homebridge.log 查看 log 。

米家智慧家電串接前準備

Homebridge on 起來後,我們就可以開始逐個將所有米家家電加入至 Homebridge 接上 homeKit!

首先我們要先將米家智慧家電都加入「米家APP,我們要從其中獲取串接上 HomeBridge 的資訊。

智慧家電都加入米家 APP 後:

將 iPhone 接上 Mac 電腦,打開 Finder/Itunes 介面,選擇接上的手機

選備份到「這部電腦」、 「不要勾!替本機備份加密」,點「立即備份

備份完成後,下載安裝備份查看軟體:iBackupViewer

打開「iBackupViewer

初次啟動會要你去 Mac「系統偏好設定」- 「安全性與隱私權」-「隱私權」-「+」- 加入「iBackupViewer」
*如有隱私顧慮可關閉網路使用這套軟體、並在使用後移除

再次打開「iBackupViewer」成功讀取到備份檔後,點擊「剛備份的手機」

選擇「App Stroe」Icon
左方找到「米家 APP (MiHome.app)」-> 右方找到「數字_mihome.sqlite」這個檔案並「選擇」 -> 右上角「Export」-> 「Selected Files

*若有兩個 「數字_mihome.sqlite」檔案,則挑 Created 建立時間最新的來用。

將剛剛匯出的 數字_mihome.sqlite 檔案拖曳進這個網站查看內容:

可將查詢語法換成:

SELECT `ZDID`,`ZNAME`,`ZTOKEN` FROM 'ZDEVICE' LIMIT 0,30

僅顯示我們需要的欄位資訊 (若有特別的家電套件需要其他的欄位資訊也可以加上去做篩選)

  1. ZDID: 裝置 ID
  2. ZNAME: 裝置名稱
  3. ZTOKEN: 裝置 ZToken

ZTOKEN 不能直接用,要轉換成 “Token” 才能使用。

這邊以攝影機的 ZToken 轉換 Token 為例:

首先,我們從上面列表取得攝影機的 ZToken 欄位內容

7f1a3541f0433b3ccda94beb856c2f5ba2b15f293ce0cc398ea08b549f9c74050143db63ee66b0cdff9f69917680151e

但這邊拿到的 TOKEN 還不能用,我們還需要將他轉換

打開 http://aes.online-domain-tools.com/ 這個網站:

  1. 將剛剛複製出來的 ZTOKEN 貼在「Input Text」,選「Hex」
  2. Key輸入「00000000000000000000000000000000」32個0,ㄧ樣選「Hex」
  3. 然後按下「Decrypt!」轉換
  4. 全選複製右下角兩行的輸出內容&去掉空格後就是我們要的結果 Token
6d304e6867384b704b4f714d45314a34」就是我們要的 Token 結果!

*Token 去得方式這塊有嘗試用「miio」直接嗅探的方式,但好像是米家韌體有更新過,已無法用這個方法快速方便得到 Token 了!

最後,我們還要知道裝置的 IP 位址(這邊一樣以攝影機為例):

打開米家APP → 攝影機 → 右上角「…」→設定→網路訊息,得到 IP位址

記錄下 ZDID/Token/IP 這些資訊,供後續使用。

將米家智慧家電逐個串入 HomeBridge

依照個別裝置需要用到的套件、連線資訊不同,逐個安裝、設定,加入至 HomeBridge。

再來打開 Terminal ssh 連線進樹莓派或直接使用 VNC 遠端桌面裡的 Terminal,繼續後續作業….

1.米家攝影機雲臺版:

在 Terminal 下命令安裝 MijiaCamera 這個 homebridge 套件 (不加 sudo):

npm install -g homebridge-mijia-camera

參考前文的修改設定檔(config.json)教學,在檔案中加入 accessories 區塊

{
"bridge":{
"name":"Homebridge",
"username":"CC:22:3D:E3:CE:30",
"port":51826,
"pin":"123-45-568"
},
"accessories":[
{
"accessory":"MijiaCamera",
"name":"Mi Camera",
"ip":"",
"token":""
}
]
}

accessories: 加入米家攝影機的設定資訊,ip 帶入攝影機 ip、token 帶入帶入前文教學教的 token

記得存檔!

然後照 Homebridge 章節教的,啟動/重新啟動/掃描加入 Homebridge;就能在「家庭」APP 中看到攝影機的控制項目了。

可控制項目:攝影機開/關

2.米家直流變頻電風扇

在 Terminal 下命令安裝 homebridge-mi-fan 這個 homebridge 套件 (不加 sudo)

npm install -g homebridge-mi-fan

參考前文的修改設定檔(config.json)教學,在檔案中加入 platforms 區塊(若已有則在區塊內「,」新增一個子區塊)

{
"bridge":{
"name":"Homebridge",
"username":"CC:22:3D:E3:CE:30",
"port":51826,
"pin":"123-45-568"
},
"platforms":[
{
"platform":"MiFanPlatform",
"deviceCfgs":[
{
"type":"MiDCVariableFrequencyFan",
"ip":"",
"token":"",
"fanName":"room fan",
"fanDisable":false,
"temperatureName":"room temperature",
"temperatureDisable":true,
"humidityName":"room humidity",
"humidityDisable":true,
"buzzerSwitchName":"fan buzzer switch",
"buzzerSwitchDisable":true,
"ledBulbName":"fan led switch",
"ledBulbDisable":true
}
]
}
]
}

platforms: 加入米家電風扇設定資訊,ip 帶入攝影機 ip、token 帶入前文教學教的 token、humidity/temperature 可控制是否連動顯示溫濕度計資訊、
type 需帶入對應型號的文字,支援四種不同型號的電風扇:

  1. 智米直流變頻落地扇:ZhiMiDCVariableFrequencyFan
  2. 智米自然風風扇:ZhiMiNaturalWindFan
  3. 米家直流變頻:MiDCVariableFrequencyFan (台灣賣的)
  4. 米家風扇:DmakerFan

請自行帶入自己的風扇型號。

記得存檔!

然後照 Homebridge 章節教的,啟動/重新啟動/掃描加入 Homebridge;就能在「家庭」APP 中看到攝影機的控制項目了。

可控制項目:電風扇開/關、風力大小調整

3.小米空氣淨化器 3

在 Terminal 下命令安裝 homebridge-xiaomi-air-purifier3 這個 homebridge 套件 (不加 sudo)

npm install -g homebridge-xiaomi-air-purifier3

參考前文的修改設定檔(config.json)教學,在檔案中加入 accessories 區塊(若已有則在區塊內「,」新增一個子區塊)

{
"bridge":{
"name":"Homebridge",
"username":"CC:22:3D:E3:CE:30",
"port":51826,
"pin":"123-45-568"
},
"accessories":[
{
"accessory":"XiaomiAirPurifier3",
"name":"Xiaomi Air Purifier",
"did":"",
"ip":"",
"token":"",
"pm25_breakpoints":[
5,
12,
35,
55
]
}
]
}

accessories: 加入米家電風扇設定資訊,ip 帶入攝影機 ip、token 帶入前文教學教的 token、did 帶入 zdid

記得存檔!

然後照 Homebridge 章節教的,啟動/重新啟動/掃描加入 Homebridge;就能在「家庭」APP 中看到攝影機的控制項目了。

可控制項目:空氣清淨機開關、風力大小調整
可查看項目:當前溫濕度

4.米家 LED 智慧檯燈

在 Terminal 下命令安裝 homebridge-yeelight-wifi 這個 homebridge 套件 (不加 sudo)

npm install -g homebridge-yeelight-wifi

參考前文的修改設定檔(config.json)教學,在檔案中加入 platforms 區塊(若已有則在區塊內「,」新增一個子區塊)

{
"bridge":{
"name":"Homebridge",
"username":"CC:22:3D:E3:CE:30",
"port":51826,
"pin":"123-45-568"
},
"platforms":[
{
"platform":"yeelight",
"name":"Yeelight"
}
]
}

不用特別帶什麼參數進去!若要做更細節的設定可參考官方文件(如亮度/色溫…)

記得存檔!

智慧檯燈還需改綁定到「Yeelight」APP,然後將「區域網路控制」打開才能給 Homebridge 控制。

1.在 iPhone 上下載安裝「Yeelight」APP

App Store 搜尋「Yeelight」安裝
安裝完打開 Yeelight APP -> 「增加裝置」-> 找到「米家檯燈」-> 重新配對綁定
最後一步記得打開「區域網路控制

*如果不小心沒點到打開,可以在「裝置」頁 -> 選檯燈裝置進入 -> 點右下角「△」Tab -> 點「局域網控制」進入設定 -> 打開區域網路控制

吐槽一下這個真的有夠爛,米家本身的 APP 沒有此開關功能,一定要綁到 Yeelight APP,也不能解綁或重綁回米家…否則會失效。

然後照 Homebridge 章節教的,啟動/重新啟動/掃描加入 Homebridge;就能在「家庭」APP 中看到攝影機的控制項目了。

可控制項目:燈開關、色溫調整、亮度調整

其他米家智慧家電 homebridge 套件:

我最終的 config.json 長這樣:

{
"bridge":{
"name":"Homebridge",
"username":"CC:22:3D:E3:CE:30",
"port":51826,
"pin":"123-45-568"
},
"accessories":[
{
"accessory":"MijiaCamera",
"name":"Mi Camera",
"ip":"192.168.0.105",
"token":"6d304e6867384b704b4f714d45314a34"
},
{
"accessory":"XiaomiAirPurifier3",
"name":"Xiaomi Air Purifier",
"did":"270033668",
"ip":"192.168.0.108",
"token":"5c3eeb03065fd8fc6ad10cae1f7cce7c",
"pm25_breakpoints":[
5,
12,
35,
55
]
}
],
"platforms":[
{
"platform":"MiFanPlatform",
"deviceCfgs":[
{
"type":"MiDCVariableFrequencyFan",
"ip":"192.168.0.106",
"token":"dd1b6f582ba6ce34f959bbbc1c1ca59f",
"fanName":"room fan",
"fanDisable":false,
"temperatureName":"room temperature",
"temperatureDisable":true,
"humidityName":"room humidity",
"humidityDisable":true,
"buzzerSwitchName":"fan buzzer switch",
"buzzerSwitchDisable":true,
"ledBulbName":"fan led switch",
"ledBulbDisable":true
}
]
},
{
"platform":"yeelight",
"name":"Yeelight"
}
]
}

給大家做參考!

我有用到的米家家電如上教學,其他我沒有的就沒去試了,大家可以自己上 npm 查詢(homebridge-plugin XXX英文名稱),然後照上面邏輯大同小異安裝、設定串接上去!

這邊附上幾個我找到但沒試過的 homebridge 套件(不保證能用):

  1. 小米空氣清淨機1代:homebridge-mi-air-purifier
  2. 米家智能插座系列:homebridge-mi-outlet
  3. 小米掃地機器人:homebridge-mi-robot_vacuum
  4. 米家智能網關:homebridge-mi-aqara

小叮嚀

  1. 建議到路由器將所有米家家電設定為指定/保留 IP,否則 IP 位置可能會變動,要重新更改 config.json 設定。
  2. 如果發現步驟都對但就是串不起來出現錯誤或是在 HomeKit 上一直顯示「無回應」,可以重新嘗試看看;如果還是一樣可能代表套件已失效,要找其他的套件來串接了。(可查看 github issue)
  3. 功能失效、反應慢;這個也無解,可以發 issue 告知作者等作者更新,由於是開源專案,不可要求太多了!
  4. 綁定完每個家電,都可以啟動一次 Homebridge,再回到 iPhone 上看能不能運作,能的話可以再下「Controle」+「C」終止;當全部家電都綁定好後,可重新啟動樹莓派,讓他在重啟後自己在後台啟動 homebridge 服務;這才是我們要的。

結語

另外可以在「設定」->「控制中心」->「自訂」中將「家庭」APP 拉上去就能在下拉控制中心中快速操作 HomeKit !

全部串上 HomeKit 後只有一個字「爽」!開關的反應更快,只差我沒有家庭中樞沒辦法遠端控制而已,此篇進階 Homebridge 也到此結束,感謝閱讀。

回到文章開頭,全都加入 HomeKit 後我們就可以無痛使用 iOS ≥ 13的捷徑自動化功能了。

之後再想要來研究 homebridge 套件是怎麼做的?感覺很有趣呢!所以如果有 HomeBridge 套件不合你的操作需求、有套件壞了找不到替代的,就在等我去研究吧!

Home assistant

還有另一個智慧家庭的平台 Homeassistant 可以刷入樹莓派使用(但請注意:需要 2A 的電源才有辦法啟動);Homeassistant 我也有灌來玩玩看,全 GUI 圖型操作,點一點就能串入家電;之後再來深入研究,感覺他等同於另一個米家平台而已,如果有很多不同廠商的 IOT 元件,更適合使用這個。

參考資料

  1. https://www.domoticz.cn/forum/viewtopic.php?t=52
  2. https://or2.in/2017/07/02/Homekit-and-MiJia-with-pi/#3-%E5%8F%B7%E5%A4%96-%E5%BC%80%E5%90%AF%E5%8F%AF%E8%A7%86%E5%8C%96VNC

延伸閱讀

  1. 小米智慧家居新添購(AI音箱、溫濕度感應器、體重計2、直流變頻電風扇)
  2. iOS ≥ 13.1 使用「捷徑」自動化功能搭配米家智慧家居(直接使用 iOS ≥ 13.1 內建的捷徑APP完成自動化操作)
  3. 米家 APP / 小愛音箱地區問題
  4. 智慧家居初體驗 — Apple HomeKit & 小米米家 (米家智慧攝影機及米家智慧檯燈、Homekit設定教學)

有任何問題及指教歡迎與我聯絡

--

--

ZhgChgLi
ZRealm Life.

探索世界、求知若渴、教學相長;更愛電影、美劇、西音、運動、生活. www.zhgchg.li