Home Assistant Teslemetry 集成实战:teslemetry.valet_mode 动作为特斯拉车辆远程开启与关闭代客模式

Home Assistant Teslemetry 集成实战:teslemetry.valet_mode 动作为特斯拉车辆远程开启与关闭代客模式 Home Assistant Teslemetry 集成实战teslemetry.valet_mode 动作为特斯拉车辆远程开启与关闭代客模式【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本篇围绕 Home Assistant 文档仓库中的 teslemetry.valet_mode 动作 展开讲解如何在自动化和脚本中通过 YAML 或可视化界面为特斯拉车辆开启/关闭“代客模式”Valet Mode并结合 Teslemetry 集成文档补充该动作的适用前提、参数约束vehicle、enable、pin以及与速度限制、导航请求等动作组合的典型场景。读完之后你可以独立配置一个“到店自动上锁限速、到家自动解除”的完整自动化方案。什么是 Valet Mode以及这个动作解决什么问题Set valet mode动作的作用是切换车辆的代客模式。代客模式被激活后会对车辆做三件事限制车辆的速度与功率代驾或停车员无法将车开快锁住手套箱与前备箱frunk车内私人物品不易被触及隐藏个人数据避免乘客看到你保存在车机里的导航历史、联系人等信息。文档给出的典型用途是把车交给泊车员之前安心交钥匙或者在特定场景下自动启用代客模式——例如车辆抵达餐厅或酒店时自动开启车主本人上车后自动关闭。动作的运行前提Teslemetry 集成teslemetry.valet_mode属于Teslemetry集成域为teslemetry。根据 Teslemetry 集成文档需要注意以下事实前提Teslemetry 是hub类型集成于 Home Assistant 2024.2 版本引入IOT 类别为Cloud Polling支持配置流config flow需要有效的 Teslemetry 订阅账户并通过 Tesla App 在车辆中安装虚拟钥匙virtual key——它是车队遥测实时流live streaming与签名车辆命令的前提车辆命令通过云端下发因此动作的执行依赖 Teslemetry 与 Tesla/车辆之间的连通性。从集成文档的“Vehicles”实体表可以看到集成除了提供本动作外还暴露了一个名为Valet mode的 Switch 实体默认启用数据来源为 Streaming/Polling 双通道见 teslemetry.markdown。也就是说代客模式的当前状态可以直接从该开关实体的状态中读取而teslemetry.valet_mode动作则负责主动改变该状态——在自动化中通常两者配合使用用开关实体做条件判断用动作做状态切换。在用户界面可视化中配置动作Home Assistant 支持不写 YAML 即可配置该动作步骤如下完整继承自 动作文档打开Settings Automations scenes打开已有的自动化或脚本或选择Create automationCreate new automation如果是新建自动化先在When部分添加触发条件。脚本不需要触发器——它们由其他实体或动作调用时才运行在Then do部分选择Add action在搜索框中搜索并选择Teslemetry: Set valet mode选择要控制的Vehicle车辆打开Enable开关即开启代客模式关闭即解除输入 4 位PIN选择Save。界面选项说明选项说明Vehicle要控制的车辆从 Teslemetry 账户关联的车辆中选择Enable打开或关闭代客模式PIN用于启用或禁用代客模式的 4 位数字码界面方式的优点在于车辆选择器和字段校验由前端完成无需手写 YAML适合首次接入时快速验证动作是否可用。在 YAML 中调用 teslemetry.valet_mode在自动化或脚本的 YAML 中该动作的完整动作名action target为teslemetry.valet_mode。文档给出的基础示例action: | action: teslemetry.valet_mode data: device_id: 0d462c0c4c0b064b1a91cdbd1ffcbd31 enable: true pin: 1234这条调用会激活代客模式并用 PIN1234保护该设置。将enable改为false即可关闭代客模式。YAML 参数完整说明参数类型必填说明device_idstring是要控制的车辆 ID。对应 Teslemetry 集成为该车创建的设备 ID可在设备注册表Settings Devices services中查看enableboolean是true开启代客模式false关闭pininteger是4 位数字码取值范围1000 到 9999用于启用或禁用代客模式三个参数均为必填缺少任一项都会导致动作调用失败。PIN 不是“可选的安全加强项”而是 Tesla 车机侧开启/关闭代客模式的既有机制在 API 层的体现因此每次调用都必须携带。参数细节与易错点PIN 必须是 1000–9999 的整数。写成字符串1234虽然多数场景可被转换但规范写法是整数小于 1000 的 3 位数如999会因不满足 4 位约束而被拒绝device_id是设备 ID 而非实体 ID二者格式不同。文档示例中的0d462c0c4c0b064b1a91cdbd1ffcbd31展示了典型的设备 ID 形态32 位十六进制串请以自己实例中的实际值为准从 集成文档的已知限制 可以确认两点工程约束命令会唤醒休眠车辆——集成不会主动唤醒车辆去取数据但下发锁定、解锁、空调等命令代客模式命令同理属于车辆命令会唤醒车辆激进自动化可能触发速率限制——Teslemetry 负责与 Tesla 侧的限流协商但如果自动化过于频繁地下发命令可能遇到临时性 API 限额。因此“到达即开、离开即关”的双向自动化应配合条件判断如先检查 Valet mode 开关实体的当前状态避免重复下发。实战到店自动开启、到家自动关闭的自动化文档建议的使用方式是“在特定情况下自动启用代客模式例如车到餐厅或酒店时开启返回时关闭”。下面给出一个符合该思路的 YAML 骨架实体 ID 为占位示例请替换为你实例中的真实值automation: - alias: Arrived at hotel/restaurant: enable valet mode trigger: - platform: zone zone: zone.hotel # 泊车员取车的常去地点 entity_id: device_tracker.my_tesla condition: # 仅在代客模式尚未开启时执行避免重复下发命令 - condition: state entity_id: switch.my_tesla_valet_mode # Teslemetry 的 Valet mode 开关实体 state: off action: - action: teslemetry.valet_mode target: device_id: 0d462c0c4c0b064b1a91cdbd1ffcbd31 data: enable: true pin: 1234 - alias: Back home: disable valet mode trigger: - platform: zone zone: zone.home entity_id: device_tracker.my_tesla condition: - condition: state entity_id: switch.my_tesla_valet_mode state: on action: - action: teslemetry.valet_mode target: device_id: 0d462c0c4c0b064b1a91cdbd1ffcbd31 data: enable: false pin: 1234几点说明位置判断使用zone触发器配合 Teslemetry 暴露的device_tracker实体Location 实体默认启用。从源码结构看集成文档的实体表中还有Located at home / Located at work / Located at favorite三个默认启用的 binary_sensor如果你的泊车地点被设为收藏点直接用这些传感器做触发条件会更精确两个自动化互为镜像分别负责“交给别人”和“接回自己”两个方向的切换condition中的状态检查既防止重复命令也能缓解 集成文档提到的速率限制问题PIN 值在两个方向上保持一致车机侧代客模式的 PIN 是同一个。如何先验证动作本身在把它写进正式自动化之前文档推荐的验证路径是打开Settings Tools Actions开发者动作页面搜索teslemetry.valet_mode填入device_id、enable、pin后选择Perform action——不写一行 YAML 即可在真实车辆上观察动作效果见 try_it 说明。确认车辆进入/退出代客模式后再将同一组参数搬进自动化。如果动作调用无响应集成文档的故障排查章节列出的两个高频原因可供排查认证令牌失效Teslemetry 令牌过期后Home Assistant 会通过配置流提示重新认证超时Home Assistant、Teslemetry、Tesla 或车辆任一环节的连接问题例如车辆处于信号差的区域都会造成超时通常是暂时性的。相关动作该动作在文档中声明了以下相关动作见 源文档 front matter 的related_actions字段可组合成更完整的“交车前安全准备”自动化Set speed limitteslemetry.speed_limit开启/关闭 Speed Limit Mode 限速同样需要device_id、enable、pin三个参数适合给临时借用车辆的老司机限速Navigate to coordinatesteslemetry.navigation_gps_request向车机导航系统下发经纬度目的地例如把日历中下一个会议的地址推送到车上。另外Teslemetry 集成的动作族还包括充电计划相关动作如 teslemetry.set_scheduled_charging、teslemetry.set_scheduled_departure可与代客模式自动化共享同一套车辆device_id。小结teslemetry.valet_mode是 Teslemetry 集成中一个“参数极简但安全语义很强”的车辆命令动作三个必填参数device_id、enable、pin覆盖了从对象、意图到车机授权的全部要素。掌握它的正确用法后你可以把“交给泊车员”这一人工决策升级为基于位置触发的自动化同时通过开关实体条件检查与 PIN 约束保证命令不会被错误、重复地下发。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考