Skip to content

数据接口

数据接口是第三方向平台调用。第三方向平台发送 MQTT 消息,平台给第三方响应 MQTT 接口数据。

  • 请求主题: /openapi/data/request/{appKey}
  • 响应主题: /openapi/data/response/{appKey}

3.1 查询区域列表

该接口返回所有区域。

方法名(method): queryRegions

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryRegions",
  "data": {}
}

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryRegions",
  "data": {
    "code": 200,
    "message": "success",
    "data": [
      {
        "regionId": 1,
        "regionName": "一级区域",
        "parentId": 0,
        "parentName": null,
        "remark": "备注"
      }
    ],
    "timestamp": 1732694400000
  }
}

响应参数:

参数数据类型示例描述
regionIdLong719943688798277区域 ID
regionNameString一级区域区域名称
parentIdLong719943688798270父区域 ID
parentNameString顶级区域父区域名称
remarkString备注备注

3.2 查询设备列表

方法名(method): queryDeviceList

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceList",
  "data": {
    "regionIds": [1, 2],
    "deviceIds": [1, 2],
    "businessIds": [1, 2],
    "page": 1,
    "size": 10
  }
}

根据查询参数,查询设备列表。单页最多 1000 个设备。如果设备不多的情况,可以一次性查询全部。

请求参数:

参数数据类型示例必填描述
regionIds整型 List[1, 2]区域 ID 集合,可以单个
deviceIds整型 List[1, 2]设备 ID 集合,可以单个
businessIds整型 List[1, 2]行业 ID 集合,可以单个
pageInteger1分页参数
sizeInteger10分页参数

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceList",
  "data": {
    "code": 200,
    "message": "success",
    "data": [
      {
        "deviceId": 123,
        "businessId": "IMEI123456",
        "deviceName": "设备 001",
        "productId": 1,
        "productName": "4G 终端",
        "regionId": 1,
        "regionName": "一级区域",
        "onlineStatus": 1,
        "alarmStatus": 0,
        "activeTime": "2025-01-01 10:00:00",
        "offlineTime": "2025-11-27 16:00:00",
        "remark": "备注"
      }
    ],
    "timestamp": 1732694400000
  }
}

响应参数:

参数数据类型示例描述
deviceIdLong719943688798277设备 ID
businessIdStringIMEI123456行业 ID
deviceNameString设备 001设备名称
productIdLong719943688798271产品 ID
productNameString4G 终端产品名称
regionIdLong719943688795245区域 ID
regionNameString一级区域区域名称
onlineStatusInteger0在线状态,0-在线,1-离线
alarmStatusInteger0告警状态,0-正常,1-告警
activeTimeString2025-01-01 14:00:00激活时间
offlineTimeString2025-01-01 14:00:00离线时间,如果设备在线,为空串
remarkString备注备注

3.3 查询单个设备信息

方法名(method): queryDevice

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDevice",
  "data": {
    "deviceId": 1
  }
}

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDevice",
  "data": {
    "code": 200,
    "message": "success",
    "data": {
      "deviceId": 123,
      "businessId": "IMEI123456",
      "deviceName": "设备 001",
      "productId": 1,
      "productName": "4G 终端",
      "regionId": 1,
      "regionName": "一级区域",
      "onlineStatus": 1,
      "alarmStatus": 0,
      "activeTime": "2025-01-01 10:00:00",
      "offlineTime": "2025-11-27 16:00:00",
      "remark": "备注"
    },
    "timestamp": 1732694400000
  }
}

3.4 查询设备实时数据

方法名(method): queryDeviceListRealtime

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceListRealtime",
  "data": {
    "regionIds": [1, 2],
    "deviceIds": [1, 2],
    "businessIds": [1, 2],
    "page": 1,
    "size": 10
  }
}

根据查询参数,返回单个或者多个设备的实时数据。单页最多 1000 个设备的实时数据。如果设备不多的情况,可以一次性查询全部。

请求参数:

参数数据类型示例必填描述
regionIds整型 List[1, 2]区域 ID 集合,可以单个
deviceIds整型 List[1, 2]设备 ID 集合,可以单个
businessIds整型 List[1, 2]行业 ID 集合,可以单个
pageInteger1分页参数
sizeInteger10分页参数

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceListRealtime",
  "data": {
    "code": 200,
    "message": "success",
    "data": {
      "deviceId": 123,
      "deviceName": "设备 001",
      "businessId": "IMEI123456",
      "regionId": 1,
      "regionName": "一级区域",
      "onlineStatus": 1,
      "metrics": [
        {
          "meteId": "1555",
          "meteName": "温度",
          "value": "25.5",
          "sValue": "25.5",
          "unit": "℃",
          "time": "2024-11-27 16:00:00"
        },
        {
          "meteId": "12125",
          "meteName": "湿度",
          "value": "60",
          "sValue": "60",
          "unit": "%",
          "time": "2024-11-27 16:00:00"
        }
      ],
      "timestamp": 1732694400000
    },
    "timestamp": 1732694400000
  }
}

响应参数:

参数数据类型示例描述
deviceIdLong719943688798277设备 ID
businessIdStringIMEI123456行业 ID
deviceNameString设备 001设备名称
productIdLong719943688798271产品 ID
productNameString产品名称产品名称
regionIdLong719943688795245区域 ID
regionNameString区域名称区域名称
onlineStatusInteger0在线状态,0-在线,1-离线
metricsList属性量列表
├─ meteIdString1855521量 ID
├─ meteNameString温度量名称
├─ valueString26.5实时值
├─ unitString单位
├─ dataTypeString2数据类型:0-字符串 1-整型 2-浮点 3-枚举
├─ timeString2025-01-01 14:00:00时间
└─ sValueString26.5翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值

3.5 批量查询所有设备实时数据

一次性返回 AppKey 权限范围内所有设备的实时数据,是 3.6 查询单个设备实时数据 的批量改进版,不分页

调用逻辑:

  1. 若传递了 deviceIds(或 businessIds),则按设备查询;
  2. 否则若传递了 regionIds,则查询这些区域(含子区域)下的设备;
  3. 若都不传递,则查询当前 AppKey 授权区域(含子区域)下的所有设备。

设备数量限制

设备数量最多 5000 个。若命中的设备超过 5000 个,接口会直接返回错误,请通过传递区域 ID 列表或设备 ID 列表缩小查询范围。

方法名(method): queryAllDeviceRealtime

请求示例: data 可选,不传则查询 AppKey 授权范围内的全部设备。

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryAllDeviceRealtime",
  "data": {
    "regionIds": [1, 2],
    "deviceIds": [1, 2],
    "businessIds": ["IMEI123456"]
  }
}

请求参数:

参数数据类型示例必填描述
regionIds整型 List[1, 2]区域 ID 集合,可以单个
deviceIds整型 List[1, 2]设备 ID 集合,可以单个
businessIds字符串 List["IMEI123456"]行业 ID 集合,可以单个

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryAllDeviceRealtime",
  "data": {
    "code": 200,
    "message": "success",
    "data": [
      {
        "deviceId": 123,
        "deviceName": "设备 001",
        "businessId": "IMEI123456",
        "regionId": 1,
        "regionName": "一级区域",
        "onlineStatus": 1,
        "metrics": [
          {
            "meteId": "1555",
            "meteName": "温度",
            "value": "25.5",
            "sValue": "25.5",
            "unit": "℃",
            "time": "2024-11-27 16:00:00"
          }
        ],
        "timestamp": 1732694400000
      }
    ],
    "timestamp": 1732694400000
  }
}

响应参数: 数据为实时数据数组,单个元素结构同 3.4 查询设备实时数据

错误响应示例(设备超过 5000 个):

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryAllDeviceRealtime",
  "data": {
    "code": 500,
    "message": "设备数量为6000,超过最大限制5000,请传递区域ID列表或设备ID列表缩小查询范围",
    "timestamp": 1732694400000
  }
}

3.6 查询单个设备实时数据

方法名(method): queryDeviceRealtime

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceRealtime",
  "data": {
    "deviceId": 1
  }
}

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceRealtime",
  "data": {
    "code": 200,
    "message": "success",
    "data": {
      "deviceId": 123,
      "deviceName": "设备 001",
      "businessId": "IMEI123456",
      "regionId": 1,
      "regionName": "一级区域",
      "onlineStatus": 1,
      "metrics": [
        {
          "meteId": "1555",
          "meteName": "温度",
          "value": "25.5",
          "sValue": "25.5",
          "unit": "℃",
          "time": "2024-11-27 16:00:00"
        },
        {
          "meteId": "12125",
          "meteName": "湿度",
          "value": "60",
          "unit": "%",
          "time": "2024-11-27 16:00:00"
        }
      ]
    },
    "timestamp": 1732694400000
  }
}

响应参数:3.4 查询设备实时数据

3.7 获取设备的在线状态

方法名(method): queryDeviceOnlineStatusList

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceOnlineStatusList",
  "data": {
    "regionIds": [1, 2],
    "deviceIds": [1, 2],
    "businessIds": [1, 2],
    "page": 1,
    "size": 10
  }
}

根据查询参数,返回单个或者多个设备的在线状态。单页最多 1000 个设备。如果设备不多的情况,可以一次性查询全部。

请求参数:

参数数据类型示例必填描述
regionIds整型 List[1, 2]区域 ID 集合,可以单个
deviceIds整型 List[1, 2]设备 ID 集合,可以单个
businessIds整型 List[1, 2]行业 ID 集合,可以单个
pageInteger1分页参数
sizeInteger10分页参数

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceOnlineStatusList",
  "data": {
    "code": 200,
    "message": "success",
    "data": {
      "deviceId": 123,
      "deviceName": "设备 001",
      "businessId": "IMEI123456",
      "onlineStatus": 1
    },
    "timestamp": 1732694400000
  }
}

响应参数:

参数数据类型示例描述
deviceIdLong719943688798277设备 ID
businessIdStringIMEI123456行业 ID
deviceNameString设备 001设备名称
onlineStatusInteger0设备状态,0-在线,1-离线

3.8 查询实时告警数据

方法名(method): queryRealtimeAlarms

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryRealtimeAlarms",
  "data": {
    "regionIds": [1, 2],
    "deviceIds": [1, 2],
    "businessIds": [1, 2]
  }
}

根据查询参数,返回单个或者多个设备的实时告警。此接口不分页,一次查询全部实时告警。

请求参数:

参数数据类型示例必填描述
regionIds整型 List[1, 2]区域 ID 集合,可以单个
deviceIds整型 List[1, 2]设备 ID 集合,可以单个
businessIds整型 List[1, 2]行业 ID 集合,可以单个

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryRealtimeAlarms",
  "data": {
    "code": 200,
    "message": "success",
    "data": [
      {
        "alarmId": 456,
        "deviceId": 123,
        "deviceName": "设备 001",
        "businessId": "IMEI123456",
        "regionId": 1,
        "regionName": "一级区域",
        "meteId": "80015551",
        "meteName": "压力过低",
        "level": 1,
        "value": "155",
        "sValue": "155",
        "alarmTime": "2025-11-27 16:00:00"
      }
    ],
    "timestamp": 1732694400000
  }
}

响应参数:

参数数据类型示例描述
alarmIdLong15454521告警 ID,告警恢复时以此 ID 为主键
deviceIdLong719943688798277设备 ID
businessIdStringIMEI123456行业 ID
deviceNameString设备 001设备名称
regionIdLong719943688795245区域 ID
regionNameString一级区域区域名称
meteIdString1545451告警量 ID
meteNameString温度过低告警量名称
levelInteger1告警等级 1 2 3 4
valueString22.5实时值
sValueString22.5翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值
alarmTimeString2025-11-27 16:00:00告警时间

3.9 查询单个设备历史告警

历史告警较多,所以仅限单个设备查询历史告警。

方法名(method): queryDeviceHistoryAlarms

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceHistoryAlarms",
  "data": {
    "deviceId": 1,
    "businessId": "IMEI123456",
    "alarmLevel": 1,
    "alarmStatus": 0,
    "isRecovered": 0,
    "startTime": "2025-11-01 00:00:00",
    "endTime": "2025-11-27 23:59:59",
    "page": 1,
    "size": 20
  }
}

请求参数:

参数数据类型示例必填描述
deviceIdLong1设备 ID
businessIdStringIMEI123456行业 ID,行业 ID 和设备 ID 必填其一
alarmLevelInteger1告警级别:1-严重 2-重要 3-一般
alarmStatusInteger0告警状态:0-未处理 1-已处理 2-已忽略
isRecoveredInteger0是否已恢复:0-未恢复 1-已恢复
startTimeString2025-11-01 00:00:00开始时间(格式 yyyy-MM-dd HH:mm:ss)
endTimeString2025-11-27 23:59:59结束时间(格式 yyyy-MM-dd HH:mm:ss)
pageInteger1分页页码,从 1 开始,默认 1
sizeInteger20每页大小,默认 20,最大 100

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryDeviceHistoryAlarms",
  "data": {
    "code": 200,
    "message": "success",
    "data": [
      {
        "alarmId": 456,
        "deviceId": 123,
        "deviceName": "设备 001",
        "businessId": "IMEI123456",
        "regionId": 1,
        "regionName": "一级区域",
        "meteId": "80015551",
        "meteName": "压力过低",
        "level": 1,
        "value": "155",
        "sValue": "155",
        "alarmTime": "2025-11-27 16:00:00",
        "state": "END",
        "closeTime": "2025-11-27 18:00:00"
      },
      {
        "alarmId": 457,
        "deviceId": 123,
        "deviceName": "设备 001",
        "businessId": "IMEI123456",
        "regionId": 1,
        "regionName": "一级区域",
        "meteId": "80015551",
        "meteName": "压力过低",
        "level": 1,
        "value": "155",
        "sValue": "155",
        "alarmTime": "2025-11-27 16:00:00",
        "state": "BEGIN",
        "closeTime": ""
      }
    ],
    "timestamp": 1732694400000
  }
}

响应参数:

参数数据类型示例描述
alarmIdLong15454521告警 ID,告警恢复时以此 ID 为主键
deviceIdLong719943688798277设备 ID
businessIdStringIMEI123456行业 ID
deviceNameString设备 001设备名称
regionIdLong719943688795245区域 ID
regionNameString一级区域区域名称
meteIdString1545451告警量 ID
meteNameString温度过低告警量名称
levelInteger1告警等级 1 2 3 4
valueString22.5实时值
sValueString22.5翻译之后的实时值。枚举类型为翻译后的值,字符串类型与 value 等值
alarmTimeString2025-11-27 16:00:00告警时间
stateStringBEGINBEGIN 是告警中,END 是已关闭
closeTimeString2025-11-27 18:00:00恢复时间,如果是 END 才会有 closeTime

3.10 查询产品列表(物模型)

查询产品列表,每个产品包含其物模型(属性量定义)。

物模型不是返回平台全部产品,而是根据当前 AppKey 授权区域下关联的设备,对这些设备所属的产品去重后,再获取这些产品对应的物模型。说明:

  • 仅返回 AppKey 授权范围内设备实际使用到的产品(已去重),不会返回无关产品。
  • 物模型中的告警量(meteType=1)对外不返回,仅包含采集量、控制量、配置量、阈值量等。

方法名(method): queryProductList

请求示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryProductList",
  "data": {}
}

请求参数:

响应示例:

json
{
  "messageId": "uuid-1234-5678-abcd",
  "appKey": "ABC123456",
  "method": "queryProductList",
  "data": {
    "code": 200,
    "message": "success",
    "timestamp": 1764749697528,
    "data": [
      {
        "productId": 744000000001000,
        "productName": "门磁",
        "onlinePeriod": 1440,
        "thingModel": [
          {
            "meteId": "1",
            "meteName": "门磁状态",
            "unit": "",
            "dataType": 3,
            "meteType": 0,
            "enumValues": [
              { "name": "门磁关门", "value": "0" },
              { "name": "门磁打开", "value": "1" }
            ],
            "level": 0,
            "decimalPoint": 1
          },
          {
            "meteId": "2",
            "meteName": "电池电压",
            "unit": "",
            "dataType": 2,
            "meteType": 0,
            "level": 0,
            "decimalPoint": 1
          }
        ]
      }
    ]
  }
}

响应参数:

参数数据类型示例描述
productIdLong744000000001000产品 ID
productNameString门磁产品名称
onlinePeriodLong1440断线监测周期(分钟)
thingModelList物模型(属性量定义)列表
├─ meteIdString1量 ID
├─ meteNameString门磁状态量名称
├─ unitString单位,无单位时为空串
├─ dataTypeInteger3数据类型:0-字符串,1-整型,2-浮点,3-枚举
├─ meteTypeInteger0量类型:0-采集量,2-控制量,3-配置量,4-阈值量(告警量 1 不返回)
├─ levelInteger1告警等级:1 2 3 4,非告警量为 0
├─ decimalPointInteger2小数点位数:1-4 位
├─ enumValuesList枚举值定义,仅 dataType=3(枚举)时有值,否则为空数组
 ├─ nameString门磁关门枚举显示名称
 └─ valueString0枚举原始值