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

 找回密码
 立即注册
查看: 3615|回复: 7

[技术探讨] 请问自动化的触发条件能选日期或者星期几吗?

[复制链接]

9

主题

29

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
金钱
267
HASS币
0
发表于 2022-3-8 20:12:40 | 显示全部楼层 |阅读模式
想工作日早上开灯,HA应该没法获取工作日的日历;退而求其次,周一到周五早上开灯。
但触发条件只有时间可选,那就只能每天都开?

1.png
回复

使用道具 举报

18

主题

238

帖子

2651

积分

金牌会员

Rank: 6Rank: 6

积分
2651
金钱
2413
HASS币
0
发表于 2022-3-8 20:28:24 | 显示全部楼层
node-red-contrib-light-scheduler         nodered安装这个节点试试,肯定不是最优解,但是说到底还是能解
回复

使用道具 举报

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24360
金钱
22929
HASS币
290
发表于 2022-3-8 20:29:15 | 显示全部楼层
是否工作日的帖子有很多,都是可以用的,选一种就行了:
https://bbs.hassbian.com/thread-11853-1-1.html
https://bbs.hassbian.com/thread-14672-1-1.html
https://bbs.hassbian.com/thread-13304-1-1.html

加一条环境条件:工作日为真

就行了。
回复

使用道具 举报

35

主题

984

帖子

4744

积分

论坛元老

Rank: 8Rank: 8

积分
4744
金钱
3760
HASS币
20
发表于 2022-3-8 20:32:14 来自手机 | 显示全部楼层
HA就是解决你认为不可能但是已经实现了的自动化设置的,我窗帘和灯都是分工作日和节假日的
回复

使用道具 举报

0

主题

19

帖子

362

积分

中级会员

Rank: 3Rank: 3

积分
362
金钱
343
HASS币
0
发表于 2022-3-8 21:34:03 | 显示全部楼层
回复

使用道具 举报

0

主题

19

帖子

362

积分

中级会员

Rank: 3Rank: 3

积分
362
金钱
343
HASS币
0
发表于 2022-3-8 21:38:56 | 显示全部楼层
还有workday binary sensor,设定国家为CN即可。
https://www.home-assistant.io/integrations/workday/

上上面的time condition一起,这两个方法都是HA原生的
回复

使用道具 举报

24

主题

884

帖子

5055

积分

论坛元老

Rank: 8Rank: 8

积分
5055
金钱
4166
HASS币
20
发表于 2022-3-9 01:50:32 来自手机 | 显示全部楼层
触发设定固定时间,条件打勾周一至周五,
回复

使用道具 举报

5

主题

357

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
金钱
1685
HASS币
60
发表于 2022-3-9 09:16:09 | 显示全部楼层
下面的代码放到 configuration.yaml 里面,重启HA,会发现一个sensor.cn_workdays 实体,实体状态为“工作日”或“节假日”
rest:
  - scan_interval: 3600
    resource_template: https://natescarlet.coding.net/p/github/d/holiday-cn/git/raw/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
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 06:34 , Processed in 0.187927 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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