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

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

[求助] 大佬帮我看个自动化,不执行,搞不懂哪里问题

[复制链接]

19

主题

707

帖子

4054

积分

元老级技术达人

积分
4054
金钱
3337
HASS币
60
发表于 2019-8-28 21:48:02 | 显示全部楼层 |阅读模式
两个测距,一个人体传感器来判断卫生间有没有人,没人关灯。

判断条件是测距大于165持续40秒,然后继续判断人体状态为off,另一个测距大于95,条件全部满足关灯。

小米人体on转off是2分钟,但实际测试情况是,即便我一触发人体开灯后马上离开卫生间,关灯也是超过2分钟的。

- alias: 主卫无人关灯
  initial_state: true
  trigger:
    - platform: numeric_state
      entity_id: 'sensor.zwcj1'
      above: 165
      for:
#        minutes: 1
        seconds: 40
  condition:  #condition-条件:就是要达到下面这些条件,才会继续执行命令
    condition: and  #condition:and-一起满足以下这些条件才会动作
    conditions:  #开始写条件了哦
      - condition: state  #第二个条件:设备状态
        entity_id: binary_sensor.motion_sensor_158d0003d145d1 #主卫人体传感
        state: 'off' #(state)状态:(off)关闭-意思就是如果关闭的    
      - condition: numeric_state  #第二个条件:设备状态
        entity_id: 'sensor.zwcj2' #主卫测距2
        above: 95  #(state)状态:(off)关闭-意思就是如果关闭的   

  action:
    - service: switch.turn_off
      entity_id: switch.lightswitch   #主卫灯


回复

使用道具 举报

175

主题

2967

帖子

7608

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7608
金钱
4616
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2019-8-29 01:11:16 | 显示全部楼层
本帖最后由 jyz_0501 于 2019-8-29 01:16 编辑

你这个触发条件应该是不触发的。
https://www.home-assistant.io/docs/automation/trigger/
numeric_state 的 for超时 我没用过 这个你需要看一下。

你可以使用排除法检测,去掉所有条件,看看触发是否正常。
action看着是正确的,可以手动触发下自动化,看看是否关灯。
如果去掉所有条件可以触发,那么两个条件同时满足 是否有问题?
回复

使用道具 举报

8

主题

2075

帖子

6067

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6067
金钱
3992
HASS币
145

灌水之王

发表于 2019-8-29 07:13:43 | 显示全部楼层
持续40秒后 你的人体很大概率是on的 然后条件不成立
然后没有然后了不会触发了!
而且你还有第二个测距  不稳定因素太多
回复

使用道具 举报

73

主题

1165

帖子

6681

积分

论坛元老

Rank: 8Rank: 8

积分
6681
金钱
5511
HASS币
30
发表于 2019-8-29 09:01:25 | 显示全部楼层
大于165的触发条件只能触发一次。
比如在166大于165时,触发,环境条件不满足,灯不关。
在167大于165时,就不会再次触发,即时环境条件满足也没有用。

要想实现该功能只是用at:time,来触发,每隔10秒检测一次。
回复

使用道具 举报

19

主题

707

帖子

4054

积分

元老级技术达人

积分
4054
金钱
3337
HASS币
60
 楼主| 发表于 2019-8-29 09:17:08 | 显示全部楼层
本帖最后由 houhd 于 2019-8-29 09:37 编辑
xuyang 发表于 2019-8-29 09:01
大于165的触发条件只能触发一次。
比如在166大于165时,触发,环境条件不满足,灯不关。
在167大于165时, ...

谢谢,就是说检测到大于165持续40秒后,如果其他条件不满足就不执行,除非条件小于165,然后再次大于165且持续40秒后才能再次触发自动化并且检测其他环境条件是吗?用time来做触发条件,有个问题,就是把测距作为环境条件写的话,不能写测距持续时间,误判的概率会增高。按你的建议改成按时间每40秒触发一次了,先试试看误触概率,呵呵。

- alias: 主卫无人关灯
  initial_state: true
  trigger:
    - platform: time_pattern
#      minutes: '/1'
      seconds: '/40'
  condition:  #condition-条件:就是要达到下面这些条件,才会继续执行命令
    condition: and  #condition:and-一起满足以下这些条件才会动作
    conditions:  #开始写条件了哦
      - condition: state  #第二个条件:设备状态
        entity_id: binary_sensor.motion_sensor_158d0003d145d1 #主卫人体传感
        state: 'off' #(state)状态:(off)关闭-意思就是如果关闭的  
      - condition: state  #第二个条件:设备状态
        entity_id: switch.lightswitch #主卫灯
        state: 'on' #(state)状态:(off)关闭-意思就是如果关闭的           
      - condition: numeric_state  #第二个条件:设备状态
        entity_id: 'sensor.zwcj2' #主卫测距2
        above: '95'  #大于95
      - condition: numeric_state  #第二个条件:设备状态
        entity_id: 'sensor.zwcj1' #主卫测距2
        above: '165'  #大于165         
  action:
    - service: switch.turn_off
      entity_id: switch.lightswitch   #主卫灯


回复

使用道具 举报

73

主题

1165

帖子

6681

积分

论坛元老

Rank: 8Rank: 8

积分
6681
金钱
5511
HASS币
30
发表于 2019-8-29 10:05:29 | 显示全部楼层
本帖最后由 xuyang 于 2019-8-29 10:07 编辑

应该是这样。我以前遇到一个自动化,苦恼了很久。
- id: '1525773263042'
  initial_state: true
  alias: a022     #加湿器开
  trigger:
  - platform: time_pattern
    minutes: '/1'
    seconds: '0'
  condition:
    condition: and
    conditions:
      - condition: time
        after: '19:01:00'
        before: '04:00:00'
      - condition: numeric_state
        entity_id: sensor.mi_ly_sd
        below: 55
      - condition: state
        entity_id: switch.201_sw1
        state: 'off'
  action:
  - service: switch.turn_on


湿度小于55,环境条件:时间在晚上7点到凌晨4点之间,打开加湿器,用湿度作为条件来触发,时灵时不灵。原因就是如此。在湿度是54时,触发条件,但是环境条件不满足,导致无法动作。等到环境条件满足了,就不触发了。
后来,改为每分钟触发一次,使用至今,一切正常,如我所愿。
另外:睡眠时,卧室保持一定湿度,对睡眠质量有提高。
回复

使用道具 举报

0

主题

45

帖子

131

积分

注册会员

Rank: 2

积分
131
金钱
86
HASS币
0
发表于 2019-9-4 10:05:25 | 显示全部楼层
学到了,避免踩坑,感谢楼主分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-28 23:49 , Processed in 0.095103 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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