请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居第一站

 找回密码
 立即注册
查看: 4631|回复: 194

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

  [复制链接]

194

主题

1143

帖子

5691

积分

超级版主

Rank: 8Rank: 8

积分
5691
金钱
4518
HASS币
100

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

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

TIM截图20170921102416.jpg

配置方法:
  • 下载解压,复制到对应文件夹
  • 注意:本插件较为特殊,有两个文件 chineseholiday.py lunar.py  两个都拷贝进.homeassistant/custom_components/sensor/ 路径下面


写yaml:
[AppleScript] 纯文本查看 复制代码
sensor:
  - platform: chineseholiday
    name: holiday


判断今天是不是法定节假日【state】用的是一个json 的api
而法定节假日倒计时,却用的是 chineseholiday.py 44行开始的 dict
[Bash shell] 纯文本查看 复制代码
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行
[Bash shell] 纯文本查看 复制代码
ANNIVERSARY = {
    datetime.date(year=2018, month=5, day=6): 'Hassbian论坛成立一周年',
    datetime.date(year=2018, month=9, day=27):'小韩生日',
}


计算日期的逻辑类似 在第83行
[Bash shell] 纯文本查看 复制代码
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的代码段【可自行改】
[Bash shell] 纯文本查看 复制代码
    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, 下载次数: 207

评分

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

查看全部评分

回复

使用道具 举报

0

主题

42

帖子

160

积分

注册会员

Rank: 2

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

使用道具 举报

13

主题

194

帖子

1041

积分

金牌会员

Rank: 6Rank: 6

积分
1041
金钱
847
HASS币
0

教程狂人

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

使用道具 举报

4

主题

314

帖子

1371

积分

版主

Rank: 7Rank: 7Rank: 7

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

使用道具 举报

0

主题

114

帖子

1001

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

81

主题

2432

帖子

7827

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

9

主题

57

帖子

223

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

0

主题

47

帖子

518

积分

高级会员

Rank: 4

积分
518
金钱
471
HASS币
0
发表于 2017-9-20 21:26:07 | 显示全部楼层
感谢大神分享!
回复

使用道具 举报

1

主题

205

帖子

1058

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

27

主题

146

帖子

1340

积分

金牌会员

只发干货

Rank: 6Rank: 6

积分
1340
金钱
1194
HASS币
0

教程狂人论坛风云人物

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2018-10-17 13:09 , Processed in 0.298712 second(s), 43 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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