打造舒適的 WFH 智慧居家環境,控制家電盡在指尖
示範使用樹莓派當 HomeBridge 主機,將所有米家家電串上 HomeKit
Click here to view the English version of this article.
点击这里查看本文章简体中文版本。
基於 SEO 考量,本文標題與描述經 AI 調整,原始版本請參考內文。
文章目錄
打造舒適的 WFH 智慧居家環境,控制家電盡在指尖
示範使用樹莓派當 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 的就直接綁定本篇不贅述;不支援的就照此文教學也一起綁定上去!
我的米家智慧家居項目
- 米家智慧攝影機 雲台版 1080P
- 米家直流變頻電風扇
- 米家 LED 智慧檯燈
- 小米空氣淨化器 3
- 米家檯燈 Pro(本身就支援 HomeKit)
- 米家 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);還有樹莓派需要的軟體:
樹莓派環境設定
燒錄作業系統
下載完需求的兩個軟體後,我們先將記憶卡放入讀卡機插上電腦;打開 Etcher 程式(balenaEtcher)
第一項選擇剛下載的樹莓派作業系統「xxxx.img」、第二項選擇你的記憶卡裝置,然後點擊「Flash!」開始燒錄!
此時會跳出要你輸入 MacOS 的密碼 ,輸入後按「Ok」繼續。
燒錄中…請稍候….
驗證中…請稍候….
燒錄成功!
*若有出現紅色的 Error ,可嘗試將記憶卡格式化後再次燒錄。
重新將讀卡機接上電腦,並在記憶卡內容目錄下建立一個空的 「ssh」 檔案( 或點此下載 )內容空白、不用副檔名,就是個「ssh」檔;讓我們可以用 Terminal 連線進樹莓派。
ssh
設定樹莓派
將記憶卡退出,插入樹莓派上並接上網路線,然後通電開機;並讓 MacBook 跟樹莓派在同個網路環境下。
查看樹莓派分配到的 IP 位置
得到 樹莓派分配到的 IP 位置是: 192.168.0.110 (本文所有出現的 IP 請自行更換成你查到的結果)
建議將樹莓派設定為指定/保留 IP,否則開機重連後 IP 位置可能會變動,要重新查。
使用 SSH 連入樹莓派進行操作
打開 Terminal 輸入:
1
ssh pi@你的樹莓派IP位址
有詢問就輸入 yes ,密碼輸入預設密碼: raspberry
連線成功!
*若有出現 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 之類的錯誤訊息就先去 /Users/xxxx/.ssh/known_hosts 用文字編輯器打開清空即可
樹莓派基本工具安裝、設定
- 輸入以下指令安裝 Vim 編輯器:
1
sudo apt-get install vim
2.解決以下語系警告:
1
2
3
4
5
6
7
8
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").
輸入
1
vi .bashrc
按「Enter」進入
按「 i 」進入編輯模式
移動到文件最底部,加上一行「 export LC_ALL=C 」
按「Esc」輸入「 :wq! 」儲存退出。
再下「 source .bashrc 」更新即可。
3.安裝 nvm 管理 nodejs/npm:
1
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 連結
輸入以下指令
1
which node
取得 nodejs 所在路徑資訊
再輸入
1
sudo ln -fs 這邊貼上你 which node 查到的路徑(不用"雙引號) /usr/local/bin/node
建立連結
設定完成!
啟用樹莓派 VNC 遠端桌面功能
這邊我們雖然是裝 GUI 版,你當然可以直接將樹莓派接上鍵盤、HDMI 當一般電腦使用,但為了方便我們將使用遠端桌面的方式控制樹莓派。
輸入:
1
sudo raspi-config
進入設定:
選擇第五項「 Interfacing Options 」
選擇第三項「 P3 VNC 」
使用 「 ← 」選擇「 Yes 」打開
VNC 遠端桌面功能啟用成功!
使用 「 → 」直接切到「 Finish 」退出設定介面。
將 VNC 遠端桌面服務加入到開機自動啟動項
我們希望 VNC 遠端桌面服務是樹莓派開機後就自動啟用的。
輸入
1
sudo vim /etc/init.d/vncserver
按「Enter」進入
按「 i 」進入編輯模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/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!」儲存退出。
再輸入:
1
sudo chmod 755 /etc/init.d/vncserver
修改文件權限。
再輸入:
1
sudo update-rc.d vncserver defaults
加入到開機自動啟動項目。
最後輸入:
1
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。
輸入:
1
npm -g install homebridge - unsafe-perm
^( 不加 sudo )
安裝 HomeBridge
安裝完成!
建立/修改設定檔(config.json):
為了方便編輯,使用 VNC 遠端桌面連線至樹莓派 (也可直接用指令) :
點左上角打開「 檔案管理程式 」-> 進入「 /home/pi/.homebridge 」
若沒看到「config.json」檔案則在空白處點右鍵「 New File 」-> 輸入檔案名稱「 config.json 」
在「 config.json 」上按右鍵用「 Text Editor 」打開
貼上以下基礎設定內容:
1
2
3
4
5
6
7
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "123-45-568"
}
內容不用特別更改,直接照搬即可!
記得存檔!
完成!
綁定 HomeBridge 到 Homekit
輸入:
1
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 服務是樹莓派開機後就自動啟用的,不然一但重開機就要再次手動連進來啟用。
輸入:
1
which homebridge
取得 homebridge 路徑資訊
記下此路徑。
再輸入:
1
sudo vim /etc/init.d/homebridge
按「Enter」進入
按「 i 」進入編輯模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/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!」儲存退出。
再輸入:
1
sudo chmod 755 /etc/init.d/homebridge
修改文件權限。
最後輸入:
1
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 檔案 拖曳進這個網站查看內容:
可將查詢語法換成:
1
SELECT `ZDID`,`ZNAME`,`ZTOKEN` FROM 'ZDEVICE' LIMIT 0,30
僅顯示我們需要的欄位資訊 (若有特別的家電套件需要其他的欄位資訊也可以加上去做篩選)
- ZDID: 裝置 ID
- ZNAME: 裝置名稱
- ZTOKEN: 裝置 ZToken
ZTOKEN 不能直接用,要轉換成 “Token” 才能使用。
這邊以攝影機的 ZToken 轉換 Token 為例:
首先,我們從上面列表取得攝影機的 ZToken 欄位內容
1
7f1a3541f0433b3ccda94beb856c2f5ba2b15f293ce0cc398ea08b549f9c74050143db63ee66b0cdff9f69917680151e
但這邊拿到的 TOKEN 還不能用,我們還需要將他轉換
打開 http://aes.online-domain-tools.com/ 這個網站:
- 將剛剛複製出來的 ZTOKEN 貼在「Input Text」,選「Hex」
- Key輸入「00000000000000000000000000000000」32個0,ㄧ樣選「Hex」
- 然後按下「Decrypt!」轉換
- 全選複製右下角兩行的輸出內容&去掉空格後就是我們要的結果 Token
「 6d304e6867384b704b4f714d45314a34 」就是我們要的 Token 結果!
*Token 去得方式這塊有嘗試用「miio」直接嗅探的方式,但好像是米家韌體有更新過,已無法用這個方法快速方便得到 Token 了!
最後,我們還要知道 裝置的 IP 位址 (這邊一樣以攝影機為例):
打開米家APP → 攝影機 → 右上角「…」→設定→網路訊息,得到 IP位址 !
記錄下 ZDID/Token/IP 這些資訊,供後續使用。
將米家智慧家電逐個串入 HomeBridge
依照個別裝置需要用到的套件、連線資訊不同,逐個安裝、設定,加入至 HomeBridge。
再來打開 Terminal ssh 連線進樹莓派或直接使用 VNC 遠端桌面裡的 Terminal,繼續後續作業….
1.米家攝影機雲臺版:
在 Terminal 下命令安裝 MijiaCamera 這個 homebridge 套件 ( 不加 sudo ):
1
npm install -g homebridge-mijia-camera
參考前文的修改設定檔(config.json)教學,在檔案中加入 accessories 區塊 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"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) :
1
npm install -g homebridge-mi-fan
參考前文的修改設定檔(config.json)教學,在檔案中加入 platforms 區塊(若已有則在區塊內「,」新增一個子區塊) :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"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 需帶入對應型號的文字 ,支援四種不同型號的電風扇:
- 智米直流變頻落地扇:ZhiMiDCVariableFrequencyFan
- 智米自然風風扇:ZhiMiNaturalWindFan
- 米家直流變頻:MiDCVariableFrequencyFan (台灣賣的)
- 米家風扇:DmakerFan
請自行帶入自己的風扇型號。
記得存檔!
然後照 Homebridge 章節教的,啟動/重新啟動/掃描加入 Homebridge;就能在「家庭」APP 中看到攝影機的控制項目了。
可控制項目:電風扇開/關、風力大小調整
3.小米空氣淨化器 3
在 Terminal 下命令安裝 homebridge-xiaomi-air-purifier3 這個 homebridge 套件 (不加 sudo) :
1
npm install -g homebridge-xiaomi-air-purifier3
參考前文的修改設定檔(config.json)教學,在檔案中加入 accessories 區塊(若已有則在區塊內「,」新增一個子區塊) :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"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) :
1
npm install -g homebridge-yeelight-wifi
參考前文的修改設定檔(config.json)教學,在檔案中加入 platforms 區塊(若已有則在區塊內「,」新增一個子區塊) :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"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 長這樣:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{
"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代: homebridge-mi-air-purifier
- 米家智能插座系列: homebridge-mi-outlet
- 小米掃地機器人: homebridge-mi-robot_vacuum
- 米家智能網關: homebridge-mi-aqara
小叮嚀
- 建議到路由器將所有米家家電設定為指定/保留 IP,否則 IP 位置可能會變動,要重新更改 config.json 設定。
- 如果發現步驟都對但就是串不起來出現錯誤或是在 HomeKit 上一直顯示「無回應」,可以重新嘗試看看;如果還是一樣可能代表套件已失效,要找其他的套件來串接了。(可查看 github issue)
- 功能失效、反應慢;這個也無解,可以發 issue 告知作者等作者更新,由於是開源專案,不可要求太多了!
- 綁定完每個家電,都可以啟動一次 Homebridge,再回到 iPhone 上看能不能運作,能的話可以再下「Controle」+「C」終止;當全部家電都綁定好後,可重新啟動樹莓派,讓他在重啟後自己在後台啟動 homebridge 服務;這才是我們要的。
結語
另外可以在「設定」->「控制中心」->「自訂」中將「家庭」APP 拉上去就能在下拉控制中心中快速操作 HomeKit !
全部串上 HomeKit 後只有一個字「爽」!開關的反應更快,只差我沒有家庭中樞沒辦法遠端控制而已,此篇進階 Homebridge 也到此結束,感謝閱讀。
回到文章開頭,全都加入 HomeKit 後我們就可以無痛使用 iOS ≥ 13的捷徑自動化功能了。
之後再想要來研究 homebridge 套件是怎麼做的?感覺很有趣呢!所以如果有 HomeBridge 套件不合你的操作需求、有套件壞了找不到替代的,就在等我去研究吧!
Home assistant
還有另一個智慧家庭的平台 Homeassistant 可以刷入樹莓派使用( 但請注意:需要 2A 的電源才有辦法啟動 ); Homeassistant 我也有灌來玩玩看,全 GUI 圖型操作,點一點就能串入家電;之後再來深入研究,感覺他等同於另一個米家平台而已,如果有很多不同廠商的 IOT 元件,更適合使用這個。
參考資料
- https://www.domoticz.cn/forum/viewtopic.php?t=52
- 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
延伸閱讀
- 小米智慧家居新添購(AI音箱、溫濕度感應器、體重計2、直流變頻電風扇)
- iOS ≥ 13.1 使用「捷徑」自動化功能搭配米家智慧家居(直接使用 iOS ≥ 13.1 內建的捷徑APP完成自動化操作)
- 米家 APP / 小愛音箱地區問題
- 智慧家居初體驗 — Apple HomeKit & 小米米家 (米家智慧攝影機及米家智慧檯燈、Homekit設定教學)
有任何問題及指教歡迎 與我聯絡 。
本文首次發表於 Medium (點此查看原始版本),由 ZMediumToMarkdown 提供自動轉換與同步技術。



{:target="_blank"} )](/assets/99db2a1fbfe5/1*go-wGMdV1VVbJ3c00rh0_w.webp)




























































