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

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

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

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

photo by [picjumbo.com](https://www.pexels.com/zh-tw/@picjumbo-com-55570?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels){:target="_blank"}

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](https://medium.com/u/b32ce1b681f8){:target="_blank"} )

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

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

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

樹莓派環境設定

燒錄作業系統

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

第一項選擇剛下載的樹莓派作業系統「xxxx.img」、第二項選擇你的記憶卡裝置,然後點擊「Flash!」開始燒錄!

第一項選擇剛下載的樹莓派作業系統「xxxx.img」、第二項選擇你的記憶卡裝置,然後點擊「Flash!」開始燒錄!

此時會跳出要你輸入 **MacOS 的密碼** ,輸入後按「Ok」繼續。

此時會跳出要你輸入 MacOS 的密碼 ,輸入後按「Ok」繼續。

燒錄中…請稍候….

燒錄中…請稍候….

驗證中…請稍候….

驗證中…請稍候….

燒錄成功!

燒錄成功!

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

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

ssh

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.解決以下語系警告:

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").

輸入

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 連結

輸入以下指令

which node

取得 nodejs 所在路徑資訊

再輸入

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

建立連結

設定完成!

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

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

輸入:

sudo raspi-config

進入設定:

選擇第五項「 **Interfacing Options** 」

選擇第五項「 Interfacing Options

選擇第三項「 **P3 VNC** 」

選擇第三項「 P3 VNC

使用 「 **←** 」選擇「 **Yes** 」打開

使用 「 」選擇「 Yes 」打開

**VNC 遠端桌面功能啟用成功!**

VNC 遠端桌面功能啟用成功!

使用 「 **→** 」直接切到「 **Finish** 」退出設定介面。

使用 「 」直接切到「 Finish 」退出設定介面。

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

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

輸入

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!」儲存退出。

再輸入:

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** 」。

點選「 Connect 」。

點選「 **OK** 」。

點選「 OK 」。

**輸入登入帳號密碼** ,同 SSH 連線,帳號 `pi` 預設密碼 `raspberry` 。

輸入登入帳號密碼 ,同 SSH 連線,帳號 pi 預設密碼 raspberry

**成功連入!**

成功連入!

完成樹莓派初始化設定:

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

設定語言、地區、時區。

設定語言、地區、時區。

更改樹莓派預設密碼,輸入你要設定的密碼。

更改樹莓派預設密碼,輸入你要設定的密碼。

直接下一步「 **Next** 」。

直接下一步「 Next 」。

設定使用 WiFi 連線,之後就不用在插線了。

設定使用 WiFi 連線,之後就不用在插線了。

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

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

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

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

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

更新完成後,點擊「 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 」打開

貼上以下基礎設定內容:

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

輸入:

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 」進入編輯模式

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!」儲存退出。

再輸入:

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 Stroe 」Icon

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

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

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

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

SQLite Viewer sqlite file viewer inloop.github.io

可將查詢語法換成:

SELECT ZDID,ZNAME,ZTOKEN FROM ‘ZDEVICE’ LIMIT 0,30

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

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

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

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

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

1
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 結果!

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 需帶入對應型號的文字 ,支援四種不同型號的電風扇:

  1. 智米直流變頻落地扇:ZhiMiDCVariableFrequencyFan
  2. 智米自然風風扇:ZhiMiNaturalWindFan
  3. 米家直流變頻:MiDCVariableFrequencyFan (台灣賣的)
  4. 米家風扇: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」安裝

App Store 搜尋「Yeelight」安裝

安裝完打開 Yeelight APP -> 「增加裝置」-> 找到「米家檯燈」-> 重新配對綁定

安裝完打開 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. 小米空氣清淨機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 !

另外可以在「設定」->「控制中心」->「自訂」中將「家庭」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

===

本文首次發表於 Medium ➡️ 前往查看


This post is licensed under CC BY 4.0 by the author.

iOS HLS Cache 實踐方法探究之旅

使用 iPhone 簡單製作「偽」透視透明手機桌布