DIY樹莓派Homebridge智能台燈


前言

前陣一直在鼓搗智能家居,用樹莓派接入Apple HomeKit小試牛刀,支持自帶Home App控制和Siri調用,一個月用下來還算穩定,特此記錄搭建步驟幫助有需要的朋友少走彎路~

自打2014年HomeKit發布以來,我對智能家居產生了濃厚的興趣。想想躺在床上動動嘴就能開關燈,冬天不要太愜意!然而HomeKit認證家電售價較高,未能在國內普及,官網認證插座均價在400左右,國產便宜智能家電無法接入HomeKit則需安裝各種app,無法統一管理體驗大打折扣……

直到有一天,名為nfarina的大神宣布自己成功逆向HomeKit接入三方硬件。這還沒完,大神隨即在自己的GitHub上開源了這套名為Homebridge的系統!從此所有人都可以無償使用Homebridge甚至二次開發,簡直不要太贊!

鑒於手上還有一只勤勞的樹莓派zerow在跑腳本,另有萬年前眾籌的控客miniK智能插座,決定DIY一款HomeKit智能台燈!

Let's get started!

實現

安裝Homebridge

我計划於樹莓派ZeroW上安裝Homebridge(下文簡稱HB),根據官方wiki安裝HB前需要先配置Node,網上大多教程均基於采用armv7處理器的Pi3編寫,無法兼容armv6的ZeroW,強行安裝會報錯。通過不斷摸索,我總結出了以下方法。

pi@rpi0w:~ $ sudo -i
root@rpi0w:/home/pi # cd ~
root@rpi0w:~ # wget https://nodejs.org/dist/v9.10.0/node-v9.10.0-linux-armv6l.tar.xz
root@rpi0w:~ # tar xJvf node-v9.10.0-linux-armv6l.tar.xz
root@rpi0w:~ # mv node-v9.10.0-linux-armv6l /usr/local/node
root@rpi0w:~ # echo PATH=$PATH:/usr/local/node/bin >> /.bashrc
root@rpi0w:~ # source ~/.bashrc

此方法手動下載並安裝armv6版Node,為方便上電自啟,建議在root權限下操作。因為眾所周知的原因,國內訪問境外服務器速度奇慢無比,可將npm替換為taobao鏡像再安裝HB及ikonke插件,該鏡像每十分鍾與主站同步一次。當然如果你不是強迫症患者亦可直接安裝cnpm代替npm一勞永逸。

root@rpi0w:~ # npm config set registry http://registry.npm.taobao.org
root@rpi0w:~ # npm install -g --unsafe-perm homebridge
root@rpi0w:~ # npm install homebridge-ikonke-outlet
root@rpi0w:~ # homebridge

安裝需要一段時間,正常情況下最后一句執行HB會報錯,系統提示你沒有找到配置文件無法啟動。

獲取插座信息

重點來了!!!

補全配置還需獲取控客插座信息,需要用到ikonkeIO小工具。

pi@rpi0w:~ $ git clone https://github.com/YinHangCode/ikonkeIO.git
Cloning into 'ikonkeIO'...
remote: Enumerating objects: 67, done.
remote: Total 67 (delta 0), reused 0 (delta 0), pack-reused 67
Unpacking objects: 100% (67/67), done.

pi@rpi0w:~ $ cd ikonkeIO/
pi@rpi0w:~/ikonkeIO $ mv ikonkeIO_armv7l/* ./
pi@rpi0w:~/ikonkeIO $ chmod +x *
pi@rpi0w:~/ikonkeIO $ sh ikonkeIO.sh --discover 192.168.3.255
broadcast address: 192.168.3.255, scan ikonke device.... 

type: mini_w
ip: 192.168.3.33
mac: 28-aa-bb-cc-ee-ff
password: XXXXXXXX

^C

此處ip更換為局域網所在網段,通過Ctrl-C終止廣播。重新配置插座WiFi連接會導致password變更。獲知上述參數即可配置HB的config.json文件,在如下位置創建並寫入內容文本保存。

pi@rpi0w:~ $cd ~/.homebridge/
pi@rpi0w:~/.homebridge $nano config.json

GNU nano 2.7.4      File: config.json

{
    "bridge":{
        "name":"Homebridge",
        "username":"CC:22:3D:E3:CE:30",
        "port":51826,
        "pin":"031-45-154"
    },
    "platforms":[{
        "platform":"IkonkeOutletPlatform",
    "ikonkeIO":"/home/pi/ikonkeIO/ikonkeIO.sh",
    "deviceCfgs":[{
        "type":"mini_w",
        "ip":"192.168.3.33",
        "mac":"28-aa-bb-cc-ee-ff",
        "password":"XXXXXXXX",
        "outletDisable":false,
        "outletName":"KMini outlet"
      }]
    }]
}

其中ikonkeIO、ip、mac、password等參數一定要填寫正確,否則無法通訊。建議在路由器DHCP中為插座保留ip地址。

接入Home App與Siri

完成上述操作后可直接啟動HB查看效果。

root@rpi0w:~# homebridge

*****************

    QR-code

*****************

首次啟動HB會產生一個巨大的二維碼,使用iOS自帶的Home APP添加配件掃碼即可連接HB:

插座圖標與名稱支持自定義,自定義名稱支持Siri指令。

例如:Hey Siri, turn on the light!

如果你有足夠的腦洞,甚至可以寫自動化腳本實現你在家中的每一個工作日起床開燈!周末或不在家中則無法觸發。

開機自啟

至此還剩一步,若樹莓派斷電或退出bash均會導致HB服務中斷,建議將HB配置為上電自啟。配置Linux開機自啟方法很多,無外乎寫文件和改服務,這里示范官方wiki推薦方法供參考。該方法要求node、npm、HB均在root權限下安裝且HB為全局安裝。

root@rpi0w:~ # npm install -g pm2
root@rpi0w:~ # pm2 startup
root@rpi0w:~ # pm2 start homebridge
root@rpi0w:~ # pm2 save

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM