罐头 发表于 2022-5-12 10:47:59

如何执行节假日或工作日自动化?

我想让我卧室的灯在工作日打开,在节假日早上不打开,我应该在自动化中怎么操作?

yuyuye 发表于 2022-5-12 11:12:02

先搞个工作日sensor。
简单的用官方有workday集成:https://www.home-assistant.io/integrations/workday/
高级点的可以自己找api做restapi sensor。
然后自动化里面用这个sensor做condition

imwyh 发表于 2022-5-12 11:28:27

https://bbs.hassbian.com/thread-14672-1-1.html

muxiachuixue 发表于 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 %}
          {%-   if now().isoweekday() in %}
          {%-   set isOffDay = True %}
          {%-   else %}
          {%-   set isOffDay = False %}
          {%-   endif %}
          {%- endif %}
          {%- if isOffDay == True %}
            节假日
          {%- elif isOffDay == False %}
            工作日
          {%- else %}
            unknown
          {%- endif %}
      json_attributes:
          - year
          - papers

hyq 发表于 2022-5-12 17:10:51

muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...

感谢大佬分享!

Terrybusy 发表于 2022-5-14 22:42:15

muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...

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

muxiachuixue 发表于 2022-5-15 09:56:04

Terrybusy 发表于 2022-5-14 22:42
很奇怪,5月8,9号是节假日判断是正常。今天5月14判断成了工作日不知道为啥 ...

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

r55 发表于 2022-10-4 08:42:46

muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...

感谢分享

sun5025 发表于 2022-11-8 17:30:48

muxiachuixue 发表于 2022-5-12 12:08
把这段代码复制到 configuration.yaml 里面,然后重启HA,会发现多了一个cn_workdays 的实体,实体状态分为 ...


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

muxiachuixue 发表于 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] 2
查看完整版本: 如何执行节假日或工作日自动化?