有一种糖叫语法糖【10】IOT实践之如影随形

简介: 地球上的万物和生灵,受到太阳的普照和恩泽,遵循着生长化收藏的自然规律而繁衍生息。在阳光的照耀下,也根据自身独特的轮廓,在大地上留下了黑暗的区域,人类称之为影子;阿里IOT的设备影子功能主要用于两个方面,设备在线时,作为设备状态信息的缓存;设备离线时,作为设备再次上线时,离线前状态的保存;

地球上的万物和生灵,受到太阳的普照和恩泽,遵循着生长化收藏的自然规律而繁衍生息。在阳光的照耀下,也根据自身独特的轮廓,在大地
上留下了黑暗的区域,人类称之为影子;阿里IOT的设备影子功能主要用于两个方面,设备在线时,作为设备状态信息的缓存;设备离线时,作为设备再次上线时,离线前状态的保存;

关于SHADOW在云端的api一共有两个,主要是查询和更新设备影子常用的两个操作;

本次用来实验和验证的软件链接如下:
http://xysuger.xunyun17.xyz/v0.0.10.rar
读者如果感兴趣的话,可以自行下载运行验证;

第一个操作是GetDeviceShadow,这个接口提供了用户可以通过云端,获得当前设备的影子信息。这个命令带有两个参数,分别为产品关键字和设备的名称;发送的详细格式如下:
XYsayFrO.IoT.Srv.GetDeviceShadow.a141rgUXgFl.lamp3_dev.

发送完后,返回结果如下:

这里如果发送成功后,会返回设备的影子信息,详细信息是通过json格式返回的,所以我们可以在里面看到很多大括号;这里的可以看到的是期望的数据和实际发送的数据,以color属性为例,这里实际上报的值为蓝色blue,期望的值为绿色green。版本号在最后显示为3。如果设备第一次使用,是没有设备影子的,这里的值也就为空;

第二个接口为更新设备影子,这个接口可以通过云端向指定产品下的设备发送更新影子的具体消息,发送的命令为UpdateDeviceShadow,这个命令带有三个参数第一个为产品的标识符,第二个发送的设备名称,这前两个参数和上面介绍的接口一样,第三个参数为json格式的影子信息,所以稍微有些复杂,json格式的主要要求就是用大括号把每种类别的信息括起来,然后每一类单独的信息通过分号把类型和值分开,对于设备影子的信息,一般要求有这么四种信息需要上传,第一种信息为上传的方法method,这里是update表示更新;第二种信息为期待的状态desired,这里我们将color属性的期待状态改为蓝色blue,第三种信息为实际上报的状态,这里我们将color属性的实际上报状态改为red红色,第四种为更新的版本号,要求大于当前的版本号,我们通过上面的接口得知,当前的版本号为3,这里配置为4;最后组合起来的完整命令如下:

XYsayFrO.IoT.Srv.UpdateDeviceShadow.a141rgUXgFl.lamp3_dev.{"method":"update","state":{"desired":{"color":"blue"},"reported":{"color":"red"}},"version":4}.
运行后,返回success:true,表示运行成功;接着我们重复运行第一条命令,校验以下我们修改的信息是否生效;

发送完后,返回结果如下:

这里如果发送成功后,会在success字段返回true;
通过察看ShadowMessage的json数据包,可以看到版本已经被改成4了,期望和实际的color值,也和以前的不一样了,而是和我们修改后的一致;

由于阿里iot关于设备影子的接口只有2个,所以关于设备影子在云端接口基本操作的解释就介绍到这里;
随着这篇文章的结束,这个系列的文章也完结了。特此写个顺口溜作为这个系列的结尾:
阿里物联奥妙多,
诸多功能来加持,
产品管理定格局,
设备操作分细节,
分组定义划功能,
主题来把特性显,
规则引擎逻辑强,
消息通信最及时,
设备影子促稳定,
七类接口全学会,
物联世界任我游。

快到年底了,工作也忙起来了,提前预祝各位读者,元旦快乐,新年快乐;明年开春再见;)

目录
相关文章
|
17天前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
21 4
|
3月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
175 9
Apache IoTDB进行IoT相关开发实践
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
246 12
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
142 0
Apache IoTDB进行IoT相关开发实践
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是面向物联网的时序数据库,专注于时间序列数据管理,提供高效的数据处理、集成Hadoop和Spark生态、支持多目录存储策略。它还具有InfluxDB协议适配器,允许无缝迁移原本使用InfluxDB的业务。文章讨论了IoTDB的体系结构,包括数据文件、系统文件和预写日志文件的存储策略,并介绍了如何配置数据存储目录。此外,还提及了InfluxDB版本和查询语法的支持情况。IoTDB在物联网数据管理和分析中扮演关键角色,尤其适合处理大规模实时数据。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
物联网技术带来数据库管理挑战,特别是实时数据整合与安全性。IoTDB是一个专为时间序列数据设计的数据库,提供数据收集、存储和分析服务,适用于海量物联网数据。其架构包括数据文件、系统文件和预写日志文件的管理,并支持多目录存储策略。此外,IoTDB还开发了InfluxDB协议适配器,使得用户能无缝迁移原有InfluxDB业务。此适配器基于IoTDB的Java服务接口,转换InfluxDB的元数据格式,实现与IoTDB的数据交互。目前,适配器支持InfluxDB 1.x版本及部分查询语法。
188 5
|
监控 物联网 Java
|
物联网 API 开发工具