# 当房间开门时,打开对应房间的空调

原理:

  1. 利用ReactorQL节点来订阅设备的开门事件.
  2. 利用设备指令节点选择相同分组内的另外一个设备.

# 创建智能门锁设备

  1. 进入系统: 设备管理-设备产品-新建

进入设备产品

  1. 输入产品信息以及相关信息。

创建智能门锁设备

  1. 点击确定进行保存。

  2. 配置MQTT认证信息。

mqtt认证配置

  1. 配置物模型。

物模型

  1. 应用配置。

应用配置

  1. 创建设备实例。

创建设备

  1. 激活设备。

激活设备

注意:

新建产品启用需要发布,此处直接点击应用配置按钮,则会自动发布该产品。

# 创建智能空调设备

参考创建智能门锁设备

创建产品:

创建智能空调设备

配置物模型:

智能空调设备物模型

创建设备实例:

创建智能空调设备

分别激活设备产品、设备实例。

# 创建房间分组

  1. 创建分组

创建分组

  1. 关联智能门锁和智能空调。

绑定设备

# 创建规则实例

# 创建ReactorQL节点

  1. 在工作区中拖入监听HTTP节点。

创建ReactorQL节点

使用方式可参考工作区右侧的节点帮助

  1. 双击节点进入编辑页。

update-ReactorQL

使用SQL如下:

select 
t.deviceId deviceId
from "/device/t-lock/*/message/event/open-door" t

# 创建设备指令

  1. 在工作区中拖入设备指令节点。

创建ReactorQL节点

使用方式可参考工作区右侧的节点帮助

  1. 双击节点进入编辑页。

update-ReactorQL

选择设备输入:

same_group(deviceId),product('t-smart-ac')

消息内容输入:

{
  "messageType": "INVOKE_FUNCTION",
  "functionId":"open",
  "inputs": []
}

配置完成后启动规则

# 模拟器设备消息

  1. 此处通过mqtt.fx来模拟智能门锁lock001(以下简称客户端lock001)

mqttfx-lock001

和智能空调ac001(以下简称客户端ac001) 。

mqttfx-ac001

点击按钮Connect连接平台,连接成功后,设备应为在线状态。

注意:

同一台机器无法开启两个mqtt.fx客户端时,请在两台机器上模拟两个设备,或者启用jetlinks源码中的模拟器

  1. 在客户端ac001中订阅功能调用topic:/invoke-function

subscribe

  1. 在客户端lock001中推送开门的事件,topic为/open-door

push-event

  1. 客户端ac001收到功能调用消息表示此规则应用成功。

invoke-function