SmartThings是一个智能设备控制系统,它包括:SmartThings Cloud(云平台)、SmartThings Hub(网关)、SmartThings Mobile(手机客户端)以及各类关联的设备或服务。编程
假设咱们有这样一个控制场景:当大门打开,则开启客厅的电灯,并向主人发送一条短信。如何实现这一控制呢?首先咱们须要一个开关传感器,当大门被打开的时候,传感器感应并将事件上报到平台,平台收到这一事件报告以后,控制客厅电灯的开关打开,同时经过短信服务发送一条短信息。浏览器
固然,诸如传感器、电灯开关这些设备可能没有网络接口,没法直接与平台通讯,这时就须要网关做为中转站。网关负责将传感器的状态改变抽象成一种事件,上报给云平台,而后接收并执行云平台下发的指令。网关并非必须的,若是一个智能设备具备网络接口并支持SmartThings的通讯协议,彻底能够跳过网关直接与云平台通讯。网络
SmartThings的应用逻辑是在云平台中实现的,也就是说“若是...那么...”这样的控制逻辑不是在手机客户端、网关、传感器上处理,而是在云平台中根据预先设定的条件和逻辑实施控制的。为何这样作呢?SmartThings认为,“设备”与“智能”应该是分开的,也就是说做为传感器不要求它具备高智能,它只要负责检测,而通讯部分交由网关完成。在云平台中,各类传感器事件和设备操做被抽象成标准的接口,例如Event.ContactSensor.opened表示开关传感器的打开事件。SmartThings认为把控制逻辑放到云平台的好处之一,是应用开发人员无需关注具体的硬件,也无需学习硬件相关的编程。咱们来看看SmartThings官网上的一个具体例子:架构
def openedContactSensor(evt, settings) { def light = settings.switch1 if(evt == Event.ContactSensor.opened) { light.on() } }
这个例子实现了一个传感器与开关的关联控制逻辑。SmartThings甚至推出了基于浏览器的开发环境,开发人员能够直接在浏览器上开发和发布应用。并发
云平台不只实现业务逻辑,对于最终用户而言它仍是一个应用商店,开发者将物联网应用发布到云平台,最终用户经过手机客户端从平台下载他们须要的应用,再通过简单配置就可使用了。还看上面的例子,“当大门打开,则开启客厅的灯,并发送短信”,当用户下载了这个控制逻辑以后,只须要在手机客户端中指定哪一个是大门的传感器,哪一个是客厅电灯的开关,以及本身的手机号码,这个控制逻辑就生效了。此外,手机客户端还帮助用户管理本身的网关、设备,以及呈现各类设备的状态和事件等。app
SmartThings的体系架构分为展示层、智能层、抽象层、链接层和能力层,经过这五个层次的划分,创建了整合物联网硬件厂商、物联网应用开发商、互联网服务提供商以及最终用户的完整生态链。物联网产业正蓬勃发展,我的和企业都有机会在这个生态系统中找到属于本身的位置。学习
SmartThings层次架构图(引自官方网络)ui
参考资料:spa