『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 837|回复: 6

[求助] 各位大佬,帮我看一下这样的自动化触发条件怎么写

[复制链接]

8

主题

60

帖子

568

积分

论坛积极会员

积分
568
金钱
508
HASS币
0
发表于 2024-6-17 15:53:35 | 显示全部楼层 |阅读模式
我要写个每天晚上10点钟,检查衣帽间湿度是否连续72小时都在60%以上,如果是的话就提醒检查除湿机水箱是否已满。需要同时满足两个条件
1.时间在晚上10点(其他时间我人一般不在家,即使提醒了也没法去检查)
2.湿度要连续72小时都在60%以上才进行提醒。(我都是晚上利用谷电开启除湿机的,白天停止除湿后湿度经常在60%以上)
这两个条件要同时满足如何写?我在触发条件同时写2个的话,只要有一个满足就会触发,不符合我的要求。环境条件的话只能检查湿度在60%以上,没有持续时间,也不符合条件。
回复

使用道具 举报

13

主题

613

帖子

3185

积分

论坛元老

HomeAssistant

Rank: 8Rank: 8

积分
3185
金钱
2567
HASS币
20
发表于 2024-6-17 17:03:44 | 显示全部楼层
把完整实体名称和逻辑发给AI,会给出差不多的代码,自己修改修改就能用
回复

使用道具 举报

8

主题

144

帖子

782

积分

高级会员

Rank: 4

积分
782
金钱
638
HASS币
0
发表于 2024-6-17 17:11:07 | 显示全部楼层
以下来自面向GPT编程:


要在Home Assistant中实现这个需求,需要结合多种功能。可以通过创建自定义传感器来检测连续72小时湿度是否在60%以上,并使用自动化功能在每天晚上10点检查这个条件。以下是实现这个需求的步骤:

创建自定义传感器:用于跟踪衣帽间湿度是否连续72小时都在60%以上。

创建自动化:每天晚上10点钟检查自定义传感器的状态,并根据状态发送提醒。

1. 创建自定义传感器
在Home Assistant的configuration.yaml文件中,添加一个template sensor,用于跟踪湿度是否连续72小时都在60%以上:

yaml
复制代码
sensor:
  - platform: history_stats
    name: Closet Humidity Over 60%
    entity_id: sensor.closet_humidity
    state: ">60"
    type: time
    start: "{{ now().replace(hour=22, minute=0, second=0) - timedelta(hours=72) }}"
    end: "{{ now().replace(hour=22, minute=0, second=0) }}"
这个传感器sensor.closet_humidity_over_60会统计过去72小时内湿度高于60%的时间。

2. 创建自动化
在Home Assistant的automations.yaml文件中,添加一个自动化任务,用于在每天晚上10点检查传感器的状态并发送提醒:

yaml
复制代码
automation:
  - alias: Check Dehumidifier Tank
    trigger:
      - platform: time
        at: '22:00:00'
    condition:
      - condition: numeric_state
        entity_id: sensor.closet_humidity_over_60
        above: 72
    action:
      - service: notify.notify
        data:
          message: "湿度已经连续72小时高于60%。请检查除湿机水箱是否已满。"
解释
自定义传感器:

history_stats平台的传感器会跟踪sensor.closet_humidity(替换为你的湿度传感器ID)在过去72小时内湿度是否超过60%。
start和end定义了跟踪的时间范围,这里是从当前时间向前72小时。
自动化:

触发条件是每天晚上10点(22:00:00)。
条件检查自定义传感器sensor.closet_humidity_over_60的状态,如果该状态超过72小时(表示过去72小时湿度都在60%以上),则进行提醒。
动作是发送通知,这里使用了notify.notify服务,你需要根据自己的通知服务修改。
这样,当湿度连续72小时都在60%以上时,每天晚上10点你就会收到提醒,检查除湿机的水箱。
回复

使用道具 举报

8

主题

60

帖子

568

积分

论坛积极会员

积分
568
金钱
508
HASS币
0
 楼主| 发表于 2024-6-17 20:02:43 | 显示全部楼层
lugiya 发表于 2024-6-17 17:11
以下来自面向GPT编程:

按照这个试了,不对的
回复

使用道具 举报

7

主题

350

帖子

3285

积分

论坛元老

Rank: 8Rank: 8

积分
3285
金钱
2935
HASS币
0
发表于 2024-6-18 09:27:22 | 显示全部楼层
数值型的condition有限制,没有持续时间的选项。可以这样:
做一个template binary sensor,用来监控湿度,>60%则on,否则off
然后condition就可以写for字段了
回复

使用道具 举报

150

主题

2330

帖子

7205

积分

元老级技术达人

积分
7205
金钱
4870
HASS币
30
发表于 2024-6-18 11:45:11 | 显示全部楼层
yuyuye 发表于 2024-6-18 09:27
数值型的condition有限制,没有持续时间的选项。可以这样:
做一个template binary sensor,用来监控湿度, ...

好思路,简单明了,通过开关来体现,或者通过0和1来体现也行,潮湿是1,干燥是0
回复

使用道具 举报

8

主题

60

帖子

568

积分

论坛积极会员

积分
568
金钱
508
HASS币
0
 楼主| 发表于 2024-6-19 22:39:41 | 显示全部楼层
yuyuye 发表于 2024-6-18 09:27
数值型的condition有限制,没有持续时间的选项。可以这样:
做一个template binary sensor,用来监控湿度, ...

按照这个思路,在辅助元素里配置了个阈值传感器,湿度大于60开启,然后再写自动化就成功了,非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-23 20:06 , Processed in 0.162959 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表