本服务通过 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 支持常见写法,例如 AnalogInput、analogInput、analog-input。响应统一返回 AnalogInput 这类格式。
常见点位对象类型:
| 响应值 | BACnet 含义 |
|---|---|
AnalogInput |
模拟输入 |
AnalogOutput |
模拟输出 |
AnalogValue |
模拟值 |
BinaryInput |
二进制输入 |
BinaryOutput |
二进制输出 |
BinaryValue |
二进制值 |
MultiStateInput |
多状态输入 |
MultiStateOutput |
多状态输出 |
MultiStateValue |
多状态值 |
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
}
]
}
}
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 |
单个点位的 description 或 present_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 端口 |