设备调试简介
设备端完成与平台的对接开发或使用MQTT客户端工具连接平台后,可通过设备调试功能在开发、量产阶段查看设备上下行业务数据、上下线状态、设备轨迹日志用于支持用户定位、分析解决问题。本文档介绍如何进行设备调试。
操作步骤
新建设备
进行设备调试前,首先需要创建一个设备。
1. 登录 物联网开发平台,进入实例列表页,选择已生成的企业实例。
2. 单击企业实例,进入实例内页,点击左侧菜单中的产品开发,进入产品列表,并选择某个“产品”,进入第三步设备调试。
3. 点击新建设备,进入创建设备页面。


4. 输入设备名称(每个产品下设备名称是唯一的,建议英文或数字,不支持中文),单击保存,即可创建设备。


5. 创建成功后,将会在设备调试列表页中查看到新建成功的设备。首次创建成功的设备默认状态为“未激活”


查看设备信息
1. 新建设备成功后,需要查询设备信息,获取重要参数及进行设备调试。
2. 单击设备列表的设备名称,即可查看设备的基本信息。


3. 设备查看打开后,即可查看设备的基本信息。
设备名称:产品下的唯一设备ID,一般需要烧录到设备端。
产品ID:设备所属产品ID,一般需要烧录到设备端。
所属产品:该设备所属产品名称。
设备密钥:平台为每个设备随机生成的密钥,使用密钥认证需要将此信息烧录到设备端。
设备创建时间:设备初始创建成功的时间。
最后上线时间:设备最后一次连接平台的时间。
激活时间:设备第一次成功连接到平台的时间。
设备状态:设备当前状态。如设备成功通过MQTT连接至平台,则显示“在线”,如果设备离线,则显示“离线”,如果设备从未连接平台,则显示“未激活”。
4. 设备基本信息下方,可以设置标签,也可以设置是否开启设备本地日志,并可复制平台自动生成的“设备连接参数”,直接复制ClientId、UserName、Password到MQTT.fx等MQTT客户端工具中,即可快速模拟设备接入平台。


查看物模型日志
1. 当设备成功连接平台,并向物模型Topic发布消息,则可以在“设备云端日志”下的“物模型日志”查看设备上报的属性、事件、行为等数据。


2. 列表中将该设备的物模型的属性功能项全部列出。
标识符:对应该设备的物模型中的标识符。
功能名称:对应数据模板中的“功能名称”。
历史数据:单击查看,即可查询该功能项的历史上报数据。
数据类型:对应物模型中功能的“数据类型”。
最新值:当设备在向云端上报数据时,只要某个功能的最新上报值发生变化,最新值列都会立刻显示设备上报的最新值。
更新时间:指最新值的变化时间。一般是设备上报该功能的发生时间。
3. 查看某个功能的历史上报数据。按时间展示该功能上报到云端的历史数据,验证上报的数据是否正确。
查看内容日志
1. 内容日志为用户提供了按Topic查询设备上下行内容日志的功能。用户选择“内容日志”,会展示“日志类型”下拉列表。


2. 日志类型选择“属性”,Topic下拉框自动加载属性对应的Topic,并查询出所选择日期范围设备与平台的所有上下行属性内容日志。用户可以按需选择不同的类型,即可查询不同的Topic所对应的上下行内容数据用于设备调试与问题定位。


查看上下线日志
1. 上下线日志为用户提供查询设备连接到平台(上线)以及设备从平台主动或被动断开连接的日志。


2. Device disconnect 下线表示是设备主动关闭与平台的连接;Device keepalive timeout表示设备没有发送心跳,导致超时连接关闭。
查看云端诊断日志
云端诊断日志功能用于查看设备与云端交互的端到端轨迹日志,帮助用户快速诊断在调试过程中设备出现的异常错误,如订阅 topic 无权限、上行消息发布失败、规则引擎转发第三方服务失败等错误异常事件定位。该文档用于在设备与云端消息通信内容定位原因,并寻求解决方案。
设备上下线相关
content | result | errcode | 描述 |
Device connect | FAIL, system error | Dev_Conn_System_Err | 设备上线失败,系统错误。 |
发布、订阅 Topic 相关
content | result | errcode | 描述 |
Device subscribe topic: {} | FAIL, unauthorized operation | Subscribe_Topic_Unauthorized | 订阅失败,无 topic 订阅权限。 |
Device subscribe topic: {} | FAIL, system error | Subscribe_System_Err | 订阅失败,系统错误。 |
Device unsubscribe topic: {} | FAIL, system error | UnSubscribe_System_Err | 退订失败,系统错误。 |
设备消息相关
content | result | errcode | errcode 释义 |
Device publish message to topic:{}, QOS:{} | FAIL, unauthorized operation | Dev_Pub_Unauthorized | 发布失败,无 Topic 发布权限。 |
| FAIL, reach max limit with {} | Dev_Pub_Reach_Max_Limit | 发布失败,publish 超过频率限制。 |
| FAIL, payload too long({} > {}) | Dev_Pub_Payload_TooLong | 发布失败,payload 超过长度限制。 |
| FAIL, system error | Dev_Pub_System_Err | 发布失败,系统错误。 |
Publish message to device: topic: {}, QOS:{}{,业务错误说明} | FAIL,no subcriber | Pub_To_Dev_No_Subscriber | 发送失败,没有订阅者。 |
| FAIL, too many offline message | Pub_To_Dev_Offline_Msg_Exceed_Limit | 发送失败,离线消息存储满。 |
| FAIL, offline message payload exceed limit | Pub_To_Dev_Payload_Too_Large | 发送失败,payload 大小超过限制。 |
| FAIL, system error | Pub_To_Dev_System_Err | 发送失败,系统错误。 |
规则引擎相关
content | result | errcode | errcode释义 |
Send message to RuleEngine, topic:{} | FAIL, system error | Msg_Send_To_Rule_System_Err | 转发失败,系统错误。 |
MQ:forward CMQ, type:{}, CMQ{queue: {}, region: {}} | FAIL, queue name is not existed, or deleted | MQ_Queue_NotExist_Or_Deleted | 转发失败,队列不存在,或者队列已经被删除了。 |
| FAIL, exceed maximum message size | MQ_Exceed_Max_Msg_Size | 转发失败,存在至少一条消息达到了最大消息大小限制。 |
| FAIL, reach maximum retention number of message | MQ_Reach_Max_Retention_Num | 转发失败,达到队列的最大消息堆积数。 |
| FAIL, unexpected error: {} | MQ_Forward_CMQ_Unexpected_Err | 转发失败,腾讯云接口公共错误。 |
| FAIL, system error | MQ_Forward_CMQ_System_Err | 转发失败,系统错误。 |
MQ forward CKafka, type:{}, Ckafka{instance:{}, topic: {}, region: {}} | FAIL, unexpected error: {} | MQ_Fowward_Kafka_Unexpected_Err | 转发失败,Kafka 错误信息。 |
| FAIL, system error | MQ_Fowward_Kafka_System_Err | 转发失败,系统错误。 |
RuleEngine republish message, source topic:{}, destination topic: {} | FAIL, no such field({}) in payload | Payload_No_Field | 转发失败,payload 没有对应的字段。 |
| FAIL, system error | Rule_Repub_System_Err | 转发失败,系统错误。 |
RuleEngine forward third-party server,topic:{}, url:{} | FAIL, url server timeout | Forward_Third_Not_Responding | 转发失败,第三方服务器无响应。 |
| FAIL, system error | Forward_Third_System_Err | 转发失败,系统错误。 |
RuleEngine forward CKafka, topic:{}, Ckafka.instance:{}, topic: {}, region: {},retry times:{}" | FAIL,unexpected error: {} | Rule_Forward_Kafka_Unexpected_Err | 转发失败,Kafka 错误信息。 |
RuleEngine forward CMQ Topic, IOT topic:{}, CMQ.topic:{}, region:{} | FAIL,system error:{} | MQ_Queue_NotExist_Or_Deleted | 转发失败,队列不存在,或者已经被删除了。 |
| | MQ_Exceed_Max_Msg_Size | 转发失败,消息超过最大值限制。 |
| | MQ_Reach_Max_Retention_Num | 转发失败,达到最大保持数目。 |
| | Rule_Forward_CMQ_Topic_No_Subscription | 转发失败,本主题没有订阅者。 |
| | Rule_Forward_CMQ_Topic_Unexpected_Err | 转发失败,未知错误。 |
RuleEngine forward CMQ Queue, IOT topic:{}, CMQ.topic:{}, region:{} | FAIL,system error:{} | MQ_Queue_NotExist_Or_Deleted | 转发失败,队列不存在,或者已经被删除了。 |
| | MQ_Exceed_Max_Msg_Size | 转发失败,消息超过最大值限制。 |
| | MQ_Reach_Max_Retention_Num | 转发失败,达到最大保持数目。 |
| | Rule_Forward_CMQ_Topic_No_Subscription | 转发失败,本主题没有订阅者。 |
| | Rule_Forward_CMQ_Topic_Unexpected_Err | 转发失败,未知错误。 |
RuleEngine forward CTSDB. topic:{}, CTSDB.instanceid:{}, region:{}, metric:{} | FAIL,system error:{} | Rule_Forward_Ctsdb_System_Err | 转发失败,系统错误。 |
RuleEngine forward Mongo, topic:{}, Mongo.instanceid:{}, database:{}, collection:{} | FAIL,system error:{} | Rule_Forward_MongoDB_System_Err | 转发失败,系统错误。 |
RuleEngine forward TCB Func,get role error topic:{}, TCB.envID:{}, functionName:{} | FAIL,system error:{} | Rule_Forward_TCB_Func_System_err | 转发失败,系统错误。 |
RuleEngine forward Mysql.IOT topic:{}. info:{} | FAIL,system error:{} | Rule_Forward_Mysql_System_Err | 转发失败,系统错误。 |
RuleEngine forward TDMQ.IOT topic:{}. info:{} | FAIL,system error:{} | Rule_Forward_TDMQ_System_Err | 转发失败,系统错误。 |
Process sql: {} | FAIL,unexpected error:{} | Rule_Process_SQL_Err | 执行失败。 |
Payload is not JSON fmt | FAIL | Payload_Not_JSON | 消息负载不是 JSON 格式。 |
在线调试
1. 当您的真实设备已成功对接到开发平台后,则可以使用在线调试对真实设备进行数据收发的测试。
2. 单击在线调试,即可进入在线调试功能。前提是真实设备已开启并成功连接到开发平台。
3. 在线调试左侧的操控面板是根据设备所属产品的物模型自动生成,设置需要下发的数据后,单击发送后,系统会自动触发控制指令到设备端。
4. 设备端接收到指令后,会立刻返回数据到云端并显示在右侧的文本框中。