概述

很多场景下,开发者需要更新设备的配置信息,包括设备的系统参数、网络参数、本地策略等。通常情况下,是通过固件升级的方式更新设备的配置信息。但是,这将加大固件版本的维护工作,并且需要设备中断运行以完成更新。为了解决上述问题,物联网平台提供了远程配置更新的功能,设备无需重启或中断运行即可在线完成配置信息的更新。本文主要演示如何使用JAVA SDK实现两种应用场景。

原理说明

1、物联网平台提供的远程配置功能,支持:

  • 开启/关闭远程配置。
  • 在线编辑配置文件,并管理版本。
  • 批量更新设备配置信息。
  • 设备主动请求更新配置信息。

2、流程图

3、远程配置大致分为三部分:

  • 生成配置文件:您在物联网平台控制台编辑并保存配置信息。
  • 推送配置文件:您在物联网平台控制台批量推送配置信息给设备。设备接收后,修改本地配置文件。
  • 设备主动请求配置信息:设备主动向云端请求新的配置文件,并进行更新。

远程配置使用分为两种场景,一种是云端推送配置信息给设备端,一种是设备端主动请求配置信息。根据场景的不同,远程配置的步骤也有所区别。

场景一:云端推送配置信息给设备端

1、设备端业务代码实现

import com.aliyun.alink.dm.api.DeviceInfo;import com.aliyun.alink.dm.api.InitResult;import com.aliyun.alink.dm.api.IoTApiClientConfig;import com.aliyun.alink.linkkit.api.ILinkKitConnectListener;import com.aliyun.alink.linkkit.api.IoTMqttClientConfig;import com.aliyun.alink.linkkit.api.LinkKit;import com.aliyun.alink.linkkit.api.LinkKitInitParams;import com.aliyun.alink.linksdk.cmp.connect.channel.MqttSubscribeRequest;import com.aliyun.alink.linksdk.cmp.core.base.AMessage;import com.aliyun.alink.linksdk.cmp.core.base.ConnectState;import com.aliyun.alink.linksdk.cmp.core.listener.IConnectNotifyListener;import com.aliyun.alink.linksdk.cmp.core.listener.IConnectSubscribeListener;import com.aliyun.alink.linksdk.tools.AError;public class DeviceCOTADemo1 { public static void main(String[] args) { String regionId = "cn-shanghai"; DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.productKey = "******"; deviceInfo.deviceName = "******"; deviceInfo.deviceSecret = "********"; LinkKitInitParams params = new LinkKitInitParams(); IoTMqttClientConfig config = new IoTMqttClientConfig(); config.productKey = deviceInfo.productKey; config.deviceName = deviceInfo.deviceName; config.deviceSecret = deviceInfo.deviceSecret; config.channelHost = deviceInfo.productKey + ".iot-as-mqtt." + regionId + ".aliyuncs.com:1883"; params.mqttClientConfig = config; params.connectConfig = new IoTApiClientConfig(); params.deviceInfo = deviceInfo; /**建立连接**/ LinkKit.getInstance().init(params, new ILinkKitConnectListener() { @Override public void onError(AError aError) { System.out.println("初始化失败 " + aError.getMsg()); } @Override public void onInitDone(InitResult initResult) { System.out.println("初始化成功 " + initResult.tsl); String pd = deviceInfo.productKey + "/" + deviceInfo.deviceName; // 1、cota 请求 Topic String requestcotaTopic = "/sys/"+pd+"/thing/config/push"; // 订阅Topic MqttSubscribeRequest upgradeTopicRequest = new MqttSubscribeRequest(); upgradeTopicRequest.topic = requestcotaTopic; upgradeTopicRequest.isSubscribe = true; // 直接做Topic的订阅 LinkKit.getInstance().subscribe(upgradeTopicRequest, new IConnectSubscribeListener(){ @Override public void onSuccess() { System.out.println("cota订阅成功"); } @Override public void onFailure(AError aError) { System.out.println("直接订阅失败" + aError.getMsg()); } }); // 注册ota下行监听 LinkKit.getInstance().registerOnNotifyListener(new IConnectNotifyListener() { @Override public void onNotify(String s, String s1, AMessage aMessage) { System.out.println("cota 监听响应:"); System.out.println(new String((byte[])aMessage.getData())); } @Override public boolean shouldHandle(String s, String s1) { return false; } @Override public void onConnectStateChange(String s, ConnectState connectState) { System.out.println("连接状态发生变化 :" + s + connectState); } }); } }); }}

2、管理门户配置远程控制,详细步骤参考链接。

3、启动设备端程序,管理门户批量更新,设备端获取信息(批量更新频率限制:一小时内仅允许操作一次):

{"method":"thing.config.push

aliyun windows开启远程_阿里云物联网平台远程配置功能JAVA 示例参考相关推荐

  1. 阿里云物联网平台python开发手册_阿里云物联网平台体验(树莓派+Python篇)

    虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作.但是同时也见证了阿里云物联网团队从几十人到数百人的迅速扩张,其物 ...

  2. http发送16进制报文_阿里云物联网平台使用心得(25)MQTT协议详解UNSUBSCRIBE报文...

    题目 大家好,超子又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖.超子今天给大家介绍一下UNSUBSCRIBE报文. UNSUBSCRIBE报文 从上图中可知,UNSUBSCRI ...

  3. mqtt协议详解_阿里云物联网平台使用心得(七)MQTT协议14个报文总览

    大家好,物联网爱好小组成员超子,又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖.超子将参考<MQTT-3.1.1标准协议中文版>PDF手册,详解每个报文的格式,以及如 ...

  4. 阿里云物联网平台远程配置功能JAVA 示例参考

    概述 很多场景下,开发者需要更新设备的配置信息,包括设备的系统参数.网络参数.本地策略等.通常情况下,是通过固件升级的方式更新设备的配置信息.但是,这将加大固件版本的维护工作,并且需要设备中断运行以完 ...

  5. 阿里云物联网平台python开发手册_阿里云物联网平台之云端API调用(即云端开发教程)...

    本文介绍如何调用物联网平台的云端API,很多时候控制台上操作不太方便,需要通过API调用来完成或者通过调用API封装接口,以做到二次开发等.如产品管理,设备管理,规则创建等.分别介绍通过common ...

  6. 合宙Air780e+luatos+阿里云物联网平台完成设备通信与控制(属性上报+4G远程点灯)

    一.简介 1.项目介绍 之前发布的文章有采用合宙的4G LTE Cat.1模块,编程语言用的是lua,整体来说代码比较简洁,实现对华为云物联网平台的设备通信与控制,即采用一个变量作为模拟属性定时上报, ...

  7. Esp8266 进阶之路29【高级篇】百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接,支持阿里云规则引擎。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  8. 爬取阿里云物联网平台设备的物模型数据

    背景说明 按项目经理的要求,需要导出阿里云物联网平台上所有设备的物模型数据到Excel上,方便后台导入.给客户演示和备份.但是,阿里云物联网平台没有这个功能,手动一个个处理不现实,因此只能写一个爬虫爬 ...

  9. 文末赠书5本 | 附源码 | 三等奖作品 | 基于RA4M2和阿里云物联网平台的智能卧室小管家

    [RA4M2设计挑战赛]基于RA4M2和阿里云物联网平台的智能卧室小管家 摘要 本项目已RA4M2为主控,搭载了RT-Thread实时操作系统,配合Wi-Fi模块来提供网络通讯能力,外设接入了继电器. ...

最新文章

  1. getFields()和getDeclaredFields的区别
  2. 【Excle数据透视表】如何在数据透视表中使用合并单元格标志
  3. 解决winxp网上邻居共享问题的方法
  4. ANSYS——模态提取方法简介
  5. c语言循环链表中设立尾链表,C语言实现双向非循环链表(带头结点尾结点)的节点插入...
  6. MySQL如何跨机器迁移数据?
  7. 教师计算机提升学到的知识,教师计算机教学工作总结(精选6篇)
  8. NUnit的使用中可能遇到的问题
  9. Glib2: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)问题(六)
  10. 程序员应当注意的肢体语言
  11. int和Integer有什么区别
  12. php实现发送微信模板消息的方法
  13. echarts 双y轴设置
  14. 更换系统的jdk版本
  15. ebay详情页html,eBay详情页商品的basic Description没有了?
  16. Raptor实践参考:要么错误要么求和
  17. nand读寿命_Nand Flash的擦写次数与使用寿命
  18. Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(一)序章
  19. 我在乐视9年,亲眼看贾跃亭一步步走向失控
  20. 游戏计算机性能要求吗,玩电脑大型游戏对于配置有什么要求

热门文章

  1. 今天,很高兴!我成为了园子里的一份子!
  2. 利用CUTFTP Tranfer Engine开发.NET FTP客户端
  3. list numpy array tensor转换
  4. Ubuntu18.04设置简单密码
  5. 集成Android免费语音合成功能(在线、离线、离在线融合),有这一篇文章就够了(离线)
  6. 定制clojure的REPL
  7. 为什么你很努力,进步却很慢?
  8. 深度学习自学(八):人脸识别主要场景与算法实现
  9. mllib调参 spark_《Spark 官方文档》机器学习库(MLlib)指南
  10. 进阶14 File类、遍历、递归