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

 找回密码
 立即注册
查看: 13948|回复: 12

求助:如何用两个人体传感器控制一个灯

[复制链接]

10

主题

198

帖子

1791

积分

金牌会员

Rank: 6Rank: 6

积分
1791
金钱
1593
HASS币
0
发表于 2018-8-4 20:02:18 | 显示全部楼层 |阅读模式
本人小白,只会简单的程序照抄。
为保证卫生间灯,可以在洗澡和如厕时正常使用,安装了两个小米人体传感器。
自动化如下,问题是
偶尔
人离开时,卫生间灯常亮,不熄灭。
看看我的问题出在哪?是否有更简单有效的写法?

- alias: toilet_light
  trigger:
    - platform: state
      entity_id: binary_sensor.motion_sensor_158d000120****
      to: 'on'
    - platform: state
      entity_id: binary_sensor.motion_sensor_158d00023e****
      to: 'on'
  action:
    service: homeassistant.turn_on
    entity_id: switch.toilet_light
  id: 9adf4f0cb6f54470971c8b787942****
- alias: Turn off light 3 minutes after last movement
  trigger:
    platform: state
    entity_id: binary_sensor.motion_sensor_158d000120c950
    to: 'off'
    for:
      minutes: 2
  condition:
    condition: state
    entity_id: binary_sensor.motion_sensor_158d00023ea99d
    state: 'off'
    for:
      minutes: 2
  action:
    service: homeassistant.turn_off
    entity_id: switch.toilet_light

回复

使用道具 举报

30

主题

493

帖子

4795

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4795
金钱
4287
HASS币
156

教程狂人

发表于 2018-8-4 22:30:26 | 显示全部楼层
我的想法是建立 2 個自動化
第一個自動化 - 感應器1_on or 感應器2_on 觸發 -> 燈亮
第二個自動化 - 感應器1_off and 感應器2_off 觸發 -> 燈熄
回复

使用道具 举报

4

主题

113

帖子

515

积分

高级会员

Rank: 4

积分
515
金钱
402
HASS币
0
发表于 2018-8-8 05:08:56 | 显示全部楼层
本帖最后由 aemetec 于 2018-8-8 05:12 编辑

首先可以将to: 'off' 改成 state: 'off' 试一下看是否可行?如果不行,就按下面增加一个自动化判断逻辑。

- alias: Turn off light 3 minutes after last movement -1
  trigger:
    platform: state
    entity_id: binary_sensor.motion_sensor_158d000120c950
    to: 'off'
    for:
      minutes: 2
  condition:
    condition: state
    entity_id: binary_sensor.motion_sensor_158d00023ea99d
    state: 'off'
    for:
      minutes: 2
  action:
    service: homeassistant.turn_off
    entity_id: switch.toilet_light
第一个状态从on到off的状态翻转时,如果第二个已经是off,则可以关灯,但如果第二个此时是on则不会关灯,但第一个触发条件已经执行了,所以不会再有下一次触发的机会了。最简单办法是再增加一个自动化将第一第二反过来再写一次,让第二个传感器翻转时触发判断第一个已经off,自然就可以将关灯逻辑判断全了。

增加的自动化如下:
- alias: Turn off light 3 minutes after last movement -2
  trigger:
    platform: state
    entity_id: binary_sensor.motion_sensor_158d00023ea99d
    to: 'off'
    for:
      minutes: 2
  condition:
    condition: state
    entity_id: binary_sensor.motion_sensor_158d000120c950
    state: 'off'
    for:
      minutes: 2
  action:
    service: homeassistant.turn_off
    entity_id: switch.toilet_light
其实就是将两个传感器颠倒再写一个自动化判断。
回复

使用道具 举报

1

主题

96

帖子

499

积分

中级会员

Rank: 3Rank: 3

积分
499
金钱
402
HASS币
0
发表于 2018-9-6 19:58:03 | 显示全部楼层
将两个自动化合并成一个。两个人体感应各自开关都将触发自动化,其中哪一个状态ON都会开灯,两个状态同时为OFF时关灯
  - alias: Turn off light 3 minutes after last movement
    initial_state: true
    trigger:
      - platform: state
        entity_id:
          - binary_sensor.motion_sensor_xxxxx
          - binary_sensor.motion_sensor_yyyyy
    action:
      - service: script.turn_on
        data_template:
          entity_id: >
            {% if is_state('binary_sensor.motion_sensor_xxxxx', 'on') or is_state('binary_sensor.motion_sensor_yyyyy', 'on') %}
              switch.toilet_light
            {% endif %}
      - service: script.turn_off
        data_template:
          entity_id: >
            {% if is_state('binary_sensor.motion_sensor_xxxxx', 'off') and is_state('binary_sensor.motion_sensor_yyyyy', 'off') %}
              switch.toilet_light
            {% endif %}
回复

使用道具 举报

2

主题

180

帖子

2785

积分

金牌会员

Rank: 6Rank: 6

积分
2785
金钱
2605
HASS币
0
发表于 2019-3-26 19:36:59 | 显示全部楼层
幻苍狼 发表于 2018-9-6 19:58
将两个自动化合并成一个。两个人体感应各自开关都将触发自动化,其中哪一个状态ON都会开灯,两个状态同时为 ...

你好,我借用了一下这个代码,如果其中一个传感器带光感呢,怎么写呢?试了一下午都没搞定。
回复

使用道具 举报

1

主题

96

帖子

499

积分

中级会员

Rank: 3Rank: 3

积分
499
金钱
402
HASS币
0
发表于 2019-4-15 12:18:46 | 显示全部楼层
yjnomm 发表于 2019-3-26 19:36
你好,我借用了一下这个代码,如果其中一个传感器带光感呢,怎么写呢?试了一下午都没搞定。 ...

在开灯的or判断后面再加个and判断光照强度
回复

使用道具 举报

2

主题

180

帖子

2785

积分

金牌会员

Rank: 6Rank: 6

积分
2785
金钱
2605
HASS币
0
发表于 2019-5-22 00:35:37 | 显示全部楼层
幻苍狼 发表于 2019-4-15 12:18
在开灯的or判断后面再加个and判断光照强度

光照强度的格式应该是怎么样的?我试过int < 15 ) %}这种的,不行!
回复

使用道具 举报

7

主题

227

帖子

2258

积分

论坛积极会员

积分
2258
金钱
2031
HASS币
0
发表于 2019-6-29 22:30:07 | 显示全部楼层
  - alias: livingroom light on
    hide_entity: false
    initial_state: true
    trigger:
     - platform: state
       entity_id: binary_sensor.door_window_sensor_158d0003d40c32
       from: 'off'
       to: 'on'
    action:
      - service: switch.turn_on
        entity_id: switch.livingroom_light_8e9d56

借大神帖子请教问题。我是门窗感应器来控制客厅灯。我想在19:00-5:00这个时间段内触发门窗感应器客厅灯开,其他时间客厅灯关闭,这个需要怎么操作。大神求支招
回复

使用道具 举报

10

主题

198

帖子

1791

积分

金牌会员

Rank: 6Rank: 6

积分
1791
金钱
1593
HASS币
0
 楼主| 发表于 2019-6-29 22:44:34 | 显示全部楼层
zjp0225 发表于 2019-6-29 22:30
- alias: livingroom light on
    hide_entity: false
    initial_state: true

加入条件
condition:
  condition: time
  after: '17:00:00'
  before: '05:00:00'
回复

使用道具 举报

7

主题

227

帖子

2258

积分

论坛积极会员

积分
2258
金钱
2031
HASS币
0
发表于 2019-6-30 11:56:33 | 显示全部楼层
sdhuaren 发表于 2019-6-29 22:44
加入条件
condition:
  condition: time

谢谢,已经成功。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 16:50 , Processed in 0.055034 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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