TeslaMate自定义仪表盘:Grafana插件与面板配置

TeslaMate自定义仪表盘:Grafana插件与面板配置

【免费下载链接】teslamate teslamate-org/teslamate: TeslaMate 是一个开源项目,用于收集特斯拉电动汽车的实时数据,并存储在数据库中以便进一步分析和可视化。该项目支持监控车辆状态、行驶里程、充电详情等信息。 【免费下载链接】teslamate 项目地址: https://gitcode.com/gh_mirrors/te/teslamate

作为特斯拉车主,你是否想更直观地监控车辆电池健康、充电效率和行驶数据?TeslaMate结合Grafana提供的自定义仪表盘功能,让你轻松实现数据可视化。本文将详细介绍如何配置Grafana插件、自定义面板,并通过实际案例展示仪表盘的强大功能。

Grafana仪表盘基础

TeslaMate默认提供了丰富的Grafana仪表盘模板,位于grafana/dashboards/目录下,涵盖电池健康、充电统计、行驶记录等核心功能。这些仪表盘通过PostgreSQL数据源连接TeslaMate数据库,实时展示车辆数据。

目录结构

数据源配置

Grafana通过PostgreSQL连接TeslaMate数据库,配置文件位于grafana/datasource.yml。默认参数与Docker Compose中的数据库配置对应:

datasources:
  - name: TeslaMate
    type: postgres
    url: database:5432
    user: teslamate
    password: ${DATABASE_PASS}
    database: teslamate
    sslMode: disable

自定义面板实战

以下以电池健康仪表盘为例,演示如何修改现有面板或创建新面板。

1. 面板结构解析

打开grafana/dashboards/battery-health.json,面板定义包含:

  • 数据源:指定PostgreSQL查询
  • 可视化类型:如 gauge(仪表盘)、graph(折线图)、table(表格)
  • 查询语句:通过SQL从TeslaMate数据库提取数据

例如,电池容量面板的SQL查询:

SELECT 
  CASE WHEN $custom_kwh_new > 0 THEN $custom_kwh_new ELSE ('$aux'::json ->> 'MaxCapacity')::float END as "Usable (new)", 
  ('$aux'::json ->> 'CurrentCapacity')::float as "Usable (now)",
  ('$aux'::json ->> 'CurrentCapacity')::float - CASE WHEN $custom_kwh_new > 0 THEN $custom_kwh_new ELSE ('$aux'::json ->> 'MaxCapacity')::float END as "Difference"

2. 修改现有面板

假设需将电池健康仪表盘的温度单位从摄氏度改为华氏度

  1. 登录Grafana(默认地址http://localhost:3000,初始账号admin/admin
  2. 打开「Battery Health」仪表盘,点击面板标题旁的「编辑」
  3. 在「查询」标签页修改SQL中的温度转换函数:
    -- 原查询
    convert_celsius(outside_temp_avg, '$temp_unit')
    -- 修改为
    convert_celsius(outside_temp_avg, 'F')
    
  4. 在「显示」标签页将单位设置为°F,保存更改

3. 创建新面板

如需添加每日充电次数统计面板:

  1. 点击仪表盘右上角「添加面板」→「添加空面板」
  2. 选择可视化类型为「Stat」,数据源选择「TeslaMate」
  3. 输入SQL查询:
    SELECT COUNT(*) AS "每日充电次数"
    FROM charging_processes
    WHERE car_id = $car_id AND $__timeFilter(start_date)
    GROUP BY date_trunc('day', start_date)
    
  4. 设置别名、单位和阈值颜色,保存到仪表盘

高级配置:MQTT数据集成

TeslaMate通过MQTT(消息队列遥测传输)实时推送车辆数据,可在Grafana中集成第三方系统(如Home Assistant)。相关配置见website/docs/integrations/mqtt.md

MQTT主题示例

TeslaMate推送的关键主题包括:

  • teslamate/cars/$car_id/battery_level(电池电量百分比)
  • teslamate/cars/$car_id/charging_state(充电状态)
  • teslamate/cars/$car_id/est_battery_range_km(预估续航里程)

配置步骤

  1. 在Grafana中安装「MQTT数据源」插件
  2. 配置MQTT broker地址(默认mosquitto:1883,对应Docker Compose中的mosquitto服务)
  3. 创建面板,订阅主题并解析JSON格式数据:
    {
      "battery_level": 88,
      "charging_state": "Charging",
      "est_battery_range_km": 372.5
    }
    

仪表盘优化与分享

性能优化

  • 数据采样:对历史数据使用date_trunc函数降采样,如按小时聚合行驶里程
  • 查询缓存:在Grafana中启用查询结果缓存,减少数据库压力
  • 面板过滤:通过变量(如$car_id$time_range)实现动态数据筛选

备份与分享

  • 备份:通过website/docs/maintenance/backup_restore.md中的方法备份Grafana配置和数据
  • 导出:在仪表盘设置中选择「导出JSON」,分享给其他用户
  • 版本控制:将自定义仪表盘JSON文件提交到Git仓库,便于团队协作

常见问题解决

1. 仪表盘无数据

  • 检查数据库连接:执行docker compose logs grafana查看错误日志
  • 验证数据采集:确认TeslaMate已成功连接车辆并记录数据(访问http://localhost:4000查看车辆状态)

2. 面板显示异常

  • 检查SQL语法:使用Grafana的「查询检查器」调试SQL
  • 清除缓存:Grafana → 「设置」→ 「数据源」→ 「TeslaMate」→ 「清除缓存」

3. 权限管理

总结

通过Grafana的自定义功能,TeslaMate的数据分析能力得到极大扩展。无论是修改现有面板、创建新可视化,还是集成MQTT实时数据,都能帮助车主更深入地理解车辆状态。建议从修改简单面板入手,逐步掌握SQL查询和Grafana的高级特性,最终打造个性化的特斯拉数据中心。

提示:定期备份自定义仪表盘配置,避免升级TeslaMate时丢失更改。更多高级技巧可参考官方文档website/docs/

【免费下载链接】teslamate teslamate-org/teslamate: TeslaMate 是一个开源项目,用于收集特斯拉电动汽车的实时数据,并存储在数据库中以便进一步分析和可视化。该项目支持监控车辆状态、行驶里程、充电详情等信息。 【免费下载链接】teslamate 项目地址: https://gitcode.com/gh_mirrors/te/teslamate

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值