Google Smart Home

Google Smart Home

    相比於Apple的homekit,Google在智能家居這一領域的佈局略顯宏大和混亂。個人理解物聯網是包含智能家居的,而Google試圖打造一個物聯網標準,所以相對Apple的智能家居比較宏大。但是,Google在物聯網領域的一些列舉措略顯混亂,Google Home(原Google cast演變而來)、Nest、Brillo以及Weave框架。

Google Cast

    在 2013 年,Google推出了Chromecast 硬件,它運行一個精簡版的 Chrome OS,用戶可以使用手機或者電腦(Chrome 瀏覽器)來控制它播放網絡或者本地的視頻、照片等。Google 隨之發佈了適用於 iOS、Android 和 Chrome 瀏覽器的 SDK。2015 年,Google 又發佈了 Chromecast Audio,它沒有 HDMI 接口,只能播放音頻。Google 給Chromecast 使用的這套技術命名爲 Google Cast。

    Google Cast 指的是是這套通過網絡播放媒體技術,比如對應蘋果的 AirPlay。除了 Chromecast 系列硬件本身,Android TV 也支持作爲 Google Cast 的接收端,此外,索尼、LG 等廠商也製造了一些支持 Google Cast 的音響系統。這是Google智能家居的原型。

Nest and Brillo

    後來收購了智能硬件商Nest,目前的產品依然是收購前的Nest和之後收購的Dropcam。兩年來Nest只研發出了兩個協議Thread和Nest Weave。經過磨合,於15年推出了Brillo系統。Brillo系統可以看成只運行Linux內核和部分Android本地庫的精簡版Android系統。Google試圖通過定義一種標準的操作模式,來打破這種“廠商隔離”的狀態。其設想的目標就是,用戶只需要安裝一個智能手機客戶端,就可以控制所有廠商的物聯網設備,只要物聯網設備的軟件符合Google的標準。這套標準的操作模式叫做Schema。 Weave就是根據這種標準模式設計的。

Weave

    首先介紹下Weave,Weave是一種基於IPV6用於解決只能家居應用場景中的網絡傳輸協議框架,它與BLE和Zigbee相對應。Brillo採用的是Weave框架 。Weave主要包含三大組件:雲端組件,手機等智能終端組件,物聯網設備端組件。其API包括local API和cloud API。

    Weave Local API 用於在同一局域網內,通過智能終端來控制物聯網設備;Weave Cloud API用於不在同一局域網內,通過雲端遠程控制物聯網設備。根據物聯網設備的硬件配置,可以搭載LibWeave和uWeave。LibWeave適應於具備複雜計算能力的設備,uWeave是運行在資源受限制的設備上。一般情況下uWeave通過BLE與手機客戶端通信,而LibWeave要求目標設備的CPU必須支持MMU(內存管理單元)功能。


關於Weave API的整個協議棧

    在同一局域網內,Weave Local API是利用mDNS協議來發現設備,完成IP解析。對於不在同一局域網內,通過DNS服務來解析IP地址,建立HTTPS連接。

    在局域網方面,設備互相發現與Apple的homekit採用相同的協議,對於公司的BOX兼容Android和iOS平臺比較方便。而對於不在同一局域網的情況,Apple是採用Apple TV作爲控制中心,利用手機向iCloud發送消息,以Apple TV作爲中介控制設備;而Google的處理方式類似,是通過Google Cloud作爲中介,來轉發命令,與Apple不同的是,沒有Apple TV作爲中轉層。

Google Home

    不過從Google最近發佈的Google Home這個產品來看,Google很有可能將Google Home作爲中轉層。畢竟uWeave是個輕量級的協議,一般用BLE通信,而智能設備一般是通過LibWeave配置後與Google Cloud通信。如果中間用Google Home作爲中轉,Google Home和智能設備在同一網段,用uWeave就可以相互通信,這樣可以降低對智能設備的硬件要求。所以我認爲,Google Home在智能家居系統中將扮演與Apple TV類似的角色。

    值得注意的是,Google在天朝被牆了,迴歸時間不確定,所以基於Weave Cloud的遠程控制基本上是行不通的。所以只能通過Brillo的源碼來分析Weave協議,自己定製Cloud平臺。Brillo在初期只開放內測,開發者需要註冊,然後申請資格。後面逐漸加到Android的源碼裏面【附1】。GitHub上也有關於Brillo的demo【附2】。

基於Android系統智能家居的案例

    目前沒有基於Weave的商用物聯設備。鑑於小米基於Android系統已經初步打造了一個智能家居設備生態鏈,所以瞭解下小米的模式。小米在發佈 Yeelight 智能燈時就開始探索 ZigBee 協議了。Yeelight 智能燈的普通版本(Blue)採用了藍牙連接方式,而小米路由器的定製版本(Sunflower)採用了 ZigBee 協議。同時因爲小米路由器本身不支持 ZigBee 協議,所以定製版還配備了一個 USB 適配器。在小米智能家庭套裝發佈後,用多功能網關代替了USB適配器,多功能網關可以將所有 ZigBee 設備連接起來。小米利用ZigBee協議將搭載小米智能模塊的衆多設備連接起來,通過智能網關彙總到手機上,最終實現遠程控制和智能操作。

    值得一提的是,Android從4.1開始,支持Apple基於mDNS的Bonjour協議,爲BOX尋找一個跨平臺局域網內設備相互發現提供了有力的支持。Android4.0是在11年底發佈的,目前版本已經到7.0,大多數Android手機系統應該都升級到4.1以上了。

參考資料

知乎:如何看待Google的Brillo系統:https://www.zhihu.com/question/30573910

關於Brillo和Weave開發者需要知道的:http://alphayang.github.io/2015/10/30/all-about-brillo-and-weave/

Google物聯網操作系統框架 Weave解析:http://blog.csdn.net/hellochina15/article/details/51969995

未來更多智能硬件將加入Google Brillo System:http://www.brillo.org.cn/?/article/4

小米智能家居爲什麼選擇ZigBee協議:http://www.geekpark.net/topics/212200/

Android Says Bonjour:http://blog.csdn.net/innost/article/details/8629139


【附1】https://link.zhihu.com/?target=https%3A//android.googlesource.com/%3Fformat%3DHTML(可能需翻牆)

【附2】JackSmart - A "Smart Pumpkin" Demo of Brillo
         https://github.com/googlesamples/brillo-dragonboard-jacksmart
            Brillo Weave Automated Installation:
         https://github.com/kubrickology/Brillo-Weave-Install
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章