有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

1. SDK

详情请参见 SDK 文档。目前支持 Linux、Android 平台的设备 SDK、并支持移植到不同的硬件平台 。

2. 设备接入

设备通过 SDK 接入腾讯物联网通信平台:
应用层基于 MQTT、CoAP 协议。
传输层基于 TCP、UDP 协议,并在此基础上引入安全网络传输协议(TLS、DTLS),实现客户端和服务器端的双向鉴权、数据加密传输。
SDK 支持 RTOS 移植能力,跨平台移植,框架抽离硬件平台抽象层,可基于不同平台快速、轻松接入物联网通信。
设备 SDK 支持 TLS(对应 MQTT)、DTLS(对应 CoAP)的非对称和对称加密两种鉴权方式,保护设备通信安全:
非对称加密 安全级别高,基于证书、非对称加密算法,适用于硬件规格较高、对功耗不是很敏感的设备。依赖设备证书、私钥,根证书等信息,在物联网通信创建设备时,会返回相关信息。
对称加密 安全级别普通,基于密钥、对称加密算法,适用于资源受限、对功耗敏感的设备。依赖于设备 psKey ,在物联网通信创建设备时,会返回相关信息。
除设备 SDK 接入外,腾讯物联网通信还提供 HTTP 接入,接入协议门槛低,适用低功耗、短连接的数据上报场景。

3. 设备管理


img


一个腾讯云账号下,最多可以创建2000个产品,每个产品下最多创建100万台设备。一个设备只能隶属于一个产品。产品名和设备名在同一云账号下唯一。
提供设备的启用/禁用功能。设备被禁用后将不能接入物联网通信平台,将无法执行与设备有关的操作,但与设备相关联的信息依然保留,仍可查询设备相关信息。

4. Topic 管理

在腾讯物联网通信,设备能够发布和订阅的 Topic 受到严格管理。一个产品下的所有设备具备相同的 Topic 类 权限,默认包括:
Topic
说明
${productId}/${deviceName}/event
发布权限,用于设备上报数据。
${productId}/${deviceName}/control
订阅权限,用于设备获取后台下发的数据。
上述“$”符包含的 productId、deviceName,针对具体创建的设备,将映射为具体的产品 Id 和设备名字。
示例,一个产品名字为“pro”的产品(假设产品 Id 是“pro_id”)下有2个设备(假设设备名字分别为 “dev_1”、“dev_2”),那么“dev_1”可以发布的 Topic 包括 pro_id/dev_1/event,可以订阅的 topic 包括 pro_id/dev_1/control,但是不可以发布 pro_id/dev_2/event,不可以订阅 pro_id/dev_2/control。
用户可以通过控制台进行 Topic 权限的编辑修改、增删产品的 Topic 类权限。
为了方便设备 SDK 订阅批量的 Topic ,设备进行订阅和取消订阅时可以使用通配符来表示多个符合的 Topic :
通配符
描述
#
此通配符只能出现在 Topic 的最后,代表本级以及所有子级 Topic 。
例如,通配符 Topic 为 pro_id/dev_1/# ,这不仅可以代表 pro_id/dev_1/event ,也可以代表 pro_id/dev_1/event/subeventA。
+
代表本级所有 Topic ,只能出现在 deviceName 后。
例如,通配符 Topic 为 pro_id/dev_1/event/+,可以代表 pro_id/dev_1/event/subeventA,又可以代表 pro_id/dev_1/event/subeventB,但不能代表 pro_id/dev_1/event/subeventA/close。可以出现多次,如 pro_id/dev_1/event/+/subeventA/+。
通配符必须作为完整的一级,${productId}/${deviceName}/e# 和 ${productId}/${deviceName}/e+ 都是非法格式。 腾讯物联网通信定义的系统主题($shadow,$ota,$sys)不支持通配符。
增加订阅时通配符的表现为:对通配符 Topic 匹配到的该产品下有订阅权限的 Topic 进行订阅,若匹配到的 Topic 列表为空也返回成功。
取消订阅时通配符的表现为:对通配符 Topic 匹配到的已订阅的 Topic 进行取消订阅,若匹配到的 Topic 列表为空也返回成功。${productId}/${deviceName}/# 为清除所有用户主题的订阅。

5. 消息管理


img


对于 MQTT 的数据传输,腾讯物联网通信支持 QoS=0 或 1,但不支持 QoS=2。基于 MQTT 协议。设备消息支持离线存储。
QoS=0,最多只往设备发一次 对数据传输可靠性要求一般的场景,请在 Publish、Subscribe 时选择这个 QoS。
QoS=1,至少让设备收到一次 对数据传输可靠性要求高的场景,请在 Publish、Subscribe 时选择这个 Qos。
其他参数见下表:
参数
说明
Topic 名字长度
不超过64字节。
MQTT 协议包大小
不超过16K字节。
QoS=1 的消息存储时长(接收方离线或在线发不通)
24小时。
未被设备确认的 QoS=1 消息数量
不超过150条。

6. 设备影子

设备影子本质上是一份在服务器端缓存的设备数据(JSON 形式),主要用于保存:
设备的当前配置
设备的当前状态
作为中介,设备影子可以有效实现设备和用户应用之间的数据双向同步:
对于设备配置,用户应用不需要直接修改设备,只需要修改服务器端的设备影子,由设备影子同步到设备。即使当时设备不在线,设备上线后仍能从设备影子同步到最新配置。
对于设备状态,设备将状态上报到设备影子,用户应用查询时,只需查询设备影子即可。这样可以有效减少设备和服务器端的网络交互,尤其是低功耗设备。
下图是“快速开始”里设备影子的应用示例:

img


注意:
设备影子和设备消息的适用场景并不一样。从实现机制上来说,服务器端设备影子总是保存最后一份数据,而先后达到的多条消息并不会相互覆盖。
对于设备上报数据的场景,设备影子更适用于上报一些设备自身信息(如设备能耗),设备消息更适用于上报设备收集的数据(如测量的温度)
对于设备接收数据的场景,设备影子更适用于通知设备更新配置(如更改目标运行温度),设备消息更适用于设备的实时控制(如让设备向左转45度)
详情请参见 设备影子详情

7. 规则引擎

基于规则引擎,用户可以配置规则实现以下操作:
语法规则 支持类 SQL 语法和基础语义操作,可以通过简易的语法编写,实现对设备消息的内容解析和过滤提取、重新整合,进而转发到后端服务,无缝对接腾讯云后端的多种存储组件、函数计算、大数据分析套件等。
设备与设备互通 为了实现设备的数据隔离,设备只能发布和订阅自身的 Topic 消息(请参见 Topic管理)。为了实现互通,需要基于规则引擎的 repub 功能。
设备与用户服务器互通 规则提供简单的 forward 功能,可以将消息通过 HTTP 请求抄送给用户服务器。实现设备消息与用户服务的快速互通能力。
设备与云服务互通 对于用户需要对设备数据进行进一步处理的场景(如持久化存储、大数据分析),腾讯云提供相应的产品(如云数据库、大数据分析套件)。 详情请参见 规则引擎详情

8. 控制台

控制台提供了可视化的管理界面,支持产品管理、设备管理、Topic管理、规则引擎配置等功能。您可以前往 物联网通信控制台 进行体验。

9. 云 API

对于物联场景下对设备的管理流接口,提供后台快速、批量操作接口。当前支持 Python、PHP、Java、Go、NodeJS、.Net 工具包。目前腾讯物联网通信提供产品、设备、任务、消息、规则引擎、设备影子相关的 API,详细请参见 云 API

10. 固件升级

支持 OTA 固件升级服务,当设备固件有安全隐患或者功能漏洞时,物联网服务端支持通过 OTA 升级,消除隐患,降低安全风险。

11. 协作管理

物联网通信平台支持通过 CAM 安全地访问、使用和管理云账号的资源。通过对子账号与协作者的身份管理和策略管理,来实现物联网通信资源的隔离与协作。