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

 找回密码
 立即注册
查看: 5556|回复: 10

[求助] 如何执行节假日或工作日自动化?

[复制链接]

8

主题

36

帖子

187

积分

注册会员

Rank: 2

积分
187
金钱
151
HASS币
0
发表于 2022-5-12 10:47:59 来自手机 | 显示全部楼层 |阅读模式
我想让我卧室的灯在工作日打开,在节假日早上不打开,我应该在自动化中怎么操作?
回复

使用道具 举报

7

主题

349

帖子

3231

积分

论坛元老

Rank: 8Rank: 8

积分
3231
金钱
2882
HASS币
0
发表于 2022-5-12 11:12:02 | 显示全部楼层
先搞个工作日sensor。
简单的用官方有workday集成:https://www.home-assistant.io/integrations/workday/
高级点的可以自己找api做restapi sensor。
然后自动化里面用这个sensor做condition
回复

使用道具 举报

10

主题

141

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
897
HASS币
0
发表于 2022-5-12 11:28:27 | 显示全部楼层
回复

使用道具 举报

5

主题

357

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
金钱
1685
HASS币
60
发表于 2022-5-12 12:08:08 | 显示全部楼层
本帖最后由 muxiachuixue 于 2022-12-4 16:03 编辑

把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为工作日和节假日,可以用来作为自动化的环境条件。离线版的要借助于node-red的文件存储,只需要把下面resource_template地址换成本地地址即可,如http://192.168.0.23:8123/local/cn_workdays.json
#https://github.com/NateScarlet/holiday-cn
rest:
  - scan_interval: 3600
    resource_template: https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{{ now().strftime('%Y') }}.json
    sensor:   
      - name: cn_workdays
        value_template: |-
          {%- set today = now().strftime('%Y-%m-%d') %}
          {%- set lst = (value_json | default({},true)).days | default([]) %}
          {%- set ns = namespace(isOffDay=None) %} 
          {%- for d in lst %}
          {%-   if today == (d.date | default(None)) %}
          {%-     set ns.isOffDay = (d.isOffDay | default(None)) %}      
          {%-   endif %}
          {%- endfor %}
          {%- set isOffDay = ns.isOffDay %}
          {%- if not isOffDay in [True,False] %} 
          {%-   if now().isoweekday() in [6,7] %}
          {%-     set isOffDay = True %}
          {%-   else %}
          {%-     set isOffDay = False %}
          {%-   endif %}
          {%- endif %}
          {%- if isOffDay == True %}
            节假日
          {%- elif isOffDay == False %}
            工作日
          {%- else %}
            unknown
          {%- endif %}
        json_attributes:
          - year
          - papers

评分

参与人数 1金钱 +5 收起 理由
sun5025 + 5 老哥帮我看看

查看全部评分

回复

使用道具 举报

5

主题

471

帖子

2114

积分

金牌会员

Rank: 6Rank: 6

积分
2114
金钱
1643
HASS币
0
发表于 2022-5-12 17:10:51 | 显示全部楼层
muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...

感谢大佬分享!
回复

使用道具 举报

0

主题

9

帖子

144

积分

注册会员

Rank: 2

积分
144
金钱
135
HASS币
0
发表于 2022-5-14 22:42:15 | 显示全部楼层
muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...

很奇怪,5月8,9号是节假日判断是正常。今天5月14判断成了工作日不知道为啥
回复

使用道具 举报

5

主题

357

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
金钱
1685
HASS币
60
发表于 2022-5-15 09:56:04 | 显示全部楼层
Terrybusy 发表于 2022-5-14 22:42
很奇怪,5月8,9号是节假日判断是正常。今天5月14判断成了工作日不知道为啥 ...

我的正常啊,是不是哪里复制错了,看一下历史记录
回复

使用道具 举报

0

主题

11

帖子

67

积分

注册会员

Rank: 2

积分
67
金钱
56
HASS币
0
发表于 2022-10-4 08:42:46 | 显示全部楼层
muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...

感谢分享
回复

使用道具 举报

12

主题

40

帖子

133

积分

注册会员

Rank: 2

积分
133
金钱
93
HASS币
0
发表于 2022-11-8 17:30:48 | 显示全部楼层
muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...

xclkrDBYps.png
老哥帮我看看 我添加状态没有工作日 节假日选项啊?怎么实现自动化状态?
回复

使用道具 举报

5

主题

357

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
金钱
1685
HASS币
60
发表于 2022-11-8 22:15:42 | 显示全部楼层
sun5025 发表于 2022-11-8 17:30
老哥帮我看看 我添加状态没有工作日 节假日选项啊?怎么实现自动化状态?
...

代码里面resource_template改成下面这个,原来的网址失效了
resource_template: https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{{ now().strftime('%Y') }}.json

评分

参与人数 1金钱 +5 收起 理由
sun5025 + 5 厉害了word楼主!

查看全部评分

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 07:32 , Processed in 0.249501 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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