数据格式

设备按照模型中定义的属性、测点、事件、服务与云端进行数据传输。EnOS 支持数据以 EnOS 标准 JSON 数据格式和自定义格式。

EnOS 标准数据格式

通常情况下,我们推荐设备以 EnOS 标准 JSON 数据格式进行数据传输。

../../_images/data_format_standard.png

该示例为向云端上报数据的标准格式参考:

{
        "id": "123",
        "version": "1.0",
        "params": {
                "measurepoints": {
                        "Power": {
                                "value": 1.0,
                                "quality": 9
                        },
                        "temp": 1.02,
                        "branchCurr": [
                                "1.02", "2.02", "7.93"
                        ]
                },
                "time": 123456
        },
        "method": "thing.measurepoint.post"
}

该示例为云端向设备下发数据的标准格式参考:

{
        "id": "123",
        "version": "1.0",
        "params": {
                "temperature": 30.5
        },
        "method": "thing.service.measurepoint.set"
}

在以上示例中:

  • id 是 message ID。
  • version 是协议版本。
  • params 包裹的 JSON 数组为传输的数据。
  • method 为请求方法。

EnOS 设备协议定义了数据以何种格式通过哪个 topic 与云端进行数据传输,详细信息,参考 设备协议

自定义数据格式

由于低配置且资源受限或者对网络流量有要求或者支持自定义数据协议的设备,不适合直接构造 JSON 数据和云端通信。在该场景下有两种方式接入设备至 IoT Hub:数据解析或使用协议网关。

数据解析(待下线)

数据解析的流程是将数据透传到云端,然后由云端运行解析脚本将透传的数据转换成 EnOS 定义的 JSON 格式数据。云端向设备发送控制指令时,也可通过脚本将 EnOS 定义的 JSON 格式数据转换为设备能够理解的二进制数据进行下发。


../../_images/data_format_custom.png


对于使用透传/自定义格式传输数据的设备,你可以在 EnOS Cloud 编写脚本,解析设备数据。解析脚本支持使用 JavaScript 进行开发。


EnOS Cloud 为开发者提供了以下功能:

  1. 脚本在线编辑器,支持 JavaScript 语言,对语法进行静态检查;
  2. 支持对脚本的模拟数据调试,可输入上下行数据进行模拟转换,查看脚本运行结果。
  3. 提交脚本到运行环境,在设备上下行时进行调用。

更多信息,参见 创建数据解析脚本

协议网关

对于仅支持自定义数据协议或特定行业协议的设备,支持将原始数据通过自定义协议网关接入,支持将原始数据转换为 EnOS IoT Json 格式或其它下游模块或应用要求的格式。


../../_images/data_format_custom_protocol_gateway.png


EnOS Cloud 为开发者提供了以下功能:

  1. 提供协议的双向转换,为设备数据连接到 EnOS 开辟了更多的途径。
  2. 提供基于协议指定的设备数据在 IoT Hub 中动态生成资产的选项,无需在 IoT Hub 中手动创建资产。


更多信息,参见 设备接入