找回密码
 立即注册

微信扫码登录

搜索
查看: 2058|回复: 8

[基础教程] 分享,工作日判定的三种方法

[复制链接]

37

主题

165

回帖

1002

积分

金牌会员

积分
1002
金钱
800
HASS币
0
发表于 2024-5-13 19:45:24 | 显示全部楼层 |阅读模式
本帖最后由 yun59t 于 2024-5-22 09:42 编辑

本人纯小白,3月底开始摸索ha的使用,从论坛里找了很多大佬做的教程,也分享下自己的使用心得。工作日判定,主要用于联动自动化,比如区分工作日和周末开关灯、电器的时间等。
此次分享的三个有效的方法、一个未实践过的方法,分别是:
1、基于node-red的每年需要手动设置一次节假日的手动修正法。此方法需要每年自己手动修正日期一次,优点是不用去找api,不怕过期。基于liaozhihong修改
2、基于node-red的调取网上免费api获取工作日节假日的api调用法;此方法只要api不挂,就能一直用。基于群里各帖子,通过chatjpt实现。
3、官方有个Workday集成,可以用来判定工作日、节假日。此方法存在一个缺陷,无法将个别周末调成工作日。
4、直接在ha的nfiguration.yaml配置文件中新增一个工作日传感器。这个方法与Workday集成冲突,我实践失败。此方法如果可行,就是纯ha不依赖nodered的方法1。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一/二、基于node-red的手动修正法、api调用法:①先将flows.json文件导入noed red;
②如果用api法,自己去申请个免费的api;
Snipaste_2024-05-22_08-53-43.png
③部署后,会在ha的node red集成中形成传感器,开启表示工作日,关闭表示休息日(不上班的周末+节假日)。
Snipaste_2024-05-22_09-01-20.png
手动法、api法flows.zip (3.06 KB, 下载次数: 3)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
三、官方有个Workday集成,可以用来判定工作日、节假日。
但是,因为中国的节假每年都在调,所以需要手工调整每年的节假,这就出现了两个问题:
①每年都要对节假进行一次手工增加;
②周六、周日,无法添加成工作日。(谁会的,可以在帖子下留言,具体怎么改)
③workday集成链接:https://www.home-assistant.io/integrations/workday
------------------------------------------------------------------------
④使用方法:
1.打开集成链接后,点“ADD INTEGRATION TO MY”图标安装集成,然后在集成中搜索添加;

2.配置集成,配置完提交后,在设置里,会提示哪些有问题,需要删除:
Snipaste_2024-05-13_19-23-09.png Snipaste_2024-05-13_19-40-58.png
3.在开发者工具→服务中,通过官方集成提供的代码,复制进去,可以测试改的日期有没成功。

Snipaste_2024-05-13_13-20-53.png
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
四、在ha的nfiguration.yaml配置文件中新增工作日传感器法:(未经实践,有成功的小伙伴说下)
binary_sensor:
  - platform: workday
    country: CN     # 中国
    workdays: [mon, tue, wed, thu, fri]   # 定义工作日
    excludes: [sat, sun]   # 定义休息日
    add_holidays:           # 添加周一~五可休息的日期(如调休假)=减工作日
      - "2024-06-10"
      - "2024-09-17"
      - "2024-10-01"
      - "2024-10-02"
      - "2024-10-03"
      - "2024-10-04"
      - "2024-10-07"
    remove_holidays:        # 删除周六、周日需要工作的日期=增加工作日
      - "2024-09-14"
      - "2024-09-29"
      - "2024-10-12"


最后,本人目前使用的还是workday集成,使用它的原因是希望哪天,ha能发展到全部依靠自己,不用另外的插件。





回复

使用道具 举报

37

主题

165

回帖

1002

积分

金牌会员

积分
1002
金钱
800
HASS币
0
 楼主| 发表于 2024-5-14 09:05:47 | 显示全部楼层
本帖最后由 yun59t 于 2024-5-14 09:24 编辑


                               
登录/注册后可看大图

手动拷进去安装后,无法添加集成,怎么弄
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-7-16 16:18 , Processed in 0.094536 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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