For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /developers/core/integration-quality-scale/rules/docs-conditions.md.

文档描述了可用的 condition

import RelatedRules from './_includes/related_rules.jsx'

理由

集成可以注册 condition,以提供触发自动化(automation)的额外方式。 这些 condition 可能比标准 condition 更难以使用,因此我们希望确保文档描述了它们的作用以及相关参数。 为避免集成文档显得杂乱,我们希望为每个 condition 设置单独的页面,并从集成文档中链接到该页面。

每个 condition 页面应包含该 condition 的作用说明、可用参数列表,以及通过 UI 和 YAML 使用该 condition 的概述。

示例实现

---
title: "检测到一氧化碳"
condition: air_quality.is_co_detected
domain: air_quality
description: "测试是否有一个或多个一氧化碳传感器正在检测一氧化碳。"
related_conditions:
  - air_quality.is_co_cleared
  - air_quality.is_co_value
---

**检测到一氧化碳** 条件在一个或多个一氧化碳传感器主动检测到一氧化碳(CO)时通过。由于一氧化碳无色无味,传感器是确认其存在的唯一途径。将本条件添加到自动化中,可确保安全措施(如触发警报、启动通风或发送紧急通知)仅在危险被确认时才执行。这能避免传感器短暂闪烁引发的误报,并将响应聚焦于真实威胁。

<!-- 必需。渲染标准的"通过用户界面使用此条件"标题和介绍。 -->
{% include conditions/ui_header.md %}

要在自动化中使用此条件:

1. 前往 {% my automations title="**设置** > **自动化与场景**" %}。
2. 打开现有自动化,或选择 **创建自动化** > **创建新自动化**
3. 在 **And if** 部分,选择 **添加条件**
4. 选择你要检查的内容。在 **按目标**(见 [Targets](#targets))下,选择一氧化碳传感器所在的区域(如厨房或车库)。你也可以选择楼层、设备、具体 entity 或 label。
5. 在该目标显示的条件中,选择 **检测到一氧化碳**
6. 在 **条件通过条件**(见 [Behavior](#behavior-with-multiple-targets))下,选择 **任一****全部**,以控制在针对多个传感器时检查的行为。
7. 选择 **保存**

### UI 中的选项

{% options_ui %}
条件通过条件:
  description: 当针对多个传感器时,控制结果如何组合。选择 **任一** 在至少一个目标传感器检测到大一氧化碳时通过,或选择 **全部** 仅在每个目标传感器都检测到大一氧化碳时通过。
{% endoptions_ui %}

<!-- 必需。渲染标准的"在 YAML 中使用此条件"标题和介绍。 -->
{% include conditions/yaml_header.md %}

在 YAML 中,将此条件引用为 `air_quality.is_co_detected`。一个基本示例如下:

{% example %}
condition: |
  condition: air_quality.is_co_detected
  target:
    entity_id: binary_sensor.hallway_co
{% endexample %}

当走廊一氧化碳传感器当前正在检测 CO 时,此条件通过。

### YAML 中的选项

YAML 有时为更复杂的用例提供 UI 中不可用的额外选项。

{% options_yaml %}
behavior:
  description: >
    当针对多个传感器时,控制结果如何组合。接受 `all``any`
  required: true
  type: string
  default: any
{% endoptions_yaml %}

<!-- 如果该条件支持 targets,请保留此 include。渲染"条件的 Targets"部分。 -->
{% include conditions/targets.md %}

<!-- 如果该条件支持多个 target,请保留此 include。渲染"条件通过条件"选项引用的"多个 target 下的行为"部分。 -->
{% include conditions/behavior.md %}

## 小贴士

- 不可用(`unavailable`)或状态未知(`unknown`)的传感器不算作检测到。使用 **任一** 行为时,它们会被跳过。使用 **全部** 行为时,如果每个目标传感器都不可用,则该条件失败。
- 要检查是否不再检测到大一氧化碳,请使用 [大一氧化碳已清除](/conditions/air_quality.is_co_cleared/)
- 要检查实际 CO 浓度而非仅仅二元检测结果,请使用 [大一氧化碳数值](/conditions/air_quality.is_co_value/)

<!-- 必需。渲染"自己动手试试"部分,引导用户测试该条件。 -->
{% include conditions/try_it.md %}

<!-- 渲染"更多示例"标题。在其下方添加你的自动化示例。 -->
{% include conditions/more_examples.md %}

### 自动化:在 CO 事件期间有人到家时提醒家人

如果家人外出期间室内 CO 积聚,第一个回家的人需要在进门之前收到警告。此自动化在有人进入家 zone 时触发,并检查走廊 CO 传感器是否仍在检测大一氧化碳。如果是,则发送紧急通知提醒他们待在室外并拨打紧急电话。

- **触发器**:进入 Zone
  - **目标**:Frenck(`person.frenck`
  - **Zone**:Home(`zone.home`
- **条件**:检测到一氧化碳
  - **目标**:走廊 CO 传感器
  - **条件通过条件**:任一
- **动作**:发送通知消息
  - **目标**:My Device(`notify.my_device`

{% details "到家时 CO 警告的 YAML 示例" %}

{% example %}
automation: |
  alias: "CO warning on arrival home"
  triggers:
    - trigger: zone.entered
      target:
        entity_id: person.frenck
      options:
        zone: zone.home
  conditions:
    - condition: air_quality.is_co_detected
      target:
        entity_id: binary_sensor.hallway_co
      options:
        behavior: any
  actions:
    - action: notify.send_message
      target:
        entity_id: notify.my_device
      data:
        title: "Carbon monoxide detected at home"
        message: >
          The hallway CO sensor is detecting carbon
          monoxide. Stay outside and call emergency services.
{% endexample %}

{% enddetails %}

<!-- 必需。渲染"仍然卡住了?"部分,指向社区支持渠道。 -->
{% include conditions/stuck.md %}

<!-- 如果你在 front matter 中设置了 related_conditions,请保留此 include。渲染"相关条件"部分。 -->
{% include conditions/related.md %}

例外

本规则没有例外。

相关规则