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

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

[求助] 自动化condition:and的问题

[复制链接]

13

主题

92

帖子

340

积分

论坛积极会员

积分
340
金钱
248
HASS币
0
发表于 2018-9-1 16:27:09 | 显示全部楼层 |阅读模式
自己写了两个自动化,但是condition:and后加的条件并不会约束触发,比如说第一个自动化是,当花园门磁从off变为on,同时时间在19:00:00~07:00:00之间,那么会打开花园的两个灯,同时进行语音播报。但是现在的问题是门一打开,不管时间在不在那个范围,灯和语音都会触发。感觉condition后写的都无效,请问是什么问题呢- alias: huanyuan  #自动化名称,可以自定义,会在homeassistant的states里面显示出来
  initial_state: true  ##在你重启HA的时候这个自动化是开启(true)还是关闭(false)
  trigger:
    - platform: state  #设备状态
      entity_id: binary_sensor.door_window_sensor_158d0002537d37  #检测设备动作的设备ID,在homeassistant的states里面可以找到
      from: 'off'  #状态转换,这段代码意思就是"从(from):关闭(off)"
      to: 'on'     #状态转换,衔接上句,"到(to):开启(on)[]
  condition:  #condition-条件:就是要达到下面这些条件,才会继续执行命令
    condition: and  #condition:and-一起满足以下这些条件才会动作
    conditions:  #开始写条件了哦
      - condition: time
        before: '19:00:00'
        after: '07:00:00'
  action:  #开始执行动作了哦
    - service: switch.turn_on  #开启这个设备
      entity_id: switch.qhytl_456d9b  #这个就是开启这个设备的ID,这个是我的客厅灯的sonoff ID
    - service: switch.turn_on  #开启这个设备
      entity_id: switch.qhyzqy01_4579f1  #这个就是开启这个设备的ID,这个是我的客厅灯的sonoff ID      
    - service: tts.baidu_say  #这个就是语音播报
      data_template:
        entity_id: media_player.mpd  #播放设备的ID,比如蓝牙音箱啊,usb音箱啊,可以在homeassistant的states里面找到
        message:  >
         "欢迎主人回家,已自动为您打开花园灯光,15分钟后关闭"
        cache: false
    - delay:  #延迟
        minutes: 15  #1分钟
    - service: switch.turn_off  #开启这个设备
      entity_id: switch.qhytl_456d9b  #这个就是开启这个设备的ID,这个是我的客厅灯的sonoff ID
    - service: switch.turn_off  #开启这个设备
      entity_id: switch.qhyzqy01_4579f1  #这个就是开启这个设备的ID,这个是我的客厅灯的sonoff ID      

- alias: HUIJIA  #自动化名称,可以自定义,会在homeassistant的states里面显示出来
  initial_state: true  ##在你重启HA的时候这个自动化是开启(true)还是关闭(false)
  trigger:
    - platform: state  #设备状态
      entity_id: binary_sensor.door_window_sensor_158d00023313c8  #检测设备动作的设备ID,在homeassistant的states里面可以找到
      from: 'off'  #状态转换,这段代码意思就是"从(from):关闭(off)"
      to: 'on'     #状态转换,衔接上句,"到(to):开启(on)[]
  condition:  #condition-条件:就是要达到下面这些条件,才会继续执行命令
    condition: and  #condition:and-一起满足以下这些条件才会动作
    conditions:  #开始写条件了哦
      - condition: state
        entity_id: binary_sensor.motion_sensor_158d00022539cb
        state: 'off'
      - condition: state
        entity_id: binary_sensor.motion_sensor_158d0002698f8a
        state: 'off'
      - condition: numeric_state  #第一个条件:设备状态达到以下数值
        entity_id: sensor.illumination_7c49eb1b0ff3  #这是我的光线传感器ID
        below: 200  #意思就是光线亮度达到1lux以下,意思就是很暗啦
  action:  #开始执行动作了哦
    - service: switch.turn_on  #开启这个设备
      entity_id: switch.datingyou_409b7e  #这个就是开启这个设备的ID,这个是我的客厅灯的sonoff ID
    - service: tts.baidu_say  #这个就是语音播报
      data_template:
        entity_id: media_player.mpd  #播放设备的ID,比如蓝牙音箱啊,usb音箱啊,可以在homeassistant的states里面找到
        message:  >
         "欢迎主人回家,您可以用语言控制整个屋子,比如,天猫精灵,打开客厅灯光
        cache: false


回复

使用道具 举报

72

主题

1154

帖子

6417

积分

论坛元老

Rank: 8Rank: 8

积分
6417
金钱
5258
HASS币
30
发表于 2018-9-1 17:58:46 | 显示全部楼层
trigger:是触发条件,condition: 是环境条件,and是用于有多个环境条件,不是和触发条件and。

   condition:
      - condition: time
        before: '07:00:00'
        after: '19:00:00'
befor:之前,after:之后
回复

使用道具 举报

13

主题

92

帖子

340

积分

论坛积极会员

积分
340
金钱
248
HASS币
0
 楼主| 发表于 2018-9-1 18:13:08 | 显示全部楼层
xuyang 发表于 2018-9-1 17:58
trigger:是触发条件,condition: 是环境条件,and是用于有多个环境条件,不是和触发条件and。

   conditio ...

请问一下,如果要满足两个触发条件才能触发,应该怎么写呢?
回复

使用道具 举报

72

主题

1154

帖子

6417

积分

论坛元老

Rank: 8Rank: 8

积分
6417
金钱
5258
HASS币
30
发表于 2018-9-1 18:18:59 | 显示全部楼层
触发条件可以多条,满足一个就触发
回复

使用道具 举报

72

主题

1154

帖子

6417

积分

论坛元老

Rank: 8Rank: 8

积分
6417
金钱
5258
HASS币
30
发表于 2018-9-1 18:20:14 | 显示全部楼层
trigger:
  xxxx
trigger:
  xxxx
回复

使用道具 举报

13

主题

92

帖子

340

积分

论坛积极会员

积分
340
金钱
248
HASS币
0
 楼主| 发表于 2018-9-1 18:20:34 | 显示全部楼层
xuyang 发表于 2018-9-1 18:18
触发条件可以多条,满足一个就触发

谢谢回复~可以写成,必须要满足两个触发条件和一个环境条件才能触发吗?该怎么写呢?
回复

使用道具 举报

35

主题

533

帖子

2887

积分

金牌会员

Rank: 6Rank: 6

积分
2887
金钱
2354
HASS币
0
发表于 2018-9-1 19:06:11 | 显示全部楼层
第一个自动化,只有一个条件,不需要写and吧。
    condition:  #开始写条件了哦
      - condition: time
        after: '19:00:00'
        before: '07:00:00'
但这个可能不会影响什么。

你如果需要在19:00-7:00开启,after和before反过来试试~
回复

使用道具 举报

72

主题

1154

帖子

6417

积分

论坛元老

Rank: 8Rank: 8

积分
6417
金钱
5258
HASS币
30
发表于 2018-9-1 19:13:37 | 显示全部楼层
写一下两个自动化A,B,B先不启用,触发A后,再启用B,就可以实现了
回复

使用道具 举报

13

主题

92

帖子

340

积分

论坛积极会员

积分
340
金钱
248
HASS币
0
 楼主| 发表于 2018-9-1 19:29:35 | 显示全部楼层
debitus 发表于 2018-9-1 19:06
第一个自动化,只有一个条件,不需要写and吧。[code]    condition:  #开始写条件 ...

谢谢~~~~~
回复

使用道具 举报

13

主题

92

帖子

340

积分

论坛积极会员

积分
340
金钱
248
HASS币
0
 楼主| 发表于 2018-9-1 19:30:39 | 显示全部楼层
debitus 发表于 2018-9-1 19:06
第一个自动化,只有一个条件,不需要写and吧。[code]    condition:  #开始写条件 ...

谢谢~~~~
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-6-30 02:58 , Processed in 0.050793 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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