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(内存管理单元)功能。

Google Smart Home_第1张图片

关于Weave API的整个协议栈
Google Smart Home_第2张图片

    在同一局域网内,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

你可能感兴趣的:(智能家居)