大家都知道Apple下最好用的家庭工具是HomeKit
但是符合原廠HomeKit的組件都很貴,但我又是個果粉怎麼辦
爾然間看到文章可以把便宜的小米透過樹莓派接入HomeKit
實際用過的感受是HomeKit可以直接Siri 不像小米app還要打開
但像燈光顏色之類的還是得開小米app就是了
1.首先你需要有台樹莓派主機
我是在淘寶上買的,目前最新的是3B+版本 有分E14 中國版跟RS英國版,個人覺得應該沒太大差別
但我還是買了RS版本,Raspberry Pi就是張主機板而已,額外需要電源供應器及16G microSD tf卡裝系統
其他如外殼跟散熱片就看個人需求了,我買了有散熱片跟風扇的但風扇高轉實在很吵後來也沒裝
把主機板鎖上機殼,插上電線後,需要條HDMI線輸出到螢幕上還有一組鍵盤滑鼠
2.將作業系統裝在Raspberry Pi記憶卡上
先到樹莓派Raspberry Pi官網下載作業系統,我是選擇 Raspbian Stretch with desktop版本
帶桌面版有圖形化介面會比較輕鬆一點
可以參考這邊 http://www.codedata.com.tw/java/swz-03/ 下載及安裝教程,但是to tlc不用改
之後設定一下使用者密碼並開啟ssh連線
3.安装Nodejs
我是用mac請打開終端機視窗打入
ssh [email protected] 連上樹莓派
為了避免之後的錯誤,接著 su 進入最高root權限(會再要一次密碼)
如果出現錯誤
POSSIBLE DNS SPOOFING DETECTED 是因為保護機制登入錯誤太多次
請在mac端的終端機裡打rm -f ~/.ssh/known_hosts
#sudo apt-get update
#sudo apt-get upgrade
先把系統套件升級
安装Nodejs:
#curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash –
# sudo apt-get install -y nodejs
只裝上面這兩部的話安裝,依賴包libavahi會有問題
#sudo apt-get install -y build-essential
#sudo apt-get install gcc g++ make
#curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg
#sudo apt-get install yarn
再輸入node -v查看版本
4.安装依賴包libavahi
#sudo apt-get install libavahi-compat-libdnssd-dev
5.安裝HomeBridge
#sudo npm install -g –unsafe-perm homebridge
到這邊就差不多了,接下來就是安裝小米的各個插件
6.安裝homebridge小米網關的插件
#sudo npm install -g homebridge-mi-aqara (-g –unsafe-perm)
這裏安装homebridge-mi-aqara,不要安装homebridge-aqara
7.配置config.json文件
默認情况下,HomeBridge會使用用户目錄下的.homebridge文件夾作為用户存储路徑,即~/.homebridge/目錄。 若不存在,可通過如下命令建立:
#mkdir ~/.homebridge/
進入~/.homebridge/目錄,創建配置文件config.json,命令如下:
#cd ~/.homebridge/
#nano config.json
文件修改完之後输入Ctrl+X,然後輸入Y保存退出就可以了。
之後運行HomeBridge都會抓config.json裡的文檔來判別
反正要把小米的裝置接入HomeBridge就是安裝插件後修改json就是了
8.安裝插件
可以參考 GitHub 上的教學,如homebridge-mi-airpurifier就是空氣清淨機
點進去後可以先看一下下面的支援列表,後看一下Installation
就是打入npm install -g homebridge-mi-airpurifier
就可以安裝好插件了,然後再nano修改json文件即可
以我自己為例,有兩個網關(一個客廳 一個房間) 兩盞吸頂燈 空氣淨化器2s 按鍵開關 直流電扇 掃地機器人
安裝空氣淨化器
https://www.npmjs.com/package/homebridge-mi-airpurifier
npm install -g homebridge-mi-airpurifier
直流落地善
https://github.com/YinHangCode/homebridge-mi-fan
npm install -g homebridge-mi-fan
掃地機器人
https://github.com/YinHangCode/homebridge-mi-robot_vacuum
npm install -g homebridge-mi-robot_vacuum
天氣
https://www.npmjs.com/package/homebridge-weather
npm install -g homebridge-weather
後修改config.json 我的長這樣
{
“bridge”: {
“name”: “Homebridge”,
“username”: “B8:27:EB:CF:FD:82”,
“port”: 51826,
“pin”: “123-45-678”
},
“accessories”: [{
“accessory”: “Weather”,
“apikey”: “191be99302622918632d196299235fdd”,
“location”: “kaohsiung, tw”,
“name”: “OpenWeatherMap Temperature”
}],
“platforms”: [{
“platform”: “MiAqaraPlatform”,
“gateways”: {
“7811dcb3a45f”: “6692183F2F2F4B2F”,
“7811dcfd7102”: “AEE44028C11241FF”
}
},
{
“platform”: “ReYeelightPlatform”,
“deviceCfgs”: [{
“type”: “CeilingLamp”,
“ip”: “192.168.2.154”,
“token”: “f3b24bdfb4415d3ac2e479dadbe594c6”,
“Name”: “Ceiling Lamp”,
“updatetimer”: true,
“interval”: 5
},
{
“type”: “CeilingLamp”,
“ip”: “192.168.2.125”,
“token”: “e0e21e983e613ffccd0e7e09268a48dc”,
“Name”: “Ceiling Lamp2”,
“updatetimer”: true,
“interval”: 5
}
]
},
{
“platform”: “MiAirPurifierPlatform”,
“deviceCfgs”: [{
“type”: “MiAirPurifier2S”,
“ip”: “192.168.2.157”,
“token”: “ab4c1ca60188553a25e5201c6a3e90f2”,
“airPurifierDisable”: false,
“airPurifierName”: “MiAirPurifier”,
“silentModeSwitchDisable”: false,
“silentModeSwitchName”: “MiAirPurifier Silent Mode Switch”,
“buzzerSwitchDisable”: true,
“buzzerSwitchName”: “MiAirPurifier Buzzer Switch”,
“ledBulbDisable”: true,
“ledBulbName”: “MiAirPurifier LED Switch”,
“airQualityDisable”: false,
“airQualityName”: “MiAirPurifier AirQuality”
}]
},
{
“platform”: “MiFanPlatform”,
“deviceCfgs”: [{
“type”: “MiDCVariableFrequencyFan”,
“ip”: “192.168.2.158”,
“token”: “13bf2b9e2127efaa22fd39d011c182f0”,
“fanName”: “room fan”,
“fanDisable”: false,
“temperatureName”: “room temperature”,
“temperatureDisable”: false,
“humidityName”: “room humidity”,
“humidityDisable”: false,
“buzzerSwitchName”: “fan buzzer switch”,
“buzzerSwitchDisable”: true,
“ledBulbName”: “fan led switch”,
“ledBulbDisable”: true
}]
},
{
“platform”: “MiRobotVacuumPlatform”,
“deviceCfgs”: [{
“type”: “MiRobotVacuum”,
“ip”: “192.168.2.84”,
“token”: “5a5859305678496e315657394f6d5367”,
“robotVacuumName”: “robot vacuum”,
“enablePauseToCharge”: true,
“robotVacuumDisable”: false
}]
}
]
}
ip可以進無線網路那台找到連接中的裝置找到
token值很麻煩 請參考這篇 ip也可以在這找到
找到之後置換進config.json即可
修改完退出後執行
#Homebridge
如果最後看到一個QRcode就表示成功啦,非常恭喜你
9. 在背景執行
安裝成功後,我們要讓程式在背景執行
#sudo apt-get install screen
輸入底下指令讓Homebridge不會造成視窗關閉就停止運作,最後home可以改成自己的文字
screen -S home
安裝一個名為home的視窗
#homebridge
啟動homebridge 等跑完看到code後就可以把ssh終端機關起來
接著打開Apple手機 找到家庭打開後會要你輸入密碼
以本篇為例就是在
“bridge”: {
“name”: “Homebridge”,
“username”: “B8:27:EB:CF:FD:82”,
“port”: 51826,
“pin”: “123-45-678”
裡的pin 12345678,你也可以改成自己喜歡的 port如果有占用到也可以改
之後就會把剛才有安裝的設備都拉進來,自己再試一下哪些圖示對應到哪些設備就行了
最後的最後,如果你有ipad一直放在家裡,也可以透過ipad或者apple tv上的家庭homekit 接上網路,讓你在外面透過行動網路也可以操控家裡電器喔
最後放上參考資料
【首发·一键脚本】树莓派Raspbian stretch安装【docker】【hassio】【homebridge】实现Siri一键脚本
https://homekit.loli.ren/docs/show/2
https://github.com/YinHangCode
https://jsonlint.com/
json如果有錯請到這邊偵錯
http://blog.itist.tw/p/how-to-study-raspberry-pi.html
https://hk.saowen.com/a/d6dc3b974ec61be5ab761b29a519564e131298cb5c3f26794001d2a833ff48cd
https://cnodejs.org/topic/54032efa9769c2e93797cd06
https://homekit.yinhh.com/