Register(注册/登录)

Register接口用于设备向平台进行注册,通过发送CoAP POST请求到平台进行身份认证,认证通过,则设备被激活;认证失败,平台会向设备返回失败码。交互流程如下图所示:

LWM2M业务数据通过CoAP协议进行封装,参数定义参见下表:

Update(更新)

在lifetime超期之前,设备需要发起Update流程,否则平台会认为设备离线,再次连接需要重新发起Register,当设备参数(lifetime、binding mode、ObjectLinks等)发生变化,设备可以通过Update通知平台参数改变。Update流程如下:


Deregister(去注册/登出)


Observe(资源订阅)

订阅Object的交互流程:

Notify(资源数据上报)


消息格式
Object 19 (LwM2M APPDATA)可以用于应用层业务数据的封装,实现包括业务数据上报、业务指令下发、设备事件上报等功能。

目前平台仅支持Data字段,其他字段暂时不支持,即:

• 消息上行通过/19/0/0传送

• 消息下行通过/19/1/0传送

对于Data字段,平台既支持数据透传也支持非透传(物模型)。对于非透传设备,数据格式支持紧凑二进制和Json两种格式。

l 非透传设备

非透传设备上报的业务数据,平台需要对业务数据按照物模型定义进行解析,因此数据格式必须遵守平台关于Object19的约定,目前Object19支持紧凑二进制和Json两种数据格式。
l 非透传设备

非透传设备上报的业务数据,平台需要对业务数据按照物模型定义进行解析,因此数据格式必须遵守平台关于Object19的约定,目前Object19支持紧凑二进制和Json两种数据格式。

(1)紧凑二进制格式

业务数据上报、事件上报、无线参数上报的Data字段编码格式:

•CMDType:必填字段,1Byte,数据上报-0x02;事件上报-0x07;无线参数上报-0x03;

•ServiceID:必填字段,2Bytes,填写平台分配的服务ID

•Payload_length:必填字段,2Bytes,根据payload长度填写

•Payload:类型为Binary,Parameter1、Parameter2等需要按照对应服务的属性列表的顺序填写,Parameter的类型要与属性类型一致。
业务指令下发、指令下发响应的Data字段编码格式:

•CMDType:必填字段,1Byte,下行指令固定为0x06,指令响应固定为0x86

•ServiceID:必填字段,2Bytes,填写平台分配的服务ID

•TaskID:必填字段,2Bytes,由平台分配,用于关联下发指令和回复响应,指令和响应中的TaskID必须一致

•Payload_length:必填字段,2Bytes,Payload的长度

•Payload:类型为Binary,按照服务定义的属性(或参数)进行编码和解码

报服务ID:1

•属性1:2个字节的整型,值为100

•属性2:5个字节的定长字符串,值为"hello"

•属性3:变长字符串"world"。

首先需要将属性值转换为十六进制:

•属性1十进制整型100的十六进制为0x0064

•属性2定长字符串"hello"转换为十六进制为:0x68656C6C6F(参照ASCII码表转换)

•属性3字符串"world"转化为十六进制为:0x776F726C64,由于该属性为变长字段,还需要在属性前加上2个字节的无符号整型表示长度,即属性3变长字符串的最终编码为0x0005776F726C64。

编码过程为:

•CMDType:0x02

•ServiceID:0x0001

•Payload_length:0x000E

•Payload:0x006468656C6C6F0005776F726C64

因此19/0/0数据上报内容为:020001000E006468656C6C6F0005776F726C64

示例2、指令下发和响应

服务ID:8001

TaskID:1

参数1:1个字节无符号整型。参数值为1:1–获取当前时间,0–时钟同步。

编码过程为:

•CMDType:0x06

•ServiceID:0x1F41

•TaskID:0x0001

•Payload_length:0x0001

•Payload:0x01

因此19/1/0指令下发内容为:061F410001000101,解析出指令内容为“获取当前时间”,设备需要将系统时间通过响应发给平台。

指令响应的服务ID:9001

TaskID:1

参数1:12字节的定长字符串。值为当前时间点"202010261600"。

编码过程为:

•CMDType:0x86

•ServiceID:0x2329

•TaskID:0x0001

•Payload_length:0x000C

•Payload:0x323032303130323631363030

因此19/0/0指令响应内容为:8623290001000C323032303130323631363030
(2)JSON格式

业务数据上报、事件上报、无线参数上报的Data部分应满足以下格式:

{“serviceId”: XXXX, parameter1:value1, parameter2:value2}

"serviceId"的值为对应服务的服务ID,parameter1、parameter2对应服务中每个属性,用属性标识进行替换,value1、value2对应属性值,按照定义的属性类型填写。

业务指令下发、指令下发响应的Data部分应满足以下格式:

{“serviceId”:XXXX, “taskId”:XXXX, parameter:value}

"serviceId"的值为对应服务的服务ID, "taskId"由平台分配,用于关联下发指令和回复的响应。parameter和value按照服务定义的属性来填写。

示例1、设备数据上报

19/0/0上报数据内容为:

{“serviceId”: 1, “seq”:1, “data1”: “hello”, “data2”: “world”}

19/1/0指令下发内容为:

{“serviceId”:8001, “taskId”:1, “cmd”:1}

19/0/0指令下发响应内容为:

{“serviceId”:9001, “taskId”:1, “rsp”:“202010261600”}

l 透传设备

AEP对19/0/0、19/1/0的Data字段不进行解析,支持任意格式的业务数据的透传。

设备接入(LWM2M协议)相关推荐

  1. 揭秘 | 阿里云IoT物联网平台亿级设备接入方案大揭秘

    一.前言 不同的接入层 互联网的产品基本都需要解决终端的接入问题,每个接入层会因为终端数量.终端能力.网络环境等不同的因素有各自的设计特性,比如:淘宝网需要解决海量短连接问题.微信需要解决海量长连接问 ...

  2. 移远BC20模组使用LwM2M协议接入华为IoT平台(NB-IoT专栏—进阶篇2)

    目录 1.背景 2.部署华为云 3.华为云与BC20模组进行数据收发实验 1.背景 最近在做一个智慧路灯项目,构思使用STM32结合NB-IoT模组实现数据上传和联动控制,并且可以使用GPS模块上传路 ...

  3. 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > CoAP协议接入 >

    CoAP连接通信 更新时间:2020-08-27 17:20:05 编辑我的收藏 本页目录 基础流程 使用对称加密自主接入 使用DTLS自主接入 物联网平台支持CoAP协议连接通信.CoAP协议适用在 ...

  4. 利用nodemcu和mqtt协议让嵌入式设备接入互联网(一.layui前端框架)

    文章目录 前言 HTML知识简单总结 vscode快捷操作 HTML知识总结 HMTL结构 头部 身体 样式表CSS layui介绍 源码 前言 为了让自己的嵌入设备接入互联网,而且能互相通讯,用直接 ...

  5. 宇视摄像机/硬盘录像机等设备接入到国标GB28181协议视频平台EasyGBS的注意事项

    经常有用户咨询宇视的现场对接TSINGSEE青犀视频云边端架构中,国标GB28181协议视频平台EasyGBS需要注意哪些事项,本文我们就在这里整理一下,给大家介绍一下宇视设备接入到国标平台的注意事项 ...

  6. 中国移动物联网开放平台OneNET学习笔记(1)——设备接入(MQTT协议)OneNET Studio篇

    一.平台简介 中国移动物联网开放平台(OneNET) 是中移物联网有限公司基于物联网技术和产业特点打造的开放平台和生态环境,适配各种网络环境和协议类型,支持各类传感器和智能硬件的快速接入和大数据服务, ...

  7. 基于奇特物联MQTT协议设备接入示例

    目录 准备工作 第一步:创建产品 第二步:启动MQTT组件 第三步:准备MQTT连接参数 第四步:使用mqtt客户端模拟设备 第五步:设备数据上报 第六步:指令下发到设备 第七步:使用真实设备接入 准 ...

  8. 如何通过安防网络设备的EHOME协议把设备接入EasyCVR平台,进行互联网直播及分发?

    在对接项目过程中,我们发现实际的安防可视化监控系统搭建中,设备端的协议往往会被分为很多种,设备型号也多种多样.以往,不同协议对应不同的方案部署,在同一项目有多个不同协议设备的场景下,这样的部署显得繁琐 ...

  9. 大华设备通过GB28181协议接入EasyGBS,无法实现公网语音对讲问题的解析

    在监控行业的语音对讲,指的是监控设备与电脑.手机APP.平台软件之间进行语音交流.目前语音对讲功能已经广泛应用于我们日常监控场景中,比如GB28181协议国标平台EasyGBS,支持语音对讲. 摄像头 ...

  10. 安防互联网无插件直播如何将支持Ehome协议的设备接入新版安防视频云服务平台EasyCVR?

    EasyCVR是由TSINGSEE青犀视频团队研发的一套安防视频云服务融合平台.它主要适合多品牌.多协议.多通道的安防网络设备的接入,可以将RTSP协议.RTMP协议.GB28181国标协议.海康SD ...

最新文章

  1. 爬虫之selenium对cookie的处理
  2. day1-字符串拼接、表达式、break和continue
  3. Linux中使用Linux的vim如何让代码高亮显示
  4. Spring配置中context:annotation-config VS context:component-scan
  5. 数据中心日常维护工作有哪些?
  6. 开启OpenStack Api跨域请求(CORS)功能
  7. 黄聪:UEditor如何在wordpress中调用
  8. 百万数据查询优化技巧三十则
  9. java集群解析文件_java相关:springboot整合redis集群过程解析
  10. 解决Rocketdock在win7上重启后不能保存设置和图标的问题
  11. 两分钟学会线性同余法产生伪随机数
  12. 【嵌入式模块】DS18B20 数字温度传感器
  13. couchbase java view_couchbase 相关
  14. Java文字转图片超出内容自动换行
  15. 初识Java,探索神秘的它
  16. 易语言调用c 文本乱码,解决易语言编程乱码的问题
  17. linux文件系统知识总结、SD卡挂载问题总结
  18. 在ISE中设置字体大
  19. 2017、2018年中国大数据发展趋势和展望解读
  20. mac上免费的音频剪辑软件在哪里可以快速下载

热门文章

  1. ubuntu编译linux kernel v2.6.30 各种错误排除
  2. 即时聊天工具国外盛行,国内发展缓慢
  3. OPPO小布助手算法系统的探索、实践与思考
  4. 简单数字电压表的c语言程序,简易数字直流电压表电路及程序
  5. python实现空气焓值,湿球温度的计算
  6. vc2015静态编译方法
  7. AD9的PCB技巧——覆铜的规则设置
  8. RabbitMQ-彻底删除服务
  9. 在MySQL中以下属于ddl语句的_ddl语言(以下哪些命令是ddl语句)
  10. 批处理文件(bat文件)注册dll批量注册dll