How JuBo Works: The Basics

倾然丶 夕夏残阳落幕 提交于 2019-12-07 14:41:37

JuBo是一个数据驱动、具有学习能力的物联网关。JuBo的目标是让智能设备快捷高效的联网。JuBo是开源的,项目地址https://github.com/jubolin)

这只是一个概述,更多内容请参见JuBo Wiki

对于JuBo来说,所有的智能设备或者传感器都被定义为Thing,设备的功能被定义为Service,功能的属性定义为Property。Thing + Service + Property唯一确定了一个设备的某个功能属性,是JuBo中最小的控制单元。例如电灯提供了照明功能,有亮度和颜色两个属性,那么在JuBo中就表现为bulb + lighting + brightless和bulb + lighting + color两条记录。所有对这个电灯的管理、控制和智能都是基于这两条记录的。也就是说,JuBo所有的功能都是基于设备功能属性记录的,即数据驱动的。

智能设备接入

设备接入需要完成以下步骤:

  • 确定设备对外提供的功能属性(这个工作在开发阶段完成)
  • 设备通过对应物联网协议的Connector连接上JuBo
  • 初始化并注册设备(设备描述、厂家描述等信息)
  • 注册所有功能属性并订阅(Sub)设备本身的功能属性
  • 功能属性记录保存在数据库中,数据库只能通过DDP Service操作

使用者控制设备

  • 在Web页面或CLI修改某个功能属性
  • 修改值保存到数据库中,触发数据变化事件
  • 订阅(Sub)了该功能属性的设备触发相应的动作
  • 设备完成最后修改动作 比如用户在Web页面上修改了电灯的颜色,那么颜色值存入数据库并触发数据变化事件,由于电灯在接入的时候Sub了自己的功能属性,因此颜色值变化触发的事件会传达给电灯设备,最后由电灯完成颜色的改变。

智能学习

JuBo的智能学习分为两种,一种是行为链学习,另一种是大数据学习。

行为链学习

所谓的行为链学习,就是把每一个属性的改变看成用户的行为,并且定义满足什么条件的行为产生关系,当该条件再次发生时,前面的属性改变将触发后面的属性发生变化。 比如定义间隔时间少于1分钟的两个行为产生关系,那么行为链学习就是这样的:

  • 属性A改变,1分钟内属性B也发生改变,此时JuBo认为属性A和属性B产生了关系——A触发了B
  • JuBo记录A和B的属性值,并创建A和B的关系
  • 当A的属性值发生变化时,JuBo查找所有匹配此属性值的A的关系
  • 匹配A和B的关系,修改B的属性值为记录的属性值,完成A触发B的动作

行为链学习在智能家居中比较适用,比如你晚上下班之后开门、开灯、然后打开热水器烧水,接着打开电视看体育频道、等水烧热后洗澡。当JuBo完成行为链学习之后,某晚你下班后打开门,就会发现灯自动打开、电视机自动打开并播放体育频道,热水器开始烧水,当水烧热之后你会收到提醒去洗澡。后面这些行为都在门打开之后自动进行,这就是行为链学习。

大数据学习

大数据学习就比较明显了,就是收集大量的数据使用数据挖掘等技术学习用户的行为习惯和喜好。由于JuBo的数据是存储在本地的,因此你不需要担心数据隐私泄露。

更多JavaScript物联网,欢迎加入群:348776509

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!