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

 找回密码
 立即注册
查看: 769|回复: 7

[求助] 关于判断日期时间的自动化怎么写

[复制链接]

6

主题

54

帖子

514

积分

论坛积极会员

积分
514
金钱
460
HASS币
0
发表于 2023-10-16 09:21:00 | 显示全部楼层 |阅读模式
本帖最后由 fengzd 于 2023-10-16 09:24 编辑

我想设置一个自动化,每次密码锁启动离家模式(由sensor.0x54ef4410007afb46_lock_event触发)后,系统会自动判断如果现在距离扫地机器人上次清扫时间(根据sensor.roborock_s5_last_clean_end获取)在20小时以上了,就启动扫地机器人(vacuum.roborock_s5),我不知道这个时间判断要怎么写。烦请大神指点。
我之前用的是time条件,有两个问题一是time条件好像不能进行偏移运算,无法判断20小时以上;二是time只判读时间,不判断日期,无法满足条件。

我之前的代码:
alias: 离家模式启动扫地机
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.0x54ef4410007afb46_lock_event
    to: Away-from-home mode is enabled
condition:
  - condition: time
    after: sensor.roborock_s5_last_clean_end
action:
  - device_id: 3e7dab7fd79dbaa0cad70d019092b10a
    domain: vacuum
    entity_id: vacuum.roborock_s5
    type: clean
mode: single




回复

使用道具 举报

76

主题

1358

帖子

1万

积分

元老级技术达人

积分
18475
金钱
17077
HASS币
290
发表于 2023-10-16 09:51:49 | 显示全部楼层
本帖最后由 dscao 于 2023-10-16 09:53 编辑

如果 sensor.roborock_s5_last_clean_end 值的格式为: 2023-10-16 9:48:03

可以这样试一下:

alias: 离家模式启动扫地机
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.0x54ef4410007afb46_lock_event
    to: Away-from-home mode is enabled
condition:
  - condition: template
    value_template: >-
      {{((as_timestamp(now()) - as_timestamp(strptime(states('sensor.roborock_s5_last_clean_end'),
      '%Y-%m-%d %H:%M:%S', ''))) / 3600)>20 }}
action:
  - device_id: 3e7dab7fd79dbaa0cad70d019092b10a
    domain: vacuum
    entity_id: vacuum.roborock_s5
    type: clean
mode: single


回复

使用道具 举报

6

主题

54

帖子

514

积分

论坛积极会员

积分
514
金钱
460
HASS币
0
 楼主| 发表于 2023-10-16 10:42:55 | 显示全部楼层
dscao 发表于 2023-10-16 09:51
如果 sensor.roborock_s5_last_clean_end 值的格式为: 2023-10-16 9:48:03

可以这样试一下:

多谢,已经搞定
回复

使用道具 举报

54

主题

350

帖子

1563

积分

金牌会员

Rank: 6Rank: 6

积分
1563
金钱
1208
HASS币
0
发表于 2023-10-17 20:37:14 | 显示全部楼层
dscao 发表于 2023-10-16 09:51
如果 sensor.roborock_s5_last_clean_end 值的格式为: 2023-10-16 9:48:03

可以这样试一下:

大佬的我的sensor.shi_tou_g10s_last_clean_end是这么显示,也能用这个吗?是中文的 WechatIMG217.jpg
回复

使用道具 举报

76

主题

1358

帖子

1万

积分

元老级技术达人

积分
18475
金钱
17077
HASS币
290
发表于 2023-10-17 20:51:38 | 显示全部楼层
lichao622 发表于 2023-10-17 20:37
大佬的我的sensor.shi_tou_g10s_last_clean_end是这么显示,也能用这个吗?是中文的
...

最好用开发者工具显示这个实体的状态内容,这个日志有可能已经转化过了。
如果是这样也可以,格式那里改成一致就行了。
回复

使用道具 举报

54

主题

350

帖子

1563

积分

金牌会员

Rank: 6Rank: 6

积分
1563
金钱
1208
HASS币
0
发表于 2023-10-17 21:08:31 | 显示全部楼层
dscao 发表于 2023-10-17 20:51
最好用开发者工具显示这个实体的状态内容,这个日志有可能已经转化过了。
如果是这样也可以,格式那里改成 ...

看到了,是这么显示的:2023-10-17T13:03:35+00:00,格式也不是您说的那个格式,请问大佬,这个应该怎么写。感谢
回复

使用道具 举报

76

主题

1358

帖子

1万

积分

元老级技术达人

积分
18475
金钱
17077
HASS币
290
发表于 2023-10-17 21:15:08 | 显示全部楼层
本帖最后由 dscao 于 2023-10-17 21:17 编辑
lichao622 发表于 2023-10-17 21:08
看到了,是这么显示的:2023-10-17T13:03:35+00:00,格式也不是您说的那个格式,请问大佬,这个应该怎么 ...

试试换成这样的:

value_template: >-
       {{((as_timestamp(now()) - as_timestamp(strptime(states('sensor.shi_tou_g10s_last_clean_end'),
      '%Y-%m-%dT%H:%M:%S+00:00', ''))) / 3600)>20+8 }}


回复

使用道具 举报

54

主题

350

帖子

1563

积分

金牌会员

Rank: 6Rank: 6

积分
1563
金钱
1208
HASS币
0
发表于 2023-10-17 22:12:18 | 显示全部楼层
dscao 发表于 2023-10-17 21:15
试试换成这样的:

好的感谢,我去试试。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-2 10:38 , Processed in 0.540074 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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