EVCC 自动化使用手册¶
最后更新:
面向希望使用“触发器 → 条件 → 动作”完成车辆联动的 EVCC 用户。
本手册只介绍可视化自动化。需要复杂循环、状态机或自定义网络逻辑时,请改用 EVCC Lua 脚本手册;公式、变量与函数的完整语法见 EVCC 公式与变量系统参考手册。
1. 自动化适合做什么¶
自动化适合描述清晰的“什么时候,满足什么条件,做什么事情”。例如:
- 日落前自动切换 HUD 夜间显示;
- 车速超过阈值时语音提醒;
- 手机连接车机蓝牙后打开导航;
- 米家蓝牙旋钮调节亮度或音量;
- 音乐开始播放且 BPM 达到阈值时切换氛围效果;
- 车辆属性变化后延时检查另一个属性,再决定是否执行动作;
- 规则执行到一半时,如果开门、挂挡或熄火,立即中断后续动作。
简单联动优先使用自动化。遇到以下情况再考虑 Lua:
- 需要循环、数组、复杂字符串处理;
- 需要保存较复杂的运行状态;
- 需要同时维护多个计时器或状态机;
- 需要自定义 HTTP 请求、JSON 处理或复杂错误恢复。
2. 开始前的准备¶
- 先完成新手引导,并确认 EVCC 已激活。
- 打开“自动化”页面,确认自动化引擎处于运行状态。
- 需要车辆属性时,先在“属性”页或规则编辑器的“监视属性变化”中确认属性和值域。
- 需要长期后台运行时,在设置中开启自动化自启,并按当前车型完成系统白名单配置。
- 在创建真实控车规则前,先用通知、Toast 或 TTS 做无副作用测试。
规则编辑器的触发器、条件、动作及中断器配置中,“监听属性变化…”旁提供“已收藏属性”:直接汇总“属性”页所有已连接且可见来源的收藏项,支持切换来源和搜索,无需再次操作车辆等待变化。选中后的添加方式与监听列表相同,并保留来源、通道和区域;写入动作只列出可写的收藏属性。控制台组件及高级开关的属性配置也提供同样的快捷入口。
不清楚属性含义时不要直接写入。属性名称和社区备注只能作为线索,最终应以当前车辆的实际测试为准。
3. 五分钟创建第一条规则¶
下面用“每天 08:00 播报提醒”作为安全示例:
- 打开“自动化”页面,点击“新建规则”。
- 输入规则名称,例如“早间提醒”。
- 添加触发器,选择“定时”,时间填写
08:00。 - 暂时不添加条件。
- 添加动作,选择“TTS 语音播报”,填写提醒内容。
- 保存规则,确认规则开关已打开。
- 点击规则上的“手动执行”验证播报是否正常。
- 查看执行日志,确认动作成功。
手动执行主要用于验证动作链,不代表触发器和条件一定配置正确。正式启用后仍应等待一次真实触发,并再次检查执行日志。
4. 一条规则的组成¶
一条规则由以下部分组成:
4.1 触发器¶
触发器决定规则何时开始。多个触发器之间是 OR 关系,任意一个命中都会进入条件判断。
| 类型 | 常见用途 | 配置重点 |
|---|---|---|
| 属性变化 | 灯光、档位、充电状态变化 | 选择正确数据源、属性 ID 和区域 |
| 属性等于/大于/小于/区间 | 超速、低电量、进入某状态 | 目标值、边界触发、保持时间 |
| 属性双击变化 | 连续拨杆、短时间多次按键 | 最大间隔和目标次数 |
| 固定间隔 | 周期检查或周期刷新 | 间隔不要过短 |
| 指定时间 | 每天固定时间执行 | 时间和星期 |
| 日出/日落 | 灯光、显示模式联动 | 提前或延后分钟数 |
| 开机/屏幕状态 | 启动应用、恢复服务 | 建议先延时等待系统稳定 |
| 应用前台/后台 | 音乐、地图或视频应用联动 | 选择正确包名 |
| 蓝牙状态/设备连接 | 上车场景、手机连接 | 确认目标设备 |
| BLE 按键/旋钮 | 米家按钮、旋钮控制 | MAC、BindKey、按键与点击方式 |
| 方控按键 | 单击、双击、长按联动 | 按键码和多击间隔 |
| Logcat 关键词 | 从日志中发现事件并提取变量 | 正则表达式和防抖 |
| 广播接收 | 接收其他 App 定向发送的事件 | 完整 Action;发送方需定向到 EVCC |
| 地理围栏 | 到家、离家、到达停车场 | 中心经纬度、半径、滞回和冷却 |
| 变量比较/变化 | 跨规则传值、音乐状态联动 | 变量名、比较方式和目标值 |
| 手动触发 | 控制台按钮、悬浮窗或人工执行 | 不会自行触发 |
4.2 保持时间、冷却时间和防抖¶
这三个概念作用不同:
- 保持时间:触发器满足后必须持续一段时间才触发,适合避免瞬时抖动。
- 冷却时间:规则执行后的一段时间内不再次执行,适合避免反复提醒或频繁写入。
- 防抖:短时间内多次相同事件合并为一次,常用于属性变化和日志触发。
建议从较保守的值开始:
- 提醒类规则冷却 30~300 秒;
- 写入车辆属性的规则至少保留数秒冷却;
- 只用于界面刷新的规则也不要毫秒级高频触发。
4.3 条件¶
条件用于在触发后做额外判断。多个条件可选择:
- AND:全部满足才执行;
- OR:满足任意一个就执行;
- 取反:把单个条件的判断结果反转。
常见条件包括属性比较、属性前值、时间范围、前台应用和变量比较。
“条件判定延迟”用于处理两个属性几乎同时变化、但第二个属性稍晚到达的场景。例如开门状态先变化,档位状态晚 100ms 到达,可把条件判定延迟设为 100~300ms。它发生在动作开始前,与动作中的“延迟等待”不是一回事。
4.4 动作¶
多个动作会从上到下依次执行。常见动作包括:
| 分类 | 动作示例 |
|---|---|
| 车辆与系统 | 设置属性、修改设置、设置系统属性、热点控制 |
| 应用 | 启动、关闭、退到后台、小窗打开、投放到指定屏幕 |
| 媒体 | 播放、暂停、切歌、设置音量、播放声音、TTS |
| EVCC 功能 | 操作服务卡片、触发其他自动化、MIBO 联动动作、灯语动作 |
| 信息提示 | Toast、系统通知、远程消息 |
| 数据 | 设置变量、发送广播、HTTP/Webhook、BLE 广播 |
| 流程控制 | 延迟等待、条件中断、停止规则 |
动作中的值、文本和延迟可以引用变量或公式。涉及写属性、Shell、应用数据和系统设置的动作,应先单独手动测试。
在“EVCC 功能”中选择“诊断日志 → 清理日志文件”,可以清理当前 Android 用户保存的 EVCC 历史系统诊断 ZIP。E245 还会清理指定原厂诊断目录里的旧日志,但只选择对应采集服务已停止的目录;动作本身不会停止服务。需要支持此动作的客户端和 root,建议只绑定手动触发。
该动作不扫描全盘、不读取或压缩日志内容,单次最多遍历 20000 项、运行 5 秒;保留最近 10 分钟的文件、配置、未确认的原始转储和 EVCC 实时日志。EVCC 正在采集或上传系统诊断时暂不清理。完成后 Toast 显示“已清理 X.XXG 文件”,按成功删除文件的大小合计,G 为 1024³ 字节;达到上限或部分失败时会额外提示,可再次手动执行。删除不可恢复。
MIBO 联动动作可直接开启或关闭联动总开关。关闭会断开当前 GATT 连接并停止后续重连;开启会按已保存配置恢复连接,适合用手动规则或安全条件快速停用联动。
**灯语动作(L946)**提供素材、直接文字、预设效果、停止、歌词跟随启停和车速随动启停,动作选择器仅在系统机型匹配 L946 时显示此项。其他车型隐藏该入口;已有规则数据仍保留,执行时明确提示车型不支持,不连接灯语服务。先在服务页开启灯语总开关;素材选择器使用控制台的自定义与官方库。重命名不会改变引用,删除后提示缺失,不能自动选另一条代替。
选择文字时直接填写内容,可引用变量或公式,默认前灯,支持静态或滚动;不需要先制作视频。预设效果使用可生成的本地素材。歌词跟随读取已有音乐会话的歌词;车速随动填写已有可用的属性源、属性引用及 下限,上限,素材 ID 区间表,属性引用作为订阅绑定保留,不能在执行时把它替换成当时的车速数值。上下限和素材 ID 可使用变量或公式,在启用动作执行时求值。持续跟随不能等待播放完成。
前后灯各自保留任务、参数、进度及所有者,单侧播放或停止不会清空另一侧逻辑任务。手动/自动化任务临时覆盖该侧跟随,正常完成后恢复;显式停止会关闭所选侧跟随。官方项没有可组合帧资源,仍按整体接口和原车参数调用。原车实际提交与停止是整体操作,不承诺组合交接期间另一侧物理灯效无间隙。
主控制台的按钮组件和悬浮窗按钮也可直接选择“灯语”动作,使用同一份表单、素材引用和参数,并交给自动化动作执行链处理。无需另建一条规则再通过按钮触发;这类动作不用于连续滑块。开启灯语总开关后还可在主控制台添加“灯语实时预览”组件,查看当前 EVCC 播放的前后灯阵本地时间轴示意。
自定义灯语的速度、亮度、次数、位置和静态图时长支持固定值、现有变量和公式,例如速度填写 $light_speed,亮度填写 {40+20}。参数留空时使用素材保存的默认值;执行时只求值一次并形成这次播放的配置,不修改素材默认配置。可通过“选择播放方式”设置指定次数或无限循环(次数 0);原有规则和次数公式仍兼容。有限次数优先合成一次播放,较长任务与无限循环复用有上限的资源批次并提前续播,策略与控制台相同,不会为每次循环重复转换或上传。原车提前结束、拒绝或续播超时会记为失败,不静默退回完成后重启的循环。位置支持 BOTH、FRONT、REAR,也可以通过变量提供。官方项按原车参数播放,部分项会打开原车灯语界面;不支持的调整或停止操作会返回失败。
默认在请求处理后继续下一动作,界面“请求已提交”仍需等待原车播放回调确认。勾选“等待播放完成”则在整个有限任务完成后继续,分批任务还需原车确认最终停止;最后一批不足完整批次时,按剩余名义周期请求停止,不重新上传或覆盖播放文件。计时和原车停止延迟可能使末批多显示几帧,控制台次数与剩余时长只作为应用估计,不是硬件计数。无限循环和没有可靠完成回调的官方项不能等待。等待期间规则取消时,只取消仍由该次动作持有的播放,不停止其他新任务。灯语动作由 EVCC 应用托管,不使用 RootService 独立托管,也不要求 root UID 0。EVCC 不为灯语新增 P 挡、车速为零或原车总开关前置条件。新续播节拍与真实灯效衔接仍待实车验收。
5. 条件分支¶
条件分支适合同一个触发器对应多种结果。例如根据电量分别提醒“正常、偏低、危险”。
5.1 两种判断模式¶
- IF ELSE IF:从上到下判断,只执行第一个命中的分支。
- IF IF:从上到下判断,所有命中的分支都会依次执行。
5.2 主动作的两种位置¶
- 兜底模式:只有没有任何分支命中时,才执行主动作。
- 最终模式:分支执行后继续执行主动作;没有分支命中时也会执行。
如果分支可能重叠,又不希望重复执行,使用 IF ELSE IF;需要多个独立效果同时生效时,才使用 IF IF。
6. 中断器¶
中断器只在某次规则的动作链运行期间生效。命中后立即停止本次执行,后续动作不再继续。
典型场景:
- 延时播放锁车提示音期间检测到车辆重新解锁,立即取消播放;
- 自动打开应用的流程中检测到车辆挂入行驶挡,停止后续界面操作;
- 长时间灯光效果运行中检测到低电量,立即停止。
一条规则可以有多个中断器。每个中断器可设置自己的触发器、条件和条件判定延迟。
中断器只停止当前这一次执行,不会自动禁用规则。实验性的 RootService 托管规则目前不支持中断器。
7. 变量与公式¶
变量用于让规则之间共享数据,或把触发事件中的信息传给后续动作。
7.1 自定义变量¶
使用“设置变量”动作创建或更新变量,例如:
自定义变量会持久保存,重启 EVCC 后仍然存在。不再使用的变量可在变量管理中删除。
7.2 音乐变量¶
EVCC 提供两个只读音乐变量:
| 变量 | 说明 |
|---|---|
bpm |
当前音乐 BPM;无音乐或未匹配时为 0 |
music_state |
playing、paused_or_stopped 或 none |
使用自动化“变量比较”时,变量名不需要写 $:
music_state 是文本,不要放进数学公式中做字符串比较。完整变量、模板块和函数说明见公式与变量手册。
8. RootService 托管执行(实验)¶
普通自动化依赖 EVCC 主界面进程运行。部分车型会显示“由 RootService 托管执行”选项,用于主界面进程被系统回收后仍需继续工作的简单规则。
适合:
- 车辆属性触发;
- 属性或时间条件;
- 延迟、播放声音、基础属性写入;
- 锁车提示音等简单、可预测的动作链。
不适合:
- 中断器;
- TTS、通知、Toast、HTTP;
- 启动或关闭 App;
- BLE、Lua、变量触发、地理围栏;
- 需要复杂分支或界面交互的流程。
编辑器会在保存时检查当前规则是否可托管。没有看到该选项,表示当前车型或当前版本未开放,继续使用普通自动化即可。
9. 规则管理、分组和商店¶
- 规则可启用、禁用、复制、删除和手动执行。
- 规则组适合把同一场景的多条规则放在一起,可批量启用或停用。
- 导入规则前先检查属性 ID、车型、动作目标和本地资源路径。
- 从规则商店下载的规则不会保证适配所有车型;即使显示车型匹配,也应先手动测试。
- 规则引用的本地音频等资源可随商店内容下载到本机,导入后仍应确认文件可用。
- 上传前检查是否包含家庭位置、设备标识、密钥、Token 或私人地址。
内容上传、分享码和配置包的完整说明见 EVCC 内容商店与分享手册。
10. 排错方法¶
10.1 规则完全不触发¶
按顺序检查:
- 自动化引擎是否正在运行;
- 当前规则是否已启用;
- 触发器的数据源、属性 ID、区域和值是否正确;
- 是否仍处于冷却时间;
- 保持时间是否过长;
- 属性是否只有首次读取,没有发生真实变化;
- 查看执行日志中是否出现触发记录。
10.2 已触发但没有动作¶
- 检查主条件是否满足;
- 检查条件分支是否命中;
- 检查条件判定延迟后读取到的值;
- 检查动作前是否已有“条件中断”或“停止规则”;
- 查看执行日志中的失败动作和原因;
- 单独手动执行该动作,区分规则配置问题和动作能力问题。
10.3 重复执行或执行过于频繁¶
- 增加冷却时间;
- 开启“仅边界触发”;
- 增加保持时间或防抖;
- 检查多个触发器是否同时命中;
- 检查 IF IF 分支是否造成重复动作;
- 检查规则之间是否互相触发形成循环。
10.4 重启后不运行¶
- 确认自动化自启已打开;
- 确认系统白名单和保活配置有效;
- 查看开机后的执行日志;
- 开机规则的第一个动作建议延时 3~10 秒,等待车辆服务和目标 App 就绪。
11. 常用案例¶
11.1 超速提醒¶
- 触发器:车速属性大于阈值;
- 动作:TTS 提醒;
- 冷却:建议 60 秒以上。
11.2 上车打开导航¶
- 触发器:手机蓝牙连接;
- 条件:指定时间范围,可选;
- 动作:延时 3 秒 → 启动导航。
11.3 日落切换夜间显示¶
- 触发器:日落,可设置提前 10~20 分钟;
- 动作:操作对应 EVCC 服务卡片或显示属性;
- 另建日出规则恢复白天模式。
11.4 音乐节奏联动¶
- 触发器:变量
music_state等于playing,或变量发生变化; - 条件:变量
bpm大于等于所需阈值; - 动作:MIBO 联动动作、氛围效果或其他安全显示动作;
- 另建暂停/无音乐规则恢复默认状态。
11.5 低电量保护¶
- 触发器:电量或电压属性低于阈值;
- 动作:关闭不必要的 EVCC 服务并发送提醒;
- 冷却:建议 30 分钟以上。
12. 安全检查清单¶
正式启用前逐项确认:
- [ ] 已确认属性 ID、区域、数据类型和值域;
- [ ] 已先用手动执行验证动作;
- [ ] 高频触发已设置冷却、防抖或保持时间;
- [ ] 写属性和系统操作不存在互相循环;
- [ ] 行驶中不会弹出遮挡视线的界面;
- [ ] 规则失败时不会连续重试危险动作;
- [ ] 已保存一份当前配置备份;
- [ ] 已查看至少一次真实触发的执行日志。
如需完整了解 EVCC 其他功能,请返回 EVCC 用户手册。
Geely 属性自动化¶
Geely AIDL 与 Geely CAPI 可用于属性触发、条件和动作。触发器、条件和动作沿用普通十进制属性 ID、区域字段,不额外选择 Geely 来源或通道。例如填 ID 16481,区域留空;当前 E171 目录唯一匹配 Geely AIDL 的请求区域 1,保存时自动带入。新建表单未修改的默认区域也参与自动匹配;用户明确输入区域则按输入值匹配,0 不是任意区域。同号属性跨来源或具有多个区域时,会要求选择具体记录。Function 区域需连接后查询目录,不能自行推测。全部区域显示及填写为 ALL(不区分大小写),仅匹配系统报告的全部区域记录;普通区域继续填写十进制整数。从属性列表选中具体记录时自动携带来源、通道和区域。控制台、悬浮窗和状态栏组件遵守同样规则;原本已有的来源选择及其他来源的输入规则保留。只读 Sensor 不提供写入动作。 “实时属性变化”弹窗会独立订阅当前选中的 Geely 来源,无需先打开属性页;切换来源或关闭弹窗会释放本弹窗的订阅。连接恢复后会重新监听,只显示打开监听后收到的变化,初始值和手动刷新不会作为变化加入列表。
含 Geely 引用的规则由应用执行。编辑器禁用该规则的 RootService 托管选项;导入与加载时统一为应用执行。初始快照与手动刷新不会作为属性变化触发;云端隐藏或本地关闭该来源后停止访问,规则保留。
E06 的 SOA 与 AdaptAPI 区域¶
两路属性的普通区域填写原生十进制整数,属性列表同时显示座椅、车门、车窗等位置或香氛槽位。全部区域可填写 ALL,保存后为 -2147483648;必须匹配实际目录记录,不扩展到任意区域,也不替代区域 0。从列表选择具体属性可携带其区域。枚举动作使用完整 SDK 数值,例如自动灯光 537136643,不要自行改为 3。