【阿里云十年,因为有我而不同】有一种糖叫语法糖【5】IOT三连之设备之扩展操作

简介: 随着上次介绍完设备的基本操作,相信大家对设备的这些基础层面结构操作,都已经理解和掌握。这次我们在尝试对设备做一些基本操作之外的接口操作,目前姑且称之为设备的扩展操作的。这些接口的操作,对于一个设备接入到阿里云IOT上,并不一定是必需的,但是却可以使我们可以更加灵活和便捷的对设备进行多层面的配置和更

随着上次介绍完设备的基本操作,相信大家对设备的这些基础层面结构操作,都已经理解和掌握。这次我们在尝试对设备做一些基本操作之外的接口操作,目前姑且称之为设备的扩展操作的。这些接口的操作,对于一个设备接入到阿里云IOT上,并不一定是必需的,但是却可以使我们可以更加灵活和便捷的对设备进行多层面的配置和更改。本篇配套的实验软件链接如下:
http://xysuger.xunyun17.xyz/v0.0.5.rar
读者如果感兴趣的话,可以自行下载运行验证;
这次提供的10个扩展的接口操作名称如下,先睹为快:
BatchQueryDeviceDetail
GetDeviceStatus
BatchGetDeviceState
DisableThing
EnableThing
SaveDeviceProp
QueryDeviceProp
DeleteDeviceProp
QueryDeviceStatistics
BatchUpdateDeviceNickname
从名字就可以猜出个大概的意思,下面我们来逐一介绍它们的作用以及使用方法。
BatchQueryDeviceDetail这个批量查询设备信息的接口和我们上次提到的查询设备接口类似,都是查询设备信息的,只是这个接口前面多了一个批量表示我们一次可以指定多个设备名称,然后一次查询它们的信息:这个接口有三个参数,产品关键字,第一个设备的名称以及第二个设备的名称;所以这也表示目前暂时支持查询两个设备的详细信息,所以首先我们使用上次介绍的命令QueryDevice,来查询我们产品下的设备名称;
XYsayFrO.IoT.Srv.QueryDevice.a141rgUXgFl.

这里看到目前产品下面是有两个设备,然后运行批量查询命令,将这个设备的名称分别写在后面:
具体命令如下:
XYsayFrO.IoT.Srv.BatchQueryDeviceDetail.a141rgUXgFl.lamp3_dev1.lamp3_dev.

运行后,如上图所示,从返回的结果,可以看到每个设备很详细的信息,例如设备的状态,创建时间和密钥以及产品的关键字;这里我们需要把其中的物联网标识符,也就是IotId的值记录下来,后面的接口操作需要用到;
下一个接口名称获取设备状态GetDeviceStatus,这个操作相对来说比较简单,只是指定设备的IotId,然后就可以得到指定设备的状态。因为上一个批量查询的接口返回结果中,已经有这个信息。所以这个接口应该是为了用户只想单纯的检查一下设备的状态,而不需要其他很多详细的信息,从而提供的。我们先用我们上一个接口得到的IotId,来试着运行一下这个接口,看是否和批量查询设备信息的那个接口,返回的状态一致。运行命令如下:
XYsayFrO.IoT.Srv.GetDeviceStatus.2GhDWaWPUOc5W5Af5xuj000100.
得到结果如下:

可以看到,两个接口返回的状态都是unactive,所以和我们之前的预测是一致的。
第三个接口,批量获取设备状态BatchGetDeviceState,这个操作和第一个批量操作类似,不同的是,这里只返回要查询设备的状态信息,过滤掉其他暂时不需要使用的信息。这个接口也有三个参数,一个产品关键字,和两个要查询设备的名称。按照我们之前查询得到的信息,这个接口的具体操作格式如下:
XYsayFrO.IoT.Srv.BatchGetDeviceState.a141rgUXgFl.lamp3_dev1.lamp3_dev.
得到的结果:

这里可以看到我们的产品下的两个设备状态,其中一个处于未激活状态,而另外一个则处于下线状态。
第四个接口,设备禁用DisableThing,笔者的理解,应该是设备在维护,或出现某些异常和故障时,设备的拥有者,不希望连到服务端,也不希望和服务端有任何通信,所以在服务端设置为禁用的状态,这样服务端看到这个状态就知道,后续的所有和这个设备相关的操作,都过滤掉和不作处理。具体格式如下,需要有一个唯一的参数,就是要禁用设备的IotId。我们用下面的格式先禁用我们产品下的其中一个设备:
XYsayFrO.IoT.Srv.DisableThing.2GhDWaWPUOc5W5Af5xuj000100.
结果如下,表示禁用成功:

这时我们再用刚才介绍的查询命令,确认一下:
XYsayFrO.IoT.Srv.GetDeviceStatus.2GhDWaWPUOc5W5Af5xuj000100.
得到结果如下,证明确实设备被禁用了:

第五个接口是设备解禁EnableThing,笔者认为称作设备使能可能更好些,这个接口和上一个设备禁用是配合使用的,因为默认设备是使能的,所以如果使能状态下再运行这个接口,就没有太多意义,我们用刚才禁用的设备作为例子,这里再把它解禁,然后再用查询状态的接口,确认一下最新的状态,命令如下:
XYsayFrO.IoT.Srv.EnableThing.2GhDWaWPUOc5W5Af5xuj000100.
XYsayFrO.IoT.Srv.GetDeviceStatus.2GhDWaWPUOc5W5Af5xuj000100.
得到结果如下:

这里可以看到,最新的状态已经不是disable,而是恢复到了禁用前的active状态。表示我们解禁设备的操作是有效的;
第六个接口是设置设备标签,SaveDeviceProp,从英文字面意思上看,应该是配置设备属性,不过还是以阿里云官宣为主,这里还是按照设备标签来称呼,在介绍产品的时候,笔者记得我们曾经提到过标签的概念,这里的设备标签也和产品的标签类似,只不过,放在设备里做这个接口,就更倾向于设备层面的一些功能,特性,方法。。。,我们再回过头来说这个接口的具体参数,一共三个,一个是IotId,一个是标签类型,一个是标签值。我们这里假如要做一个会飞的设备,所以就给这个设备做一个func类型的标签,标签的值定义为fly.
XYsayFrO.IoT.Srv.SaveDeviceProp.2GhDWaWPUOc5W5Af5xuj000100.func.fly.
运行结果如下,表示我们已经成功完成了这个操作:

第七个接口是查询设备标签QueryDeviceProp,我们正好可以用这个接口来确认一下,我们的上一个操作是否成功。传入设备的IotId后,格式如下
XYsayFrO.IoT.Srv.QueryDeviceProp.2GhDWaWPUOc5W5Af5xuj000100.
运行后,得到如下信息:

可以看到,我们已经赋予了这个设备一个会飞的标签了;
第八个接口是删除设备标签DeleteDeviceProp,如果刚才的设备有了其他变化,不再使用这个标签,我们可以使用这个接口来删除它:
XYsayFrO.IoT.Srv.DeleteDeviceProp.2GhDWaWPUOc5W5Af5xuj000100.func.
删除后,我们同样也可以使用上一个查询操作,来确认我们删除的是否成功:

从返回的结果来看,标签信息是空的,表示删除操作时被服务端正确执行了;介绍到这里,我们可以看到,从第6个接口到第8个接口,分别是设备标签的添加,查询和删除.这也就完成关于设备标签的一个闭环操作,从安全和合理角度,这种设计还是比较不错的;
第九个接口,统计设备的数量,QueryDeviceStatistics,这个接口主要是查询指定产品下面的设备数量状态,这种数量主要包括三种信息,分别是设备的总数,上线的设备的数量,激活设备的数量.这里我们用这个接口查询一下我们目前产品的设备数量情况,配置好产品关键字信息的参数后,格式如下:
XYsayFrO.IoT.Srv.QueryDeviceStatistics.a141rgUXgFl.
运行后,得到如下信息:

这里可以看到我们的产品,一共有两个设备,没有设备上线,有一个设备激活.这个接口应该对设备和产品的维护人员,运维人员比较有用.方便定期统计设备的各种状态的数量情况,然后再有针对的调整,优化和维护;

最后一个接口,批量更新设备备注,BatchUpdateDeviceNickname,正如我们人类有外号,绰号什么的,设备也不例外,运维人员也可以个人喜好,对设备的理解和认识,然后来给设备起一些非官方正规的,诙谐幽默的小名.这里我们给目前产品下的俩个设备分别添加一个best1_lamp和best2_lamp的备注:这个接口有四个参数:分别是两个IotId和两个要更新的备注名称,具体格式如下:
XYsayFrO.IoT.Srv.BatchUpdateDeviceNickname.2GhDWaWPUOc5W5Af5xuj000100.best1_lamp.w5vbtLXAqO7sG4y8DXuJ000100.best2_lamp.
我们然后可以用下面查询设备详细信息的操作,来查询一下这两个设备,确认我们的备注修改成功:
XYsayFrO.IoT.Srv.QueryDeviceDetail.2GhDWaWPUOc5W5Af5xuj000100.
XYsayFrO.IoT.Srv.QueryDeviceDetail.w5vbtLXAqO7sG4y8DXuJ000100.
运行结果如下:

这个可以看到,设备的备注,已经分别被改为best1_lamp和best2_lamp了;
介绍到这里,设备的相关操作差不多介绍完了,因为设备的api接口一共有40多个,其中有一部分是和具体设备端联动配合的,另外一部分是相对逻辑比较复杂,笔者能力有限,也在不断的学习中..所以设备操作这块,就介绍到这里结束了.回到题目之所以叫IOT三连,是由于当时想法主要介绍产品,标签和设备相关的接口信息.同时也希望读者在这些介绍的文章中有所收获.

目录
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
物联网(IoT)就像是一个大型派对,无数的设备都在欢快地交流着信息
【9月更文挑战第4天】在这个万物互联的时代,物联网(IoT)犹如一场盛大的派对,各类设备欢聚一堂。然而,如何让这些设备互相理解并协同工作呢?这就需要机器学习与人工智能的助力。例如,智能空调通过学习你的使用习惯来调节温度,使你更加舒适;智能安防系统则能识别异常行为并及时报警,保障家庭安全。此外,智能农业、交通等领域也因机器学习和人工智能的应用变得更加高效。下面通过一个简单的温度预测代码示例,展示机器学习在物联网中的实际应用,让我们一起感受其强大潜力。
27 0
|
2月前
|
存储 监控 安全
使用IoT设备优化家庭生活的技术探索
【8月更文挑战第4天】IoT设备以其智能化、便捷性和高效性,正逐步成为现代家庭不可或缺的一部分。从智能照明到智能安防,从智能恒温器到智能厨房,再到智能语音助手,这些设备不仅优化了我们的家庭生活,还提升了我们的生活质量和幸福感。随着技术的不断进步和应用场景的不断拓展,我们有理由相信,未来的智能家居将会更加智能、更加人性化,为我们的生活带来更多惊喜和便利。
|
2月前
|
存储 SQL JSON
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
|
4月前
|
传感器 安全 物联网
物联网(IoT)设备的硬件选型与集成技术博文
【6月更文挑战第28天】物联网设备硬件选型与集成聚焦关键要素:功能匹配、性能稳定性、兼容扩展及成本效益。嵌入式系统、通信协议、数据处理和安全性技术确保集成效果,支撑高效、智能的IoT系统,驱动家居、城市与工业自动化变革。
|
5月前
|
安全 物联网 测试技术
构建未来:Android与IoT设备的无缝交互深入探索软件自动化测试的未来趋势
【5月更文挑战第30天】在物联网(IoT)技术快速发展的当下,Android系统因其开放性和广泛的用户基础成为了连接智能设备的首选平台。本文将探讨如何通过现代Android开发技术实现智能手机与IoT设备的高效、稳定连接,并分析其中的挑战和解决方案。我们将深入挖掘Android系统的底层通信机制,提出创新的交互模式,并通过实例演示如何在Android应用中集成IoT控制功能,旨在为开发者提供一套可行的指导方案,促进IoT生态系统的进一步发展。
|
5月前
|
消息中间件 弹性计算 物联网
【阿里云弹性计算】阿里云ECS在IoT领域的应用:支撑大规模设备连接与数据处理
【5月更文挑战第26天】阿里云ECS是弹性计算服务,支持IoT设备的连接与数据处理。通过MQTT协议实现设备快速接入,配合消息队列处理异构实时数据。ECS可用于部署数据处理工具、应用服务,如智能家居控制系统,通过弹性伸缩适应负载变化。结合阿里云其他服务,ECS为IoT提供完整解决方案,助力企业数字化转型。
71 0
|
2月前
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
57 1
|
28天前
|
存储 物联网 关系型数据库
PolarDB在物联网(IoT)数据存储中的应用探索
【9月更文挑战第6天】随着物联网技术的发展,海量设备数据对实时存储和处理提出了更高要求。传统数据库在扩展性、性能及实时性方面面临挑战。阿里云推出的PolarDB具备高性能、高可靠及高扩展性特点,能有效应对这些挑战。它采用分布式存储架构,支持多副本写入优化、并行查询等技术,确保数据实时写入与查询;多副本存储架构和数据持久化存储机制保证了数据安全;支持动态调整数据库规模,适应设备和数据增长。通过API或SDK接入IoT设备,实现数据实时写入、分布式存储与高效查询,展现出在IoT数据存储领域的巨大潜力。
48 1
|
9天前
|
传感器 监控 安全
物联网通信的基石:LoRa、Sigfox与NB-IoT详解
物联网通信的基石:LoRa、Sigfox与NB-IoT详解
68 0
|
2月前
|
消息中间件 存储 传感器
RabbitMQ 在物联网 (IoT) 项目中的应用案例
【8月更文第28天】随着物联网技术的发展,越来越多的设备被连接到互联网上以收集和传输数据。这些设备可以是传感器、执行器或其他类型的硬件。为了有效地管理这些设备并处理它们产生的大量数据,需要一个可靠的消息传递系统。RabbitMQ 是一个流行的开源消息中间件,它提供了一种灵活的方式来处理和转发消息,非常适合用于物联网环境。
75 1

热门文章

最新文章

下一篇
无影云桌面