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

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

〖已解决〗通过判断2个人体感应时间自动打开yeelight灯

[复制链接]

21

主题

463

帖子

2867

积分

金牌会员

Rank: 6Rank: 6

积分
2867
金钱
2404
HASS币
0
发表于 2018-7-1 22:29:22 | 显示全部楼层 |阅读模式
本帖最后由 showphi 于 2018-7-3 22:34 编辑

主要目的是为了实现通过触发2个人体感应先后顺序,判断是否开灯。人体感应1触发时间早于人体感应2并且在指定时间内就自动开关,写了以下自动化但是不起作用,求大神帮忙看看哪里有误!
- alias: auto_desklight_on
  initial_state: true
  trigger:
    - platform: state
      entity_id: binary_sensor.motion_sensor_158d000171ba5d
      from: 'off'
      to: 'on'
    - platform: state
      entity_id: binary_sensor.motion_sensor_158d0001d6676a
      from: 'off'
      to: 'on'
  condition:
    condition: and
    conditions:
    - condition: state
      entity_id: light.yeelight_rgb_34ce008b4b15
      state: 'off'
    - condition: template
      value_template: '{{ ( as_timestamp(states.binary_sensor.motion_sensor_158d0001d6676a.last_changed) - as_timestamp(states.binary_sensor.motion_sensor_158d000171ba5d.last_changed)) | int > 0 }}'
    - condition: time
      after: '17:00:00'
      before: '06:00:00'
  action:   
    - service: switch.turn_on
      entity_id: light.yeelight_rgb_34ce008b4b15


回复

使用道具 举报

14

主题

266

帖子

1640

积分

论坛技术达人

积分
1640
金钱
1354
HASS币
40

教程狂人

发表于 2018-7-2 08:42:08 | 显示全部楼层
last_change time是无法直接引用到自动化中的,对于触发的自动化来说,永远只计算automation当前时间而不是entity_id触发时间
回复

使用道具 举报

1

主题

143

帖子

479

积分

中级会员

Rank: 3Rank: 3

积分
479
金钱
336
HASS币
0
发表于 2018-7-2 10:45:13 | 显示全部楼层
我是这样做的,如果第一个先触发,然后第二个触发,就是进门,如果第二个先出发然后第一个触发就是出门。
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2018-7-2 13:47:26 | 显示全部楼层
我用 nodered 实现,ha自动化能实现这个方法?

主要是两个触发的时间HA我不知道怎么判断。

而且楼主,你是用什么人感。我是使用AM312但是速度太慢,以为AM312默认2秒延迟。我人走到房间内要2秒以上才会开灯。
Nero
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2018-7-2 13:53:27 | 显示全部楼层
750123208 发表于 2018-7-2 10:45
我是这样做的,如果第一个先触发,然后第二个触发,就是进门,如果第二个先出发然后第一个触发就是出门。 ...

问题是人进门口又出去呢?两个传感器都那么灯不是开着?

我是判断两个传感器之间的OFF时间,如果外面的OFF比里面的OFF迟,证明人最后是离开房间,相反就是进入房间。
Nero
回复

使用道具 举报

35

主题

533

帖子

2895

积分

金牌会员

Rank: 6Rank: 6

积分
2895
金钱
2362
HASS币
0
发表于 2018-7-3 01:15:05 | 显示全部楼层
你如果想要判断2个感应器的先后顺序,应该把他们分别写在trigger和condition两处。
trigger了A,然后判断感应器B的condition状态(两种,激活或未激活),这样就知道2个感应器的先后顺序了。
可以参考另外一位朋友的内容:
https://bbs.hassbian.com/thread-559-1-1.html
回复

使用道具 举报

14

主题

266

帖子

1640

积分

论坛技术达人

积分
1640
金钱
1354
HASS币
40

教程狂人

发表于 2018-7-3 12:41:43 | 显示全部楼层
neroxps 发表于 2018-7-2 13:53
问题是人进门口又出去呢?两个传感器都那么灯不是开着?

我是判断两个传感器之间的OFF时间,如果外面的O ...

同时使用trigger template 。 语法使用and,   A=on and b=OFF   , a=on and b=on  ,a=off and b=on ,
就可以来判断了。
回复

使用道具 举报

21

主题

463

帖子

2867

积分

金牌会员

Rank: 6Rank: 6

积分
2867
金钱
2404
HASS币
0
 楼主| 发表于 2018-7-3 20:06:43 | 显示全部楼层
neroxps 发表于 2018-7-2 13:47
我用 nodered 实现,ha自动化能实现这个方法?

主要是两个触发的时间HA我不知道怎么判断。

米家的,我只需要开灯,开灯之后基本人都会在,关灯语音控制
回复

使用道具 举报

21

主题

463

帖子

2867

积分

金牌会员

Rank: 6Rank: 6

积分
2867
金钱
2404
HASS币
0
 楼主| 发表于 2018-7-3 20:15:39 | 显示全部楼层
huex 发表于 2018-7-3 12:41
同时使用trigger template 。 语法使用and,   A=on and b=OFF   , a=on and b=on  ,a=off and b=on ,
就 ...

门磁搭配人体感应是好设置,因为我是楼梯一个人体感应,房间门口一个人体感应,房间门上虽然有门磁但基本都是开着的,所以没法通过门磁判断,只能用2个人体感应
回复

使用道具 举报

23

主题

660

帖子

3110

积分

论坛元老

Rank: 8Rank: 8

积分
3110
金钱
2450
HASS币
10
发表于 2018-7-5 21:29:20 | 显示全部楼层
楼主最后实现了没,想法不错,我也想试试
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 01:59 , Processed in 0.069607 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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