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

 找回密码
 立即注册
查看: 1650|回复: 18

[流程系列] 【求助】怎么让流程在每天固定时间段只触发一次

[复制链接]

3

主题

34

帖子

368

积分

中级会员

Rank: 3Rank: 3

积分
368
金钱
334
HASS币
0
发表于 2023-6-13 10:30:19 | 显示全部楼层 |阅读模式
写了个流程,想让小爱在每个工作日的上午6:30-8:00播报一次天气预报,如果下雨提示带伞之类的,并且推送消息到tg。
但是有个问题,现在会多次触发,想让这个流程只触发一次。
现有的思路是设置一个全局变量默认为false,如果执行完毕将全局变量设为true, 然后再加一个定时器在每天凌晨将这个变量还原为false,但是感觉这样很繁琐,有没有简单一点的实现方式




1.jpeg
回复

使用道具 举报

2

主题

341

帖子

2322

积分

金牌会员

Rank: 6Rank: 6

积分
2322
金钱
1976
HASS币
30
发表于 2023-6-13 11:28:55 | 显示全部楼层
你现在想法已经很简单了
做吧
回复

使用道具 举报

16

主题

234

帖子

1465

积分

金牌会员

Rank: 6Rank: 6

积分
1465
金钱
1231
HASS币
0
发表于 2023-6-13 11:40:24 | 显示全部楼层
Screenshot_2023-06-13-11-38-14-384_io.homeassistant.companion.android.jpg
回复

使用道具 举报

7

主题

48

帖子

550

积分

高级会员

Rank: 4

积分
550
金钱
502
HASS币
0
发表于 2023-6-13 13:27:54 | 显示全部楼层
本帖最后由 Valentine 于 2023-6-13 13:30 编辑

个人觉得加一个计数器的思路更简单,在传感器检测到有人时用计数器判断一下是否是当天的第一次检测到有人,如果是,就执行,反之则不执行。
当然计数器要设置一个每天清零的自动化。

回复

使用道具 举报

21

主题

554

帖子

2342

积分

金牌会员

Rank: 6Rank: 6

积分
2342
金钱
1788
HASS币
0
发表于 2023-6-13 13:49:59 | 显示全部楼层
Valentine 发表于 2023-6-13 13:27
个人觉得加一个计数器的思路更简单,在传感器检测到有人时用计数器判断一下是否是当天的第一次检测到有人, ...

我目前是这样做的,先辅助里新建一个计数器,然后在自动化执行中每执行一次给计数器+1,然后再单独新建一个初始化计数器的自动化,每天晚上定时给计数器初始化一下,第二天循环。
回复

使用道具 举报

3

主题

34

帖子

368

积分

中级会员

Rank: 3Rank: 3

积分
368
金钱
334
HASS币
0
 楼主| 发表于 2023-6-13 14:24:23 | 显示全部楼层

多谢大佬,还不知道这个inject模块有这个功能
回复

使用道具 举报

3

主题

34

帖子

368

积分

中级会员

Rank: 3Rank: 3

积分
368
金钱
334
HASS币
0
 楼主| 发表于 2023-6-13 14:26:00 | 显示全部楼层
Valentine 发表于 2023-6-13 13:27
个人觉得加一个计数器的思路更简单,在传感器检测到有人时用计数器判断一下是否是当天的第一次检测到有人, ...

谢谢大佬的思路
回复

使用道具 举报

12

主题

417

帖子

2296

积分

金牌会员

HomeAssistant

Rank: 6Rank: 6

积分
2296
金钱
1874
HASS币
20
发表于 2023-6-13 17:13:30 | 显示全部楼层
在判断是否为工作日后面加一个filter过滤相同信息就行,这样最简单
回复

使用道具 举报

0

主题

30

帖子

201

积分

中级会员

Rank: 3Rank: 3

积分
201
金钱
171
HASS币
0
发表于 2023-6-15 21:58:03 | 显示全部楼层
分享一下呗
回复

使用道具 举报

0

主题

46

帖子

402

积分

中级会员

Rank: 3Rank: 3

积分
402
金钱
356
HASS币
0
发表于 2023-6-16 14:08:03 | 显示全部楼层
node-red-contrib-counter  
node-red-contrib-time-range-switch
添加上面节点
[
    {
        "id": "69046ac987cc03cf",
        "type": "switch",
        "z": "5734632741bfa5d8",
        "name": "",
        "property": "count",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "1",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 590,
        "y": 420,
        "wires": [
            []
        ]
    },
    {
        "id": "24a23932863897ff",
        "type": "inject",
        "z": "5734632741bfa5d8",
        "name": "每日6点归零",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "reset",
                "v": "count",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "00 06 * * *",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 260,
        "y": 500,
        "wires": [
            [
                "44d215ba8f100c8a"
            ]
        ]
    },
    {
        "id": "6a9fc8233d23172c",
        "type": "comment",
        "z": "5734632741bfa5d8",
        "name": "每天早上6:30-8:30自动开启窗帘执行一次",
        "info": "限定自动化的执行并于次日自动归零\n    用counter节点计数,人体感应每触发一次,\n    数字加1,接着在后面添加一个switch节点,\n    限制为数字1才允许通过,也就是每天的第一\n    次触发\n",
        "x": 200,
        "y": 360,
        "wires": []
    },
    {
        "id": "5e9ae710d18ea542",
        "type": "comment",
        "z": "5734632741bfa5d8",
        "name": "限定自动化的执行并于次日自动归零",
        "info": "限定自动化的执行并于次日自动归零\n    用counter节点计数,人体感应每触发一次,\n    数字加1,接着在后面添加一个switch节点,\n    限制为数字1才允许通过,也就是每天的第一\n    次触发\n",
        "x": 480,
        "y": 460,
        "wires": []
    },
    {
        "id": "44d215ba8f100c8a",
        "type": "counter",
        "z": "5734632741bfa5d8",
        "name": "",
        "init": "0",
        "step": "1",
        "lower": null,
        "upper": null,
        "mode": "increment",
        "outputs": 1,
        "x": 440,
        "y": 420,
        "wires": [
            [
                "69046ac987cc03cf"
            ]
        ]
    },
    {
        "id": "4e92bd136f9d86b3",
        "type": "time-range-switch",
        "z": "5734632741bfa5d8",
        "name": "",
        "lat": "114.2835",
        "lon": "30.6151",
        "startTime": "6:30",
        "endTime": "8:30",
        "startOffset": 0,
        "endOffset": 0,
        "x": 270,
        "y": 420,
        "wires": [
            [
                "44d215ba8f100c8a"
            ],
            []
        ]
    }
]

执行一次次日归零.rar

966 Bytes, 下载次数: 18

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 23:25 , Processed in 0.058245 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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