thingsboard/summary/27-图表显示设备名称配置指南.md

358 lines
9.5 KiB
Markdown
Raw Normal View History

2026-01-19 11:50:37 +08:00
# 图表显示设备名称配置指南
## 问题描述
在 ThingsBoard 的时间序列图表中,图表标签只显示通用的 "Temperature" 等名称,无法区分不同设备的数据。
## 解决方案
在配置图表的数据源时,可以使用变量来自定义标签,显示设备名称。
### 配置步骤
#### 1. 进入图表配置
1. 在 Dashboard 中,点击图表组件进入编辑模式
2. 右侧会显示配置面板
#### 2. 配置数据键标签(在"数据"标签页)
1. 点击配置面板顶部的 **"数据"** 标签页
2. 找到 **"数据键"**Data Keys部分
3. 对于每个数据键,点击展开或编辑
4.**"标签"**Label字段中使用以下变量格式
**可用的变量:**
- `${entityName}` - 设备名称(推荐)
- `${deviceName}` - 设备名称(与 entityName 相同)
- `${entityLabel}` - 设备标签(如果有设置)
- `${dsName}` - 数据源名称
- `${aliasName}` - 别名名称
**示例配置:**
```
${entityName} - 温度
```
或者:
```
${entityName}
```
或者组合使用:
```
${entityName} (${entityLabel})
```
#### 3. 具体操作示例
假设你有 4 个设备,每个设备都发送 `airport.temperature` 数据:
1. **在"数据"标签页中:**
- 找到数据键配置区域
- 对于 `airport.temperature` 这个数据键
- 将标签从 `Temperature` 改为:`${entityName} - 温度`
2. **如果使用 Entity Alias**
- 如果使用了 Entity Alias如 "所有设备"
- 标签会显示为:`设备名称 - 温度`
- 例如:`7CTDM7H00B5EM1 - 温度`
#### 4. 图例显示
配置后图表的图例Legend会显示
- `7CTDM7H00B5EM1 - 温度`
- `7CTXM9Q00B02H2 - 温度`
- `7CTXN5K00B0AXM - 温度`
- `7CTXM9500B01LA - 温度`
这样就能清楚地区分不同设备的数据了。
## 详细配置说明
### 数据键标签格式
**数据** 标签页 → **数据键****标签** 字段中:
**格式1仅设备名称**
```
${entityName}
```
**格式2设备名称 + 描述**
```
${entityName} - 温度
```
**格式3设备标签如果有**
```
${entityLabel}
```
**格式4数据源名称**
```
${dsName}
```
**格式5组合使用**
```
${entityName} (${entityLabel})
```
### 变量说明
| 变量 | 说明 | 示例值 |
|------|------|--------|
| `${entityName}` | 设备名称 | `7CTDM7H00B5EM1` |
| `${deviceName}` | 设备名称(同 entityName | `7CTDM7H00B5EM1` |
| `${entityLabel}` | 设备标签(如果设置了) | `设备A` |
| `${dsName}` | 数据源名称 | `设备数据源` |
| `${aliasName}` | Entity Alias 名称 | `所有无人机设备` |
### 多数据源场景
如果图表中有多个数据源(多个设备),每个数据源的数据键都会使用相同的标签格式,但 `${entityName}` 会替换为对应设备的名称。
**示例:**
- 设备1 `7CTDM7H00B5EM1` 的标签:`7CTDM7H00B5EM1 - 温度`
- 设备2 `7CTXM9Q00B02H2` 的标签:`7CTXM9Q00B02H2 - 温度`
## 配置位置图示
```
配置面板
├── 数据 (Data) ← 在这里配置
│ ├── 数据源 (Datasources)
│ └── 数据键 (Data Keys)
│ └── 标签 (Label): ${entityName} - 温度
├── 外观 (Appearance)
├── 卡片 (Card)
├── 动作 (Actions)
└── 布局 (Layout)
```
## 验证配置
配置完成后:
1. **查看图例:**
- 图表底部的图例应该显示设备名称
- 例如:`7CTDM7H00B5EM1 - 温度`
2. **查看悬停提示:**
- 鼠标悬停在图表线条上时
- 提示框应该显示设备名称
3. **查看汇总表:**
- 如果图表上方有汇总表
- 表格中的行标题应该显示设备名称
## 常见问题
### Q1: 配置后仍然显示 "Temperature"
**原因:**
- 可能没有保存配置
- 或者变量格式不正确
**解决:**
1. 确保变量格式正确:`${entityName}` 而不是 `{entityName}``$entityName`
2. 点击 **"应用"** 按钮保存配置
3. 刷新页面查看效果
### Q2: 所有设备都显示相同的名称
**原因:**
- 可能使用了 Entity Alias但没有正确配置多设备
**解决:**
1. 检查数据源配置
2. 确保 Entity Alias 选择了多个设备
3. 或者为每个设备单独配置数据源
### Q3: 变量显示为文本而不是设备名称
**原因:**
- 变量格式错误
- 或者数据源配置不正确
**解决:**
1. 检查变量格式:使用 `${entityName}` 而不是 `${entityName}`(注意大括号)
2. 确保数据源已正确关联到设备
## 高级配置
### 使用设备标签代替设备名称
如果设备设置了标签Label可以使用
```
${entityLabel} - 温度
```
这样会显示更友好的名称而不是设备ID。
### 组合多个变量
```
${entityName} (${entityLabel}) - 温度
```
显示效果:`7CTDM7H00B5EM1 (设备A) - 温度`
## Y 轴显示实际数值配置
### 问题描述
如果 Y 轴显示的是比例尺(如 0-100而不是实际数值如 18、19、20、21需要配置 Y 轴设置。
### 配置步骤
#### 1. 进入 Y 轴配置
1. 在图表配置面板中,点击 **"外观"**Appearance标签页
2. 找到 **"Y 轴"**Y Axes部分
3. 展开 Y 轴配置(通常是 "default"
#### 2. 配置 Y 轴标签显示
在 Y 轴配置中,确保以下设置:
1. **显示刻度标签**Show Tick Labels**开启** ✓
- 这个选项必须开启,否则不会显示数值
2. **小数位数**Decimals设置合适的数值
- 例如:`0`(显示整数)或 `1`(显示一位小数)
- 对于温度数据,通常设置为 `0``1`
3. **单位**Units可选
- 例如:`°C` 或 `℃`(如果显示温度)
#### 3. 配置位置
```
配置面板
├── 外观 (Appearance) ← 在这里配置
│ └── Y 轴 (Y Axes)
│ └── default
│ ├── 显示刻度标签 (Show Tick Labels): ✓ 开启
│ ├── 小数位数 (Decimals): 0 或 1
│ └── 单位 (Units): °C (可选)
```
#### 4. 具体操作
1. **打开 Y 轴配置:**
- 点击 "外观" 标签页
- 找到 "Y 轴" 部分
- 点击展开 "default" Y 轴配置
2. **启用标签显示:**
- 找到 "显示刻度标签"Show Tick Labels开关
- 确保它是 **开启** 状态(绿色/蓝色)
3. **设置小数位数:**
- 找到 "小数位数"Decimals字段
- 设置为 `0`(整数)或 `1`(一位小数)
4. **重要 - 清空最小值/最大值(让 Y 轴自动调整):**
- 找到 "最小值"Min字段
- **清空该字段**(留空,不要填 0 或其他值)
- 找到 "最大值"Max字段
- **清空该字段**(留空,不要填 100 或其他值)
- 这样 Y 轴会根据实际数据自动调整范围,而不是固定显示 0-100
5. **可选 - 设置单位:**
- 找到 "单位"Units字段
- 输入 `°C``℃`(如果需要显示温度单位)
6. **保存配置:**
- 点击 **"应用"** 按钮保存
### Y 轴配置说明
| 配置项 | 说明 | 推荐值 |
|--------|------|--------|
| **显示刻度标签** | 控制是否在 Y 轴上显示数值 | 开启 ✓ |
| **小数位数** | 控制数值显示的小数位数 | 0整数或 1一位小数 |
| **单位** | 显示在 Y 轴标签后的单位 | `°C`(温度)或留空 |
| **最小值** | Y 轴的最小值(可选) | 留空(自动) |
| **最大值** | Y 轴的最大值(可选) | 留空(自动) |
### 验证配置
配置完成后:
1. **查看 Y 轴:**
- Y 轴左侧应该显示实际数值
- 例如:`10`, `15`, `20`, `25`, `30`
- 而不是比例尺或百分比
2. **查看数值格式:**
- 如果设置了单位,应该显示:`10°C`, `15°C`, `20°C`
- 如果设置了小数位数,应该显示对应的小数位
### 常见问题
#### Q1: Y 轴仍然显示比例尺
**原因:**
- "显示刻度标签" 选项未开启
- 或者小数位数设置不正确
**解决:**
1. 确保 "显示刻度标签" 开关是 **开启** 状态
2. 检查小数位数设置(建议设置为 `0``1`
3. 点击 "应用" 保存配置
4. 刷新页面查看效果
#### Q2: Y 轴数值显示不完整
**原因:**
- 可能数值太大或太小,需要设置合适的范围
**解决:**
1. 在 Y 轴配置中设置 "最小值"Min和 "最大值"Max
2. 或者保持为空,让系统自动计算
#### Q4: Y 轴范围与汇总表数据不一致
**问题描述:**
- 汇总表显示最大值、最小值、平均值都是 20 左右
- 但 Y 轴显示到 100图表刻度范围过大
**原因:**
- Y 轴的 "最大值" 被固定设置为 100
- 应该设置为自动,让系统根据实际数据范围计算
**解决:**
1. 在 Y 轴配置中找到 "最大值"Max字段
2. **清空**该字段(留空),让系统自动计算
3. 同样,将 "最小值"Min字段也**清空**(留空)
4. 点击 "应用" 保存配置
**配置后效果:**
- Y 轴会自动根据数据的实际范围调整
- 如果数据在 20-30°C 之间Y 轴会显示类似 15-35°C 的范围(包含一些边距)
- 这样图表会更清晰地显示数据变化
#### Q3: Y 轴数值格式不正确
**原因:**
- 小数位数设置不合适
- 或者单位设置不正确
**解决:**
1. 调整 "小数位数" 设置
2. 检查 "单位" 设置是否正确
3. 对于温度数据,建议小数位数为 `0``1`
## 参考
- ThingsBoard Widget 配置文档https://thingsboard.io/docs/user-guide/ui/widgets/
- 数据源变量https://thingsboard.io/docs/user-guide/ui/widgets/#datasource-variables