HomeBridge|树莓派串接米家家电到HomeKit,打造智慧居家WFH环境
透过树莓派架设HomeBridge主机,将米家智慧家电无缝接入Apple HomeKit,解决多APP切换与反应慢问题,达成iPhone一指控管家电、提升WFH居家舒适度与效率。
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 元件,更适合使用这个。
参考资料
延伸阅读
有任何问题及指教欢迎 与我联络 。
本文首次发表于 Medium (点击查看原始版本),由 ZMediumToMarkdown 提供自动转换与同步技术。