mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Bump accuweather
to version 1.0.0 (#93305)
This commit is contained in:
parent
90984c34a9
commit
d47e58fb38
@ -121,12 +121,12 @@ class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
|
|||||||
|
|
||||||
async def _async_update_data(self) -> dict[str, Any]:
|
async def _async_update_data(self) -> dict[str, Any]:
|
||||||
"""Update data via library."""
|
"""Update data via library."""
|
||||||
|
forecast: list[dict[str, Any]] = []
|
||||||
try:
|
try:
|
||||||
async with timeout(10):
|
async with timeout(10):
|
||||||
current = await self.accuweather.async_get_current_conditions()
|
current = await self.accuweather.async_get_current_conditions()
|
||||||
forecast = (
|
if self.forecast:
|
||||||
await self.accuweather.async_get_forecast() if self.forecast else {}
|
forecast = await self.accuweather.async_get_daily_forecast()
|
||||||
)
|
|
||||||
except (
|
except (
|
||||||
ApiError,
|
ApiError,
|
||||||
ClientConnectorError,
|
ClientConnectorError,
|
||||||
|
@ -8,5 +8,5 @@
|
|||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"loggers": ["accuweather"],
|
"loggers": ["accuweather"],
|
||||||
"quality_scale": "platinum",
|
"quality_scale": "platinum",
|
||||||
"requirements": ["accuweather==0.5.2"]
|
"requirements": ["accuweather==1.0.0"]
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
"""Support for the AccuWeather service."""
|
"""Support for the AccuWeather service."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from statistics import mean
|
from typing import cast
|
||||||
from typing import Any, cast
|
|
||||||
|
|
||||||
from homeassistant.components.weather import (
|
from homeassistant.components.weather import (
|
||||||
ATTR_FORECAST_CONDITION,
|
ATTR_FORECAST_CONDITION,
|
||||||
@ -120,15 +119,10 @@ class AccuWeatherEntity(
|
|||||||
ATTR_FORECAST_TIME: utc_from_timestamp(item["EpochDate"]).isoformat(),
|
ATTR_FORECAST_TIME: utc_from_timestamp(item["EpochDate"]).isoformat(),
|
||||||
ATTR_FORECAST_NATIVE_TEMP: item["TemperatureMax"]["Value"],
|
ATTR_FORECAST_NATIVE_TEMP: item["TemperatureMax"]["Value"],
|
||||||
ATTR_FORECAST_NATIVE_TEMP_LOW: item["TemperatureMin"]["Value"],
|
ATTR_FORECAST_NATIVE_TEMP_LOW: item["TemperatureMin"]["Value"],
|
||||||
ATTR_FORECAST_NATIVE_PRECIPITATION: self._calc_precipitation(item),
|
ATTR_FORECAST_NATIVE_PRECIPITATION: item["TotalLiquidDay"]["Value"],
|
||||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY: round(
|
ATTR_FORECAST_PRECIPITATION_PROBABILITY: item[
|
||||||
mean(
|
"PrecipitationProbabilityDay"
|
||||||
[
|
],
|
||||||
item["PrecipitationProbabilityDay"],
|
|
||||||
item["PrecipitationProbabilityNight"],
|
|
||||||
]
|
|
||||||
)
|
|
||||||
),
|
|
||||||
ATTR_FORECAST_NATIVE_WIND_SPEED: item["WindDay"]["Speed"]["Value"],
|
ATTR_FORECAST_NATIVE_WIND_SPEED: item["WindDay"]["Speed"]["Value"],
|
||||||
ATTR_FORECAST_WIND_BEARING: item["WindDay"]["Direction"]["Degrees"],
|
ATTR_FORECAST_WIND_BEARING: item["WindDay"]["Direction"]["Degrees"],
|
||||||
ATTR_FORECAST_CONDITION: [
|
ATTR_FORECAST_CONDITION: [
|
||||||
@ -137,18 +131,3 @@ class AccuWeatherEntity(
|
|||||||
}
|
}
|
||||||
for item in self.coordinator.data[ATTR_FORECAST]
|
for item in self.coordinator.data[ATTR_FORECAST]
|
||||||
]
|
]
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _calc_precipitation(day: dict[str, Any]) -> float:
|
|
||||||
"""Return sum of the precipitation."""
|
|
||||||
precip_sum = 0
|
|
||||||
precip_types = ["Rain", "Snow", "Ice"]
|
|
||||||
for precip in precip_types:
|
|
||||||
precip_sum = sum(
|
|
||||||
[
|
|
||||||
precip_sum,
|
|
||||||
day[f"{precip}Day"]["Value"],
|
|
||||||
day[f"{precip}Night"]["Value"],
|
|
||||||
]
|
|
||||||
)
|
|
||||||
return round(precip_sum, 1)
|
|
||||||
|
@ -71,7 +71,7 @@ WSDiscovery==2.0.0
|
|||||||
WazeRouteCalculator==0.14
|
WazeRouteCalculator==0.14
|
||||||
|
|
||||||
# homeassistant.components.accuweather
|
# homeassistant.components.accuweather
|
||||||
accuweather==0.5.2
|
accuweather==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.adax
|
# homeassistant.components.adax
|
||||||
adax==0.2.0
|
adax==0.2.0
|
||||||
|
@ -61,7 +61,7 @@ WSDiscovery==2.0.0
|
|||||||
WazeRouteCalculator==0.14
|
WazeRouteCalculator==0.14
|
||||||
|
|
||||||
# homeassistant.components.accuweather
|
# homeassistant.components.accuweather
|
||||||
accuweather==0.5.2
|
accuweather==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.adax
|
# homeassistant.components.adax
|
||||||
adax==0.2.0
|
adax==0.2.0
|
||||||
|
@ -41,7 +41,7 @@ async def init_integration(
|
|||||||
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
||||||
return_value=current,
|
return_value=current,
|
||||||
), patch(
|
), patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.async_get_forecast",
|
"homeassistant.components.accuweather.AccuWeather.async_get_daily_forecast",
|
||||||
return_value=forecast,
|
return_value=forecast,
|
||||||
), patch(
|
), patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"WeatherText": "Sunny",
|
||||||
"WeatherIcon": 1,
|
"WeatherIcon": 1,
|
||||||
"HasPrecipitation": false,
|
"HasPrecipitation": false,
|
||||||
"PrecipitationType": null,
|
"PrecipitationType": null,
|
||||||
|
@ -137,6 +137,11 @@
|
|||||||
"HoursOfSnowDay": 0.0,
|
"HoursOfSnowDay": 0.0,
|
||||||
"HoursOfIceDay": 0.0,
|
"HoursOfIceDay": 0.0,
|
||||||
"CloudCoverDay": 58,
|
"CloudCoverDay": 58,
|
||||||
|
"SolarIrradianceDay": {
|
||||||
|
"Value": 7447.1,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
},
|
||||||
"IconNight": 41,
|
"IconNight": 41,
|
||||||
"IconPhraseNight": "Partly cloudy w/ t-storms",
|
"IconPhraseNight": "Partly cloudy w/ t-storms",
|
||||||
"HasPrecipitationNight": true,
|
"HasPrecipitationNight": true,
|
||||||
@ -197,7 +202,12 @@
|
|||||||
"HoursOfRainNight": 1.0,
|
"HoursOfRainNight": 1.0,
|
||||||
"HoursOfSnowNight": 0.0,
|
"HoursOfSnowNight": 0.0,
|
||||||
"HoursOfIceNight": 0.0,
|
"HoursOfIceNight": 0.0,
|
||||||
"CloudCoverNight": 65
|
"CloudCoverNight": 65,
|
||||||
|
"SolarIrradianceNight": {
|
||||||
|
"Value": 271.6,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Date": "2020-07-27T07:00:00+02:00",
|
"Date": "2020-07-27T07:00:00+02:00",
|
||||||
@ -335,6 +345,11 @@
|
|||||||
"HoursOfSnowDay": 0.0,
|
"HoursOfSnowDay": 0.0,
|
||||||
"HoursOfIceDay": 0.0,
|
"HoursOfIceDay": 0.0,
|
||||||
"CloudCoverDay": 52,
|
"CloudCoverDay": 52,
|
||||||
|
"SolarIrradianceDay": {
|
||||||
|
"Value": 7447.1,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
},
|
||||||
"IconNight": 36,
|
"IconNight": 36,
|
||||||
"IconPhraseNight": "Intermittent clouds",
|
"IconPhraseNight": "Intermittent clouds",
|
||||||
"HasPrecipitationNight": false,
|
"HasPrecipitationNight": false,
|
||||||
@ -393,7 +408,12 @@
|
|||||||
"HoursOfRainNight": 0.0,
|
"HoursOfRainNight": 0.0,
|
||||||
"HoursOfSnowNight": 0.0,
|
"HoursOfSnowNight": 0.0,
|
||||||
"HoursOfIceNight": 0.0,
|
"HoursOfIceNight": 0.0,
|
||||||
"CloudCoverNight": 63
|
"CloudCoverNight": 63,
|
||||||
|
"SolarIrradianceNight": {
|
||||||
|
"Value": 271.6,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Date": "2020-07-28T07:00:00+02:00",
|
"Date": "2020-07-28T07:00:00+02:00",
|
||||||
@ -531,6 +551,11 @@
|
|||||||
"HoursOfSnowDay": 0.0,
|
"HoursOfSnowDay": 0.0,
|
||||||
"HoursOfIceDay": 0.0,
|
"HoursOfIceDay": 0.0,
|
||||||
"CloudCoverDay": 65,
|
"CloudCoverDay": 65,
|
||||||
|
"SolarIrradianceDay": {
|
||||||
|
"Value": 7447.1,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
},
|
||||||
"IconNight": 36,
|
"IconNight": 36,
|
||||||
"IconPhraseNight": "Intermittent clouds",
|
"IconPhraseNight": "Intermittent clouds",
|
||||||
"HasPrecipitationNight": false,
|
"HasPrecipitationNight": false,
|
||||||
@ -589,7 +614,12 @@
|
|||||||
"HoursOfRainNight": 0.0,
|
"HoursOfRainNight": 0.0,
|
||||||
"HoursOfSnowNight": 0.0,
|
"HoursOfSnowNight": 0.0,
|
||||||
"HoursOfIceNight": 0.0,
|
"HoursOfIceNight": 0.0,
|
||||||
"CloudCoverNight": 53
|
"CloudCoverNight": 53,
|
||||||
|
"SolarIrradianceNight": {
|
||||||
|
"Value": 271.6,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Date": "2020-07-29T07:00:00+02:00",
|
"Date": "2020-07-29T07:00:00+02:00",
|
||||||
@ -727,6 +757,11 @@
|
|||||||
"HoursOfSnowDay": 0.0,
|
"HoursOfSnowDay": 0.0,
|
||||||
"HoursOfIceDay": 0.0,
|
"HoursOfIceDay": 0.0,
|
||||||
"CloudCoverDay": 45,
|
"CloudCoverDay": 45,
|
||||||
|
"SolarIrradianceDay": {
|
||||||
|
"Value": 7447.1,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
},
|
||||||
"IconNight": 34,
|
"IconNight": 34,
|
||||||
"IconPhraseNight": "Mostly clear",
|
"IconPhraseNight": "Mostly clear",
|
||||||
"HasPrecipitationNight": false,
|
"HasPrecipitationNight": false,
|
||||||
@ -785,7 +820,12 @@
|
|||||||
"HoursOfRainNight": 0.0,
|
"HoursOfRainNight": 0.0,
|
||||||
"HoursOfSnowNight": 0.0,
|
"HoursOfSnowNight": 0.0,
|
||||||
"HoursOfIceNight": 0.0,
|
"HoursOfIceNight": 0.0,
|
||||||
"CloudCoverNight": 27
|
"CloudCoverNight": 27,
|
||||||
|
"SolarIrradianceNight": {
|
||||||
|
"Value": 7447.1,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Date": "2020-07-30T07:00:00+02:00",
|
"Date": "2020-07-30T07:00:00+02:00",
|
||||||
@ -923,6 +963,11 @@
|
|||||||
"HoursOfSnowDay": 0.0,
|
"HoursOfSnowDay": 0.0,
|
||||||
"HoursOfIceDay": 0.0,
|
"HoursOfIceDay": 0.0,
|
||||||
"CloudCoverDay": 50,
|
"CloudCoverDay": 50,
|
||||||
|
"SolarIrradianceDay": {
|
||||||
|
"Value": 7447.1,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
},
|
||||||
"IconNight": 34,
|
"IconNight": 34,
|
||||||
"IconPhraseNight": "Mostly clear",
|
"IconPhraseNight": "Mostly clear",
|
||||||
"HasPrecipitationNight": false,
|
"HasPrecipitationNight": false,
|
||||||
@ -981,6 +1026,11 @@
|
|||||||
"HoursOfRainNight": 0.0,
|
"HoursOfRainNight": 0.0,
|
||||||
"HoursOfSnowNight": 0.0,
|
"HoursOfSnowNight": 0.0,
|
||||||
"HoursOfIceNight": 0.0,
|
"HoursOfIceNight": 0.0,
|
||||||
"CloudCoverNight": 13
|
"CloudCoverNight": 13,
|
||||||
|
"SolarIrradianceNight": {
|
||||||
|
"Value": 276.1,
|
||||||
|
"Unit": "W/m\u00b2",
|
||||||
|
"UnitType": 33
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -156,7 +156,7 @@ async def test_options_flow(hass: HomeAssistant) -> None:
|
|||||||
"accuweather/current_conditions_data.json"
|
"accuweather/current_conditions_data.json"
|
||||||
),
|
),
|
||||||
), patch(
|
), patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.async_get_forecast"
|
"homeassistant.components.accuweather.AccuWeather.async_get_daily_forecast"
|
||||||
), patch(
|
), patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
||||||
new_callable=PropertyMock,
|
new_callable=PropertyMock,
|
||||||
|
@ -19,7 +19,7 @@ async def test_entry_diagnostics(
|
|||||||
"current_conditions_data.json", "accuweather"
|
"current_conditions_data.json", "accuweather"
|
||||||
)
|
)
|
||||||
|
|
||||||
coordinator_data["forecast"] = {}
|
coordinator_data["forecast"] = []
|
||||||
|
|
||||||
result = await get_diagnostics_for_config_entry(hass, hass_client, entry)
|
result = await get_diagnostics_for_config_entry(hass, hass_client, entry)
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ async def test_update_interval_forecast(hass: HomeAssistant) -> None:
|
|||||||
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
||||||
return_value=current,
|
return_value=current,
|
||||||
) as mock_current, patch(
|
) as mock_current, patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.async_get_forecast",
|
"homeassistant.components.accuweather.AccuWeather.async_get_daily_forecast",
|
||||||
return_value=forecast,
|
return_value=forecast,
|
||||||
) as mock_forecast:
|
) as mock_forecast:
|
||||||
assert mock_current.call_count == 0
|
assert mock_current.call_count == 0
|
||||||
|
@ -717,7 +717,7 @@ async def test_manual_update_entity(hass: HomeAssistant) -> None:
|
|||||||
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
||||||
return_value=current,
|
return_value=current,
|
||||||
) as mock_current, patch(
|
) as mock_current, patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.async_get_forecast",
|
"homeassistant.components.accuweather.AccuWeather.async_get_daily_forecast",
|
||||||
return_value=forecast,
|
return_value=forecast,
|
||||||
) as mock_forecast, patch(
|
) as mock_forecast, patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
||||||
|
@ -74,8 +74,8 @@ async def test_weather_with_forecast(hass: HomeAssistant) -> None:
|
|||||||
assert state.attributes.get(ATTR_ATTRIBUTION) == ATTRIBUTION
|
assert state.attributes.get(ATTR_ATTRIBUTION) == ATTRIBUTION
|
||||||
forecast = state.attributes.get(ATTR_FORECAST)[0]
|
forecast = state.attributes.get(ATTR_FORECAST)[0]
|
||||||
assert forecast.get(ATTR_FORECAST_CONDITION) == "lightning-rainy"
|
assert forecast.get(ATTR_FORECAST_CONDITION) == "lightning-rainy"
|
||||||
assert forecast.get(ATTR_FORECAST_PRECIPITATION) == 4.8
|
assert forecast.get(ATTR_FORECAST_PRECIPITATION) == 2.5
|
||||||
assert forecast.get(ATTR_FORECAST_PRECIPITATION_PROBABILITY) == 58
|
assert forecast.get(ATTR_FORECAST_PRECIPITATION_PROBABILITY) == 60
|
||||||
assert forecast.get(ATTR_FORECAST_TEMP) == 29.5
|
assert forecast.get(ATTR_FORECAST_TEMP) == 29.5
|
||||||
assert forecast.get(ATTR_FORECAST_TEMP_LOW) == 15.4
|
assert forecast.get(ATTR_FORECAST_TEMP_LOW) == 15.4
|
||||||
assert forecast.get(ATTR_FORECAST_TIME) == "2020-07-26T05:00:00+00:00"
|
assert forecast.get(ATTR_FORECAST_TIME) == "2020-07-26T05:00:00+00:00"
|
||||||
@ -141,7 +141,7 @@ async def test_manual_update_entity(hass: HomeAssistant) -> None:
|
|||||||
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
"homeassistant.components.accuweather.AccuWeather.async_get_current_conditions",
|
||||||
return_value=current,
|
return_value=current,
|
||||||
) as mock_current, patch(
|
) as mock_current, patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.async_get_forecast",
|
"homeassistant.components.accuweather.AccuWeather.async_get_daily_forecast",
|
||||||
return_value=forecast,
|
return_value=forecast,
|
||||||
) as mock_forecast, patch(
|
) as mock_forecast, patch(
|
||||||
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
"homeassistant.components.accuweather.AccuWeather.requests_remaining",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user