有一种糖叫语法糖【6】IOT实践之小组小组分小组

简介: 记得在很小的时候,还在上小学的时候,每年三月五号学校大扫除,就会整个班级聚集到一起,然后听从班主任的分配,将大家分成几个小组,从事不同的劳动,擦玻璃的,扫厕所的,拖地的。。。;长大后,渐渐接触到一些学习小组,兴趣小组。。。;而小组的概念通常也理解为一些从事相同或相似工作或操作的人的集合;而在提供产品

记得在很小的时候,还在上小学的时候,每年三月五号学校大扫除,就会整个班级聚集到一起,然后听从班主任的分配,将大家分成几个小组,从事不同的劳动,擦玻璃的,扫厕所的,拖地的。。。;长大后,渐渐接触到一些学习小组,兴趣小组。。。;而小组的概念通常也理解为一些从事相同或相似工作或操作的人的集合;而在提供产品管理和设备管理之外,阿里云IOT也引入了小组的概念,从而提供了分组管理的操作,对于设备分小组的意思通常的理解是物理上,位置和距离相近的一些设备和产品,然后对这些设备和产品进行类似的操作,方便管理。目前提供分组管理的操作通常的理解有创建,更新,查找和删除,另外还有些小组标签的创建和查找接口。下面我们逐一来进行介绍。本次的实验软件验证如下:
http://xysuger.xunyun17.xyz/v0.0.6.rar
读者如果感兴趣的话,可以自行下载运行验证;
第一个接口是创建小组,借口命令CreateDeviceGroup,就是英文直译的名字,容易理解。后面带有一个创建小组名称的参数;这个参数的要求是长度在4到30个字符,字符的意思是包括英文,数字和下划线;我们作为例子,用下面的命令创建一个小组名称为LampGroup的分组;
XYsayFrO.IoT.Srv.CreateDeviceGroup.LampGroup.
返回的结果如下图:

这里返回的结果里有四个参数:前两个分别是小组名称和小组的详细描述;第三个是小组的ID标识符,这个需要记下来,因为后续关于小组的更多的操作都是需要这个小组标识符来作为参数的,才可以进行正常操作的;最后一个参数是小组的创建时间,这个时间是UTC时间,和我们常用的北京时间不一样,差8个小时,所以要转换成北京时间就还需要再加上8个小时,也就是说这个小组的创建时间是早上八点二十八分创建的。

成功创建好一个小组后,我们就可以对这个小组进行更新,主要是小组描述的更新,比如默认的描述是Create_By_XYsuger,我们可以改为This_Is_A_Lamp_Group,是用到的更新命令是:UpdateDeviceGroup,后面带有两个参数,一个是小组的ID标识符,另外一个是要更新后的小组描述信息,所以完成命令如下:
XYsayFrO.IoT.Srv.UpdateDeviceGroup.pKdhc1c3goE3DVkbAskM010200.This_Is_A_Lamp_Group.
当更新成功后,会在返回结果的Success里返回true的值;
更新接口介绍完后,是查询小组信息的接口,命令是QueryDeviceGroupInfo,带有的一个参数的含义是要查询小组的id标识符,所以命令如下:
XYsayFrO.IoT.Srv.QueryDeviceGroupInfo.pKdhc1c3goE3DVkbAskM010200.
运行后,截图如下:

从这里的返回结果,可以看到GroupDesc小组描述的信息,已经有我们上一个更新命令,更改成为This_Is_A_Lamp_Group了;而出了上次介绍的四个返回信息外,还有三个设备相关的状态信息,分别是设备上线的个数,设备激活的个数,和设备总数;由于我们目前只是创建了小组,还没有添加设备,所以暂时三个返回的个数都为0;

查询完小组信息后,我们以后就可以根据具体实际情况,来决定是否删除无用或者废弃的小组,使用的接口名称为DeleteDeviceGroup,传入的唯一一个参数,就是要被删除小组的小组id标识符,所以完成的命令如下所示:
XYsayFrO.IoT.Srv.DeleteDeviceGroup.pKdhc1c3goE3DVkbAskM010200.

当删除返回正确时,可以在使用小组查询命令确认一下:
XYsayFrO.IoT.Srv.QueryDeviceGroupInfo.pKdhc1c3goE3DVkbAskM010200.

从上面的返回结果,可以看到相关信息都为空的,所以可以证明我们刚才删除操作时被正确执行了的;

介绍完,小组的创建,查询和删除,现在开始介绍如何向小组中添加设备,因为毕竟小组是一个抽象的概念,只有小组内有了真真正正的设备,对小组的操作才有实际意义;
添加设备的命令为BatchAddDeviceGroupRelations,目前支持一次添加两个设备。所有后面的四个参数分别为第一个设备的设备名称和产品标识符,以及第二个设备的设备名称和产品标识符,这里将以前创建的两个设备lamp3_dev1和lamp3_dev同时添加到刚刚创建的小组中,完整命令如下:
XYsayFrO.IoT.Srv.BatchAddDeviceGroupRelations.pKdhc1c3goE3DVkbAskM010200.lamp3_dev1.a141rgUXgFl.lamp3_dev.a141rgUXgFl.

成功运行上面的命令后,会返回,正确添加设备的个数为2;再用下面的查询小组信息的命令查询确认一下:
XYsayFrO.IoT.Srv.QueryDeviceGroupList.pKdhc1c3goE3DVkbAskM010200.

可以看到返回的结果截图中,在这个小组中,设备的总数是2,激活的设备个数是1,上线的设备个数是0。和我们添加的操作预计结果一致;

查询在小组内添加设备正确后,可以通过BatchDeleteDeviceGroupRelations接口,移除添加到小组中的设备:
XYsayFrO.IoT.Srv.BatchDeleteDeviceGroupRelations.Wmhlen9xz5XAFE85XnrP010200.lamp3_dev1.a141rgUXgFl.lamp3_dev.a141rgUXgFl.
然后再通过下面的命令查询一下最新的小组设备数量,从而确认删除的是否成功;
XYsayFrO.IoT.Srv.QueryDeviceGroupList.pKdhc1c3goE3DVkbAskM010200.

在返回的信息中,可以看到设备数量又变回0了,表示刚才的删除操作是正确运行的;

开始曾提到小组也有标签的操作,这里介绍下设置小组标签的接口,SetDeviceGroupTags,后面的三个参数,分别为小组标识符,小组标签的类型和小组标签的值;这里给小组设置一个表示生产序列的类型,类型名为Serial,类型的值为8月August,所以完整的命令语句如下:
XYsayFrO.IoT.Srv.SetDeviceGroupTags.Wmhlen9xz5XAFE85XnrP010200.Serial.August.

创建成功后,可以通过查询小组标签的命令QueryDeviceGroupTagList,再加上一个小组的标识符,来确认刚刚设置小组标签的操作成功与否:
XYsayFrO.IoT.Srv.QueryDeviceGroupTagList.Wmhlen9xz5XAFE85XnrP010200.

从上图可以看到,小组的tagkey也就是类型名为Serial,而tagvalue也就是类型值为August,这就表示刚才设置的小组标签操作时正确执行的;

关于小组的接口,除了通过小组标识符来查询小组信息,阿里云iot额外还提供了通过设备信息查询小组信息的操作,这给小组的管理人员提供了更加灵活的操作;通过设备查询小组的接口名称为QueryDeviceGroupByDevice,后面的两个参数为产品关键字和设备名称,这里以上次创建好的设备为例子查询,命令如下:
XYsayFrO.IoT.Srv.QueryDeviceGroupByDevice.a141rgUXgFl.lamp3_dev1.

可以从返回的信息中看到,我们查到小组信息,正是添加这个设备的小组信息;
再回到最开始创建小组的地方,这里考虑到有可能以后设备会非常多,所以创建的小组也会非常多,就会出现一个小组下面可能有多个子小组的可能情况会发生,那么这里就有提供一个创建子小组的接口,这个接口的操作,后面的参数除了像正常创建小组时,提供小组名称作为参数以外,还需要提供一个父小组标识符的参数,以方便表示需要在这个父小组下面创建子小组,举例如下,在最开始创建的小组下面,在创建一个小组名称为SubLampGroup的子小组,具体命令为:
XYsayFrO.IoT.Srv.CreateDeviceGroup.SubLampGroup.Wmhlen9xz5XAFE85XnrP010200.

返回的信息和创建子小组的信息类似,也是四个参数:小组名称,小组描述,小组标识符和小组创建时间;

一旦提供了创建子小组的操作,就有可能存在通过子小组查找父小组的操作,这里用QuerySuperDeviceGroup接口命令,演示一下,如何查询,这个接口带有一个参数,为要查询小组的标识符:
XYsayFrO.IoT.Srv.QuerySuperDeviceGroup.9GzEcN2jVUqcmIrxJDgb010200.

这里返回的信息中,可以看到,一共返回三个参数,父小组的小组名称,小组描述和小组标识符;
下面介绍一个相对有用的操作,通过小组标识符,来查询小组内设备的操作,这个操作只需要带入小组的标识符即可:
XYsayFrO.IoT.Srv.QueryDeviceListByDeviceGroup.Wmhlen9xz5XAFE85XnrP010200.

这个操作返回了目前这个要查询的小组里,一共有两个设备,而且也显示了每个设备的设备名称,产品名称,产品关键字以及相关联的物联网标示符;

最后一个接口操作是根据标签查询小组信息,这个应该属于刚才标签操作一类的,当时漏掉了,算是后面再补上吧;这个操作两个参数,一个是标签类型名,一个是标签类型值,以刚才的标签为例子,查询命令如下:
XYsayFrO.IoT.Srv.QueryDeviceGroupByTags.Serial.August.

从上图可以看到,这个标签所在小组的小组名称和小组标识符;

这次关于小组的操作就介绍到这里;一共13中操作,涵盖了小组操作过程中的各种相关接口;希望读者了解后,对今后阿里云iot设备的操作更加灵活和方便;

目录
相关文章
|
物联网
【阿里云 MVP 洵云】有一种糖叫语法糖IoT干货合集(1-10篇)
在C编程语言普及后,同时伴随着互联网的网页网站技术的兴起,Java、Perl、Python等多种脚本语言如雨后春笋般的出现,语法糖也被广泛应用到这些语言中。
690 0
|
物联网 数据格式 JSON
有一种糖叫语法糖【10】IOT实践之如影随形
地球上的万物和生灵,受到太阳的普照和恩泽,遵循着生长化收藏的自然规律而繁衍生息。在阳光的照耀下,也根据自身独特的轮廓,在大地 上留下了黑暗的区域,人类称之为影子;阿里IOT的设备影子功能主要用于两个方面,设备在线时,作为设备状态信息的缓存;设备离线时,作为设备再次上线时,离线前状态的保存;
878 0
|
物联网
有一种糖叫语法糖【9】IOT实践之物联网世界的鸡毛信message
在抗日战争时期,我们善良勤劳和机智的老百姓,和敌人斗智斗勇。通过在公文,信件上面插上鸡毛来传递紧急和重要的情报;在物联网的世界,云端通过下发消息给设备,来达到通知设备状态逻辑变更的操作。 关于MESSAGE在云端的api一共有三个,由于第三个需要设备端返回讯息,这里介绍常用的两个操作;
871 0
|
物联网 API
有一种糖叫语法糖【8】IOT实践之物联源于topic
这一次,介绍一下阿里云iot的一类比较重要API接口操作:topic管理,说到topic,这个概念其实应该是起源于mqtt协议的, mqtt协议作为目前物联网的主要通信协议,最开始,大概上个世纪90年代,是由IBM为了M2M[machine to machine]场景[比如传感器和卫星链接]而定义,
1299 0
|
物联网 SQL 消息中间件
有一种糖叫语法糖【7】IOT实践之规则使万物有序
在上次介绍完阿里云物联网服务端关于分组api接口的相关操作和实践后,这回介绍一下阿里云物联网中另外一类比较重要的概念,它的名字就叫做规则。万物互联通常被认为是物联网的终极目标,但是从另外的角度来思考这个问题,当一张网连接上万物后,不应该只是物理上的连接,需要逻辑层面的分析处理和不断的数据流通,才会使
1142 0
|
物联网
【阿里云十年,因为有我而不同】有一种糖叫语法糖【5】IOT三连之设备之扩展操作
随着上次介绍完设备的基本操作,相信大家对设备的这些基础层面结构操作,都已经理解和掌握。这次我们在尝试对设备做一些基本操作之外的接口操作,目前姑且称之为设备的扩展操作的。这些接口的操作,对于一个设备接入到阿里云IOT上,并不一定是必需的,但是却可以使我们可以更加灵活和便捷的对设备进行多层面的配置和更
1070 0
|
物联网
有一种糖叫语法糖【4】IOT三连之设备之基本操作
上一篇文章将产品和产品标签相关的操作都介绍完了,这次我们转向介绍设备的相关操作。设备对于产品来说,可以理解为一个从抽象到具体的过 程,因为产品是一个大的概念,不具备可操作的可能性;只有在一个产品下面,再继续创建设备,然后对这个设备进行相关的操作,才可以有具体 的物理意义;也正是由于只有设备才可以让用
955 0
|
物联网
有一种糖叫语法糖【3】IOT三连之产品标签
大家好,随着上一次介绍完产品相关的五种操作接口,这回介绍一下产品标签相关的五种操作接口,提到标签,最初的印象是超市里或商场货架上,放在商品旁边带价格说明的方形小卡片;随着这些年互联网的普及和自媒体的泛滥,各种人为有意或无意的,能达成广泛认同的一种词语也被当作标签来用;像一些青少年拥有大量的粉丝,
1231 0
|
物联网
有一种糖叫语法糖【2】IOT三连之产品之修改查询删除
大家好,首先说声抱歉,上次的XYsuger脚本解释程序,后来到WINXP等电脑操作运行,发现无法正常运行,猜测应该是win10等64位系统才可以;毕竟很多人使用WINXP和WIN7等32位操作系统,还好有更新文件如下链接,http://47.94.219.162/xysuger-v0.0.2.r
1132 0
|
物联网
有一种糖叫语法糖【1】IOT三连之产品之创建产品
提到糖或糖果,人们往往会想到小的时候吃的那种甜甜的,含到嘴里感到很开心高兴的糖果。而根据各地习惯不同,一方土养一方人,阿拉上海人比较喜欢大白兔。而南粤广东一带则比较中意徐福记。而随着糖的概念的普及和泛化,很多年前一些科研机构的专家和学者,则借用这个概念到技术领域,把一些晦涩难懂、枯燥乏味的...
1893 0

热门文章

最新文章