diff --git a/homeassistant/components/aemet/sensor.py b/homeassistant/components/aemet/sensor.py index f7aa6b35893..76e691a4682 100644 --- a/homeassistant/components/aemet/sensor.py +++ b/homeassistant/components/aemet/sensor.py @@ -30,6 +30,7 @@ from .const import ( ATTR_API_FORECAST_TEMP_LOW, ATTR_API_FORECAST_TIME, ATTR_API_FORECAST_WIND_BEARING, + ATTR_API_FORECAST_WIND_MAX_SPEED, ATTR_API_FORECAST_WIND_SPEED, ATTR_API_HUMIDITY, ATTR_API_PRESSURE, @@ -99,6 +100,12 @@ FORECAST_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( name="Wind bearing", native_unit_of_measurement=DEGREE, ), + SensorEntityDescription( + key=ATTR_API_FORECAST_WIND_MAX_SPEED, + name="Wind max speed", + native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR, + device_class=SensorDeviceClass.WIND_SPEED, + ), SensorEntityDescription( key=ATTR_API_FORECAST_WIND_SPEED, name="Wind speed", @@ -206,13 +213,14 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( name="Wind max speed", native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR, device_class=SensorDeviceClass.WIND_SPEED, + state_class=SensorStateClass.MEASUREMENT, ), SensorEntityDescription( key=ATTR_API_WIND_SPEED, name="Wind speed", native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR, - state_class=SensorStateClass.MEASUREMENT, device_class=SensorDeviceClass.WIND_SPEED, + state_class=SensorStateClass.MEASUREMENT, ), ) diff --git a/homeassistant/components/aemet/weather.py b/homeassistant/components/aemet/weather.py index e3a1922c2f1..03f91a74740 100644 --- a/homeassistant/components/aemet/weather.py +++ b/homeassistant/components/aemet/weather.py @@ -42,6 +42,7 @@ from .const import ( ATTR_API_PRESSURE, ATTR_API_TEMPERATURE, ATTR_API_WIND_BEARING, + ATTR_API_WIND_MAX_SPEED, ATTR_API_WIND_SPEED, ATTRIBUTION, DOMAIN, @@ -193,6 +194,11 @@ class AemetWeather(SingleCoordinatorWeatherEntity[WeatherUpdateCoordinator]): """Return the wind bearing.""" return self.coordinator.data[ATTR_API_WIND_BEARING] + @property + def native_wind_gust_speed(self): + """Return the wind gust speed in native units.""" + return self.coordinator.data[ATTR_API_WIND_MAX_SPEED] + @property def native_wind_speed(self): """Return the wind speed.""" diff --git a/tests/components/aemet/test_sensor.py b/tests/components/aemet/test_sensor.py index 8237987bf44..7b6f02f8b06 100644 --- a/tests/components/aemet/test_sensor.py +++ b/tests/components/aemet/test_sensor.py @@ -66,6 +66,9 @@ async def test_aemet_forecast_create_sensors( state = hass.states.get("sensor.aemet_hourly_forecast_wind_bearing") assert state is None + state = hass.states.get("sensor.aemet_hourly_forecast_wind_max_speed") + assert state is None + state = hass.states.get("sensor.aemet_hourly_forecast_wind_speed") assert state is None diff --git a/tests/components/aemet/test_weather.py b/tests/components/aemet/test_weather.py index ddcc29698fd..d0042faaaa0 100644 --- a/tests/components/aemet/test_weather.py +++ b/tests/components/aemet/test_weather.py @@ -26,6 +26,7 @@ from homeassistant.components.weather import ( ATTR_WEATHER_PRESSURE, ATTR_WEATHER_TEMPERATURE, ATTR_WEATHER_WIND_BEARING, + ATTR_WEATHER_WIND_GUST_SPEED, ATTR_WEATHER_WIND_SPEED, DOMAIN as WEATHER_DOMAIN, SERVICE_GET_FORECAST, @@ -58,6 +59,7 @@ async def test_aemet_weather( assert state.attributes.get(ATTR_WEATHER_PRESSURE) == 1004.4 # 100440.0 Pa -> hPa assert state.attributes.get(ATTR_WEATHER_TEMPERATURE) == -0.7 assert state.attributes.get(ATTR_WEATHER_WIND_BEARING) == 90.0 + assert state.attributes.get(ATTR_WEATHER_WIND_GUST_SPEED) == 24.0 assert state.attributes.get(ATTR_WEATHER_WIND_SPEED) == 15.0 # 4.17 m/s -> km/h forecast = state.attributes.get(ATTR_FORECAST)[0] assert forecast.get(ATTR_FORECAST_CONDITION) == ATTR_CONDITION_PARTLYCLOUDY @@ -101,6 +103,7 @@ async def test_aemet_weather_legacy( assert state.attributes.get(ATTR_WEATHER_PRESSURE) == 1004.4 # 100440.0 Pa -> hPa assert state.attributes.get(ATTR_WEATHER_TEMPERATURE) == -0.7 assert state.attributes.get(ATTR_WEATHER_WIND_BEARING) == 90.0 + assert state.attributes.get(ATTR_WEATHER_WIND_GUST_SPEED) == 24.0 assert state.attributes.get(ATTR_WEATHER_WIND_SPEED) == 15.0 # 4.17 m/s -> km/h forecast = state.attributes.get(ATTR_FORECAST)[0] assert forecast.get(ATTR_FORECAST_CONDITION) == ATTR_CONDITION_PARTLYCLOUDY