自动化与场景常见问题
约 1629 字大约 5 分钟
自动化与场景常见问题
基础概念
自动化和场景有什么区别?
这是最常见的问题,简单来说:
- 自动化 (Automation):是“自动”执行的。它有触发器(如:温度超标、定时),满足条件后自动运行。适用于无人值守。
- 场景 (Scene):是“手动”执行的。它只有动作序列,没有触发器。适用于“一键执行”多个操作(如:一键开启所有设备)。
更多信息
详细对比请浏览 自动化 vs 场景
自动化、场景与消息规则、任务有什么关系?
ThingsCloud 提供多种联动工具,它们的定位不同:
| 功能 | 最佳适用场景 | 核心特点 |
|---|---|---|
| 消息规则 | 底层数据处理、协议转换 | 开发者工具,面向设备类型 |
| 任务 | 批量下发相同指令、定时巡检 | 封装单条指令,支持手动/定时 |
| 场景 | 一键控制多个设备 | 手动触发,编排多设备动作流 |
| 自动化 | 跨设备智能联动、条件编排 | 可视化配置,支持触发+条件+动作 |
触发器与条件
我的业务需求该选择哪种触发器?
根据您的具体场景,ThingsCloud 提供了多种灵活的触发方式:
| 您的需求场景 | 推荐触发器类型 |
|---|---|
| 固定日程(如:每周一三五 8 点灌溉) | 定时触发 |
| 未来特定时刻(如:预约下周二 14 点升级) | 绝对时间 |
| 固定频率检查(如:每隔 30 分钟采集一次数据) | 间隔触发 |
| 昼夜交替联动(如:日落开灯、日出关窗帘) | 日出日落 |
| 实时数值波动(如:温度高于 30℃、开关状态变化) | 设备属性变化 |
| 异常状态联动(如:设备产生离线告警时触发) | 告警状态变化 |
为什么我的自动化触发了但是没有执行动作?
如果日志显示已触发但动作未执行,通常是因为条件 (Conditions) 不满足。请记住,多个条件之间是 “且 (AND)” 的关系,必须全部满足才能通过。
排查建议
- 检查条件状态:在自动化详情页,点击【检查条件】按钮,查看当前实时环境下各条件(如时间范围、设备属性)是否满足。
- 时区问题:检查项目时区设置是否正确,时间范围条件是基于项目时区判定的。
触发器中的“属性变化”和条件中的“属性检查”有什么不同?
- 触发器:关注“瞬间的变化”。例如“温度从低于 30 变为高于 30”这一刻。
- 条件:关注“当前的状态”。例如“检查当前温度是否高于 30”。
示例: “当人进入房间(触发),且光照不足(条件)时,开灯。”
一个自动化可以设置多个触发器吗?
可以。多个触发器之间是 “或 (OR)” 的关系。任何一个触发器满足,自动化都会启动流程并进入条件检查环节。
动作执行
动作执行失败了会怎么样?
这取决于您在创建自动化/场景时设置的 “动作失败策略”:
- 继续执行:跳过失败的动作,继续尝试执行列表中的下一个动作。适用于各设备操作相互独立的情况。
- 停止执行:一旦某个动作失败(如设备离线导致下发失败),立即中止整个流程。适用于有严格先后逻辑依赖的情况。
自动化执行过程中可以中途停止吗?
目前不支持。一旦自动化被触发并开始执行动作序列,即使手动停用该自动化规则,已经开始的执行实例仍会按计划完成后续所有动作(包括处于延迟等待中的动作)。停用规则只会阻止该自动化被再次触发。
多个动作之间可以设置时间间隔吗?
可以,通过在动作序列中插入 “延迟 (Delay)” 动作来实现。
应用场景:
- 启动电机后,延迟 5 秒再打开阀门。
- 开启灌溉后,延迟 10 分钟自动关闭。
高级配置与并发
什么是并发策略?“放弃本次”和“终止前次”选哪个?
并发策略定义了当自动化还在执行(通常是因为有延迟动作),新的触发信号又到达时系统的处理方式:
- 放弃本次:维持现状,忽略新信号。适用于“正在浇水时,即使湿度再次降低也不重新开始”。
- 终止前次:终止旧流程,从头开始。适用于“延时关灯”,如果 10 分钟内人又回来了,应该重新计算 10 分钟。
如何实现“互斥”逻辑(例如:两个水泵不能同时开启)?
利用设备自身的属性状态即可实现。
- 在水泵 B 的自动化中,增加一个设备属性条件。
- 检查水泵 A 的相关属性(如:开关、运行状态)是否为
OFF(或停止)。 - 这样当水泵 B 触发时,系统会先检查水泵 A 是否在运行。如果 A 正在运行,条件不满足,B 就不会执行开启操作。
同样,在水泵 A 的自动化中也加入对 B 状态的检查,即可实现双向互斥。
日志与调试
哪里可以看到自动化运行不成功的原因?
进入自动化/场景详情页,切换到 【日志】 选项卡。开启 【调试状态】 后,查看执行记录中的 “执行时间线”,它会清晰标示出哪个节点失败以及具体的错误代码。
注意
基于对系统运行日志时效性的管理要求,自动化和场景的运行日志将采取滚动更新机制,最多保留 7 天。
为什么我的“日出日落”触发时间不准?
- 位置设置:检查触发器或条件中的“位置”设置,日出日落是根据具体的经纬度精确计算的。
- 偏移时间:检查是否误设了“提前”或“延后”偏移量。
其他
场景可以调用另一个场景吗?
目前场景中不支持直接调用另一个场景。
替代方案
您可以创建一个自动化,其动作中包含“执行场景”。自动化支持嵌套调用场景。