mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Add new attributes to OpenWeatherMap weather entity (#95173)
* Add new attrs to current condition * Add new attrs to forecast
This commit is contained in:
parent
67586caaf9
commit
62e518badb
@ -35,6 +35,7 @@ ATTR_API_DEW_POINT = "dew_point"
|
||||
ATTR_API_WEATHER = "weather"
|
||||
ATTR_API_TEMPERATURE = "temperature"
|
||||
ATTR_API_FEELS_LIKE_TEMPERATURE = "feels_like_temperature"
|
||||
ATTR_API_WIND_GUST = "wind_gust"
|
||||
ATTR_API_WIND_SPEED = "wind_speed"
|
||||
ATTR_API_WIND_BEARING = "wind_bearing"
|
||||
ATTR_API_HUMIDITY = "humidity"
|
||||
@ -50,7 +51,10 @@ ATTR_API_FORECAST = "forecast"
|
||||
UPDATE_LISTENER = "update_listener"
|
||||
PLATFORMS = [Platform.SENSOR, Platform.WEATHER]
|
||||
|
||||
ATTR_API_FORECAST_CLOUDS = "clouds"
|
||||
ATTR_API_FORECAST_CONDITION = "condition"
|
||||
ATTR_API_FORECAST_FEELS_LIKE_TEMPERATURE = "feels_like_temperature"
|
||||
ATTR_API_FORECAST_HUMIDITY = "humidity"
|
||||
ATTR_API_FORECAST_PRECIPITATION = "precipitation"
|
||||
ATTR_API_FORECAST_PRECIPITATION_PROBABILITY = "precipitation_probability"
|
||||
ATTR_API_FORECAST_PRESSURE = "pressure"
|
||||
|
@ -4,7 +4,10 @@ from __future__ import annotations
|
||||
from typing import cast
|
||||
|
||||
from homeassistant.components.weather import (
|
||||
ATTR_FORECAST_CLOUD_COVERAGE,
|
||||
ATTR_FORECAST_CONDITION,
|
||||
ATTR_FORECAST_HUMIDITY,
|
||||
ATTR_FORECAST_NATIVE_APPARENT_TEMP,
|
||||
ATTR_FORECAST_NATIVE_PRECIPITATION,
|
||||
ATTR_FORECAST_NATIVE_PRESSURE,
|
||||
ATTR_FORECAST_NATIVE_TEMP,
|
||||
@ -29,9 +32,15 @@ from homeassistant.helpers.entity import DeviceInfo
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from .const import (
|
||||
ATTR_API_CLOUDS,
|
||||
ATTR_API_CONDITION,
|
||||
ATTR_API_DEW_POINT,
|
||||
ATTR_API_FEELS_LIKE_TEMPERATURE,
|
||||
ATTR_API_FORECAST,
|
||||
ATTR_API_FORECAST_CLOUDS,
|
||||
ATTR_API_FORECAST_CONDITION,
|
||||
ATTR_API_FORECAST_FEELS_LIKE_TEMPERATURE,
|
||||
ATTR_API_FORECAST_HUMIDITY,
|
||||
ATTR_API_FORECAST_PRECIPITATION,
|
||||
ATTR_API_FORECAST_PRECIPITATION_PROBABILITY,
|
||||
ATTR_API_FORECAST_PRESSURE,
|
||||
@ -44,6 +53,7 @@ from .const import (
|
||||
ATTR_API_PRESSURE,
|
||||
ATTR_API_TEMPERATURE,
|
||||
ATTR_API_WIND_BEARING,
|
||||
ATTR_API_WIND_GUST,
|
||||
ATTR_API_WIND_SPEED,
|
||||
ATTRIBUTION,
|
||||
DEFAULT_NAME,
|
||||
@ -64,6 +74,9 @@ FORECAST_MAP = {
|
||||
ATTR_API_FORECAST_TIME: ATTR_FORECAST_TIME,
|
||||
ATTR_API_FORECAST_WIND_BEARING: ATTR_FORECAST_WIND_BEARING,
|
||||
ATTR_API_FORECAST_WIND_SPEED: ATTR_FORECAST_NATIVE_WIND_SPEED,
|
||||
ATTR_API_FORECAST_CLOUDS: ATTR_FORECAST_CLOUD_COVERAGE,
|
||||
ATTR_API_FORECAST_HUMIDITY: ATTR_FORECAST_HUMIDITY,
|
||||
ATTR_API_FORECAST_FEELS_LIKE_TEMPERATURE: ATTR_FORECAST_NATIVE_APPARENT_TEMP,
|
||||
}
|
||||
|
||||
|
||||
@ -116,6 +129,16 @@ class OpenWeatherMapWeather(WeatherEntity):
|
||||
"""Return the current condition."""
|
||||
return self._weather_coordinator.data[ATTR_API_CONDITION]
|
||||
|
||||
@property
|
||||
def cloud_coverage(self) -> float | None:
|
||||
"""Return the Cloud coverage in %."""
|
||||
return self._weather_coordinator.data[ATTR_API_CLOUDS]
|
||||
|
||||
@property
|
||||
def native_apparent_temperature(self) -> float | None:
|
||||
"""Return the apparent temperature."""
|
||||
return self._weather_coordinator.data[ATTR_API_FEELS_LIKE_TEMPERATURE]
|
||||
|
||||
@property
|
||||
def native_temperature(self) -> float | None:
|
||||
"""Return the temperature."""
|
||||
@ -131,6 +154,16 @@ class OpenWeatherMapWeather(WeatherEntity):
|
||||
"""Return the humidity."""
|
||||
return self._weather_coordinator.data[ATTR_API_HUMIDITY]
|
||||
|
||||
@property
|
||||
def native_dew_point(self) -> float | None:
|
||||
"""Return the dew point."""
|
||||
return self._weather_coordinator.data[ATTR_API_DEW_POINT]
|
||||
|
||||
@property
|
||||
def native_wind_gust_speed(self) -> float | None:
|
||||
"""Return the wind gust speed."""
|
||||
return self._weather_coordinator.data[ATTR_API_WIND_GUST]
|
||||
|
||||
@property
|
||||
def native_wind_speed(self) -> float | None:
|
||||
"""Return the wind speed."""
|
||||
|
@ -21,7 +21,10 @@ from .const import (
|
||||
ATTR_API_DEW_POINT,
|
||||
ATTR_API_FEELS_LIKE_TEMPERATURE,
|
||||
ATTR_API_FORECAST,
|
||||
ATTR_API_FORECAST_CLOUDS,
|
||||
ATTR_API_FORECAST_CONDITION,
|
||||
ATTR_API_FORECAST_FEELS_LIKE_TEMPERATURE,
|
||||
ATTR_API_FORECAST_HUMIDITY,
|
||||
ATTR_API_FORECAST_PRECIPITATION,
|
||||
ATTR_API_FORECAST_PRECIPITATION_PROBABILITY,
|
||||
ATTR_API_FORECAST_PRESSURE,
|
||||
@ -41,6 +44,7 @@ from .const import (
|
||||
ATTR_API_WEATHER,
|
||||
ATTR_API_WEATHER_CODE,
|
||||
ATTR_API_WIND_BEARING,
|
||||
ATTR_API_WIND_GUST,
|
||||
ATTR_API_WIND_SPEED,
|
||||
CONDITION_CLASSES,
|
||||
DOMAIN,
|
||||
@ -130,6 +134,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
|
||||
ATTR_API_PRESSURE: current_weather.pressure.get("press"),
|
||||
ATTR_API_HUMIDITY: current_weather.humidity,
|
||||
ATTR_API_WIND_BEARING: current_weather.wind().get("deg"),
|
||||
ATTR_API_WIND_GUST: current_weather.wind().get("gust"),
|
||||
ATTR_API_WIND_SPEED: current_weather.wind().get("speed"),
|
||||
ATTR_API_CLOUDS: current_weather.clouds,
|
||||
ATTR_API_RAIN: self._get_rain(current_weather.rain),
|
||||
@ -174,7 +179,11 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
|
||||
ATTR_API_FORECAST_CONDITION: self._get_condition(
|
||||
entry.weather_code, entry.reference_time("unix")
|
||||
),
|
||||
ATTR_API_CLOUDS: entry.clouds,
|
||||
ATTR_API_FORECAST_CLOUDS: entry.clouds,
|
||||
ATTR_API_FORECAST_FEELS_LIKE_TEMPERATURE: entry.temperature("celsius").get(
|
||||
"feels_like_day"
|
||||
),
|
||||
ATTR_API_FORECAST_HUMIDITY: entry.humidity,
|
||||
}
|
||||
|
||||
temperature_dict = entry.temperature("celsius")
|
||||
|
Loading…
x
Reference in New Issue
Block a user