本帖最后由 lidicn 于 2018-10-9 01:01 编辑
配置方法:
- 下载解压,复制到对应文件夹
- 注意:本插件较为特殊,有两个文件 chineseholiday.py lunar.py 两个都拷贝进.homeassistant/custom_components/sensor/ 路径下面
写yaml:
sensor:
- platform: chineseholiday
name: holiday
判断今天是不是法定节假日【state】用的是一个json 的api
而法定节假日倒计时,却用的是 chineseholiday.py 44行开始的 dict
HOLIDAY = {
datetime.date(year=2017, month=10, day=1): FESTIVAL_TYPE['national_day'],
datetime.date(year=2017, month=10, day=2): FESTIVAL_TYPE['national_day'],
datetime.date(year=2017, month=10, day=3): FESTIVAL_TYPE['national_day'],
2018年的法定节假已经更新!请下载chineseholiday.py 覆盖更新。
纪念日的逻辑类似 在第79行
ANNIVERSARY = {
datetime.date(year=2018, month=5, day=6): 'Hassbian论坛成立一周年',
datetime.date(year=2018, month=9, day=27):'小韩生日',
}
计算日期的逻辑类似 在第83行
CALCULATEAGE= {
datetime.datetime(year=1990, month=9, day=18, hour=3, minute=32, second=54): '小思出生',
datetime.datetime(year=2068, month=5, day=1, hour=12, minute=32, second=54): '小思金婚',
}
大家按照自己需求,照着这个格式补充即可,注意每行后面要有逗号 ,
9月21日更新:
- 删除农历里的年份
- 修复会因为api封杀,而导致无法启动HA的bug。
11月24日发布更换节日api的版本
有坛友反馈,说api不稳定。节日判断的api换了一个。【有之前版本有问题的可以试试这个版本】用法跟原来的一模一样
api来源http://api.goseek.cn/
换api的代码段【可自行改】
def is_holiday(self,day):
"""
判断是否节假日, api 来自百度 apistore: [url=http://apistore.baidu.com/apiworks/servicedetail/1116.html]http://apistore.baidu.com/apiworks/servicedetail/1116.html[/url]
:param day: 日期, 格式为 '20160404'
:return: bool
api = 'http://tool.bitefu.net/jiari/'
params = {'d': day, 'apiserviceid': 1116}
rep = requests.get(api, params)
if rep.status_code != 200:
return '无法获取节日数据'
res = rep.text
return "法定节日" if res != "0" else "非法定节日"
"""
holiday_api = 'https://api.goseek.cn/Tools/holiday?date={0}'.format(day)
rep =requests.get(holiday_api)
if rep.status_code != 200:
return '无法获取节日数据'
holiday_date = rep.json()
get_day = holiday_date['data']
result = ''
if get_day == 0:
result = '工作日'
elif get_day == 1:
result = '休息日'
elif get_day == 2:
result = '节假日'
else:
result = '出错了呀!'
return result
2018年1月6日更新:
- 更新18年节假日办公布的节假日
- 新增计算日期功能【chineseholiday.py第83行,按照格式修改、新增】
-
2018年9月18日更新:
- 修复bug,第147行holiday_api = 'http://api.goseek.cn/Tools/holiday?date={0}'.format(day) 将原来的https更改为http
2018年10月9日更新:
|