设备通过携带解析标记?_sn=default的自定义Topic上报自定义格式数据时,物联网平台收到数据后,需调用数据解析脚本将自定义格式数据转换为JSON结构体,再流转给后续业务系统。本文介绍如何在物联网平台控制台提交数据解析脚本实现自定义格式数据解析。

使用与限制

  • 仅华东2(上海)、华北2(北京)、华南1(深圳)、日本(东京)地域支持自定义Topic数据解析。
  • 仅通过MQTT协议接入的设备支持自定义Topic数据解析。
  • 仅解析设备上报云端的数据,不解析云端下行数据。
  • 解析上报数据的Payload,并返回解析后的Payload。
  • 解析前后,数据所在Topic不变。例如,设备发送到/${productKey}/${deviceName}/user/update的数据,解析后仍在该Topic中。

解析标记

配置设备端时,需在发布消息的自定义Topic后添加数据解析标记?_sn=default

警告 物联网平台仅解析设备通过携带标记的Topic发布的数据。

例如,设备发送到Topic /${productKey}/${deviceName}/user/update的数据需要解析为JSON格式。在开发设备端时,就需配置该Topic为:/${productKey}/${deviceName}/user/update?_sn=default

说明 在物联网平台创建自定义Topic时按正常Topic定义,不添加该解析标记。

操作步骤

  1. 登录物联网平台控制台
  2. 实例概览页面,找到对应的实例,单击实例进入实例详情页面。
    重要 目前华东2(上海)、华北2(北京)、华南1(深圳)地域开通了企业版实例服务。其他地域,请跳过此步骤。
    实例概览
  3. 在左侧导航栏,选择设备管理 > 产品
  4. 产品页面,单击产品对应的查看
  5. 产品详情页面,单击数据解析页签。
  6. 选择脚本语言,然后在编辑脚本下的输入框中输入脚本。
    支持的脚本语言 需定义的函数 示例代码
    JavaScript(ECMAScript 5) transformPayload() JavaScript脚本示例
    Python 2.7 transform_payload() Python脚本示例
    PHP 7.2 transformPayload() PHP脚本示例
    说明 如果产品的数据格式透传/自定义,还需编写物模型数据解析脚本。物模型数据解析脚本编写指导,请参见提交物模型数据解析脚本
  7. 测试脚本。
    1. 模拟输入下,选择模拟类型自定义,并选择设备和Topic。
    2. 输入模拟的设备上报数据,单击执行
  8. 确认脚本可用后,单击提交,将脚本提交到物联网平台系统。

可选:更新数据解析脚本

提交数据解析脚本成功后,您可在数据解析页签,修改或删除脚本代码后,重新提交。

警告 修改或删除脚本代码重新提交后,该产品下设备数据解析服务不可用、用户业务中断。请谨慎操作。

相关文档