feat: 扩展心跳消息支持电力与空调设备数组字段
新增 Kafka 消息中 electricity[] 和 air_conditioner[] 数组字段支持,用于存储电力与空调设备明细数据。数据库表新增对应数组列并创建 GIN 索引优化查询性能,processor 实现数组字段校验与聚合转换逻辑。 主要变更: - Kafka 消息规范新增 electricity 和 air_conditioner 数组字段定义 - 数据库 heartbeat_events 表新增 14 个数组列并创建 4 个 GIN 索引 - processor 实现数组字段解析、校验及聚合转换逻辑 - 更新相关文档与测试用例,确保端到端功能完整
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
|---|---|---|---|
|
||||
| ts_ms | number/int64 | 1700000000123 | 毫秒级 epoch 时间戳 |
|
||||
| hotel_id | number/int | 12 | 酒店编号(int2 范围内) |
|
||||
| room_id | number/int | 1203 | 房间编号/房间标识(int4) |
|
||||
| room_id | string/number | "1203" | 房间编号/房间标识(服务端会归一化为字符串;落库为 varchar(50)) |
|
||||
| device_id | string | "A1B2C3D4" | 设备唯一 ID(序列号/MAC/自定义编码) |
|
||||
| ip | string | "192.168.1.10:8080" | `IP:PORT` 字符串(落库为 varchar(21)) |
|
||||
| power_state | number/int | 1 | 取电状态(枚举值需统一标准) |
|
||||
@@ -37,6 +37,8 @@
|
||||
| 字段 | 类型 | 示例 | 说明 |
|
||||
|---|---|---|---|
|
||||
| extra | object | {"source":"gw","ver":"1.2.3"} | 扩展字段:电参、空调状态、版本、上报来源等 |
|
||||
| electricity | array<object> | [{"address":"add11","voltage":3.2,...}] | 电力设备数组(按原始顺序拆列落库为数组列) |
|
||||
| air_conditioner | array<object> | [{"address":"ac1","state":1,...}] | 空调设备数组(按原始顺序拆列落库为数组列) |
|
||||
|
||||
## 4. JSON 示例
|
||||
```json
|
||||
@@ -54,6 +56,28 @@
|
||||
"carbon_state": 0,
|
||||
"device_count": 1,
|
||||
"comm_seq": 7,
|
||||
"electricity": [
|
||||
{
|
||||
"address": "add11",
|
||||
"voltage": 3.2,
|
||||
"ampere": 1.1,
|
||||
"power": 704.3,
|
||||
"phase": "A",
|
||||
"energy": 10.5,
|
||||
"sum_energy": 100.5
|
||||
}
|
||||
],
|
||||
"air_conditioner": [
|
||||
{
|
||||
"address": "ac1",
|
||||
"state": 1,
|
||||
"model": 2,
|
||||
"speed": 3,
|
||||
"set_temp": 26,
|
||||
"now_temp": 25,
|
||||
"solenoid_valve": 1
|
||||
}
|
||||
],
|
||||
"extra": {
|
||||
"source": "gw",
|
||||
"ver": "1.2.3",
|
||||
@@ -78,4 +102,7 @@
|
||||
## 6. 与数据库字段的映射
|
||||
服务端落库目标表:`heartbeat.heartbeat_events`(位于既有数据库中,默认 log_platform)
|
||||
- 必填字段:与表字段同名
|
||||
- 弹性字段:写入 `extra`(jsonb)
|
||||
- 扩展数组字段:
|
||||
- electricity[] → elec_address[]、voltage[]、ampere[]、power[]、phase[]、energy[]、sum_energy[]
|
||||
- air_conditioner[] → air_address[]、state[]、model[]、speed[]、set_temp[]、now_temp[]、solenoid_valve[]
|
||||
- 弹性字段:其余未知字段写入 `extra`(jsonb)
|
||||
|
||||
Reference in New Issue
Block a user