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

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

[技术探讨] ha自动化写法

[复制链接]

65

主题

487

帖子

2168

积分

金牌会员

Rank: 6Rank: 6

积分
2168
金钱
1676
HASS币
0
发表于 2024-9-9 11:24:46 | 显示全部楼层 |阅读模式
ha自动化中,条件那一项,不为某种状态且持续了1分钟,怎么写(是不为这种状态的其他其他状态持续了1分钟),如果是下面这种写法,觉得不对。那应该如何写。
condition: not
conditions:
  - condition: state
    entity_id: sensor.haowengege_de_iphone_15_pro_ssid
    state: cuichaohome_5G-1
    for:
      hours: 0
      minutes: 1
      seconds: 0


回复

使用道具 举报

1

主题

25

帖子

530

积分

高级会员

Rank: 4

积分
530
金钱
505
HASS币
0
发表于 2024-9-9 15:18:53 | 显示全部楼层
写法对了吧
回复

使用道具 举报

65

主题

487

帖子

2168

积分

金牌会员

Rank: 6Rank: 6

积分
2168
金钱
1676
HASS币
0
 楼主| 发表于 2024-9-9 15:59:42 | 显示全部楼层

我觉得我的写法是 非 (cuichaohome_5G-1持续一分钟)我想要的是 非 (cuichaohome_5G-1)持续一分钟。
回复

使用道具 举报

1

主题

25

帖子

530

积分

高级会员

Rank: 4

积分
530
金钱
505
HASS币
0
发表于 2024-9-10 16:43:24 | 显示全部楼层
lichao622 发表于 2024-9-9 15:59
我觉得我的写法是 非 (cuichaohome_5G-1持续一分钟)我想要的是 非 (cuichaohome_5G-1)持续一分钟。 ...
condition:
  - condition: and
    conditions:
      - condition: not
        conditions:
          - condition: state
            entity_id: sensor.haowengege_de_iphone_15_pro_ssid
            state: cuichaohome_5G-1
            for:
              hours: 0
              minutes: 0
              seconds: 0
      - condition: template
        value_template: >-
          {% if states.你的自动化实体id.attributes.last_triggered.strftime("%Y-%m-%d
          %H:%M:%S").split()[0] != now().strftime("%Y-%m-%d
          %H:%M:%S").split()[0] %}
            true
          {##日期不相同可直接触发##}

          {% else %}

          {##日期相同判断小时数##}
            {% if int(states.你的自动化实体id.attributes.last_triggered.strftime("%Y-%m-%d %H:%M:%S").split()[1].split(":")[0]) != now().strftime("%Y-%m-%d %H:%M:%S").split()[1].split(":")[0] %}
            {##小时数不相同可直接触发##}
              true
            {% else %}
              {% if now().strftime("%Y-%m-%d %H:%M:%S").split()[1].split(":")[1] - states.你的自动化实体id.attributes.last_triggered.strftime("%Y-%m-%d %H:%M:%S").split()[1].split(":")[1] <= 1 %}
              {##分钟数相差超过1分钟可直接触发##}
                true
              {% else %}
                false
              {% endif %}
            {% endif %}
          {% endif %}
        enabled: true
conditions:
  - condition: state
    entity_id: sensor.haowengege_de_iphone_15_pro_ssid
    state: cuichaohome_5G-1
    for:


可以尝试此代码,原理是判断当前时间与自动化的触发时间的时间差,把“你的自动化实体id”替换掉,日期和小时数的判断自己根据情况来修改。

回复

使用道具 举报

4

主题

143

帖子

1249

积分

金牌会员

Rank: 6Rank: 6

积分
1249
金钱
1106
HASS币
0
发表于 2024-9-10 18:07:47 | 显示全部楼层
本帖最后由 flyibeat 于 2024-9-10 18:08 编辑

我倒是觉得可以换个思路,利用自动化的触发器trigger来中转

platform: state
entity_id:
  - sensor.haowengege_de_iphone_15_pro_ssid
from: cuichaohome_5G-1
to: null
for:
  hours: 0
  minutes: 1
  seconds: 0
然后执行某个自定义的开关打开,可用辅助元素创建。
ssid回到这个名称的时候又可以执行该开关关闭
后续的自动化判断该开关的状态即可
回复

使用道具 举报

65

主题

487

帖子

2168

积分

金牌会员

Rank: 6Rank: 6

积分
2168
金钱
1676
HASS币
0
 楼主| 发表于 2024-9-11 15:41:12 | 显示全部楼层
小小偶白 发表于 2024-9-10 16:43
可以尝试此代码,原理是判断当前时间与自动化的触发时间的时间差,把“你的自动化实体id”替换掉,日期 ...

好的,我来试试。但是好像还是没有更简单的方法
回复

使用道具 举报

65

主题

487

帖子

2168

积分

金牌会员

Rank: 6Rank: 6

积分
2168
金钱
1676
HASS币
0
 楼主| 发表于 2024-9-11 15:42:18 | 显示全部楼层
flyibeat 发表于 2024-9-10 18:07
我倒是觉得可以换个思路,利用自动化的触发器trigger来中转

然后执行某个自定义的开关打开,可用辅助元素 ...

我来试试,感谢
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 00:29 , Processed in 0.284653 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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