随笔 - 2649  文章 - 2452  评论 - 0  阅读 - 74060

提交物模型消息解析脚本

提交物模型消息解析脚本

重要:本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文以解析上、下行属性消息数据的脚本为例,介绍在数据格式为透传或自定义的产品下,如何编写并提交物模型消息解析脚本。

前提条件

创建产品时已定义数据格式为透传/自定义。具体操作,请参见创建产品

背景信息

数据格式为ICA标准数据格式,设备按照物联网平台定义的标准数据格式生成消息上报,标准Alink JSON数据格式说明,请参见设备属性、事件、服务

数据格式为透传/自定义,设备通信时,需要物联网平台调用您提交的消息解析脚本,将上行物模型消息解析为物联网平台定义的标准格式(Alink JSON),将下行物模型消息据解析为设备的自定义数据格式。

说明

本示例中的属性为默认模块属性,若使用自定义模块,标识符(identifier)的格式为${模块标识符}:${属性标识符}。例如,model1:prop_int16

步骤一:编辑脚本

  1. 创建产品:在物联网平台控制台,创建产品,数据格式选择为透传/自定义

  2. 单个添加物模型:为该产品定义物模型属性。

    本示例中定义了以下三个属性:

    标识符(identifier) 数据类型 取值范围 读写类型
    prop_float 浮点单精度(float) -100~100 读写
    prop_int16 整数型(int32) -100~100 读写
    prop_bool 布尔型(bool) 0:开;1:关 读写

    消息解析脚本会根据这里定义的物模型来编写,用于解析上、下行物模型消息的数据。

    本示例通信中参数值长度定义:

    • 设备上报数据请求

      字段 字节数
      帧类型 1字节
      请求ID 4字节
      属性prop_int16 2字节
      属性prop_bool 1字节
      属性prop_float 4字节
    • 设备上报数据响应

      字段 字节数
      帧类型 1字节
      请求ID 4字节
      结果code 1字节
    • 设置属性请求

      字段 字节数
      帧类型 1字节
      请求ID 4字节
      属性prop_int16 2字节
      属性prop_bool 1字节
      属性prop_float 4字节
    • 属性设置响应

      字段 字节数
      帧类型 1字节
      请求ID 4字节
      结果code 1字节
  3. 编写脚本。

    1. 产品页面,单击产品对应的查看

    2. 产品详情页面,单击消息解析页签。

    3. 选择脚本语言,然后在编辑脚本下的输入框中输入脚本。

      支持的脚本语言 设备自定义数据格式转Alink JSON格式数据的函数(上行通信) Alink JSON格式数据转为设备自定义数据格式的函数(下行通信) 示例代码
      JavaScript(ECMAScript 5) rawDataToProtocol protocolToRawData JavaScript脚本示例
      Python 2.7 raw_data_to_protocol protocol_to_raw_data Python脚本示例
      PHP 7.2 rawDataToProtocol protocolToRawData PHP脚本示例

      说明

      您还需编写自定义Topic的上行消息解析脚本,相关脚本编写说明,请参见提交消息解析脚本

      有关自定义Topic消息解析和物模型消息解析的完整示例脚本,请参见透传/自定义产品完整示例脚本(JavaScript)透传/自定义产品完整示例脚本(Python)透传/自定义产品完整示例脚本(PHP)

步骤二:在线测试脚本

重要

下文中传入和返回的十六进制字符串和JSON格式数据仅为示例,实际场景中,不可直接用于调试。

脚本编辑完成后,在模拟输入下,选择模拟类型,输入模拟数据在线测试脚本。

  • 模拟解析设备上报的属性数据。

    选择模拟类型为设备上报数据,输入以下模拟的设备上报数据,然后单击执行

    说明

    以下传入参数模拟数据仅适用于JavaScript脚本,更多示例内容,请参见JavaScript脚本示例

    Python、PHP脚本的传入参数模拟数据,请参见Python脚本示例PHP脚本示例

    您可使用字符串转十六进制工具,将待传入参数JSON格式数据转为十六进制格式数据。例如转化后为00002233441232013fa00000,则输入如下数据。

0x00002233441232013fa00000

数据解析引擎会按照脚本规则,将透传数据转换为JSON格式数据。

单击运行结果,查看解析结果。

  • {
        "method": "thing.event.property.post", 
        "id": "2241348", 
        "params": {
            "prop_float": 1.25, 
            "prop_int16": 4658, 
            "prop_bool": 1
        }, 
        "version": "1.0"
    }
    
  • 模拟解析物联网平台下发的返回结果数据。

    选择模拟类型为设备接收数据,输入以下JSON格式数据,然后单击执行

    {
      "id": "12345",
      "version": "1.0",
      "code": 200,
      "method": "thing.event.property.post",
      "data": {}
    }
    
  • 数据解析引擎会将JSON格式数据转换为以下数据:

    0x0200003039c8
    
  • 模拟解析物联网平台下发的属性设置数据。

    选择模拟类型为设备接收数据,输入以下JSON格式数据,然后单击执行

    {
        "method": "thing.service.property.set", 
        "id": "12345", 
        "version": "1.0", 
        "params": {
            "prop_float": 123.452, 
            "prop_int16": 333, 
            "prop_bool": 1
        }
    }
    

    数据解析引擎会将JSON格式数据转换为以下数据:

    0x0100003039014d0142f6e76d
    
  • 模拟解析设备返回的属性设置结果数据。

    选择模拟类型为设备上报数据,输入以下数据,然后单击执行

    0x0300223344c8
    

    数据解析引擎会将透传数据转换为以下JSON格式数据:

    {
      "code": "200",
      "data": {},
      "id": "2241348",
      "version": "1.0"
    }
    

步骤三:提交脚本

重要

仅提交后的脚本才能被物联网平台调用;草稿状态的脚本不能被调用。

确认脚本可以正确解析数据后,单击提交,将该脚本提交到物联网平台系统,以供设备数据上下行时,物联网平台调用该脚本解析数据。

步骤四:使用真实设备调试

正式使用脚本之前,请使用真实设备与物联网平台进行上下行消息通信,以验证物联网平台能顺利调用脚本,解析上下行数据。

您可使用物联网平台提供的Link SDK开发设备接入物联网平台。详细内容,请参见Link SDK

  • 测试上报属性数据。

    1. 使用设备端上报设备属性数据,例如0x00002233441232013fa00000
    2. 在物联网平台控制台,选择*设备管理* > *设备***。
    3. 单击设备对应的查看,然后在设备详情*物模型数据* > *运行状态***页签下,查看是否有相应的属性数据。
  • 测试下发属性数据。

    1. 在物联网平台控制台,选择*监控运维* > *在线调试***。

    2. 选择要调试的产品和设备,并选择

      默认模块

      ,功能选择为要调试的属性identifier,如属性(prop_int16),方法选择为

      设置

      ,输入以下数据,单击

      发送指令

      {
          "method": "thing.service.property.set", 
          "id": "12345", 
          "version": "1.0", 
          "params": {
              "prop_float": 123.452, 
              "prop_int16": 333, 
              "prop_bool": 1
          }
      }
      
    3. 查看设备端是否收到该属性设置指令。

    4. 在该设备的设备详情页面的*物模型数据* > *运行状态***页签下,查看设备是否上报当前属性数据。

可选:更新消息解析脚本

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

警告

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

相关文档

posted on   AtlasLapetos  阅读(10)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示