阿里云平台提供了外部接口去修改设备的属性值,调用成功后发现设备属性依然不变

项目场景:

使用阿里物联平台的接口修改设备属性


问题描述

阿里云平台提供了外部接口去修改设备的属性值,调用成功后发现设备属性依然不变
平台是已经收到我们的指令了,设备也收到平台转发我们的指令,但是平台的属性值依然不变

package main

import (
	"fmt"
	
      "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
    "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
	iot "github.com/aliyun/alibaba-cloud-sdk-go/services/iot"
  
)

func main() {
	config := sdk.NewConfig()

	credential := credentials.NewAccessKeyCredential("<your-access-key-id>", "<your-access-key-secret>")
	/* use STS Token 
	credential := credentials.NewStsTokenCredential("<your-access-key-id>", "<your-access-key-secret>", "<your-sts-token>")
	*/
    client, err := iot.NewClientWithOptions("cn-shanghai", config, credential)
	if err != nil {
		panic(err)
	}

	request := iot.CreateSetDevicePropertyRequest()

	request.Scheme = "https"

	request.IotInstanceId = ""
	request.ProductKey = ""
	request.DeviceName = ""
	request.Items = ""


	response, err := client.SetDeviceProperty(request)
	if err != nil {
		fmt.Print(err.Error())
	}
	fmt.Printf("response is %#v\n", response)
}

原因分析:

因为云端下发属性设置命令和设备收到并执行该命令是异步的,所以调用该接口时,返回的成功结果只表示云端下发属性设置的请求成功,不能保证设备端收到并执行了该请求。即需设备端SDK成功响应云端设置设备属性值的请求,设备属性值才能真正设置成功。
这是官网API文档的原话
可能有点不好理解。通俗来说就是我们只进行了数据下行,没有进行数据上报。数据下行:云端->平台->设备
平台属性值得改变与否只看设备上报的值


解决方案:

很简单,就是在设备端开发,收到这条指令后,返回一条属性设置的消息给平台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值