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

 找回密码
 立即注册
查看: 3390|回复: 19

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

[复制链接]

3

主题

36

帖子

422

积分

中级会员

Rank: 3Rank: 3

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




1.jpeg
回复

使用道具 举报

2

主题

370

帖子

2532

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

17

主题

255

帖子

1887

积分

金牌会员

Rank: 6Rank: 6

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

评分

参与人数 1金钱 +8 收起 理由
大道宽又长 + 8 学到了

查看全部评分

回复

使用道具 举报

7

主题

48

帖子

562

积分

高级会员

Rank: 4

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

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

回复

使用道具 举报

22

主题

625

帖子

2841

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

3

主题

36

帖子

422

积分

中级会员

Rank: 3Rank: 3

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

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

使用道具 举报

3

主题

36

帖子

422

积分

中级会员

Rank: 3Rank: 3

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

谢谢大佬的思路
回复

使用道具 举报

13

主题

637

帖子

3287

积分

论坛元老

HomeAssistant

Rank: 8Rank: 8

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

使用道具 举报

0

主题

32

帖子

244

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

0

主题

53

帖子

475

积分

中级会员

Rank: 3Rank: 3

积分
475
金钱
422
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, 下载次数: 58

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-1-22 09:15 , Processed in 0.063414 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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