jk_1 发表于 2024-2-20 08:45:32

自动化条件问题-距上一次设备关闭时间小于时长条件

本帖最后由 jk_1 于 2024-2-21 17:53 编辑

1. 触发条件:设备开启
2. 环境条件:跟上次关闭时间小于1小时(该条件不知道怎么写 胡乱试过下面写法也不对:{{ now() - states('media_player.sony_xr_75x90j').off.as_timestamp() < 3600 }})
3. 执行:关闭设备
trigger:
- platform: device
    type: turned_on
    device_id: 3c90eeec950ca2125d5cade55b543eb0
    entity_id: e9f8f574eda028193e5cbb720a6b4119
    domain: remote
    for:
      hours: 0
      minutes: 0
      seconds: 6
condition:
- condition: and
    conditions:
      - condition: time
      after: "08:00:00"
      before: "17:00:00"
      - condition: template
      value_template: " {{ now() - states('media_player.sony_xr_75x90j').off.as_timestamp() < 3600 }}"
action:
- type: turn_off
    device_id: 3c90eeec950ca2125d5cade55b543eb0
    entity_id: e9f8f574eda028193e5cbb720a6b4119
    domain: remote

求助!
贴一下最后的。感谢 Roger 及 cjnt007
alias: sony_lastoff
description: ""
trigger:
- platform: device
    device_id: 3c90eeec950ca2125d5cade55b543eb0
    domain: media_player
    entity_id: de4edf74613e55cd80e9a8fdc88b182e
    type: turned_off
condition: []
action: []
trigger:
- platform: device
    type: turned_on
    device_id: 3c90eeec950ca2125d5cade55b543eb0
    entity_id: e9f8f574eda028193e5cbb720a6b4119
    domain: remote
    for:
      hours: 0
      minutes: 0
      seconds: 6
condition:
- condition: time
    after: "08:00:00"
    before: "17:00:00"
- condition: template
    value_template: >-
      {{
      (as_timestamp(now())-as_timestamp(states.automation.sony_lastoff.last_updated))
      < 1800 }}
action:
- type: turn_off
    device_id: 3c90eeec950ca2125d5cade55b543eb0
    entity_id: e9f8f574eda028193e5cbb720a6b4119
    domain: remote
- delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
- service: xiaomi_miot.intelligent_speaker
    data:
      entity_id: media_player.xiaomi_l05c_2c30_play_control
      text: 请让电视机休息一会吧
      execute: false




Roger 发表于 2024-2-20 09:29:53

condition:
    condition: and
    conditions:
    - condition: template
      value_template: '{{ (as_timestamp(now())-as_timestamp(states.media_player.sony_xr_75x90j.last_updated)) < 3600 }}'      
    - condition: state
      entity_id: media_player.sony_xr_75x90j
      state: 'off'

sxrcm 发表于 2024-2-20 09:34:51

as_timestamp(trigger.event.data.new_state.last_changed) as_timestamp(trigger.event.data.old_state.last_changed)

jk_1 发表于 2024-2-20 12:21:13

Roger 发表于 2024-2-20 09:29

代码关于判断时长的语句可行
这里有个小问题:
1.现在电视打开了
2.我需要判断打开时间或现在时间距上次关闭的时长

cjnt007 发表于 2024-2-20 12:40:47

提供个笨办法:添加个日期时间辅助元素,另建一个自动化,当media_player.sony_xr_75x90j关闭时,把时间记录下来,再在以上的自动化里进行判断

jk_1 发表于 2024-2-20 12:46:37

二楼大神的代码似乎是可行的,我再测试测试

Roger 发表于 2024-2-20 15:15:05

jk_1 发表于 2024-2-20 12:46
二楼大神的代码似乎是可行的,我再测试测试

放心去用吧,不用谢:lol

jk_1 发表于 2024-2-21 16:39:56

cjnt007 发表于 2024-2-20 12:40
提供个笨办法:添加个日期时间辅助元素,另建一个自动化,当media_player.sony_xr_75x90j关闭时,把时间记 ...

用该方法,已成功。多谢!:lol

jk_1 发表于 2024-2-21 16:47:40

本帖最后由 jk_1 于 2024-2-21 18:06 编辑

jk_1 发表于 2024-2-20 12:46
二楼大神的代码似乎是可行的,我再测试测试
看了下,好像还是不太成
页: [1]
查看完整版本: 自动化条件问题-距上一次设备关闭时间小于时长条件