# 煤气浓度过高自动打开推窗器
#### 概述
煤气安全关系到千家万户的生命财产安全。本示例基于华为物联网平台提供的设备接入服务，通过触发设备联动规则，自动打开推窗器。
#### 示例场景
本示例场景是煤气监测器将煤气浓度数值上报到物联网平台，当煤气浓度超标时，会触发设置好的设备联动规则，物联网平台会下发打开窗户的命令到无线推窗器，无线推窗器收到命令后，自动把窗户打开。
操作步骤如下:
1. [创建煤气监测产品]。
2. 根据煤气监测产品[注册设备]。
3. [配置设备联动规则]。
4. [验证操作]。
图1示例说明   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000002063517000.png "点击放大")
 #### 创建煤气监测产品
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"立即使用"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 选择左侧导航栏的"产品"。
3. 单击左侧的"创建产品"，创建煤气浓度监测产品，填写参数后，单击"确定"。
   
   表1创建产品参数示例 
   |                                                 **基本信息**                                                  ||
   |---|---|
   | 产品名称 | 自定义，如gasdevice。 |
   | 协议类型  | 选择"MQTT"      |
   | 数据格式 | 选择"JSON"      |
   | 所属行业    | 自定义                                   |
   | 设备类型 | 自定义                                   |
      
   
   
4. 在基本信息页面，单击"自定义模型"，参考下表，完成产品模型配置。gaslevel服务用于监控煤气浓度，windowswitch服务用于执行开关窗命令。 
   表2煤气浓度监测产品模型参数示例 
   | 服务ID || 参数类型 |                                                                                添加参数说明内容                                                                                 |
   |---|---|---|---|
   | gaslevel || 属性     | 属性名称：gaslevel 数据类型：int 访问权限：可读 取值范围：0\~100     |
   | windowswitch || 命令     | 命令名称：switch 下发参数名称：switch 数据类型：enum 枚举值：on，off |
      
   
   
 
 #### 注册设备
1. 选择左侧导航栏的"设备 \> 所有设备"，单击"注册设备"，填写设备注册参数。注册煤气浓度监测设备，并记录设备ID和密钥。
   
   图2单设备注册-gasdevice   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001950367910.png "点击放大")
   表3注册设备参数填写说明 
   | 参数名称 | 说明                                                               |
   |:---|:---|
   | 所属产品  | 选择在创建煤气监测产品[3]中创建的产品。     |
   | 设备标识码 | 即node_id，填写为设备的IMEI、MAC地址或Serial No；若没有真实设备，填写自定义字符串，由英文字母和数字组成。 |
   | 设备名称 | 自定义。                                                                |
   | 设备认证类型 | 选择"密钥"。                                                             |
   | 密钥    | 设备密钥，可自定义，不填写物联网平台会自动生成。                                           |
      
   
   
2. 选择左侧导航栏的"设备 \> 所有设备 \> 设备注册"，单击"注册设备"，填写设备注册参数。注册推窗器设备，并记录设备ID和密钥。
   
   图3单设备注册-windowswitch   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001981487349.png "点击放大")
   表4注册设备参数填写说明 
   | 参数名称   | 说明                                                              |
   |:---|:---|
   | 所属产品    | 选择在[3]中创建的产品。       |
   | 设备标识码   | 即node_id，填写为设备的IMEI、MAC地址或Serial No；若没有真实设备，填写自定义字符串，由英文字母和数字组成。 |
   | 设备名称      | 自定义。                                                              |
   | 设备认证类型 | 选择"密钥"。                                                         |
   | 密钥      | 设备密钥，可自定义，不填写物联网平台会自动生成。                                        |
      
   
   
 
 #### 配置设备联动规则
1. 选择左侧导航栏的"规则\>设备联动"，单击"创建规则"按钮。（创建规则前需选择所属资源空间。）
2. 参考下表参数说明，填写规则内容。以下参数取值仅为示例，您可参考[云端规则](https://support.huaweicloud.com/usermanual-iothub/iot_01_0023.html)创建自己的规则，填写完成后单击"创建规则"。
   
   图4新建联动规则-GasLevel   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001981503453.png "点击放大")
   表5创建联动规则参数填写说明 
   | 参数名称  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   |:---|:---|
   | 规则名称  | 创建的规则名称，例如"windowswitch"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 立即触发 | 勾选"激活规则"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 生效时间  | 选择"一直生效"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 描述     | 对该规则的描述，如"煤气浓度高于6时自动打开推窗设备"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 触发条件    | 1. 单击"添加条件"；  2. 选择"设备属性触发"；  3. 选择[3]中添加的产品，选择"指定设备"后选择[1]中添加的设备；  4. "服务类型"选择"gaslevel"，"属性名字"选择"gaslevel"，"操作"选择"\>"，"值"填写"6"，单击"触发机制"，"触发策略"选择"重复抑制"，"数据时效"填写"300"，然后单击"确定"。   |
   | 执行动作 | 1. 单击"添加动作"；  2. "动作类型"选择"下发命令"，下发设备选择[2]创建的设备；  3. "服务类型"选择"windowswitch","命令名字"选择"on_off"，单击"参数配置"，"switch"的值选择"on"，然后单击"确定"。                                                                                                                                                                                      |
      
   
   
 
 #### 验证操作
**方法一：**
您可以使用MQTT.fx模拟设备验证。
1. 使用MQTT.fx分别模拟煤气探测器设备和推窗器，并连接到物联网平台。操作方法请参考[在线开发MQTT协议的模拟智慧路灯](https://support.huaweicloud.com/bestpractice-iothub/iot_bp_00016.html)。
2. 打开模拟推窗器的MQTT.fx，订阅平台下发的命令。
   1. 选择"Subscribe"页签。
   
   2. 输入订阅平台下发命令的Topic=$oc/devices/{device_id}/sys/commands/#（其中{device_id}与[2]获取的设备ID保持一致。）。
   
   3. 单击"Subscribe"按钮，完成平台命令下发订阅。
      图5创建MQTT订阅   
      ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001960021562.png "点击放大") 
    
3. 切换到模拟煤气探测的MQTT.fx，上报属性。
   1. 选择"Publish"页签。
   
   2. 输入属性上报的Topic："$oc/devices/{device_id}/sys/properties/report（其中{device_id}与[1]获取的设备ID保持一致。）。
   
   3. 上报1条"gaslevel"大于6的属性。
      样例：
      ```
      {
          "services": [{
                  "service_id": "gaslevel",
                  "properties": {
                      "gaslevel": 45
                  }
              }
          ]
      }
      ```
      
   
   4. 单击"Publish"按钮上报属性值。
      图6MQTT属性上报   
      ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001960022114.png "点击放大") 
    
4. 切换到模拟推窗器的MQTT.fx，选择"Subscribe"页签。可以看到收到平台下发的"switch"取值为"on"的命令。
   图7查看下发命令   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001996543865.png "点击放大")
   **方法二：**
   您可以使用配置设备接入服务时注册的真实设备接入平台，上报"gaslevel"大于6的数据。设备会收到一条"switch"取值为"on"的命令，自动推开窗户。
   
 
