Additional sensors for OpenWeatherMap (#47806)
This commit is contained in:
parent
7826f6e3f8
commit
362e7226e9
2 changed files with 23 additions and 2 deletions
|
@ -35,6 +35,7 @@ from homeassistant.const import (
|
|||
PRESSURE_HPA,
|
||||
SPEED_METERS_PER_SECOND,
|
||||
TEMP_CELSIUS,
|
||||
UV_INDEX,
|
||||
)
|
||||
|
||||
DOMAIN = "openweathermap"
|
||||
|
@ -47,6 +48,7 @@ ENTRY_NAME = "name"
|
|||
ENTRY_WEATHER_COORDINATOR = "weather_coordinator"
|
||||
ATTR_API_PRECIPITATION = "precipitation"
|
||||
ATTR_API_DATETIME = "datetime"
|
||||
ATTR_API_DEW_POINT = "dew_point"
|
||||
ATTR_API_WEATHER = "weather"
|
||||
ATTR_API_TEMPERATURE = "temperature"
|
||||
ATTR_API_FEELS_LIKE_TEMPERATURE = "feels_like_temperature"
|
||||
|
@ -58,6 +60,7 @@ ATTR_API_CONDITION = "condition"
|
|||
ATTR_API_CLOUDS = "clouds"
|
||||
ATTR_API_RAIN = "rain"
|
||||
ATTR_API_SNOW = "snow"
|
||||
ATTR_API_UV_INDEX = "uv_index"
|
||||
ATTR_API_WEATHER_CODE = "weather_code"
|
||||
ATTR_API_FORECAST = "forecast"
|
||||
SENSOR_NAME = "sensor_name"
|
||||
|
@ -81,6 +84,7 @@ DEFAULT_FORECAST_MODE = FORECAST_MODE_ONECALL_DAILY
|
|||
|
||||
MONITORED_CONDITIONS = [
|
||||
ATTR_API_WEATHER,
|
||||
ATTR_API_DEW_POINT,
|
||||
ATTR_API_TEMPERATURE,
|
||||
ATTR_API_FEELS_LIKE_TEMPERATURE,
|
||||
ATTR_API_WIND_SPEED,
|
||||
|
@ -90,6 +94,7 @@ MONITORED_CONDITIONS = [
|
|||
ATTR_API_CLOUDS,
|
||||
ATTR_API_RAIN,
|
||||
ATTR_API_SNOW,
|
||||
ATTR_API_UV_INDEX,
|
||||
ATTR_API_CONDITION,
|
||||
ATTR_API_WEATHER_CODE,
|
||||
]
|
||||
|
@ -187,6 +192,11 @@ CONDITION_CLASSES = {
|
|||
}
|
||||
WEATHER_SENSOR_TYPES = {
|
||||
ATTR_API_WEATHER: {SENSOR_NAME: "Weather"},
|
||||
ATTR_API_DEW_POINT: {
|
||||
SENSOR_NAME: "Dew Point",
|
||||
SENSOR_UNIT: TEMP_CELSIUS,
|
||||
SENSOR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
||||
},
|
||||
ATTR_API_TEMPERATURE: {
|
||||
SENSOR_NAME: "Temperature",
|
||||
SENSOR_UNIT: TEMP_CELSIUS,
|
||||
|
@ -215,13 +225,20 @@ WEATHER_SENSOR_TYPES = {
|
|||
ATTR_API_CLOUDS: {SENSOR_NAME: "Cloud coverage", SENSOR_UNIT: PERCENTAGE},
|
||||
ATTR_API_RAIN: {SENSOR_NAME: "Rain", SENSOR_UNIT: LENGTH_MILLIMETERS},
|
||||
ATTR_API_SNOW: {SENSOR_NAME: "Snow", SENSOR_UNIT: LENGTH_MILLIMETERS},
|
||||
ATTR_API_UV_INDEX: {
|
||||
SENSOR_NAME: "UV Index",
|
||||
SENSOR_UNIT: UV_INDEX,
|
||||
},
|
||||
ATTR_API_CONDITION: {SENSOR_NAME: "Condition"},
|
||||
ATTR_API_WEATHER_CODE: {SENSOR_NAME: "Weather Code"},
|
||||
}
|
||||
FORECAST_SENSOR_TYPES = {
|
||||
ATTR_FORECAST_CONDITION: {SENSOR_NAME: "Condition"},
|
||||
ATTR_FORECAST_PRECIPITATION: {SENSOR_NAME: "Precipitation"},
|
||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY: {SENSOR_NAME: "Precipitation probability"},
|
||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY: {
|
||||
SENSOR_NAME: "Precipitation probability",
|
||||
SENSOR_UNIT: PERCENTAGE,
|
||||
},
|
||||
ATTR_FORECAST_PRESSURE: {SENSOR_NAME: "Pressure"},
|
||||
ATTR_FORECAST_TEMP: {
|
||||
SENSOR_NAME: "Temperature",
|
||||
|
|
|
@ -25,6 +25,7 @@ from homeassistant.util import dt
|
|||
from .const import (
|
||||
ATTR_API_CLOUDS,
|
||||
ATTR_API_CONDITION,
|
||||
ATTR_API_DEW_POINT,
|
||||
ATTR_API_FEELS_LIKE_TEMPERATURE,
|
||||
ATTR_API_FORECAST,
|
||||
ATTR_API_HUMIDITY,
|
||||
|
@ -32,6 +33,7 @@ from .const import (
|
|||
ATTR_API_RAIN,
|
||||
ATTR_API_SNOW,
|
||||
ATTR_API_TEMPERATURE,
|
||||
ATTR_API_UV_INDEX,
|
||||
ATTR_API_WEATHER,
|
||||
ATTR_API_WEATHER_CODE,
|
||||
ATTR_API_WIND_BEARING,
|
||||
|
@ -119,6 +121,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
|
|||
ATTR_API_FEELS_LIKE_TEMPERATURE: current_weather.temperature("celsius").get(
|
||||
"feels_like"
|
||||
),
|
||||
ATTR_API_DEW_POINT: (round(current_weather.dewpoint / 100, 1)),
|
||||
ATTR_API_PRESSURE: current_weather.pressure.get("press"),
|
||||
ATTR_API_HUMIDITY: current_weather.humidity,
|
||||
ATTR_API_WIND_BEARING: current_weather.wind().get("deg"),
|
||||
|
@ -128,6 +131,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
|
|||
ATTR_API_SNOW: self._get_snow(current_weather.snow),
|
||||
ATTR_API_WEATHER: current_weather.detailed_status,
|
||||
ATTR_API_CONDITION: self._get_condition(current_weather.weather_code),
|
||||
ATTR_API_UV_INDEX: current_weather.uvi,
|
||||
ATTR_API_WEATHER_CODE: current_weather.weather_code,
|
||||
ATTR_API_FORECAST: forecast_weather,
|
||||
}
|
||||
|
@ -151,7 +155,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
|
|||
entry.rain, entry.snow
|
||||
),
|
||||
ATTR_FORECAST_PRECIPITATION_PROBABILITY: (
|
||||
entry.precipitation_probability * 100
|
||||
round(entry.precipitation_probability * 100)
|
||||
),
|
||||
ATTR_FORECAST_PRESSURE: entry.pressure.get("press"),
|
||||
ATTR_FORECAST_WIND_SPEED: entry.wind().get("speed"),
|
||||
|
|
Loading…
Add table
Reference in a new issue