阿里云物联网平台设备端响应物模型属性更新

简介: 在使用云端API SetDeviceProperty、iot studio设置设备属性、物联网平台控制台在线调试功能时,会出现物模型属性没有更新的情况。以上功能中都是在调用SetDeviceProperty接口去更新物模型属性。因为云端下发属性设置命令和设备收到并执行该命令是异步的,所以调用该接口时,返回的成功结果只表示云端下发属性设置的请求成功,不能保证设备端收到并执行了该请求。需设备端SDK成功响应云端设置设备属性值的请求,设备属性值才能真正设置成功。

链路:

  1. 调用云端API
  2. 设备端监听并响应
  3. 查看结果

云端API SetDeviceProperty示例 :

一.OpenAPi 调用 云端API SetDeviceProperty ,将物模型属性更新请求信息发送到设备端

image.png

二. 设备端接收到请求信息

方法一 : 物模型开发

Node.js SDK示例:

     device.onProps方法监听云端设置属性服务消息,并调用device.postProps响应物模型属性更新。

image.png

// 监听云端设置属性服务消息device.onProps((cmd)=>{
console.log("接收到消息--------->\n",cmd);
// 物模型属性上报device.postProps(cmd.params);
  })


python SDK示例:SDK只需对on_thing_prop_changed进行响应处理,其他根据官方文档操作即可。

  1. 需要从云端控制台下载物模型文件,该文件需要集成到应用工程中,这样对应的topic才能正确的接收和发送消息
  2. 服务端发送设置属性消息后,SDK通过设置的回调函数on_thing_prop_changed通知用户,回调函数中params为包含属性名与值的字典对象,用户需要对接收到的新属性进行处理
  3. 通过thing_post_property上报属性
  4. 设备端的响应结果SDK通过on_thing_prop_post 通知用户

image.png

defon_thing_prop_changed(self, params, userdata):
print("接收到物模型属性更新消息_on_thing_prop_changed"+str(params))
prop_data=params# 设备端响应rc, request_id=self.__linkkit.thing_post_property(prop_data)


方法二 : 自定义MQTT Topic通讯

Node.js SDK示例:      

     device.on方法监听云端设置属性服务消息,并调用device.publish以发布物模型属性数据消息方式响应物模型属性更新。

image.png

// 监听message事件device.on('message', (topic, payload) => {
console.log("监听消息topic----->",topic);
console.log("监听消息payload--------->",payload.toString());
//判断是否是云端设置属性服务消息if (topic.indexOf("property/set") !=-1) {
varreplace_payload=payload.toString().replace("thing.service.property.set","thing.event.property.post");
console.log("响应物模型更新--------->");
device.publish('/sys/yourProductKey/yourDeviceName/thing/event/property/post', replace_payload);
  }
}); 

Android SDK

  1. 通过IConnectNotifyListener监听服务端物模型属性更新请求
  2. 调用MqttPublishRequest处理设备端响应
  3. 设备端响应结果也是通过IConnectNotifyListener告知用户,需要订阅/sys/yourProductKey/yourDeviceName/thing/event/property/post_reply

image.png

/** SET:/sys/yourProductKey/yourDeviceName/thing/service/property/set* POST:/sys/yourProductKey/yourDeviceName/thing/event/property/post* */if (topic.equals(SET)) {
Log.i("TAG","设备端响应");
Stringreplace_payload=newString((byte[]) aMessage.data).replace("thing.service.property.set", "thing.event.property.post");
CustomTopic.getPublish(POST, replace_payload, 1);
}




三. 查看结果

  1. 控制台日志服务 : 物模型check状态码200

image.png

 2.设备物模型数据是否更新

image.png

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
5天前
|
Web App开发 网络协议 安全
基于Web攻击的方式发现并攻击物联网设备介绍
基于Web攻击的方式发现并攻击物联网设备介绍
|
16天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第26天】随着物联网(IoT)技术的快速发展,智能设备已广泛应用于智能家居、工业控制和智慧城市等领域。然而,设备数量的激增也带来了严重的安全问题,如黑客攻击、数据泄露和恶意控制,对个人隐私、企业运营和国家安全构成威胁。因此,加强物联网设备的安全防护至关重要。
40 7
|
17天前
|
监控 安全 物联网
确保互联世界中物联网设备安全的三个技巧
确保互联世界中物联网设备安全的三个技巧
|
15天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第27天】随着物联网技术的快速发展,智能设备已广泛应用于生活和工业领域。然而,物联网设备的安全问题日益凸显,主要威胁包括中间人攻击、DDoS攻击和恶意软件植入。本文探讨了物联网设备的安全防护策略和最佳实践,包括设备认证和加密、定期更新、网络隔离以及安全标准的制定与实施,旨在确保设备安全和数据保护。
33 0
|
3天前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
65 50
|
3天前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
12 2
|
3天前
|
存储 数据采集 物联网
物联网技术在物流领域的应用会遇到哪些挑战?
物联网技术在物流领域的应用会遇到哪些挑战?
14 4
|
4天前
|
存储 传感器 物联网
未来已来:区块链、物联网与虚拟现实技术融合的新篇章
【10月更文挑战第38天】本文旨在探索新兴技术区块链、物联网(IoT)和虚拟现实(VR)在未来社会的应用前景。通过分析这些技术的发展趋势,我们将揭示它们如何相互交织,共同塑造一个更智能、更互联的世界。文章将不包含传统意义上的摘要内容,而是直接深入主题,展开讨论。
|
5天前
|
供应链 监控 搜索推荐
物联网技术在物流领域的应用会带来哪些影响?
物联网技术在物流领域的应用会带来哪些影响?
26 2
|
5天前
|
传感器 存储 供应链
物联网技术在物流领域的应用实例有哪些?
物联网技术在物流领域的应用实例有哪些?
59 2

相关产品

  • 物联网平台