diff --git a/homeassistant/components/aemet/const.py b/homeassistant/components/aemet/const.py index 6734ea3d1f1..337b7e0790c 100644 --- a/homeassistant/components/aemet/const.py +++ b/homeassistant/components/aemet/const.py @@ -121,8 +121,3 @@ FORECAST_MAP = { AOD_WIND_SPEED: ATTR_FORECAST_NATIVE_WIND_SPEED, }, } - -WEATHER_FORECAST_MODES = { - AOD_FORECAST_DAILY: "daily", - AOD_FORECAST_HOURLY: "hourly", -} diff --git a/homeassistant/components/aemet/weather.py b/homeassistant/components/aemet/weather.py index d49b62c9509..0d5abdcf967 100644 --- a/homeassistant/components/aemet/weather.py +++ b/homeassistant/components/aemet/weather.py @@ -14,7 +14,6 @@ from aemet_opendata.const import ( ) from homeassistant.components.weather import ( - DOMAIN as WEATHER_DOMAIN, Forecast, SingleCoordinatorWeatherEntity, WeatherEntityFeature, @@ -27,7 +26,6 @@ from homeassistant.const import ( UnitOfTemperature, ) from homeassistant.core import HomeAssistant, callback -from homeassistant.helpers import entity_registry as er from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import ( @@ -36,7 +34,6 @@ from .const import ( DOMAIN, ENTRY_NAME, ENTRY_WEATHER_COORDINATOR, - WEATHER_FORECAST_MODES, ) from .coordinator import WeatherUpdateCoordinator from .entity import AemetEntity @@ -51,31 +48,14 @@ async def async_setup_entry( domain_data = hass.data[DOMAIN][config_entry.entry_id] weather_coordinator = domain_data[ENTRY_WEATHER_COORDINATOR] - entities = [] - entity_registry = er.async_get(hass) - - # Add daily + hourly entity for legacy config entries, only add daily for new - # config entries. This can be removed in HA Core 2024.3 - if entity_registry.async_get_entity_id( - WEATHER_DOMAIN, - DOMAIN, - f"{config_entry.unique_id} {WEATHER_FORECAST_MODES[AOD_FORECAST_HOURLY]}", - ): - for mode, mode_id in WEATHER_FORECAST_MODES.items(): - name = f"{domain_data[ENTRY_NAME]} {mode_id}" - unique_id = f"{config_entry.unique_id} {mode_id}" - entities.append(AemetWeather(name, unique_id, weather_coordinator, mode)) - else: - entities.append( + async_add_entities( + [ AemetWeather( - domain_data[ENTRY_NAME], - config_entry.unique_id, - weather_coordinator, - AOD_FORECAST_DAILY, + domain_data[ENTRY_NAME], config_entry.unique_id, weather_coordinator ) - ) - - async_add_entities(entities, False) + ], + False, + ) class AemetWeather( @@ -98,14 +78,9 @@ class AemetWeather( name, unique_id, coordinator: WeatherUpdateCoordinator, - forecast_mode, ) -> None: """Initialize the sensor.""" super().__init__(coordinator) - self._forecast_mode = forecast_mode - self._attr_entity_registry_enabled_default = ( - self._forecast_mode == AOD_FORECAST_DAILY - ) self._attr_name = name self._attr_unique_id = unique_id @@ -115,11 +90,6 @@ class AemetWeather( cond = self.get_aemet_value([AOD_WEATHER, AOD_CONDITION]) return CONDITIONS_MAP.get(cond) - @property - def forecast(self) -> list[Forecast]: - """Return the forecast array.""" - return self.get_aemet_forecast(self._forecast_mode) - @callback def _async_forecast_daily(self) -> list[Forecast]: """Return the daily forecast in native units.""" diff --git a/tests/components/aemet/test_weather.py b/tests/components/aemet/test_weather.py index 88427a5a38f..ec2c088fe6d 100644 --- a/tests/components/aemet/test_weather.py +++ b/tests/components/aemet/test_weather.py @@ -7,19 +7,10 @@ from freezegun.api import FrozenDateTimeFactory import pytest from syrupy.assertion import SnapshotAssertion -from homeassistant.components.aemet.const import ATTRIBUTION, DOMAIN +from homeassistant.components.aemet.const import ATTRIBUTION from homeassistant.components.aemet.coordinator import WEATHER_UPDATE_INTERVAL from homeassistant.components.weather import ( ATTR_CONDITION_SNOWY, - ATTR_FORECAST, - ATTR_FORECAST_CONDITION, - ATTR_FORECAST_PRECIPITATION, - ATTR_FORECAST_PRECIPITATION_PROBABILITY, - ATTR_FORECAST_TEMP, - ATTR_FORECAST_TEMP_LOW, - ATTR_FORECAST_TIME, - ATTR_FORECAST_WIND_BEARING, - ATTR_FORECAST_WIND_SPEED, ATTR_WEATHER_HUMIDITY, ATTR_WEATHER_PRESSURE, ATTR_WEATHER_TEMPERATURE, @@ -32,8 +23,6 @@ from homeassistant.components.weather import ( ) from homeassistant.const import ATTR_ATTRIBUTION from homeassistant.core import HomeAssistant -from homeassistant.helpers import entity_registry as er -import homeassistant.util.dt as dt_util from .util import async_init_integration, mock_api_call @@ -60,62 +49,6 @@ async def test_aemet_weather( assert state.attributes[ATTR_WEATHER_WIND_BEARING] == 122.0 assert state.attributes[ATTR_WEATHER_WIND_GUST_SPEED] == 12.2 assert state.attributes[ATTR_WEATHER_WIND_SPEED] == 3.2 - forecast = state.attributes[ATTR_FORECAST][0] - assert forecast[ATTR_FORECAST_CONDITION] == ATTR_CONDITION_SNOWY - assert ATTR_FORECAST_PRECIPITATION not in forecast - assert forecast[ATTR_FORECAST_PRECIPITATION_PROBABILITY] == 0 - assert forecast[ATTR_FORECAST_TEMP] == 2 - assert forecast[ATTR_FORECAST_TEMP_LOW] == -1 - assert ( - forecast[ATTR_FORECAST_TIME] - == dt_util.parse_datetime("2021-01-08 23:00:00+00:00").isoformat() - ) - assert forecast[ATTR_FORECAST_WIND_BEARING] == 90.0 - assert forecast[ATTR_FORECAST_WIND_SPEED] == 0.0 - - state = hass.states.get("weather.aemet_hourly") - assert state is None - - -async def test_aemet_weather_legacy( - hass: HomeAssistant, - freezer: FrozenDateTimeFactory, - entity_registry: er.EntityRegistry, -) -> None: - """Test states of legacy weather.""" - - entity_registry.async_get_or_create( - WEATHER_DOMAIN, - DOMAIN, - "None hourly", - ) - - hass.config.set_time_zone("UTC") - freezer.move_to("2021-01-09 12:00:00+00:00") - await async_init_integration(hass) - - state = hass.states.get("weather.aemet_daily") - assert state - assert state.state == ATTR_CONDITION_SNOWY - assert state.attributes[ATTR_ATTRIBUTION] == ATTRIBUTION - assert state.attributes[ATTR_WEATHER_HUMIDITY] == 99.0 - assert state.attributes[ATTR_WEATHER_PRESSURE] == 1004.4 # 100440.0 Pa -> hPa - assert state.attributes[ATTR_WEATHER_TEMPERATURE] == -0.7 - assert state.attributes[ATTR_WEATHER_WIND_BEARING] == 122.0 - assert state.attributes[ATTR_WEATHER_WIND_GUST_SPEED] == 12.2 - assert state.attributes[ATTR_WEATHER_WIND_SPEED] == 3.2 - forecast = state.attributes[ATTR_FORECAST][0] - assert forecast[ATTR_FORECAST_CONDITION] == ATTR_CONDITION_SNOWY - assert ATTR_FORECAST_PRECIPITATION not in forecast - assert forecast[ATTR_FORECAST_PRECIPITATION_PROBABILITY] == 0 - assert forecast[ATTR_FORECAST_TEMP] == 2 - assert forecast[ATTR_FORECAST_TEMP_LOW] == -1 - assert ( - forecast[ATTR_FORECAST_TIME] - == dt_util.parse_datetime("2021-01-08 23:00:00+00:00").isoformat() - ) - assert forecast[ATTR_FORECAST_WIND_BEARING] == 90.0 - assert forecast[ATTR_FORECAST_WIND_SPEED] == 0.0 state = hass.states.get("weather.aemet_hourly") assert state is None