本帖最后由 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
|