设备使用物模型通信
设备使用物模型通信
物联网平台提供物模型功能定义能力,设备可通过物模型通信Topic按照Alink JSON数据格式,实现与物联网平台交互通信。本文介绍设备与物联网平台之间,如何通过物模型实现多场景消息通信。
背景信息
- 物联网平台提供的物模型功能定义和使用说明,请参见什么是物模型。
- 物联网平台物模型通信Topic定义和通信说明,请参见什么是Topic和使用Topic通信。
- 设备与物联网平台进行物模型通信时,物模型数据的Alink JSON格式和Topic说明,请参见设备属性、事件、服务和设备期望属性值。
使用优势
物模型是物联网平台的核心能力,使用物模型通信的优势:
- 数据结构化存储:简化后续数据开发流程。
- 状态缓存(设备影子):设备端、服务端在任意时间都可查询设备状态和数据。
- 数据可视化:在物联网平台控制台页面可以查看数据。
- 在线调试:支持在线调试设备属性、事件和服务。
物模型功能配置
云端配置
设备使用物模型通信前,需在物联网平台完成以下操作:
-
注册设备:如果设备采用一机一密或一型一密预注册认证方式,需要先在物联网平台注册设备,获取设备证书(ProductKey、DeviceName和DeviceSecret)。
-
物模型消息解析:如果设备的消息格式不是Alink JSON,必须使用消息解析将设备上报的自定义格式数据解析为Alink JSON格式,将物联网平台下发的Alink JSON格式数据解析为设备自定义格式的数据。
-
服务端订阅和云产品流转:如果需要将数据转发到您的服务器或其他云产品存储和处理,可通过消息转发功能转发设备上报的物模型数据以及设备属性设置和服务调用指令的响应结果。
数据流转的格式说明,请参见数据格式。
设备端配置
在设备端完成物模型功能开发,实现设备端上报属性和事件,并接收物联网平台发送的设置属性和调用服务的指令。
物联网平台已提供Link SDK,可简化开发过程,实现设备快速接入阿里云物联网平台进行通信。详细内容,请参见设备接入概述。
Link SDK目前支持C、Java、Python、Node.js、Android、iOS等多种语言,您可根据实际开发场景选择相应语言的SDK完成设备物模型功能开发。
说明:如果产品下需添加自定义模块物模型进行通信,建议您使用阿里云提供的设备端C语言4.x版本的Link SDK开发设备。物模型开发的示例代码,请参见使用示例。
开发语言 | Link SDK使用示例 |
---|---|
C Link SDK Extended | 物模型开发 |
C(v4.x) | 物模型使用 |
C(v3.x) | 物模型编程 |
Android | 物模型开发 |
Java | 物模型开发 |
Python | 物模型通信 |
Node.js | 物模型开发 |
iOS | 不支持 |
物模型通信流程
重要:下述设备与物联网平台通信中,如果是自定义模块的物模型功能,通信的数据格式中各功能字段必须携带自定义模块的标识符,格式为模块标识符:功能定义标识符
(中间为英文冒号)。
例如,在物模型TSL中,自定义模块标识符为{tsl.functionBlockId}
,则通信数据格式中各功能定义标识符格式如下:
- 属性:
{tsl.functionBlockId}:{tsl.properties.identifier}
。 - 事件:
{tsl.functionBlockId}:{tsl.event.identifier}
。 - 服务:
{tsl.functionBlockId}:{tsl.service.identifier}
。
-
设备上报数据:物联网平台根据封装的Alink协议数据格式生成Alink JSON格式数据,完成上报。
如果设备的消息格式不是Alink JSON,会根据已配置的消息解析转化为对应的Alink JSON格式的数据。
-
物联网平台校验数据:物联网平台校验设备端上报的属性、事件数据和服务调用数据(服务请求参数和服务调用结果),并将校验通过的数据显示在物联网平台控制台对应设备的设备详情页面下物模型数据页签。
-
消息转发流程:如果已配置设备上报物模型消息转发至业务服务器或其他云产品,对应物模型数据会按照相应的数据格式进行转发。
您可在物联网平台控制台的云端运行日志页签,复制目标Topic消息的
messageID
或traceID
,追踪对应消息在物联网平台流转的全路径,快速定位故障。详细信息,请参见消息轨迹。
物模型数据存储
设备上报的物模型数据默认会自动写入时序数据存储空间,您可以根据业务需要,执行以下操作:
- 关闭物模型数据存储:手动关闭指定产品部分或全部物模型的时序数据存储服务。
- 设置存储时效:
- 2022年12月01日后创建的企业版实例,默认存储时效为365天,2022年12月01日前创建的实例默认为30天。新版公共实例的存储时效默认为30天。
- 存储时效可选的最短时效为7天,最长时效为不过期(设置为-1)。超过存储时效或者存储空间后,物联网平台会清理最早的数据。
相关API
物联网平台提供云端API管理和使用物模型,具体API请参见物模型管理API和物模型使用API。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)