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

 找回密码
 立即注册
查看: 1296|回复: 9

[求助] ha重启如何避免自动化执行

[复制链接]

30

主题

276

帖子

1665

积分

金牌会员

Rank: 6Rank: 6

积分
1665
金钱
1389
HASS币
0
发表于 2023-1-21 13:33:57 | 显示全部楼层 |阅读模式
我有一个自动化是开关空调的,但是每次ha重启,ha会判断小爱的conversation是否还是“打开空调/关闭空调”,如果是的话又会执行一次,最近看到有大佬的天气预警的启发,为了避免这样的情况发生加了一个环境条件,但是还是不行,不知道要怎么解决好。
alias: 【宿舍】【舒适】开关空调
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.xiaomi_l05c_fd84_conversation
    to:
      - 打开空调
      - 关闭空调
    not_from: unavailable
    alias: 宿舍小爱=打开空调or关闭空调
condition:
  - condition: template
    value_template: >-
      {{trigger.to_state.attributes.timestamp !=
      trigger.from_state.attributes.timestamp}}   #这部分是近期加的,但是也起不到作用
action:
  - if:  
      - condition: state
        entity_id: sensor.xiaomi_l05c_fd84_conversation
        state: 打开空调
      - condition: numeric_state
        entity_id: sensor.ble_temperature_a4c138ecaa60
        above: 25
    then:
      - service: climate.turn_on
        data: {}
        target:
          entity_id: climate.miir_ir02_3248_ir_aircondition_control
      - service: climate.set_temperature
        data:
          temperature: 25
          hvac_mode: cool
        target:
          entity_id: climate.miir_ir02_3248_ir_aircondition_control
      - service: switch.turn_on
        data: {}
        target:
          entity_id: switch.tong_duan_qi_switch_1
      - stop: 空调已启动
    alias: 温度>25,开制冷25°
  - if:
      - condition: state
        entity_id: sensor.xiaomi_l05c_fd84_conversation
        state: 关闭空调
    then:
      - service: climate.turn_off
        data: {}
        target:
          entity_id: climate.miir_ir02_3248_ir_aircondition_control
      - service: switch.turn_off
        data: {}
        target:
          entity_id: switch.tong_duan_qi_switch_1
      - stop: 空调已关闭
    else: []
    alias: 关闭空调
  - if:
      - condition: state
        entity_id: sensor.xiaomi_l05c_fd84_conversation
        state: 打开空调
      - condition: numeric_state
        entity_id: sensor.ble_temperature_a4c138ecaa60
        below: 25
    then:
      - service: climate.turn_on
        data: {}
        target:
          entity_id: climate.miir_ir02_3248_ir_aircondition_control
      - service: climate.set_temperature
        data:
          temperature: 22
          hvac_mode: heat
        target:
          entity_id: climate.miir_ir02_3248_ir_aircondition_control
      - service: switch.turn_on
        data: {}
        target:
          entity_id: switch.tong_duan_qi_switch_1
      - stop: 空调已启动
    alias: 温度<25,开制热22°
mode: single


回复

使用道具 举报

76

主题

1364

帖子

1万

积分

元老级技术达人

积分
18842
金钱
17438
HASS币
290
发表于 2023-1-21 21:18:50 | 显示全部楼层
本帖最后由 dscao 于 2023-1-21 22:41 编辑

我感觉理论上这两个中有一个应该都能解决问题,但实际上却没解决问题,也是奇怪了,等懂的大佬解答吧。
not_from: unavailable

value_template: >-
      {{trigger.to_state.attributes.timestamp !=
      trigger.from_state.attributes.timestamp}}

示例中的:
      not_from:
        - "unknown"
        - "unavailable"
      to: "on"


我按上面的方法做了一个小爱语音指令的自动化测试了一下,重启时不会执行这个自动化,语音指令时正常执行。

alias: 小爱同学语音指令
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.xiaomi_lx01_0dc2_conversation
    not_from: unavailable
condition: []
action:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{'小汽车位置' in states("sensor.xiaomi_lx01_0dc2_conversation")}}"
        sequence:
          - service: script.1611078163529
            data: {}
      - conditions:
          - condition: template
            value_template: >-
              {{'打开' in states("sensor.xiaomi_lx01_0dc2_conversation") and '空调'
              in states("sensor.xiaomi_lx01_0dc2_conversation")}}
        sequence:
          - service: climate.turn_on
            data: {}
            target:
              entity_id: climate.wo_shi_kong_diao
            enabled: true
      - conditions:
          - condition: template
            value_template: >-
              {{'关闭' in states("sensor.xiaomi_lx01_0dc2_conversation") and '空调'
              in states("sensor.xiaomi_lx01_0dc2_conversation")}}
        sequence:
          - service: climate.turn_on
            data: {}
            target:
              entity_id: climate.wo_shi_kong_diao
            enabled: true
mode: single


用 in 模板这样可以适应多种口令,只要小爱训练中创建了能到hass中就可以。 比如打开空调,可以说打开空调、打开卧室空调、把空调打开等。
小汽车位置,可以说“发送小汽车位置”,“播报小汽车位置”,“把小汽车位置告诉我”。
  
应该更适合语音控制吧。







回复

使用道具 举报

0

主题

50

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
金钱
226
HASS币
0
发表于 2023-1-21 23:44:27 来自手机 | 显示全部楼层
判断uptime
回复

使用道具 举报

0

主题

50

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
金钱
226
HASS币
0
发表于 2023-1-21 23:48:48 来自手机 | 显示全部楼层
加一个环境条件 当前时间 > uptime + 3min
回复

使用道具 举报

15

主题

313

帖子

2294

积分

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
1981
HASS币
0
发表于 2023-1-22 09:39:11 | 显示全部楼层
学会用HA自带的功能检查问题出在哪里?
1、自动化编辑里,在图形界面-环境条件右侧三个点里,有“测试”功能,自己检测下
2、可以把环境条件里的条件代码复制到“开发者工具-模板”里测试,实时查看它的值
回复

使用道具 举报

30

主题

276

帖子

1665

积分

金牌会员

Rank: 6Rank: 6

积分
1665
金钱
1389
HASS币
0
 楼主| 发表于 2023-1-23 19:37:16 | 显示全部楼层
cjnt007 发表于 2023-1-22 09:39
学会用HA自带的功能检查问题出在哪里?
1、自动化编辑里,在图形界面-环境条件右侧三个点里,有“测试”功 ...

使用trigger.to和from好像没办法这样测试,代码没有报错
回复

使用道具 举报

30

主题

276

帖子

1665

积分

金牌会员

Rank: 6Rank: 6

积分
1665
金钱
1389
HASS币
0
 楼主| 发表于 2023-1-23 20:11:23 | 显示全部楼层
sikai 发表于 2023-1-21 23:48
加一个环境条件 当前时间 > uptime + 3min

uptime是指ha运行时间,+3以后就是刚刚启动3分钟内不会执行是吗?确实也是个方法。
回复

使用道具 举报

30

主题

276

帖子

1665

积分

金牌会员

Rank: 6Rank: 6

积分
1665
金钱
1389
HASS币
0
 楼主| 发表于 2023-1-23 20:37:41 | 显示全部楼层
dscao 发表于 2023-1-21 21:18
我感觉理论上这两个中有一个应该都能解决问题,但实际上却没解决问题,也是奇怪了,等懂的大佬解答吧。

示 ...

大佬果然大佬,用你的代码把自己的改了,确实就好了,不会重启执行了,而且又学到了用in的方法,谢谢,我要去把我的各种自动化改一改了
回复

使用道具 举报

0

主题

50

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
金钱
226
HASS币
0
发表于 2023-1-27 21:50:49 | 显示全部楼层
justion 发表于 2023-1-23 20:11
uptime是指ha运行时间,+3以后就是刚刚启动3分钟内不会执行是吗?确实也是个方法。 ...

uptime指的是HA启动时的时间点
回复

使用道具 举报

55

主题

361

帖子

1613

积分

金牌会员

Rank: 6Rank: 6

积分
1613
金钱
1247
HASS币
0
发表于 2024-1-24 22:51:23 | 显示全部楼层
dscao 发表于 2023-1-21 21:18
我感觉理论上这两个中有一个应该都能解决问题,但实际上却没解决问题,也是奇怪了,等懂的大佬解答吧。

示 ...

大佬,这个加条件了吗
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-15 13:59 , Processed in 0.376408 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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