當前位置:
首頁 > 科技 > 零基礎也可以打造智能家居,利用群暉docker將小米全家桶接入蘋果 siri

零基礎也可以打造智能家居,利用群暉docker將小米全家桶接入蘋果 siri

我在2016年購入群暉的DS216+ii後,一直將它作為家庭的備份和影音中心使用,這兩年小米的智能家居設備買了不少,林林總總加起來已經30多件了,最近看了幾篇將小米的插件接入homekit的文章,自己也在家胡亂折騰了好幾天,中間也走了不少彎路,這裡把自己的經驗和總結分享一下,希望有更多的人能通過本文最後實現用Siri在家享受智能家居的快樂。

本文利用docker在群暉NAS上接入的插件只有homebridge,對比一些需要home assistant輔助或者hass.io接入的更直接,簡便而且不容易出錯,但與之相對比的是單homebridge無法實現一些自動化功能,這個我更傾向於在米家app上直接設置而不是再單獨設置一遍。這裡Homebridge插件其實就是把蘋果的Homekit不支持的設備,模擬成Homekit支持的設備再接入Homekit,然後就可以用siri聲控了。

先來說說我為什麼已經在有米家app和智能音箱小愛同學的情況下還要把小米全家桶接入ios Homekit。在有小愛同學的情況下,大部分聲控功能都可以實現,但一般家裡也就1,2個小愛或mini小愛,它無法做到全屋覆蓋而且小愛同學在距離稍遠的地方喊識別率並不高,在把小米全家桶接入siri後,因為手機大部分時間都會在身邊,平時喊一聲siri比小愛更方便而且識別率非常高,siri可以作為智能音箱的一個補充,再加上群暉NAS 24小時在線的優勢,比用樹莓派搭建起來更方便。這裡建議大家還是需要先搞個米家app,把小米的設備都連進去,設置好,homekit裡面設置項很少,開關之外的功能還是得靠米家自己的app。

這次安裝所需要的硬體和前期準備工作如下:

1.群暉x86 CPU NAS一台。目前只有CPU架構為x86,帶+號的群暉型號才能安裝docker,網上似乎也有非x86型號的曲線安裝python的方法,但對此我沒有更深入的研究,還需要各位自行搜索。

2.

一台能固定ip的路由器。建議把各類需要接入homekit的設備都分配固定IP,因為在後面的homebridge文本編寫中很多小米插件都需要具體IP地址和token,不固定IP的話一旦這個插件離線後再連上路由器IP地址就變了,還需要自己手動修改,一勞永逸固定IP就解決了。這個一般的路由基本都有類似功能了,我用的路由器是網件的R7000,在R7000上的操作具體是:打開鏈接 進入路由界面,點左上角的高級-安裝-區域網IP設置-將路由器用作DHCP伺服器這項打鉤-然後點應用就可以刪減固定ip了。

3.百度上下載並安裝安卓模擬器來獲取小米設備的token。我用的是夜神模擬器,打開模擬器進入應用中心,搜索智能家庭,下面雲搜索裡面能找到米家熟悉的標誌,如圖:

模擬器內安裝好後進入米家app,登錄好自己的賬號,等app內刷出自己全部的米家設備後返回回主界面,點左下角的文件管理器進入路徑/data/data/com.xiaomi.smarthome/databases/里,找到文件miio2.db,在文件前面打鉤(默認複製),然後點最上面的父目錄幾下退回根目錄,進入路徑mnt/shared/other,點文件管理器右上角的倒數第五個按鈕粘貼選擇項,如圖:

粘貼完後按ctrl+3打開文件中轉站,在其他文件那裡點打開電腦文件夾就能找到剛才的miio2.db文件了,然後打開網站鏈接 ,上傳miio2.db,點擊提交,獲得token。獲得了token之後建議複製在excel表格中,對照mac地址在路由器中找到小米設備的相應IP並修改名字,方便自己管理。

下面開始群暉NAS上的安裝,打開群暉主界面,套件中心裡搜索docker應用後安裝。裝好docker之後打開,在註冊表頁面搜索「homebridge」,如圖:

下載第一個marcoraddatz/homebridge,右擊下載此圖像,選最新版本latest。有的人也選擇安裝oznu的,這裡還是以marcoraddatz的為主,鏡像大小為1g,大概完成時間為半小時到1小時,中間可以去干點別的事。

下載完成後進入映像菜單,雙擊marcoraddatz/homebridge點高級設置

在卷里點添加文件夾,在根目錄下新建一個Docker文件夾,在Docker文件夾下新建一個homebridge文件夾,選擇該文件夾後裝在路徑如圖:

然後選網路,勾選最下方』使用與dockerhost相同的網路』,

然後點應用,下一步,不要去除這個運行容器的鉤,雖然運行了沒有用,但是會幫你在文件夾裡面生成相關文件,方便後來編輯。

然後去文件夾下看看有沒有生成文件後,就可以在容器菜單裡面關閉這個在運行中程序了,這樣homebridge就基本設置好了。

接著就是這次的重點,需要對config.json和install.sh兩個文件進行編輯了,首先將這兩個文件複製到自己電腦上,為了方便編輯,建議安裝一個notepad++ ,用這個軟體來編輯。下面就直接拿我正在使用的config.json和install.s,先來看看install.sh裡面:

#!/bin/bash

apt-get install libavahi-compat-libdnssd-dev

apt-get install jq

npm install -g homebridge-aqara

npm install -g homebridge-mi-robot_vacuum

npm install -ghomebridge-sonybravia-platform

npm install -g homebridge-yeelight

npm install -g homebridge-mi-outlet

頭兩條#!/bin/bash,apt-get installlibavahi-compat-libdnssd-dev是這次安裝必需插件,後面幾條都是自己需要的小米插件包,小米的各類插件可以到這個網站上自行尋找鏈接 ,查找關鍵字即可,可以按照popularity排列看看使用的最多的是哪些插件,可以幫助排雷。裡面可以找到具體的插件詳細設置和代碼,拿我自己安裝的插件舉例,其中homebridge-aqara支持小米的zigbee設備,插件主頁鏈接 ,類似的homebridge-mi-robot_vacuum就是掃地機器人插件,homebridge-sonybravia-platform支持索尼電視開關,我安裝jq插件也是因為這個插件里它需要。homebridge-yeelight支持大部分yeelight設備,我家裡有的是吸頂燈和檯燈,homebridge-mi-outlet是小米插座帶usb版本的,裝了是因為不包含在homebridge-aqara設備內。另外很多人選擇安裝支持更多小米設備的homebridge-mi-aqara插件而我還是裝了aqara的原因是mi-aqara沒辦法在我的NAS上正確識別。

然後就到測試耐心的時候了,開始編輯config.json。這一步很容易出錯,建議大家用鏈接 這個網站校驗文本的正確性,沒有錯誤再啟動homebridge。這裡再貼一個編寫json的規範教程,看一看了解一下對編輯config文本幫助很大:鏈接 ,

{

"bridge":{

"name":"Lyman-Home", 這裡是你homekit橋接入的名字,隨便改

"username":"CC:24:35:E3:43:45", 這裡可以不用改,隨便填,如果出現啟動homebridge找不到插件的情況,可以試著修改裡面幾個字元

"port":52678, 不用改,隨便填

"pin":"123-45-678" 不用改,隨便填,但要按照這個格式輸

},

"platforms":[{

"platform":"AqaraPlatform",

"sid":["xxxxxxxxx"], 小米網關的MAC地址

"password":["xxxxxxx"] 小米網關的通訊協議密碼

},{

"platform": "MiRobotVacuumPlatform",

"deviceCfgs": [{

"type": "MiRobotVacuum2",

"ip": "10.0.0.18", 掃地機IP,路由器和安卓模擬器上都能抓取,自己修改

"token": "xxxxx", 掃地機的token,在安卓模擬器上獲取,複製到這裡來

"robotVacuumName": "robot vacuum 2",

"enablePauseToCharge": true,

"robotVacuumDisable": false

}]

},{

"platform":"SonyBravia",

"name":"Sony Bravia",

"ipadress":"10.0.0.16", 電視IP,路由器和安卓模擬器上都能抓取,自己修改

"port":80,

"psk":"9999", 索尼電視上的psk密碼,自己可以設置,具體可以搜索插件名有詳細教程

"interval": 5,

"maxVolume":35,

"extraInputs":false,

"volumeEnabled": true,

"appsEnabled": true,

"channelsEnabled":false,

"channelSource":"tv:dvbt",

"inputsEnabled":true,

"detectCEC":true

},{

"platform":"MiOutletPlatform",

"deviceCfgs": [{

"type": "MiPlugBaseWithUSB",

"ip": "10.0.0.13", 米家usb插座IP,路由器和安卓模擬器上都能抓取,自己修改

"token": "xxxxx", 米家usb插座的token,在安卓模擬器上獲取,複製到這裡來

"outletName": "bedroom outlet",

"outletDisable": false,

"temperatureName": "bedroom outlet temperature",

"temperatureDisable": false,

"switchUSBName": "bedroom outlet usb switch",

"switchUSBDisable": false}]

}]

}

這裡網關是需要填寫token和密碼的。需要注意的是必須使用二代網關並且升級了最新的網關固件,然後在米家app里點開網關,右上角三個點-關於-屏幕最下面空白處點擊5下。

會顯示高級選項,點「網關信息」能看到裡面的mac地址為xx:xx:xx:xx:xx:xx,複製下來並填入網關的sid裡面,注意中間不要加:號並且全部小寫。 網關password里的密碼在關於-區域網通信協議里,裡面的數字全部複製進去,全部要大寫。

索尼電視的插件可以在鏈接 查看具體說明,裡面除了能自動發現電視hdmi口下的設備外,還可以控制電視直接打開索尼自帶安卓系統里安裝的app等,我沒有詳細去玩,因為現在客廳電視接著zidoo x9s,用cec功能開機後自動進入zidoo主界面,已經非常方便了。

這裡大的「platforms」只會有一個,小的「platform」可以很多個,建議看看上面的規範教程自己學習。寫好後把文本輸入校驗網站,通過了就可以保存然後拖入群暉的docker/homebridge文件夾里了。如果出現全部設置正確但就是沒辦法在homekit下找到橋的可以試試群暉里關閉Bonjour服務,具體是控制面板-文件服務-高級設置-啟用Bonjour服務發現那的√去掉。

另外就是bridge的username,發現不了可以隨便改幾個字元試試。

我的config.json和install.sh兩個文件已經上傳到百度雲,鏈接 密碼:luva ,各位可以自行下載參考。

第一次啟動總不會很順利,要麼找不到設備,要麼報錯,顯示容器停止。容器停止一般是配置文件語法錯誤了,或者是相關組件的運行包沒有安裝。這時可以進去容器的詳細界面,查看日誌,報錯終端機里會有紅字和黃字提示,仔細排錯,慢慢來吧。

在啟動之後打開終端機,如果沒有問題,終端機里顯示會像下圖這樣,然後直接輸自己在config.json里設的密碼連入homekit 。

打開手機的家庭,選擇添加配件,輸入上面的代碼,如果一切正常就可以開始調戲siri啦

一些不常用的插座可以點進去把它隱藏掉。

最後,本文也是在參考學習了很多其他前輩大神們的文章基礎上完成的,主要學習自github、smzdm、homekit.loli.ren,www.npmjs.com等網站,如有不對還請指出。尤其在github和npmjs上,大部分自己想要的插件都可以找到,同時感謝張大媽的PEKO啞虎呸呸兄,就是看了你的帖子我才去研究homekit的,希望大家都能在玩耍中找到智能家居的樂趣,謝謝大家。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 什麼值得買 的精彩文章:

語音搜片、雙解碼音頻:MI 小米 發布 小米電視4A 40英寸版
春天來了 落了灰的愛車該拿出來騎了!

TAG:什麼值得買 |