
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
TeslaMateApi 是一个 RESTful API,用于以 JSON 格式获取自托管数据记录器 https://github.com/teslamate-org/teslamate 收集的数据。
您可以将其部署在 Docker 容器中,或下载代码并自行部署到任何服务器。
如果您运行的是 TeslaMate 的简单 Docker 部署,添加以下配置即可。TeslaMateApi 将在本地 8080 端口暴露。
yamlservices: teslamateapi: image: tobiasehlert/teslamateapi:latest restart: always depends_on: - database environment: - ENCRYPTION_KEY=MySuperSecretEncryptionKey - DATABASE_USER=teslamate - DATABASE_PASS=secret - DATABASE_NAME=teslamate - DATABASE_HOST=database - MQTT_HOST=mosquitto - TZ=Europe/Berlin ports: - 8080:8080
如果您在 Docker 中使用带有环境变量文件(.env)的 TeslaMate Traefik 配置,可以将以下部分添加到 docker-compose.yml 文件的 services: 部分:
yamlservices: teslamateapi: image: tobiasehlert/teslamateapi:latest restart: always depends_on: - database environment: - ENCRYPTION_KEY=${TM_ENCRYPTION_KEY} - DATABASE_USER=${TM_DB_USER} - DATABASE_PASS=${TM_DB_PASS} - DATABASE_NAME=${TM_DB_NAME} - DATABASE_HOST=database - MQTT_HOST=mosquitto - TZ=${TM_TZ} labels: - "traefik.enable=true" - "traefik.port=8080" - "traefik.http.middlewares.redirect.redirectscheme.scheme=https" - "traefik.http.middlewares.teslamateapi-auth.basicauth.realm=teslamateapi" - "traefik.http.middlewares.teslamateapi-auth.basicauth.usersfile=/auth/.htpasswd" - "traefik.http.routers.teslamateapi-insecure.rule=Host(`${FQDN_TM}`)" - "traefik.http.routers.teslamateapi-insecure.middlewares=redirect" - "traefik.http.routers.teslamateapi.rule=Host(`${FQDN_TM}`) && (Path(`/api`) || PathPrefix(`/api/`))" - "traefik.http.routers.teslamateapi.entrypoints=websecure" - "traefik.http.routers.teslamateapi.middlewares=teslamateapi-auth" - "traefik.http.routers.teslamateapi.tls.certresolver=tmhttpchallenge"
在这种情况下,TeslaMateApi 可通过 teslamate.example.com/api/ 访问。
基本上,TeslaMateApi 需要与 TeslaMate 相同的数据库、MQTT 和时区环境变量。
必填环境变量(即使某些有默认值)
| 变量 | 类型 | 默认值 |
|---|---|---|
| DATABASE_USER | 字符串 | teslamate |
| DATABASE_PASS | 字符串 | secret |
| DATABASE_NAME | 字符串 | teslamate |
| DATABASE_HOST | 字符串 | database |
| ENCRYPTION_KEY | 字符串 | |
| MQTT_HOST | 字符串 | mosquitto |
| TZ | 字符串 | Europe/Berlin |
可选环境变量
| 变量 | 类型 | 默认值 |
|---|---|---|
| TESLAMATE_SSL | 布尔值 | false |
| TESLAMATE_HOST | 字符串 | teslamate |
| TESLAMATE_PORT | 字符串 | 4000 |
| API_TOKEN | 字符串 | |
| API_TOKEN_DISABLE | 字符串 | false |
| DATABASE_PORT | 整数 | 5432 |
| DATABASE_TIMEOUT | 整数 | 60000 |
| DATABASE_SSL | 字符串 | disable |
| DATABASE_SSL_CA_CERT_FILE | 字符串 | |
| DEBUG_MODE | 布尔值 | false |
| DISABLE_MQTT | 布尔值 | false |
| MQTT_TLS | 布尔值 | false |
| MQTT_PORT | 整数 | 1883(如果TLS为true则为8883) |
| MQTT_USERNAME | 字符串 | |
| MQTT_PASSWORD | 字符串 | |
| MQTT_NAMESPACE | 字符串 | |
| MQTT_CLIENTID | 字符串 | 4字符随机字符串 |
| TESLA_API_HOST | 字符串 | 通过访问令牌获取 |
命令环境变量
| 变量 | 类型 | 默认值 |
|---|---|---|
| ENABLE_COMMANDS | 布尔值 | false |
| COMMANDS_ALL | 布尔值 | false |
| COMMANDS_ALLOWLIST | 字符串 | allow_list.json |
| COMMANDS_LOGGING | 布尔值 | false |
| COMMANDS_WAKE | 布尔值 | false |
| COMMANDS_ALERT | 布尔值 | false |
| COMMANDS_REMOTESTART | 布尔值 | false |
| COMMANDS_HOMELINK | 布尔值 | false |
| COMMANDS_SPEEDLIMIT | 布尔值 | false |
| COMMANDS_VALET | 布尔值 | false |
| COMMANDS_SENTRYMODE | 布尔值 | false |
| COMMANDS_DOORS | 布尔值 | false |
| COMMANDS_TRUNK | 布尔值 | false |
| COMMANDS_WINDOWS | 布尔值 | false |
| COMMANDS_SUNROOF | 布尔值 | false |
| COMMANDS_CHARGING | 布尔值 | false |
| COMMANDS_CLIMATE | 布尔值 | false |
| COMMANDS_MEDIA | 布尔值 | false |
| COMMANDS_SHARING | 布尔值 | false |
| COMMANDS_SOFTWAREUPDATE | 布尔值 | false |
| COMMANDS_UNKNOWN | 布尔值 | false |
更详细的每个端点文档即将推出...
/api/api/v1/api/v1/cars/api/v1/cars/:CarID/api/v1/cars/:CarID/charges
startDate(可选,使用RFC3339规范的UTC格式)endDate(可选,使用RFC3339规范的UTC格式)/api/v1/cars/:CarID/charges/:ChargeID/api/v1/cars/:CarID/command/api/v1/cars/:CarID/command/:Command/api/v1/cars/:CarID/drives
startDate(可选,使用RFC3339规范的UTC格式)endDate(可选,使用RFC3339规范的UTC格式)/api/v1/cars/:CarID/drives/:DriveID/api/v1/cars/:CarID/logging/:Command/api/v1/cars/:CarID/logging/api/v1/cars/:CarID/status/api/v1/cars/:CarID/updates/api/v1/cars/:CarID/wake_up/api/v1/globalsettings/api/healthz/api/ping/api/readyz[!TIP] RFC3339规范的UTC格式示例:
2006-01-02T15:04:05Z或2006-01-02T15:04:05+07:00
如果您想使用命令或日志端点,例如 /api/v1/cars/:CarID/command/:Command、/api/v1/cars/:CarID/wake_up 或 /api/v1/cars/:CarID/logging/:Command,需要在请求中添加认证。
您需要在环境变量文件中自行指定一个令牌(称为 API_TOKEN)。该令牌要求至少32个字符长。
有两种可用的认证方式:
将额外的请求头 Authorization: Bearer <token> 添加到请求中。(推荐选项)
在要访问的端点添加 URI 参数 ?token=<token>。(不推荐选项)
命令默认未启用。
您需要在环境变量中启用它们(设置 ENABLE_COMMANDS=true),并指定要使用的命令。
有3种使用命令的方式:
可以启用特定命令组,例如 COMMANDS_ALERT=true 将启用 警报 命令组。
如果需要启用精细的命令集,可以使用 COMMANDS_ALLOWLIST=/path/to/allow_list.json 指定一个 JSON格式的命令列表 来启用。
最粗略的选项 COMMANDS_ALL=true 将启用所有命令(特定组和允许列表将被忽略)。
COMMANDS_ALL 或任何特定命令组,COMMANDS_ALLOWLIST 将被忽略。可能的命令列表可在 环境变量 下找到。
关于命令中需要提供的字段,请参考 timdorr/tesla-api 文档。
此 API 无法 访问您的 Tesla 账户令牌,我们将保持这一原则!
可访问的数据包括车辆、充电记录、行驶记录、当前状态、更新和全局设置等。
此外,请在容器前的 Web 服务器上应用一些认证措施,以确保您的数据不会未受保护而过度暴露。在上面的示例中,我们使用与 TeslaMate 相同的 .htpasswd 文件。
如果您在容器前应用了一定级别的认证,API_TOKEN_DISABLE=true 将允许无需请求头或 URI 令牌值即可执行命令。但即使如此,始终建议使用 API 密钥。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务