打造舒適的 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
===
View the English version of this article here.
本文首次發表於 Medium ➡️ 前往查看