警报
alert
集成旨在在出现问题时通知您。
例如,如果车库门被留开,alert
集成可以通过以可自定义的
间隔向您发送重复通知来提醒您。它还可用于低电池传感器、
水泄漏传感器或任何可能需要您注意的条件。
警报会向前端添加一个实体。 该实体允许您在警报被解决之前将其静音,并有三种 可能的状态:
状态 | 描述 |
---|---|
idle |
警报条件为假。 |
on |
警报条件为真。 |
off |
警报条件为真,但已被确认。 |
基本示例
alert
集成利用任何 notification
集成。要
设置 alert
集成,首先,您必须设置一个 notification integration。
然后,将以下内容添加到您的 configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中。
在更改了configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件后,重启 Home Assistant 以应用更改。
# 示例 configuration.yaml 条目
alert:
garage_door:
name: 车库门已打开
done_message: 车库门已关闭
entity_id: input_boolean.garage_door
state: "on"
repeat: 30
can_acknowledge: true
skip_first: true
notifiers:
- ryans_phone
- kristens_phone
Configuration Variables
警报从 on
或 off
转换到 idle
后发送的消息,带有 template 支持。只在从 idle
转换到 on
发送警报通知时发送。
在此示例中,车库门状态 (input_boolean.garage_door
) 被监视
,当其状态等于 on
时,将触发此警报。
这表示门已打开。由于 skip_first
选项
设置为 true
,第一个通知不会立即发送。
然而,每 30 分钟,将发送一次通知,直到
input_boolean.garage_door
不再处于 on
状态或直到警报
在 Home Assistant 前端被确认。
对于需要其他参数的通知者(例如 twilio_sms
,在发送通知时需要
您指定 target
参数),您可以使用
group
通知将它们包装成一个警报。
只需创建一种具有单个通知成员的 group
通知类型
(例如 twilio_sms
),并指定除了 message
之外由 alert
集成提供的所需参数:
- platform: group
name: john_phone_sms
services:
- action: twilio_sms
data:
target: !secret john_phone
alert:
freshwater_temp_alert:
name: "警告:我检测到淡水箱温度存在问题"
entity_id: binary_sensor.freshwater_temperature_status
state: "on"
repeat: 5
can_acknowledge: true
skip_first: false
notifiers:
- john_phone_sms
复杂警报条件
按设计,alert
集成仅处理非常简单的触发条件。
即,它仅检查单个实体的状态是否等于某个值。在某些
情况下,可能希望具有更复杂条件的警报。
可能是在电池百分比降到阈值以下时。也许您想在某些天禁用警报。
也许警报的触发应依赖于多个输入。对于所有这些情况,最好使用警报
配合 Template Binary Sensor
。以下示例便是如此。
template:
- binary_sensor:
- name: "运动电池电量不足"
state: "{{ state_attr('sensor.motion', 'battery') | float(default=0) < 15 }}"
device_class: battery
alert:
motion_battery:
name: 运动电池电量不足
entity_id: binary_sensor.motion_battery_is_low
repeat: 30
notifiers:
- ryans_phone
- kristens_phone
这个示例将在实体 sensor.motion
的 battery
属性降到 15 以下时开始触发。它将继续触发,直到电池属性
升高至 15 或警报在前端被确认。
动态通知延迟时间
可能希望警报通知之间的延迟随着警报的继续触发而动态
变化。这可以通过将 repeat
配置键设置为数字列表而不是单个数字来实现。
修改第一个示例如下所示。
# 示例 configuration.yaml 条目
alert:
garage_door:
name: 车库门已打开
entity_id: input_boolean.garage_door
state: "on" # 可选,'on' 是默认值
repeat:
- 15
- 30
- 60
can_acknowledge: true # 可选,默认是 true
skip_first: true # 可选,默认是 false
notifiers:
- ryans_phone
- kristens_phone
现在,第一个消息将在 15 分钟延迟后发送,第二个将在此后 30 分钟发送,随后的每个通知之间将间隔 60 分钟。 例如,如果车库门在 2:00 打开,将会在 2:15、2:45、3:45、4:45 等时间发送通知,并且每 60 分钟继续发送。
消息模板
可能希望警报通知包含有关实体状态的信息。
模板 可以用于警报的消息或名称,以使其更相关。
以下示例将展示如何为植物包含实体的问题 attribute
。
# 示例 configuration.yaml 条目
alert:
office_plant:
name: 办公室植物需要帮助
entity_id: plant.plant_office
state: "problem"
repeat: 30
can_acknowledge: true
skip_first: true
message: "植物 {{ states.plant.plant_office }} 需要帮助 ({{ state_attr('plant.plant_office', 'problem') }})"
done_message: 办公室植物正常
notifiers:
- ryans_phone
- kristens_phone
生成的消息可能是 植物办公室植物需要帮助(湿度低)
。
通知者的附加参数
某些通知者支持更多参数(例如,设置文本颜色或操作
按钮)。这些可以通过 data
参数提供:
# 示例 configuration.yaml 条目
alert:
garage_door:
name: "车库门已打开"
message: "车库门仍然打开"
done_message: "车库门已关闭"
entity_id: input_boolean.garage_door
state: "on" # 可选,'on' 是默认值
repeat:
- 15
- 30
- 60
can_acknowledge: true # 可选,默认是 true
skip_first: true # 可选,默认是 false
data:
inline_keyboard:
- '关闭车库:/close_garage, 确认:/garage_acknowledge'
notifiers:
- frank_telegram
此特定示例依赖于 Telegram 的 inline_keyboard
功能,
用户可以通过按钮执行某些操作。
基于上面的示例,您可以创建一个自动化来停止进一步的消息, 但您仍然会收到完成消息。
- alias: "Telegram 回调停止车库门的警报"
triggers:
- trigger: event
event_type: telegram_callback
event_data:
data: "/garage_acknowledge"
actions:
- action: alert.turn_off
target:
entity_id: alert.garage_door
发送到 Home Assistant Companion 应用的通知支持 替换 和 清除 通知。要使用这些功能与警报,请在消息数据中设置 tag
,将 clear_notification
作为 done_message
发送,并使用 mobile_app_*
作为通知者:
alert:
garage_door:
name: 车库门已打开
done_message: clear_notification
entity_id: input_boolean.garage_door
state: "on"
repeat: 30
can_acknowledge: true
skip_first: true
notifiers:
- mobile_app_ryan
- mobile_app_kristen
data:
tag: garage-door