diff --git a/homeassistant/components/openweathermap/const.py b/homeassistant/components/openweathermap/const.py index 456ec05b038..6c9997fc061 100644 --- a/homeassistant/components/openweathermap/const.py +++ b/homeassistant/components/openweathermap/const.py @@ -53,19 +53,6 @@ ATTR_API_DAILY_FORECAST = "daily_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" -ATTR_API_FORECAST_TEMP = "temperature" -ATTR_API_FORECAST_TEMP_LOW = "templow" -ATTR_API_FORECAST_TIME = "datetime" -ATTR_API_FORECAST_WIND_BEARING = "wind_bearing" -ATTR_API_FORECAST_WIND_SPEED = "wind_speed" - FORECAST_MODE_HOURLY = "hourly" FORECAST_MODE_DAILY = "daily" FORECAST_MODE_FREE_DAILY = "freedaily" diff --git a/homeassistant/components/openweathermap/sensor.py b/homeassistant/components/openweathermap/sensor.py index 5fe0df60387..89905e99ed9 100644 --- a/homeassistant/components/openweathermap/sensor.py +++ b/homeassistant/components/openweathermap/sensor.py @@ -2,8 +2,6 @@ from __future__ import annotations -from datetime import datetime - from homeassistant.components.sensor import ( SensorDeviceClass, SensorEntity, @@ -15,7 +13,6 @@ from homeassistant.const import ( PERCENTAGE, UV_INDEX, UnitOfLength, - UnitOfPrecipitationDepth, UnitOfPressure, UnitOfSpeed, UnitOfTemperature, @@ -26,23 +23,14 @@ from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import StateType from homeassistant.helpers.update_coordinator import DataUpdateCoordinator -from homeassistant.util import dt as dt_util from . import OpenweathermapConfigEntry from .const import ( - ATTR_API_CLOUD_COVERAGE, ATTR_API_CLOUDS, ATTR_API_CONDITION, ATTR_API_CURRENT, - ATTR_API_DAILY_FORECAST, ATTR_API_DEW_POINT, ATTR_API_FEELS_LIKE_TEMPERATURE, - ATTR_API_FORECAST_PRECIPITATION, - ATTR_API_FORECAST_PRECIPITATION_PROBABILITY, - ATTR_API_FORECAST_PRESSURE, - ATTR_API_FORECAST_TEMP, - ATTR_API_FORECAST_TEMP_LOW, - ATTR_API_FORECAST_TIME, ATTR_API_HUMIDITY, ATTR_API_PRECIPITATION_KIND, ATTR_API_PRESSURE, @@ -161,62 +149,6 @@ WEATHER_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( name="Weather Code", ), ) -FORECAST_SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( - SensorEntityDescription( - key=ATTR_API_CONDITION, - name="Condition", - ), - SensorEntityDescription( - key=ATTR_API_FORECAST_PRECIPITATION, - name="Precipitation", - device_class=SensorDeviceClass.PRECIPITATION, - native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS, - ), - SensorEntityDescription( - key=ATTR_API_FORECAST_PRECIPITATION_PROBABILITY, - name="Precipitation probability", - native_unit_of_measurement=PERCENTAGE, - ), - SensorEntityDescription( - key=ATTR_API_FORECAST_PRESSURE, - name="Pressure", - native_unit_of_measurement=UnitOfPressure.HPA, - device_class=SensorDeviceClass.PRESSURE, - ), - SensorEntityDescription( - key=ATTR_API_FORECAST_TEMP, - name="Temperature", - native_unit_of_measurement=UnitOfTemperature.CELSIUS, - device_class=SensorDeviceClass.TEMPERATURE, - ), - SensorEntityDescription( - key=ATTR_API_FORECAST_TEMP_LOW, - name="Temperature Low", - native_unit_of_measurement=UnitOfTemperature.CELSIUS, - device_class=SensorDeviceClass.TEMPERATURE, - ), - SensorEntityDescription( - key=ATTR_API_FORECAST_TIME, - name="Time", - device_class=SensorDeviceClass.TIMESTAMP, - ), - SensorEntityDescription( - key=ATTR_API_WIND_BEARING, - name="Wind bearing", - native_unit_of_measurement=DEGREE, - ), - SensorEntityDescription( - key=ATTR_API_WIND_SPEED, - name="Wind speed", - native_unit_of_measurement=UnitOfSpeed.METERS_PER_SECOND, - device_class=SensorDeviceClass.WIND_SPEED, - ), - SensorEntityDescription( - key=ATTR_API_CLOUD_COVERAGE, - name="Cloud coverage", - native_unit_of_measurement=PERCENTAGE, - ), -) async def async_setup_entry( @@ -238,19 +170,6 @@ async def async_setup_entry( ) for description in WEATHER_SENSOR_TYPES ] - - entities.extend( - [ - OpenWeatherMapForecastSensor( - f"{name} Forecast", - f"{config_entry.unique_id}-forecast-{description.key}", - description, - weather_coordinator, - ) - for description in FORECAST_SENSOR_TYPES - ] - ) - async_add_entities(entities) @@ -317,31 +236,3 @@ class OpenWeatherMapSensor(AbstractOpenWeatherMapSensor): return self._weather_coordinator.data[ATTR_API_CURRENT].get( self.entity_description.key ) - - -class OpenWeatherMapForecastSensor(AbstractOpenWeatherMapSensor): - """Implementation of an OpenWeatherMap this day forecast sensor.""" - - def __init__( - self, - name: str, - unique_id: str, - description: SensorEntityDescription, - weather_coordinator: WeatherUpdateCoordinator, - ) -> None: - """Initialize the sensor.""" - super().__init__(name, unique_id, description, weather_coordinator) - self._weather_coordinator = weather_coordinator - - @property - def native_value(self) -> StateType | datetime: - """Return the state of the device.""" - forecasts = self._weather_coordinator.data[ATTR_API_DAILY_FORECAST] - value = forecasts[0].get(self.entity_description.key) - if ( - value - and self.entity_description.device_class is SensorDeviceClass.TIMESTAMP - ): - return dt_util.parse_datetime(value) - - return value