逻辑卡片
在自动化场景配置中,若您希望依据多个条件的组合结果来判断是否执行某个行为,则需要使用逻辑类卡片,包含:与、或、异或、等于、大于、大于等于、小于、小于等于、不相等、状态取反等逻辑运算块。
与
功能概述
“与”逻辑块用于仅当所有输入条件均为 true时,才输出为真,从而触发后续动作。例如:只有“检测到房门被打开”且“检测到有人”这两个条件同时满足时,才会执行开灯动作。通过“与”块可实现默认 4 个条件的组合判定,提升自动化决策的精确性与灵活性。
数据类型
- 输入节点:“输入 A、B、C、D”的左侧需分别连接布尔类型数据,默认支持 4 路输入。
- 输出节点:“输出”的右侧同样连接可存储布尔类型数据的节点。
示例
以“有人进入房间时自动开灯”为例,步骤如下:
- 在画布左侧区域分别添加“门传感器 - 开关状态”(布尔型)和“人体传感器 -人体存在状态”(布尔型)作为输入点。
- 在画布中部添加一个与逻辑块。
- 将“门传感器 - 开关状态”的输出连接到“与”块的输入 A,表示门是否被打开。
- 将“人体传感器 - 存在状态”的输出连接到“与”块的输入 B,表示室内是否有人。
- 在画布右侧添加“灯 - 开关状态”作为输出点。
- 将与逻辑块的“输出”连接至“灯 - 开关状态”输入端。
- 经过上述配置,只有当“门已打开(true)”且“有人(true)”时,“与”块的输出才会为
true,从而自动打开灯,实现精准的联动控制。
或
功能概述
“或”逻辑块用于只要任意一个输入条件为 true时,即输出为真,从而触发后续动作。例如:“检测到房门被打开”或“检测到有人”其中任意一项满足时,就会执行开灯动作。“或”块可实现默认 4 个条件的组合判定,适用于只需部分条件成立即触发的自动化需求。
数据类型
- 输入节点:“输入 A、B、C、D”的左侧需分别连接布尔类型数据,默认支持 4 路输入。
- 输出节点:“输出”的右侧同样连接可存储布尔类型数据的节点。
示例
以“有人进入房间或门被打开时自动开灯”为例,步骤如下:
- 在画布左侧区域分别添加“门传感器 - 开关状态”(布尔型)和“人体传感器 - 人体存在状态”(布尔型)作为输入点。
- 在画布中部添加一个或逻辑块。
- 将“门传感器 - 开关状态”的输出连接到“或”块的输入 A,表示门是否被打开。
- 将“人体传感器 - 存在状态”的输出连接到“或”块的输入 B,表示室内是否有人。
- 在画布右侧添加“灯 - 开关状态”作为输出点。
- 将或逻辑块的“输出”连接至“灯 - 开关状态”输入端。
- 上述配置下,只要“门被打开(true)”或“有人(true)”这两者满足任一条件,“或”块的输出就会为
true,从而实现自动开灯联动。
异或
功能概述
“异或”逻辑块用于处理两个或多个输入值的情况。当接入的输入中有奇数个输入为 true时,输出为 true(例如仅有 1 个、3 个等输入为 true 时);如果为 true 的输入个数为偶数(包括 0 个),输出为 false。与“或”运算不同,异或更强调“互斥性”,常用于防止重复触发、切换状态,或要求同时只有奇数个条件成立时才触发后续动作的场景。
数据类型
- 输入节点:“输入 A、B、C、D”的左侧需分别连接布尔类型数据,默认支持 4 路输入。
- 输出节点:“输出”的右侧同样连接可存储布尔类型数据的节点。
示例
以“多开关控制同一盏灯(双控或多控场景)”为例:
- 在画布左侧分别添加“开关A - 开关状态”(布尔型)和“开关B - 开关状态”(布尔型)作为输入点。
- 在画布中间添加一个异或逻辑块。
- 将“开关A - 开关状态”的输出连接到“异或”块的输入 A,“开关B - 开关状态”的输出连接到“异或”块的输入 B。
- 在画布右侧添加“灯 - 开关状态”作为输出点。
- 将“异或”逻辑块的“输出”连接至“灯 - 开关状态”输入端。
- 当两个开关状态不一致时(比如 A 开 B 关或 A 关 B 开),灯为打开状态。当两个开关状态相同(均开或均关)时,灯为关闭状态。
通过“异或”逻辑块,可以方便地实现楼梯灯等场合的双控/多控需求,任意一个开关的切换都会正确改变灯的开关状态,且不会出现反复触发的情况。
等于
功能概述
“等于”逻辑块用于对比“输入 A”和“输入 B”两个输入的数据值,判断它们是否相等。当两个输入的数值完全一致时,输出为 true,否则输出为 false。该逻辑块支持不同类型的数据输入,适合于检测设备当前状态是否和目标设定相符,只有在比较结果相等时才会输出 true,从而驱动后续自动化动作。
数据类型
- 输入节点:“输入 A”和“输入 B”的左侧均可连接数值型、布尔型或枚举型数据。当输入为布尔型或枚举型时,Aqara Studio 会自动进行数值转换后再比较:
- 布尔型:
false自动转换为 0.0,true转为 1.0; - 枚举型:自动按枚举对应的数值(如 1.0、2.0 等)进行比较。
- 布尔型:
- 输出节点:“输出”的右侧返回布尔型结果,用于表示比较是否相等。
除了连接外部数据外,您也可以直接双击输入节点或输出节点,手动输入待比较的数值,更方便灵活地调试需求。
示例
以“门锁状态等于解锁时自动开灯”为例,配置过程如下:
- 在画布左侧添加“门锁 - 开关状态”(枚举型,如 0.0 代表上锁,1.0 代表解锁)作为输入点。
- 在画布中间添加一个等于逻辑块。
- 将“门锁 - 开关状态”的输出连接至“等于”逻辑块的“输入 A”。
- 在“等于”逻辑块的“输入 B”处,直接设定期望状态(如 1.0,代表解锁)。
- 在画布右侧添加“灯 - 开关状态”作为输出点。
- 将“等于”逻辑块的“输出”连接到“灯 - 开关状态”的输入端。
- 经过上述配置,只有当门锁状态值等于 1(解锁)时,“等于”块的输出才会为
true,从而自动点亮灯光,实现进门亮灯的便捷体验。
此方法同样适用于数值型和布尔型的自动化需求,例如检测温度等于目标值时联动设备,或当某布尔输入与目标状态一致时触发相关动作。
不相等
功能概述
“不相等”逻辑块用于对比“输入 A”和“输入 B”两个输入的数据值,判断它们是否不相等。当两个输入的数值不一致时,输出为 true,否则输出为 false。该逻辑块同样支持多种数据类型输入,适用于判断设备状态是否与特定目标不同,只有在比较结果为不相等时才会输出 true,以便驱动后续的自动化动作。
数据类型
与 等于 逻辑块相同。
大于
功能概述
“大于”逻辑块用于比较“输入 A”和“输入 B”两个输入的数据值,判断 A 是否大于 B。当“输入 A”的数值大于“输入 B”时,输出为 true,否则输出为 false。该逻辑块支持多种数据类型输入,可用于判断某个设备或数据是否超过预设阈值,只有大于时才会输出 true,进而触发后续自动化操作。
数据类型
与 等于 逻辑块相同。
大于等于
功能概述
“大于等于”逻辑块用于比较“输入 A”和“输入 B”两个输入的数据值,判断 A 是否大于或等于 B。当“输入 A”大于或等于“输入 B”时,输出为 true,否则输出为 false。适合需要判断阈值达到或超出时触发自动化的场景。
数据类型
与 等于 逻辑块相同。
小于
功能概述
“小于”逻辑块用于比较“输入 A”和“输入 B”两个输入的数据值,判断 A 是否小于 B。当“输入 A”小于“输入 B”时,输出为 true,否则输出为 false。适用于通过小于关系判断是否低于目标值,并驱动后续动作。
数据类型
与 等于 逻辑块相同。
小于等于
功能概述
“小于等于”逻辑块用于比较“输入 A”和“输入 B”两个输入的数据值,判断 A 是否小于或等于 B。当“输入 A”小于或等于“输入 B”时,输出为 true,否则输出为 false。适用于需要判断数据低于或等于目标值后执行动作的场景。
数据类型
与 等于 逻辑块相同。
状态取反
功能概述
当您需要使用某个布尔型状态的相反值来控制另一个状态时,可使用“状态取反”卡片。 该卡片会将输入状态的布尔值反转后输出,并传递给目标状态。例如:
- 开关状态为 true → 输出 false,灯泡关闭。
- 开关状态为 false → 输出 true,灯泡开启。
数据类型
- 输入节点:“输入”的左侧需连接布尔类型数据。
- 输出节点:“输出”的右侧同样连接可存储布尔类型数据的节点。
示例
以“一个开关反向控制灯泡开关”为例,配置过程如下:
- 在画布左侧添加“开关 - 开关状态”(布尔型)作为输入点。
- 在画布中间添加一个状态取反逻辑块。
- 将“开关 - 开关状态”的输出连接至“状态取反”逻辑块的输入。
- 在画布右侧添加“灯泡 - 开关状态”作为输出点。
- 将“状态取反”逻辑块的输出连接到“灯泡 - 开关状态”的输入端。
配置效果:当开关为“开(true)”时,经过“状态取反”逻辑块输出为“关(false)”,从而关闭灯泡;反之,开关为“关(false)”时,灯泡则被打开(true)。实现了用开关状态反向控制灯泡通断的自动化场景。