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

 找回密码
 立即注册
查看: 115915|回复: 370

[插件集成] 2018年【修复bug】【节假日】【纪念日】【倒计时】【农历】

  [复制链接]

220

主题

1284

帖子

7847

积分

超级版主

Rank: 8Rank: 8

积分
7847
金钱
6533
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2017-9-20 20:11:51 | 显示全部楼层 |阅读模式
本帖最后由 lidicn 于 2018-10-9 01:01 编辑

TIM截图20170921102416.jpg

配置方法:
  • 下载解压,复制到对应文件夹
  • 注意:本插件较为特殊,有两个文件 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行,按照格式修改、新增】
  • TIM截图20180106141447.jpg
2018年9月18日更新:
  • 修复bug,第147行holiday_api = 'http://api.goseek.cn/Tools/holiday?date={0}'.format(day)   将原来的https更改为http
2018年10月9日更新:
  • 修复bug,无节假日时无法启动sensor

游客,如果您要查看本帖隐藏内容请回复







法定节日纪念日.zip

9.55 KB, 下载次数: 510

评分

参与人数 3金钱 +27 收起 理由
arrive + 7 如果能自定义设置农历生日提醒就更完美了.
neroxps + 10 膜拜大神!
+ 10 你这插件开发炉火纯青了啊!

查看全部评分

回复

使用道具 举报

0

主题

53

帖子

188

积分

注册会员

Rank: 2

积分
188
金钱
135
HASS币
0
发表于 2017-9-20 20:14:14 | 显示全部楼层
谢谢分享!!
回复

使用道具 举报

13

主题

194

帖子

1062

积分

金牌会员

Rank: 6Rank: 6

积分
1062
金钱
868
HASS币
0

教程狂人

发表于 2017-9-20 20:35:28 来自手机 | 显示全部楼层
万年历插件,没想到来得这么快哈~
回复

使用道具 举报

6

主题

484

帖子

3980

积分

论坛元老

Rank: 8Rank: 8

积分
3980
金钱
3496
HASS币
0
发表于 2017-9-20 20:49:56 | 显示全部楼层
创意很强,谢谢分享
回复

使用道具 举报

0

主题

143

帖子

4259

积分

论坛元老

Rank: 8Rank: 8

积分
4259
金钱
4116
HASS币
0
发表于 2017-9-20 20:52:06 | 显示全部楼层
感谢大神分享!
回复

使用道具 举报

123

主题

4626

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16015
金钱
11304
HASS币
45
发表于 2017-9-20 21:04:33 | 显示全部楼层
已成功,求加入单纯的农历日期功能,比如只要八月初一,这种的。
回复

使用道具 举报

9

主题

57

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
金钱
166
HASS币
0
发表于 2017-9-20 21:23:11 | 显示全部楼层
感谢分享,值得好好学习
回复

使用道具 举报

9

主题

249

帖子

4128

积分

元老级技术达人

积分
4128
金钱
3864
HASS币
100
发表于 2017-9-20 21:26:07 | 显示全部楼层
感谢大神分享!
E5-2650L-V2+华南X79+16GB*2
回复

使用道具 举报

2

主题

325

帖子

2879

积分

金牌会员

Rank: 6Rank: 6

积分
2879
金钱
2554
HASS币
0
发表于 2017-9-20 23:07:27 | 显示全部楼层
真是佩服!!
回复

使用道具 举报

27

主题

154

帖子

1399

积分

金牌会员

只发干货

Rank: 6Rank: 6

积分
1399
金钱
1245
HASS币
0

教程狂人论坛风云人物

发表于 2017-9-20 23:55:24 | 显示全部楼层
好东西,收下了,谢谢L大
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 10:07 , Processed in 0.059107 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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