本帖最后由 lyj97 于 2022-5-6 15:31 编辑
书接上回:https://bbs.hassbian.com/thread-16099-1-1.html
上次,修改插件的更新问题后,我仔细看了各位dalao遇到的问题,主要是
1. 更新时间间隔是什么?(答案在下面)
2. 更新接口存在被封情况
未确认具体原因,查日志可以看到错误如下(和修改更新逻辑前的错误是一致的 )
NMCWeather update error HTTPConnectionPool(host='www.nmc.cn', port=80): Max retries exceeded with url: /f/rest/real/54499 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2342bf5a00>: Failed to establish a new connection: [Errno -3] Try again'))
复制代码
因此给出猜测:可能是HA在2204版本中调整了天气(weather)的更新时间,目前更新时间为30s,且不能自行修改 。
SCAN_INTERVAL = timedelta(seconds=30) # 更新时间,https://github.com/home-assistant/core/blob/master/homeassistant/components/weather/__init__.py line:63
复制代码
本次【魔改】内容:
1. 新增:更新时间设置(支持30s的整数倍)
2. 新增:天气更新事件(type: weather_update_event)
3. 修改:提供获取“中文”天气的方法(使用上面提到的事件中的数据)
食用指南
1. 根据需要,修改配置文件
# 天气插件
weather:
- platform: weathernmc
api_key: weathernmc
update_skip: 5 # 更新间隔(默认0,即30s一次)时间示例:「设置值:5 作用 3分钟【解释:跳过5次更新,每6次实际更新一次,即150秒】」
fire_update_event: true # 是否发事件,默认False(否)
复制代码
2. 上传代码,覆盖
3. 重启HA
4. Enjoy it.
附件:
修改后仓库地址:https://gitee.com/lyj97/homeassistant-script
天气事件使用示例:(新建自动化)
alias: 示例-监听天气事件
description: ''
trigger:
- platform: event
event_type: weather_update_event
condition: []
action:
- service: input_text.set_value
data:
value: >-
今日天气: {{trigger.event.data.weather_data_cn.state}}, 明日天气:
{{trigger.event.data.weather_data_cn.forecast[0].condition}}
target:
entity_id: input_text.ce_shi
mode: single
复制代码