外观
设备类型映射表
平台里同时存在三套「类型」编码,用途各不相同,容易混淆。本页把它们一次说清。
| 编码体系 | 字段名 | 形态 | 用在哪 |
|---|---|---|---|
| ① 设备类型编码 | deviceTypeId | 字符串(如 C001、V001) | 设备列表、历史数据 |
| ② 控制参数类型 ID | deviceTypeId | 数字(如 3、10) | 批量读控制参数 |
| ③ 设备状态类型编号 | deviceTypeNumber | 数字(如 16、19) | 读取控制参数 |
这三套编码不是同一套体系
它们的字段名可能都叫 deviceTypeId,但取值完全不同。 最典型的问题:把 ① 的 C001 直接传给需要 ② 的接口,会读不到任何数据。 对接时请在本地建立「① → ② → ③」的映射关系。
一、设备类型编码(字符串,deviceTypeId)
下表为真实调用 /api/device 采集到的全部取值
其他设备类型的编码请用你自己的账号调 /api/device 采集。
deviceTypeId | 名称 | 说明 |
|---|---|---|
C001 | 日光温室控制器 | 最常见的控制器 |
C003 | 施肥机 | 水肥一体机;因子含 lp / ecfii / phfii |
W001 | 数据采集器 | 气象站类 |
V003 | 虫情监测(FTP) | 通过 FTP 上传图片;同时出现在 TEXT 与 STREAM 结果中 |
V008 | GBS | 国标视频设备;hlsUrl 为 .flv |
V009 | 大华云联 | 大华云平台接入;同时出现在 TEXT 与 STREAM 结果中 |
dataType=TEXT 的结果里不只有控制器
实测 dataType=TEXT 返回的设备里包含 V003(虫情监测)与 V009(大华云联)等视频类设备。 不要把 TEXT 理解成「仅控制器」,详见 设备列表。
二、控制参数类型 ID(数字,deviceTypeId)
用于 批量读控制参数 接口的 deviceTypeId 参数。
deviceTypeId | 名称 |
|---|---|
2 | 左向天窗 |
3 | 内遮阳幕 |
4 | 右向天窗 |
7 | 侧通风窗 |
10 | 风机湿帘 |
11 | 环流风扇 |
12 | 补光灯 |
41 | 内遮阳慕(文档拼写如此,应为「内遮阳幕」) |
146 | 外遮阳幕 |
157 | 内保温幕 |
190 | 1#灌溉计划 |
191 | 2#灌溉计划 |
192 | 3#灌溉计划 |
193 | 4#灌溉计划 |
194 | 5#灌溉计划 |
195 | 6#灌溉计划 |
196 | 7#灌溉计划 |
197 | 8#灌溉计划 |
198 | 9#灌溉计划 |
199 | 10#灌溉计划 |
200 | 11#灌溉计划 |
201 | 12#灌溉计划 |
203 | 1#-3#配方 |
204 | 4#-6#配方 |
205 | 7#-9#配方 |
206 | 10#-12#配方 |
207 | 平台上报 |
211 | 传感器通道 |
212 | 机器参数 |
213 | 传感器合成 |
219 | 废液回收模式 |
表中存在重复与别名
2(左向天窗)与4(右向天窗)是不同方向;3(内遮阳幕)与41(内遮阳慕)名称几乎相同,疑为历史遗留的重复条目;146(外遮阳幕)与157(内保温幕)属不同设备。
使用前请用实际设备逐项核对。
三、设备状态类型编号(数字,deviceTypeNumber)
出现在 读取控制参数 返回体每一项的 deviceTypeNumber 字段。
deviceTypeNumber | 名称 | 来源 |
|---|---|---|
16 | 一级风机 | 接口文档示例 |
17 | 二级风机 | 接口文档示例 |
18 | 三级风机 | 接口文档示例 |
19 | 湿帘 | 接口文档示例 |
37 | 室外屋顶喷淋 | 接口文档示例 |
49 | 灌溉计划灌水 | 接口文档示例 |
完整清单暂未定义
上表是 接口文档返回示例中出现的全部取值。 其他编号请从 /api/device_status 的实际返回中采集, 并与 address 控制地址全量表 对照,建立「名称 → 地址 → 编号」的映射。
四、如何建立本地映射
推荐流程:
text
① 调 GET /api/device?dataType=TEXT
→ 拿到设备的 code(deviceCode)与 deviceTypeId(如 C001)
↓
② 调 GET /api/device_status?deviceCode=xxx
→ 拿到该设备全部控制项的 name / deviceTypeNumber / status
↓
③ 按 deviceTypeNumber 对照第三套表,确定每个控制项属于哪类设备
↓
④ 按本页第二套表,把「设备类型名称」映射到数字 deviceTypeId
↓
⑤ 调 GET /api/set-value/flush?deviceTypeId=<数字>&deviceCode=xxx
→ 一次性读到该类型下全部地址的值1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
映射表建议结构
sql
-- 设备类型映射(把三套编码串起来)
CREATE TABLE iot_device_type_map (
device_type_code VARCHAR(32) NOT NULL, -- ① 字符串编码,如 'C001'
ctrl_type_id INT NOT NULL, -- ② 数字类型 ID,如 10
ctrl_type_name VARCHAR(64) NOT NULL, -- 设备类型名称,如 '风机湿帘'
PRIMARY KEY (device_type_code, ctrl_type_id)
);
-- 控制项映射(名称 → 地址 → 状态编号)
CREATE TABLE iot_ctrl_item_map (
device_code VARCHAR(32) NOT NULL,
item_name VARCHAR(64) NOT NULL, -- 如 '一级风机'
order_no INT NOT NULL DEFAULT 0, -- 同名项的序号
status_type_number INT, -- ③ 如 16
address VARCHAR(16) NOT NULL, -- 控制地址,如 '3112'
PRIMARY KEY (device_code, item_name, order_no)
);1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
映射表要靠现场核对,不要靠猜
三套编码之间没有文档化的推导关系。请用一台真实设备的 /api/device + /api/device_status + /api/set-value/flush 三个接口互相印证, 把结果固化成本地映射表,并写成单元测试。
下一步
- → address 控制地址全量表:地址与位串取值
- → 因子(factor)对照表:传感器因子对照
- → 读取控制参数:
deviceTypeNumber的实际来源