Home Assistant Wundergroundpws v2.X.X
Home Assistant自定义集成,适用于Weather Underground个人气象站用户。
包含原生Home Assistant天气实体和各种天气传感器。
当前天气状况由配置的wundergroundpws站点ID生成。
天气预报根据从配置的wundergroundpws站点ID获取的经纬度生成。
wundergroundpws
平台使用Weather Underground作为当前天气信息的来源。
:+1: 如果您觉得这个软件有用,欢迎捐赠:Paypal.me捐赠链接
v2.0.4升级说明: 需要Home Assistant 2023.9或更高版本。 如果从v2.x.x升级到v2.0.4后天气卡片中没有显示预报,请在仪表板中编辑天气卡片并重新保存。
安装前提条件
请查看以下最低要求,以确定您是否能够安装和使用本软件。
- wundergroundpws v2.X.X是一个重新设计的集成,不是早期版本的升级。 请参阅升级部分了解相关说明。
- wundergroundpws v2.X.X需要Home Assistant 2023.1或更高版本
- 已注册且活跃的Weather Underground个人气象站API密钥
Weather Underground PWS API密钥
免费API密钥仅提供给已注册且活跃的Weather Underground个人气象站用户。 要使用此集成,您需要Weather Underground个人气象站API密钥和站点ID。 获取免费API密钥的步骤:
- 您必须有一个已注册并向Weather Underground上传数据的个人气象站。 a) 加入Weather Underground b) 登录 c) 我的个人资料 -> 我的气象站 d) 添加新的PWS
- 在 https://www.wunderground.com/member/api-keys 获取API密钥。
请在使用以下信息时考虑这一点。
安装
从本仓库下载最新的v2.X.X版本zip文件。 将zip文件解压到临时目录。
将解压文件中的custom_components目录复制到您的.homeassistant目录中。 或 将解压文件中custom_components目录的内容复制到您.homeassistant目录中现有的custom_components目录。
- 在Home Assistant设置中,选择设备和服务,然后添加集成。
- 选择"wundergroundpws"集成。
- 输入您的Weather Underground API密钥和站点ID(区分大小写。必须与您的Wunderground设备ID匹配) 并提交。
- 集成设置完成后,您可以选择"配置"来更改:
- 创建预报传感器、数字精度(无或小数)、语言、日历日温度,以及覆盖预报的纬度和经度。
- 将创建并启用观测和状况传感器。
- 默认情况下不创建预报传感器。如果您在集成"配置"中启用"创建预报传感器",它们将被创建。
- 然后将创建预报传感器,但它们处于禁用状态。要启用,请转到集成-实体,选择您想要的传感器并启用它们。
可以通过使用不同的站点ID和/或API密钥重复上述步骤来创建多个实例。 请注意,每个实例都需要自己的一组API调用,所以要注意不要超过Weather Underground个人API的速率限制。 每个实例每5分钟调用一次,即每天288次。
升级
从早期版本无法直接升级到v2.x.x。 您必须: 删除现有的custom_components/wundergroundpws目录。 从configuration.yaml中删除v1.1.x及更早版本的所有配置项:
# 删除configuration.yaml中的条目
wundergroundpws:
api_key: 您的API密钥
pws_id: 您的站点ID
weather:
- platform: wundergroundpws
sensor:
- platform: wundergroundpws
monitored_conditions:
- temp
- dewpt
- heatIndex
- 等等..
重启Home Assistant。 在Home Assistant - 设置 - 实体中,搜索"wundergroundpws",选择所有过滤出的实体并"删除所选"。 重启Home Assistant。 安装v2.x.x(参见上面的安装)。 重新配置任何Lovelace卡片、自动化、脚本等,以反映新的传感器名称。
配置
Wundergroundpws集成配置选项可在以下位置找到: 设置-设备和服务-Wundergroundpws-配置
选项: 创建预报传感器? 默认情况下不创建预报传感器。如果您在集成"配置"中启用"创建预报传感器",它们将被创建。 然后将创建预报传感器,但它们处于禁用状态。要启用,请转到集成-实体,选择您想要的传感器并启用它们。
数字精度 无(整数)或小数(单精度)。 仅适用于PWS当前值(不包括预报)的传感器(不包括天气实体)。
语言 指定API返回的语言。 默认为英语(en-US)。
按日历日显示温度?(实验性) 使用风险自负 - The Weather Company PWS观测API中未记录。 如果选中,则获取相对于日历日(00:00 -> 23:59)的预报温度最高/最低值,而不是API期间(约07:00 -> 约18:59)。 仅影响天气实体预报值,不影响传感器。 这个字段在The Weather Company PWS API中未记录,因此可能会发生变化,如果将来从API响应中移除,设置为true时将导致集成崩溃。
纬度 - 默认从站点ID获取 覆盖天气预报的纬度坐标。 经度 - 默认从站点ID获取 覆盖天气预报的经度坐标。 返回顶部
术语和变量说明
api_key:
描述: Weather Underground的API密钥。详情见上文。
必填: 是
类型: 字符串
pws_id:
描述: 您必须输入个人气象站ID。
该站点ID将用于显示当前天气状况。
注意 - 区分大小写。必须与会员设置中Wunderground设备的ID匹配。
必填: 是
类型: 字符串
numeric_precision:
描述: 可选 - 将PWS数据显示为整数或小数。
仅适用于传感器中的PWS当前值(不适用于天气实体),不适用于预报。
必填: 否 - 值为'none'或'decimal'
类型: 字符串
默认值: none
calendarday_temp:
使用风险自负 - Weather Company PWS观测API中未记录:
描述: 可选 - 如果为true,获取相对于日历日(00:00 -> 23:59)的预报温度最高/最低值,
而不是API周期(约07:00 -> 约06:59)。
仅影响天气实体预报值,不影响传感器。
该字段在Weather Company PWS API中未记录,
因此可能会发生变化,如果将来从API响应中移除,设置为true时将导致集成崩溃。
必填: 否 - 值为'true'或'false'
类型: 布尔值
默认值: false
lang:
描述: 指定API返回的语言。当前所有Wunderground语言代码列表可在
https://docs.google.com/document/d/13HTLgJDpsb39deFzk_YCQ5GoGoZCO_cRYzIxbwvgJLI/edit
或下方本地化书签处查看。
如未指定,默认为英语(en-US)。
必填: 否
类型: 字符串
默认值: en-US
latitude:
描述: 天气预报的纬度坐标(如果指定了**longitude**则必填)。
必填: 否
类型: 字符串
默认值: stationId的WU API纬度
longitude:
描述: 天气预报的经度坐标(如果指定了**latitude**则必填)。
必填: 否
类型: 字符串
默认值: stationId的WU API经度
可用传感器
# 描述: 在前端显示的条件。可以监控以下条件。
# 有关Weather Underground数据信息,请参阅https://www.wunderground.com/about/data。
#
# 观测值(当前)
neighborhood:
唯一ID: <pws_id>,neighborhood
实体ID: sensor.<pws_id>_neighborhood
描述: WU PWS参考名称
obsTimeLocal:
唯一ID: <pws_id>,obstimelocal
实体ID: sensor.<pws_id>_local_observation_time
描述: 本地观测时间的文本摘要
humidity:
唯一ID: <pws_id>,humidity
实体ID: sensor.<pws_id>_relative_humidity
描述: 相对湿度
stationID:
唯一ID: <pws_id>,stationid
实体ID: sensor.<pws_id>_station_id
描述: 您的个人气象站(PWS)ID
solarRadiation:
唯一ID: <pws_id>,solarradiation
实体ID: sensor.<pws_id>_solar_radiation
描述: 当前太阳辐射水平
uv:
唯一ID: <pws_id>,uv
实体ID: sensor.<pws_id>_uv_index
描述: 当前紫外线辐射水平
winddir:
唯一ID: <pws_id>,winddir
实体ID: sensor.<pws_id>_wind_direction_degrees
描述: 风向角度
windDirectionCardinal:
唯一ID: <pws_id>,winddirectioncardinal
实体ID: sensor.<pws_id>_wind_direction_cardinal
描述: 风向cardinal方位(N, NE, NNE, S, E, W等)
# 条件(当前)
dewpt:
唯一ID: <PWS_ID>,dewpt
实体ID: sensor.<pws_id>_dewpoint
描述: 露点温度,低于此温度水滴开始凝结并可能形成露水
elev:
唯一ID: <pws_id>,elev
实体ID: sensor.<pws_id>_elevation
描述: 海拔高度
heatIndex:
唯一ID: <pws_id>,heatindex
实体ID: sensor.<pws_id>_heat_index
描述: 热指数(温度和空气湿度的综合效应)
precipRate:
唯一ID: <pws_id>,preciprate
实体ID: sensor.<pws_id>_precipitation_rate
描述: 降雨强度
precipTotal:
唯一ID: <pws_id>,preciptotal
实体ID: sensor.<pws_id>_precipitation_today
描述: 今日总降水量
pressure:
唯一ID: <pws_id>,pressure
实体ID: sensor.<pws_id>_pressure
描述: 大气压力
temp:
唯一ID: <pws_id>,temp
实体ID: sensor.<pws_id>_temperature
描述: 当前温度
windChill:
唯一ID: <pws_id>,windchill
实体ID: sensor.<pws_id>_wind_chill
描述: 风寒指数(温度和风速的综合效应)
windGust:
唯一ID: <pws_id>,windgust
实体ID: sensor.<pws_id>_wind_gust
描述: 阵风速度
windSpeed:
唯一ID: <pws_id>,windspeed
实体ID: sensor.<pws_id>_wind_speed
描述: 当前风速
# 预报
narrative:
唯一ID: <PWS_ID>,narrative_<day>f
实体ID: sensor.<pws_id>_weather_summary_<day>
描述: 第<day>天的人类可读天气预报。(<day>变化为0, 1, 2, 3, 4)
qpfSnow:
唯一ID: <pws_id>,qpfsnow_<day>f
实体ID: sensor.<pws_id>_snow_amount_<day>
描述: 预报的降雪强度。(<day>变化为0, 1, 2, 3, 4)
# 预报日部分
narrative:
唯一ID: <PWS_ID>,narrative_<daypart>fdp
实体ID: sensor.<pws_id>_forecast_summary_<suffix>
描述: 某天的人类可读天气预报。(<suffix>变化为0d, 1n, 2d, 3n, 4d, 5n, 6d, 7n, 8d, 9n)
qpf:
唯一ID: <pws_id>,qpf_<daypart>fdp
实体ID: sensor.<pws_id>_precipitation_amount_<suffix>
描述: 预报的降水强度。(<suffix>变化为0d, 1n, 2d, 3n, 4d, 5n, 6d, 7n, 8d, 9n)
precipChance:
唯一ID: <pws_id>,precipchance_<daypart>fdp
实体ID: sensor.<pws_id>_precipitation_probability_<suffix>
描述: 降水概率。(<suffix>变化为0d, 1n, 2d, 3n, 4d, 5n, 6d, 7n, 8d, 9n)
描述:预测降水概率,以百分比表示。(后缀变化:0d、1n、2d、3n、4d、5n、6d、7n、8d、9n)
温度:
唯一ID:<pws_id>,temperature
Wunderground API 注意事项: 在当地表观时间下午3:00之后,API中的daypart对象以及daypart对象之外的temperatureMax字段将显示为null。 当满足此条件时,受影响的传感器将返回"Today Expired",值为"Unknown"。
上述标有"#d"的变体是每日预报。 上述标有"#n"的变体是夜间预报。
注意:虽然平台名为"wundergroundpws",但传感器在Home Assistant中将显示为
sensor.<pws_id>_forecast_temperature_<suffix>
(例如:sensor.samplepwsid_forecast_temperature_0d)。
天气实体
wundergroundpws数据返回到天气实体(HASS天气预报卡): 当前:
- 温度
- 气压
- 湿度
- 风速
- 风向
预报:
- 日期时间
- 温度(最高)
- 温度(最低)
- 天气状况(图标)
- 降水量
- 降水概率
- 风向
- 风速
可以创建模板来访问这些值,例如:
{% for state in states.weather -%}
{%- if loop.first %}{{ state.name | lower }}是{{state.state_with_unit}}{% elif loop.last %},{{ state.name | lower }}是{{state.state_with_unit}}{% else %},{{ state.name | lower }}是{{state.state_with_unit}}{% endif -%}
{%- endfor %}。
风向是{{ states.weather.<STATIONID>.attributes.forecast[0].wind_bearing }},风速为{{ states.weather.<STATIONID>.attributes.forecast[0].wind_speed }} {{ states.weather.<STATIONID>.attributes.wind_speed_unit }}
统计中可用的传感器
以下是在Lovelace统计卡中公开的wundergroundpws传感器。 请注意,只有具有相同单位的传感器才能在单个卡片中组合。
-
类别 NONE
-
sensor.samplepwsid_uv_index
-
类别 DEGREE
-
sensor.sensor.samplepwsid_wind_direction_degrees
-
类别 RATE & SPEED
-
sensor.samplepwsid_precipitation_rate
-
sensor.samplepwsid_wind_gust
-
sensor.samplepwsid_wind_speed
-
类别 LENGTH
-
sensor.samplepwsid_precipitation_today
-
类别 PRESSURE
-
sensor.samplepwsid_pressure
-
类别 HUMIDITY
-
sensor.samplepwsid_relative_humidity
-
类别 IRRADIANCE
-
sensor.samplepwsid_solar_radiation
-
类别 TEMPERATURE
-
sensor.samplepwsid_dewpoint
-
sensor.samplepwsid_heat_index
-
sensor.samplepwsid_wind_chill
-
sensor.samplepwsid_temperature
本地化
传感器的"友好名称"通过翻译文件设置。 Wundergroundpws翻译文件位于'wundergroundpws/wupws_translations'目录中。 文件使用'en.json'作为基础,通过https://translate.i18next.com进行翻译。 翻译仅使用基本语言代码,而不使用变体(例如zh-CN/zh-HK/zh-TW使用zh)。 如果在wundergroundpws配置中未设置lang:选项,则默认为en-US(translations/en.json)。 如果设置了lang:(例如lang: de-DE),则加载translations/de.json文件,并使用de-DE查询Weather Underground API。 翻译文件适用于所有传感器的友好名称。 forecast-narrative、forecast-dayOfWeek、forecast-daypart-narrative和forecast-daypart-daypartName由API翻译。 可用的lang:选项有:
'am-ET', 'ar-AE', 'az-AZ', 'bg-BG', 'bn-BD', 'bn-IN', 'bs-BA', 'ca-ES', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-GB',
'en-IN', 'en-US', 'es-AR', 'es-ES', 'es-LA', 'es-MX', 'es-UN', 'es-US', 'et-EE', 'fa-IR', 'fi-FI', 'fr-CA', 'fr-FR',
'gu-IN', 'he-IL', 'hi-IN', 'hr-HR', 'hu-HU', 'in-ID', 'is-IS', 'it-IT', 'iw-IL', 'ja-JP', 'jv-ID', 'ka-GE', 'kk-KZ',
'km-KH', 'kn-IN', 'ko-KR', 'lo-LA', 'lt-LT', 'lv-LV', 'mk-MK', 'mn-MN', 'mr-IN', 'ms-MY', 'my-MM', 'ne-IN', 'ne-NP',
'nl-NL', 'no-NO', 'om-ET', 'pa-IN', 'pa-PK', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'si-LK', 'sk-SK', 'sl-SI',
'sq-AL', 'sr-BA', 'sr-ME', 'sr-RS', 'sv-SE', 'sw-KE', 'ta-IN', 'ta-LK', 'te-IN', 'ti-ER', 'ti-ET', 'tg-TJ', 'th-TH',
'tk-TM', 'tl-PH', 'tr-TR', 'uk-UA', 'ur-PK', 'uz-UZ', 'vi-VN', 'zh-CN', 'zh-HK', 'zh-TW'
天气实体(hass天气卡)的翻译由Home Assistant处理,并在用户->语言设置下配置。 返回顶部