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

 找回密码
 立即注册
查看: 1928|回复: 3

[流程系列] 请教下,如何判断当前时间是否在指定的时间区间里

[复制链接]

20

主题

484

帖子

3158

积分

论坛元老

Rank: 8Rank: 8

积分
3158
金钱
2674
HASS币
8
发表于 2022-7-30 12:55:36 来自手机 | 显示全部楼层 |阅读模式
在hassos里有两个时间类型的辅助元素,在nr里获取到它们的值分别为文本“23:00:00”和“6:00:00”,想实现功能为:
当前系统时间在23:00:00~6:00:00之间为false,否则为true
这个需求如何编写?
回复

使用道具 举报

14

主题

430

帖子

2699

积分

金牌会员

Rank: 6Rank: 6

积分
2699
金钱
2269
HASS币
0
发表于 2022-7-30 21:20:19 来自手机 | 显示全部楼层
装个time range 节点,node-red-contrib-time-range-switch
回复

使用道具 举报

20

主题

484

帖子

3158

积分

论坛元老

Rank: 8Rank: 8

积分
3158
金钱
2674
HASS币
8
 楼主| 发表于 2022-7-30 22:00:07 | 显示全部楼层
ylilike 发表于 2022-7-30 21:20
装个time range 节点,node-red-contrib-time-range-switch

谢谢ylilike指点,已经测试成功了
在使用time range之前,没有什么好思路,用了个笨办法解决的:
function date1(a){
    var date = new Date();
    let day=date.getDate();
    let month = date.getMonth() + 1;
    return `${date.getFullYear()}-${month}-${day} ${a}`
}

dc=new Date();
ds=new Date(date1(flow.get('timestart')));
de=new Date(date1(flow.get('timeend')));

msg.payload=dc > ds && dc < de
return msg;


在使用time range时,开始不了解如何把获取的辅助元素中的时间值传递到节点里,经过一番折腾,看到帮助信息里有配置信息msg.__config可以传递变量,完美解决了我的需求。
回复

使用道具 举报

14

主题

430

帖子

2699

积分

金牌会员

Rank: 6Rank: 6

积分
2699
金钱
2269
HASS币
0
发表于 2022-7-31 11:35:35 | 显示全部楼层
cjnt007 发表于 2022-7-30 22:00
谢谢ylilike指点,已经测试成功了
在使用time range之前,没有什么好思路,用了个笨办法解决的 ...

我也跟着学了一招,呵呵
若然,一切若然~
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 01:19 , Processed in 0.053641 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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