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

358 lines
9.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 图表显示设备名称配置指南
## 问题描述
在 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