温度过高时自动关闭设备
概述
物联网平台支持设备数据上报和设备命令下发,但若要将两者联动起来,一般需要由应用服务器实现对应逻辑。
设备接入服务提供规则引擎功能,平台上简单几步操作即可实现数据上报特定数据时平台自动下发指定命令,减少应用服务器开发工作量。
示例场景
本示例为设备自带的温度传感器上报的温度大于80度时,平台自动下发命令关闭设备。
操作步骤如下:
1.配置设备接入服务(IoTDA):定义物模型、创建产品设备和联动规则引擎配置。
2.接入进行验证操作。
配置设备接入服务
在设备接入服务中创建产品模型、注册设备并设置设备联动规则,实现当设备上报特定数据时平台自动下发命令。
- 访问设备接入服务,单击“立即使用”进入设备接入控制台。选择您的实例,单击实例卡片进入。
- 选择左侧导航栏的“产品”。
- 单击“创建产品”,创建一个基于MQTT协议的产品,填写参数后,单击“确定”。
表1 创建产品参数示例 基本信息
产品名称
自定义,如MQTT_Device
协议类型
选择“MQTT”
数据格式
选择“JSON”
厂商名称
自定义
所属行业
根据实际情况进行填写。
设备类型
- 单击Profile_tempSensor.zip,获取产品模型文件样例。
- 在基本信息页面,单击“上传模型文件”,在弹出的页面中加载产品模型文件,然后单击“确定”。
图2 产品-上传模型文件
- 选择左侧导航栏的 ,单击“注册设备”,填写设备注册参数。
图3 单设备注册-MQTT
表2 注册设备参数填写说明 参数名称
说明
所属产品
选择在步骤3中创建的产品。
设备标识码
即node_id,填写为设备的IMEI、MAC地址或Serial No;若没有真实设备,填写自定义字符串,由英文字母和数字组成。
设备名称
自定义。
设备认证类型
选择“密钥”。
密钥
设备密钥,可自定义,不填写物联网平台会自动生成。
填写完成后单击“确定”,请注意保存注册成功返回的“设备ID”和“设备密钥”。
- 选择左侧导航栏的“规则>设备联动”,单击“创建规则”按钮。(创建规则前需选择所属资源空间。)
- 参考下表参数说明,填写规则内容。以下参数取值仅为示例,您可参考用户指南创建自己的规则,填写完成后单击“创建规则”。
图4 新建联动规则-TemperatureProperty
表3 创建联动规则参数填写说明 参数名称
说明
规则名称
创建的规则名称,例如“Overheated”。
立即触发
勾选“激活规则”
生效时间
选择“一直生效”。
描述
对该规则的描述,如“设备温度高于80度时自动关闭设备”。
触发条件
执行动作
- 单击“添加动作;
- “动作类型”选择“下发命令”,下发设备选择步骤6创建的设备;
- 服务选择“deviceSwitch”,命令选择“ON_OFF”,单击“参数配置”,“power”的值选择“OFF”,然后单击“确定”。
验证操作
- 您可以使用配置设备接入服务时注册的真实设备接入平台,上报“temperature”大于80的数据。
- 您也可以使用模拟器模拟设备订阅Topic: “$oc/devices/{device_id}/sys/properties/report”(其中{deviceId}需要替换成实际设备ID)后,上报“temperature”大于80的数据,操作方法请参考在线开发MQTT协议的模拟智慧路灯。
- 您还可以使用虚拟设备进行在线调试,上报“temperature”大于80的数据。
期望结果:
- 若您使用真实设备上报数据,设备会收到一条“power”取值为“OFF”的“ON_OFF”命令。
- 若您使用模拟器上报数据,可在“Subscribe”页签查看到平台下发的“power”取值为“OFF”的“ON_OFF”命令。