天气信息控制加湿器开关

更新时间:

本示例的服务将根据天气预报中的湿度信息,决定加湿器是否开启。如果湿度≤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可视化开发。

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