本示例的服务将根据天气预报中的湿度信息,决定加湿器是否开启。如果湿度≤30则开启,否则不开启。

前提条件

步骤一:创建产品与设备

  1. 登录物联网应用开发控制台,在页面左上角选择对应实例后,在左侧导航栏单击项目管理
    您也可登录物联网平台控制台,在左侧导航栏选择增值服务,单击选购增值服务中的前往查看服务,在增值服务中心,单击IoT Studio区域的立即试用,进入IoT Studio控制台。
  2. 单击项目卡片,进入项目详情主页,单击左侧导航栏的产品
  3. 产品页面,单击产品列表左上方的创建产品
  4. 创建产品页面,配置参数,并单击确认,如下图所示。
    说明 如果您已在物联网平台控制台创建了相关产品和设备,单击关联物联网平台产品,将产品与该项目关联即可。
    新增加湿器
  5. 产品创建成功后,回到产品页面,在产品列表中,单击目标产品对应的查看
  6. 产品详情页面,单击功能定义页签,再单击编辑草稿,选择添加自定义功能,自定义一个布尔值开关属性,单击确认,如下图所示
    功能定义
    1. 物模型添加完成后,单击页面左下方的发布上线按钮,弹出发布物模型上线对话框。
    2. 选中确认已查看当前版本与线上版本的比对结果复选框。
    3. 单击确定,发布物模型。
  7. 在项目详情页,单击左侧导航栏的设备
  8. 单击添加设备,添加智能加湿器设备,如图所示。
    新增设备

步骤二:创建业务服务

  1. 在项目的主页选择业务逻辑页签,单击新建并选择新建,创建一个业务服务。
    项目中新建业务服务
  2. 在业务逻辑开发页,单击左侧的节点按钮,拖拽一个HTTP请求节点到画布上,为节点做如下配置。
    HTTP请求
    参数 说明
    节点名称 输入节点名称。
    Action 调用API时,参数Action的值。本示例中,设置为QueryWeather
    新增参数 设置调用API时的入参。本示例中,设置了一个必填入参cityId,类型为String。
  3. 拖拽一个云市场API节点到画布上,将HTTP请求节点与该节点相连,并配置该节点。

    本示例中,在云市场购买的天气查询API是免费版气象服务(cityId)-墨迹天气

    API配置
    参数 说明
    节点名称 输入节点名称。
    请求方式 在云市场该API购买页,查看请求方式。本示例中,购买的API的请求方式为POST。
    调用地址 在云市场该API购买页,查看该API的调用地址。
    APPCODE 云市场控制台已购买的服务页列表中,查看已购买API的AppCode。
    编码 选择编码方式。
    设置请求头 根据对应接口的Header要求设置API的请求头。
    参数填写 根据云市场该API购买页的请求参数说明,填入请求参数。本示例中,需填入两个参数:
    • cityId:城市ID,可填入:
      • 静态参数,即填入一个固定值,如"cityId":"20"。参数取值,可参见墨迹天气购买页提供的“cityid对照表”。
      • 动态参数,可填入"cityId":"{{query.cityId}}",该结构是把API的入参作为子对象。
    • token:请在阿里云API网关控制台,选择调用API > 已购买API,选择地域为华北2(北京),在购买的API详情中查看。具体的token查看步骤说明,请参见墨迹天气购买页提供的“token查询方式”。
  4. 配置一个临时HTTP返回节点,用于调试、查看天气API的返回数据结构。
    因后续路径节点配置中,需调用湿度值,但天气API的返回数据结构未知,所以可以先配置一个HTTP返回节点,并进行部署、调试。在调式结果日志中,查看返回数据结构。
    1. 配置一个HTTP返回节点,输出选择为上一节点(payload)
      HTTP返回
    2. 单击部署调试按钮部署,部署服务。
    3. 部署成功后,再次单击部署调试按钮部署,输入一个cityId值,如20,进行调试。

      可在API调用结果或HTTP返回节点的节点日志下,查看返回结果数据。

      API调用结果
      返回数据结构显示,humiditydata下的condition下。因此,路径配置中,需使用data.condition.humidity调用天气API的返回结果中的湿度值。
    4. 调试成功后,删除该HTTP返回节点。
  5. 配置一个路径选择节点,与云市场API节点相连。
    路径选择
    参数 说明
    节点名称 输入节点名称。
    数据源
    • 选择数据源为云市场API节点。
    • 输入变量为:上一步调式后,查看到的湿度值所在位置data.condition.humidity
    新增路径 本示例中,只需配置两个路径,因此需删除第三条路径。

    路径配置:

    • 路径1:≤30。
    • 路径2:>30。
  6. 从左侧设备页签下,拖拽一个智能加湿器设备节点到画布上,与路径1相连。配置如下:
    智能加湿器1
    参数 说明
    节点名称 输入节点名称。
    选择要控制的设备 选择该产品下的一个设备。
    选择操作类型 选择为设备动作执行
    下发数据 勾选属性,设置电源开关值为true,即开启加湿器。
  7. 再配置一个智能加湿器,与路径2相连。

    该节点配置,设备与上一步选择一致,需将电源开关设置为false,即关闭加湿器。

    智能加湿器2
  8. 分别为两个设备节点配置HTTP返回节点。输出均设置为上一节点(payload)
    HTTP返回结果
  9. 单击页面右上角保存按钮保存,保存设置。

步骤三:调试与发布

  1. 在业务服务编辑页面,单击右上方的部署调试按钮部署,部署服务。
  2. 部署完成后,再次单击部署调试按钮部署,输入一个cityId值,单击开始调试
    调试

    全局日志显示当前湿度为11,所以服务执行了路径1,开启加湿器。

    全局日志
  3. 单击部署调试右侧的发布按钮发布,发布该服务。
    业务需要发布到云端,才能被调用。

执行结果

该服务创建的API,可以用于Web可视化开发。

可右键单击服务名称,选择服务调用帮助,查看服务调用详情。