developers.home-assistant/docs/core/entity/weather.md

6.1 KiB

title sidebar_label
Weather Entity Weather

Derive entity platforms from homeassistant.components.weather.WeatherEntity

Properties

:::tip Properties should always only return information from memory and not do I/O (like network requests). Implement update() or async_update() to fetch data. :::

Name Type Default Description
condition string Required The current weather condition.
native_temperature float Required The current temperature in °C or °F.
native_apparent_temperature float None The current apparent (feels-like) temperature in °C or °F.
native_temperature_unit string Required The temperature unit; °C or °F.
native_dew_point float None The dew point temperature in °C or °F.
native_pressure float None The current air pressure in hPa, mbar, inHg or mmHg.
native_pressure_unit string None The air pressure unit; hPa, mbar, inHg or mmHg. Required if native_pressure is set.
humidity float None The current humidity in %.
ozone float None The current ozone level.
cloud_coverage int None The current cloud coverage in %.
native_visibility float None The current visibility in km or mi.
native_visibility_unit string None The visibility unit; km or mi. Required if native_visibility is set.
native_wind_gust_speed float None The current wind gust speed in m/s, km/h, mi/h, ft/s or kn.
native_wind_speed float None The current wind speed in m/s, km/h, mi/h, ft/s or kn.
native_wind_speed_unit string None The wind speed unit;m/s, km/h, mi/h, ft/s or kn. Required if native_wind_speed is set.
native_precipitation_unit string None The precipitation unit; mm or in.
wind_bearing float or string None The current wind bearing in azimuth angle (degrees) or 1-3 letter cardinal direction.

Unit Conversion

Properties have to follow the units mentioned on the respective unit of measurement in the table.

To the user, properties will be presented according to the unit system. This is achieved by automatically converting units when creating state objects.

For each weather entity, the user also has the option to override the presentation units, i.e., the units used in the state objects.

These weather conditions are included in our translation files and also show the corresponding icon.

Condition Description
clear-night Clear night
cloudy Many clouds
exceptional Exceptional
fog Fog
hail Hail
lightning Lightning/ thunderstorms
lightning-rainy Lightning/ thunderstorms and rain
partlycloudy A few clouds
pouring Pouring rain
rainy Rain
snowy Snow
snowy-rainy Snow and Rain
sunny Sunshine
windy Wind
windy-variant Wind and clouds

This means that the weather platforms don't need to support languages.

Forecast data

Forecast data can be daily, hourly or twice_daily. An integration can provide any or all of them.

The integration should implement one or several of the async methods async_forecast_daily, async_forecast_hourly and async_forecast_twice_daily to fetch the forecast data.

Setting the correct supported feature is required to use these methods.

Name Type Default Description
datetime string Required UTC Date time in RFC 3339 format.
native_temperature float Required The higher temperature in °C or °F
condition string None The weather condition at this point.
native_templow float None The lower daily Temperature in °C or °F
native_precipitation float None The precipitation amount in mm or in.
precipitation_probability int None The probability of precipitation in %.
native_pressure float None The air pressure in hPa, mbar, inHg or mmHg.
wind_bearing float or string None The wind bearing in azimuth angle (degrees) or 1-3 letter cardinal direction.
native_wind_speed int None The wind speed in m/s, km/h, mi/h, ft/s or kn.
is_daytime bool None For async_forecast_twice_daily required to use for day/night.

Forecast data needs to follow the same unit of measurement as defined for properties where applicable.

Supported Features

Supported features are defined by using values in the WeatherEntityFeature enum and are combined using the bitwise or (|) operator. Usage of the supported features are required for async_update_forecast() to push updated forecast to all listeners used by frontend.

Value Description
FORECAST_DAILY The device supports a daily forecast.
FORECAST_HOURLY The device supports an hourly forecast.
FORECAST_TWICE_DAILY The device supports a twice-daily forecast.

Methods

Get forecast(s)

This method is used to fetch a daily forecast from the api.

class MyWeatherEntity(WeatherEntity):
    """Represent a Weather entity."""

    async def async_forecast_daily(self) -> list[Forecast] | None:
        """Return the daily forecast in native units.
        
        Only implement this method if `FORECAST_DAILY` is set
        """

    async def async_forecast_twice_daily(self) -> list[Forecast] | None:
        """Return the twice daily forecast in native units.
        
        Only implement this method if `FORECAST_TWICE_DAILY` is set
        """

    async def async_forecast_hourly(self) -> list[Forecast] | None:
        """Return the hourly forecast in native units.
        
        Only implement this method if `FORECAST_HOURLY` is set
        """