天气控制加湿
更新时间:2019-01-28 10:07:16
目标
当前模板可以让您学习如何根据阿里云的API返回结果控制设备。可以用于天气,图像识别,机器学习等场景。
说明
有一个空气加湿器,根据天气预报的湿度结果决定开启与否。如果湿度<30则开启,否则不开启。
创建产品
本次需要创建一个产品——一个空气加湿器(开关状态一个布尔型属性)
- 创建一个空气加湿器产品。
- 添加一个开关功能。
- 创建一个设备。
创建服务
- 创建一个服务。
- 选择一个API输入节点。在右侧栏修改其调用路径为/weather。
3.添加一个API输入参数。由于后面查询天气的时候需要用到所在城市,因此API参数设定为字符“cityId”,配置如图所示。
- 添加一个云市场API节点。配置项先留空。
- 打开新页面前往阿里云市场选择API。这里由于是调试我们选择免费版的墨迹天气,点击购买按页面提示完成购买即可。
- 进入控制台则可以看到自己购买的API,APPCODE等信息。这里不要关闭页面,后面还会用到。
- 此时返回服务开发,点击云市场API节点进入右侧的配置栏。可以先填入请求方式(这里为POST),调用地址等。
- APPCODE则打开第6步中的页面。复制到配置项内。注意,阿里云文档要求调用格式为"APPCODE"+[半格空格]+[APPCODE],我们这里只需要直接输入真正的APPCODE即可。正常情况下编码方式不需要变化。
- 根据API官方提供的调用参数说明(见下图),我们需要两个入参——一个cityId一个token。填写方法如图:
cityId的对应数值可以查看如下列表。
token需要前往API网关进行查看(需要选择区域——华北2)。也可以查看墨迹天气提供的文档。
动态入参
我们这里采用了动态参数的方法承接API的入参“cityId”,方法为使用“”代替静态值(如“20”)。
query对象即API入参的对象。我们可以在日志内看到它的结构是直接把API的入参作为子对象。因此只需要使用query.cityId调用即可。
- 由于我们不知道墨迹天气的返回数据结构,因此我们可以先在末尾添加一个API输出节点,让整个服务完成最小闭环,然后进行部署调试获取返回结果。API输出节点不需要任何配置。
- 点击部署。部署完成后点击调试。输入一个cityid作为调试入参(20为北京)。
- 可以查看返回信息结构。看到我们的湿度是放在data下的condition下的humidity里的。我们后面需要使用payload.data.condition.humidity调用对应的api返回结果。
- 添加一个条件节点。输入配置,第一个框选择“上一个节点”,第二个框输入data.condition.humidity。下面路径添加条件判断>30,<=30两个条件。
- 添加一个设备里的“智能加湿器”节点。右侧配置项如图所示。这个是用于关闭加湿器的,因此属性“Open”后跟0。
- 同理配置另一个打开加湿器的设备节点。
- 由于这个服务由API输入触发,因此在每个路径的最后都要添加一个API输出节点。API输出节点使用默认配置即可。
- 进行部署调试。
- 查看调用结果,可以在日志看到当前湿度为12,服务执行了路径1。自此天气控制加湿完成。
- 本次开发的服务作为一个API,可以被web可视化开发进行调用或直接右键点击“查看API详情”获取外部调用帮助。