bacnet-http-api.md 4.1 KB

BACnet HTTP 接口说明

本服务通过 HTTP 接口连接 BACnet/IP 设备。BACnet 功能使用 BAC0 实现,当前只提供点位读取和点位搜索。

通用响应

所有接口成功或失败均返回 HTTP 200,业务结果由响应体 code 判断。

{
  "code": 0,
  "msg": "success",
  "data": {}
}
字段 类型 说明
code integer 0 表示成功,1 表示失败。
msg string 成功时为 success,失败时为错误信息。
data object 接口数据。

设备字段

以下字段用于 /bacnet/read_points/bacnet/search_points

字段 类型 必填 默认值 说明
ip string BACnet/IP 设备地址。
bacnet_device_id integer BACnet 设备对象实例号,范围 0..4194303
port integer 47808 BACnet/IP UDP 端口。

响应中的设备信息固定包含:

{
  "device_type": "BACnet/IP",
  "ip": "192.168.75.240",
  "port": 47808,
  "bacnet_device_id": 12345
}

对象类型

请求中的 object_type 支持常见写法,例如 AnalogInputanalogInputanalog-input。响应统一返回 AnalogInput 这类格式。

常见点位对象类型:

响应值 BACnet 含义
AnalogInput 模拟输入
AnalogOutput 模拟输出
AnalogValue 模拟值
BinaryInput 二进制输入
BinaryOutput 二进制输出
BinaryValue 二进制值
MultiStateInput 多状态输入
MultiStateOutput 多状态输出
MultiStateValue 多状态值

接口一:读取点位

URL

POST /api/dc-gateway/bacnet/read_points

请求体

read_points 固定读取每个对象的 present-value

{
  "ip": "192.168.75.240",
  "bacnet_device_id": 12345,
  "port": 47808,
  "points": [
    {
      "object_type": "AnalogInput",
      "object_id": 1
    }
  ]
}
字段 类型 必填 说明
points object[] 至少 1 个点位。
points[].object_type string BACnet 对象类型。
points[].object_id integer BACnet 对象实例号,范围 0..4194303

成功返回

{
  "code": 0,
  "msg": "success",
  "data": {
    "device": {
      "device_type": "BACnet/IP",
      "ip": "192.168.75.240",
      "port": 47808,
      "bacnet_device_id": 12345
    },
    "points": [
      {
        "object_type": "AnalogInput",
        "object_id": 1,
        "present_value": 12.3
      }
    ]
  }
}

接口二:搜索点位

URL

POST /api/dc-gateway/bacnet/search_points

请求体

搜索点位只需要设备信息。服务会读取设备对象的 object-list,并过滤常见点位对象类型。

{
  "ip": "192.168.75.240",
  "bacnet_device_id": 12345,
  "port": 47808
}

成功返回

{
  "code": 0,
  "msg": "success",
  "data": {
    "device": {
      "device_type": "BACnet/IP",
      "ip": "192.168.75.240",
      "port": 47808,
      "bacnet_device_id": 12345
    },
    "points": [
      {
        "name": "Zone Temperature",
        "description": "Room temperature",
        "object_type": "AnalogInput",
        "object_id": 1,
        "present_value": 24.5
      }
    ]
  }
}

搜索每个点位时读取以下属性:

返回字段 BACnet 属性
name object-name
description description
present_value present-value

单个点位的 descriptionpresent_value 读取失败时,该字段返回 null,不会中断整个搜索。设备连接或 object-list 读取失败时,接口返回 code=1

测试默认设备

BACnet 集成测试默认设备参数:

字段 默认值
BACNET_DEVICE_IP 192.168.75.240
BACNET_DEVICE_ID 12345
BACNET_PORT 47808

本地 BACnet 客户端绑定地址默认自动推断,可通过以下环境变量覆盖:

字段 默认值
BACNET_LOCAL_IP 自动按到目标设备的路由推断
BACNET_LOCAL_MASK 24
BACNET_LOCAL_PORT 自动选择空闲 UDP 端口