掌握TeslaMate MQTT主题:从车辆监控到智能控制的完整指南
·
掌握TeslaMate MQTT主题:从车辆监控到智能控制的完整指南
MQTT(消息队列遥测传输)是TeslaMate实现车辆状态监控与远程控制的核心通信协议。本文将系统梳理TeslaMate的MQTT主题体系,帮助用户快速定位所需的车辆数据与控制接口,构建个性化的特斯拉车辆管理系统。
MQTT主题基础结构
TeslaMate采用层级化主题设计,核心命名空间为teslamate,基础主题格式遵循:
teslamate/<namespace>/cars/<car_id>/<property>
- namespace:默认使用车辆VIN(车辆识别码)
- car_id:数据库中的车辆唯一标识符
- property:具体监控参数或控制指令
主题定义逻辑可参考源码实现:lib/teslamate/mqtt/pubsub/vehicle_subscriber.ex
核心状态监控主题
车辆基本信息
| 主题 | 数据类型 | 说明 |
|---|---|---|
display_name |
字符串 | 车辆名称 |
trim_badging |
字符串 | 车型标识(如"Model 3 Performance") |
exterior_color |
字符串 | 车身颜色 |
odometer |
数值 | 总里程(km) |
电池与充电状态
关键监控主题:
battery_level:当前电量百分比charge_energy_added:本次充电增加电量(kWh)charger_power:充电功率(kW)time_to_full_charge:预计充满时间(分钟)scheduled_charging_start_time:计划充电开始时间
充电状态数据来源于车辆实时推送,相关处理逻辑见:lib/teslamate/mqtt/pubsub/vehicle_subscriber.ex
位置与地理围栏
| 主题 | 数据类型 | 说明 |
|---|---|---|
latitude/longitude |
数值 | 经纬度坐标 |
location |
JSON | 包含经纬度的地理位置对象 |
geofence |
字符串 | 当前所在地理围栏名称 |
地理围栏判断逻辑实现于:lib/teslamate/mqtt/pubsub/vehicle_subscriber.ex
驾驶状态
核心驾驶主题:
speed:当前速度(km/h)shift_state:挡位状态(P/R/N/D)power:实时功率(kW,正值为耗电,负值为能量回收)ideal_battery_range_km:理想续航里程
高级控制指令主题
TeslaMate支持通过MQTT发布控制指令,实现远程车辆操作:
充电控制
| 主题 | 指令值 | 说明 |
|---|---|---|
command/charge_start |
true |
开始充电 |
command/charge_stop |
true |
停止充电 |
command/set_charge_limit |
百分比数值 | 设置充电限制(如"80") |
空调控制
command/climate_on:开启空调(支持参数:temp=<温度>&fan=<风速>)command/climate_off:关闭空调
安全控制
command/lock:车辆上锁command/unlock:车辆解锁command/sentry_mode:切换哨兵模式(on/off)
控制指令处理模块:lib/teslamate/mqtt/handler.ex
主题订阅示例
使用MQTTX客户端订阅车辆状态的示例配置:
# 订阅特定车辆所有状态
mqttx sub -t "teslamate/+/cars/1/#" -h localhost -p 1883
# 仅订阅电池相关状态
mqttx sub -t "teslamate/+/cars/1/battery_#" -h localhost -p 1883
数据持久化与历史分析
TeslaMate采集的MQTT数据会同时存储至PostgreSQL数据库,可通过Grafana面板进行历史数据分析:
主要数据存储模块:lib/teslamate/log/
常见问题排查
-
主题无数据输出
- 检查车辆是否在线:
teslamate/+/cars/<car_id>/state - 确认MQTT连接状态:lib/teslamate/mqtt/publisher.ex
- 检查车辆是否在线:
-
控制指令失效
- 验证指令格式:确保使用正确的JSON格式
- 检查车辆状态:部分指令需在特定状态下执行(如充电指令需车辆已插枪)
-
数据延迟
- 默认数据更新间隔为10秒,可通过修改配置调整:config/runtime.exs
通过本文档提供的主题列表与实现参考,用户可快速构建基于MQTT的特斯拉车辆监控与自动化系统,实现从简单状态查看 to 复杂场景联动的全流程应用开发。
更多推荐



所有评论(0)