如何把特斯拉接入OpenClaw,让🦞做你的行车小助理

背景

很多tesla车主应该都会部署一个TeslaMate来记录自己的行程/车辆状况/充电等。我也一样,自己部署了teslamate,但是grafana看板太多了,手机上看起来又不友好,所以之前利用周末时间用codebuddy做了一个用于显示teslamate数据的赛博朋克风格的UI。原理就是自己写API去读teslamate底层的数据库,再做一个UI来展示。正好前几天🦞爆火,就想着顺便把这个API包装成SKILL,让AI也能利用接口去获取我们的汽车数据。

🦞效果

🚗 通勤查询 � 路况分析 🗺️ 行程记录

TeslamateCyberUI效果

隐私问题

涉及到的软件全部是自部署的,数据都存在你的本地。注意网络配置,不要暴露到公网。如果需要暴露到公网,一定要设置强密码。
只有大模型提供商可以拿到你的数据,如果介意的话,OpenClaw可以用本地部署的大模型

安装教程

1. 安装Teslamate

这里不在赘述如何安装Teslamate,官方有详细的文档:docs.teslamate.org/ 建议自己弄个docker-compose.yml文件,一键启动,可以参考这个:

注意你需要替换数据库密码和随机字符串

bash 复制代码
vim docker-compose.yml

输入以下内容:

yml 复制代码
services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=随机字符串
      - DATABASE_USER=teslamate
      - DATABASE_PASS=数据库密码
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:17-trixie
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=数据库密码
      - POSTGRES_DB=teslamate
    ports:
      - 5432:5432
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=数据库密码
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
    ports:
      - 3333:3000
    volumes:
      - teslamate-grafana-data:/var/lib/grafana

  mosquitto:
    image: eclipse-mosquitto:2
    restart: always
    command: mosquitto -c /mosquitto-no-auth.conf
    ports:
      - 1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

volumes:
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data:

启动容器

bash 复制代码
docker compose up -d

确认状态

bash 复制代码
$ docker ps | grep teslamate
132ee55a1a77   eclipse-mosquitto:2                           "/docker-entrypoint...."   7 days ago     Up 7 days             0.0.0.0:1883->1883/tcp, [::]:1883->1883/tcp       teslamate-mosquitto-1
789499c9d8af   postgres:17-trixie                            "docker-entrypoint.s..."   5 weeks ago    Up 2 weeks            0.0.0.0:5432->5432/tcp, [::]:5432->5432/tcp       teslamate-database-1
e645dbef0c29   teslamate/grafana:latest                      "/run.sh"                3 months ago   Up 2 weeks            0.0.0.0:3333->3000/tcp, [::]:3333->3000/tcp       teslamate-grafana-1
aef3460bd43c   teslamate/teslamate:latest                    "tini -- /bin/dash /..."   3 months ago   Up 2 weeks            0.0.0.0:4000->4000/tcp, [::]:4000->4000/tcp       teslamate-teslamate-1

如果是这样说明就成功了,参考网上的教程,访问 http://localhost:4000 (或者是你自己的地址+Teslamate端口)。把你的特斯拉token配置上去就可以抓取数据了。他不会主动唤醒车辆,只会在车在线的时候抓数据。所以不会有额外的耗电。

2. 安装TeslaMate CyberUI

2.1 安装后端API

默认会把前端UI也安装 如果是暴露到公网的,一定要设置一个强一点的API Key

bash 复制代码
# 1. 克隆项目
git clone https://github.com/DeaglePC/TeslamateCyberUI.git
cd TeslamateCyberUI

# 2. 创建配置文件(根据实际情况修改)
cp .env.example .env
# 编辑 .env,填入 TeslaMate 数据库连接信息等配置
# vi .env

# 3. 启动服务
docker compose up -d

# 4. 查看日志
docker compose logs -f

# 5. 访问应用
# http://localhost:8080

2.2 安装SKILL

方法一:复制文件
bash 复制代码
cd TeslamateCyberUI
cp -R skill ~/.openclaw/workspace/skills//tesla-stats
方法二:通过和🦞聊天,让他帮你安装
  1. 帮我安装这个skill,路径在xxx
  2. 告诉他后端地址和API key:
bash 复制代码
TESLA_STATS_BASE_URL⁠ : http://localhost:8899/api/v1⁠
TESLA_STATS_API_KEY⁠ : xxxxx
  1. 重启OpenClaw就好了

3.聊天测试

这个时候就可以和OpenClaw聊天了。如果有什么报错,可以直接跟他交流,跟着他的提示来做。如果一切正常,你会看到他会调用skill,正常返回给你车辆数据。

体验地址:tsl.deaglepc.cn/ 开源地址:github.com/DeaglePC/Te... 对你有帮助的话可以去这里给个star

相关推荐
@atweiwei2 小时前
MySQL vs MongoDB 深度对比(底层存储数据结构与并发控制篇)
数据结构·数据库·后端·sql·mysql·mongodb·个人开发
好学且牛逼的马2 小时前
Spring Boot 核心注解完全手册
java·spring boot·后端
ShoreKiten2 小时前
Flask/ssti --by vulhub
后端·python·flask
San30.2 小时前
手写 Mini Cursor:基于 Node.js 与 LangChain 的开发实战
人工智能·langchain·node.js·agent
小码哥_常2 小时前
Spring Boot3 实战:WebSocket+STOMP+集群+Token认证,实现可靠服务器单向消息推送
后端
liurunlin8882 小时前
Spring Cloud Data Flow 简介
后端·spring·spring cloud
不会写DN2 小时前
Go中的Tcp编程为什么总是能看到handle?
开发语言·网络·后端·tcp/ip·golang
SimonKing2 小时前
被AI编程折磨的苦不堪言:一边喊真香,一边想砸键盘
java·后端·程序员
白衣鸽子2 小时前
Java 异常:异常机制对程序性能的影响
后端