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

 找回密码
 立即注册
查看: 60803|回复: 80

[进阶教程] [自动化] 用Python Script发送和风天气

  [复制链接]

15

主题

105

帖子

540

积分

论坛技术达人

积分
540
金钱
435
HASS币
0

最佳新人教程狂人

发表于 2017-9-7 20:37:42 | 显示全部楼层 |阅读模式
本帖最后由 Retroposter 于 2017-9-7 20:39 编辑


从帖子 【自动化】推送和风天气到微信 (或pushbullet 9/2更新)可以看出,当需要预报的城市较多时,automation写的非常长(事实上我需要推4各城市的预报,比帖子中还长)。有没有办法封装一下呢?有,使用pyhton script。

理想的automation是这样的:
- alias: 'Daily weather report'
  initial_state: true
  trigger:
    - platform: time
      at: '18:00:00'
  action:    
    - service: script.wechat_to_family
      data:
        message: '18点整,瓦卡为您预报明天天气。'
    - service: python_script.report_tomo_weather
      data:
        domain: script    # 指定service domain
        service: wechat_to_family    # 指定service
        cities:    # 指定要预报的城市(list),#前面是sensor中配置的名字。需要预报几个城市,就加几个。
          - zz#郑州
          - xc#许昌


可以看出,即使再加10各城市,也仅需再加10行代码就行(按照之前的得加40、50行吧)

我写的python script支持这样的配置。但为了友好地显示消息,每个城市会发送一条消息。这样就会在短时间内连续发送很多条消息(脚本中没有delay功能),微信号有被禁止登录的风险,所以最终的配置是每个城市调一次report_tomo_weather service。

废话说了很多,下面教程。

1、安装了我发布的和风天气插件(见之前发的帖子)

2、在configuration.yaml中添加:
python_script:


3、在configuration.yaml同级目录建文件夹 python_scripts
把附件中的report_tomo_weather.py放到新建的文件夹下

4、在automations.yaml添加:
- alias: 'Daily weather report'
  initial_state: true
  trigger:
    - platform: time
      at: '18:00:00'
  action:    
    - service: script.wechat_to_family
      data:
        message: ‘18点整,瓦卡为您预报明天天气。’
    - condition: state
      entity_id: input_boolean.is_wechat_available
      state: 'on'
    - delay: 00:00:01
    - service: python_script.report_tomo_weather
      data:
        domain: script
        service: wechat_to_family
        cities:
          - zz#郑州
    - delay: 00:00:03
    - service: python_script.report_tomo_weather
      data:
        domain: script
        service: wechat_to_family
        cities:
          - xc#许昌


script.wechat_to_family 见上面帖子。

直接贴的代码,大家可以灵活改变。更多见 https://home-assistant.io/components/python_script/


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

评分

参与人数 1金钱 +10 收起 理由
+ 10 膜拜大神!

查看全部评分

回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2017-9-7 21:11:35 | 显示全部楼层
楼主这技术炉火纯青了啊
回复

使用道具 举报

1

主题

91

帖子

956

积分

高级会员

Rank: 4

积分
956
金钱
865
HASS币
0
发表于 2017-9-9 14:38:07 | 显示全部楼层
也是微信推送么?
回复

使用道具 举报

1

主题

105

帖子

416

积分

中级会员

Rank: 3Rank: 3

积分
416
金钱
311
HASS币
0
发表于 2017-9-9 16:35:46 | 显示全部楼层
不错感谢分享
回复

使用道具 举报

2

主题

129

帖子

1924

积分

金牌会员

Rank: 6Rank: 6

积分
1924
金钱
1794
HASS币
0
发表于 2017-9-9 21:19:28 | 显示全部楼层
支持大神,不断改良
回复

使用道具 举报

0

主题

3

帖子

18

积分

新手上路

Rank: 1

积分
18
金钱
15
HASS币
0
发表于 2017-9-10 11:54:57 | 显示全部楼层
谢谢分享,膜拜膜拜
回复

使用道具 举报

27

主题

1292

帖子

5873

积分

元老级技术达人

积分
5873
金钱
4556
HASS币
100
发表于 2017-9-10 13:26:03 | 显示全部楼层
aaaaaaaaaaaaaaaaaaaaaaa
回复

使用道具 举报

0

主题

29

帖子

82

积分

注册会员

Rank: 2

积分
82
金钱
53
HASS币
0
发表于 2017-9-10 13:36:13 | 显示全部楼层
厉害了我的哥
回复

使用道具 举报

0

主题

13

帖子

81

积分

注册会员

Rank: 2

积分
81
金钱
68
HASS币
0
发表于 2017-10-7 11:05:37 | 显示全部楼层
谢谢分享
回复

使用道具 举报

1

主题

158

帖子

552

积分

高级会员

Rank: 4

积分
552
金钱
393
HASS币
0
发表于 2017-10-24 19:58:25 | 显示全部楼层

谢谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 03:08 , Processed in 0.179883 second(s), 42 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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