2024-01-03 11:01:45 +01:00

196 lines
5.9 KiB
Markdown

---
title: Weather
description: Instructions on how to setup your Weather platforms with Home Assistant.
ha_category:
- Weather
ha_release: 0.32
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: weather
ha_integration_type: entity
---
The `weather` platforms gather meteorological information from web services and display the conditions and other details about the weather at the given location.
{% include integrations/building_block_integration.md %}
For a list of weather integrations, on the integrations page, select the [weather category](/integrations/#weather).
Read the {% term integration %} documentation for your particular weather provider to learn how to set it up.
Home Assistant currently supports free web services some of which require registration.
## State and state attributes
A weather {% term entity %}'s state is used to indicate the current overall conditions, e.g. 'cloudy' or 'sunny'.
### Condition mapping
The `weather` {% term entity %} can provide the conditions listed below as its state:
- 'clear-night'
- 'cloudy'
- 'fog'
- 'hail'
- 'lightning'
- 'lightning-rainy'
- 'partlycloudy'
- 'pouring'
- 'rainy'
- 'snowy'
- 'snowy-rainy'
- 'sunny'
- 'windy'
- 'windy-variant'
- 'exceptional'
### State attributes
Detailed weather conditions as well as the unit of measurements used for the conditions are indicated by state attributes. A weather {% term entity %} may not support all the state attributes.
```yaml
apparent_temperature: 12.0
cloud_coverage: 0
dew_point: 5.0
humidity: 76
precipitation_unit: mm
pressure: 1019
pressure_unit: hPa
temperature: 14.2
temperature_unit: °C
uv_index: 2
visibility: 10
visibility_unit: km
wind_bearing: 260
wind_gust_speed: 51.56
wind_speed: 35.17
wind_speed_unit: km/h
```
## Service `weather.get_forecasts`
This service populates [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
with a mapping of weather services and their associated forecasts.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `type` | no | The type of forecast, must be one of `daily`, `twice_daily`, or `hourly`. The default is `daily`. | daily
```yaml
service: weather.get_forecasts
target:
entity_id:
- weather.tomorrow_io_home_nowcast
- weather.toronto_forecast
data:
type: hourly
response_variable: weather_forecast
```
The response data field is a mapping of called target entities, each containing the `forecast` field.
`forecast` is a list of forecasted conditions at a given point in time:
| Response data | Description | Example |
| ---------------------- | ----------- | -------- |
| `datetime` | The time of the forecasted conditions. | 2023-02-17T14:00:00+00:00
| `is_daytime` | Only set for `twice_daily` forecasts. | False
| `apparent_temperature` | The apparent (feels-like) temperature in the unit indicated by the `temperature_unit` state attribute. | 10.2
| `cloud_coverage` | The cloud coverage in %. | 15
| `condition` | The weather condition. | Sunny
| `dew_point` | The dew point temperature in the unit indicated by the `temperature_unit` state attribute. | 6.0
| `humidity` | The relative humidity in %. | 82
| `precipitation_probability` | The probability of precipitation in %. | 0
| `precipitation` | The precipitation amount in the unit indicated by the `precipitation_unit` state attribute. | 0
| `pressure` | The air pressure in the unit indicated by the `pressure_unit` state attribute. | 1019
| `temperature` | The temperature in the unit indicated by the `temperature_unit` state attribute. If `templow` is also provided, this is the higher temperature. | 14.2
| `templow` | The lower temperature in the unit indicated by the `temperature_unit` state attribute. | 5.0
| `uv_index` | The UV index. | 3
| `wind_bearing` | The wind bearing in azimuth angle (degrees) or 1-3 letter cardinal direction. | 268
| `wind_gust_speed` | The wind gust speed in the unit indicated by the `wind_speed_unit` state attribute. | 34.41
| `wind_speed` | The wind speed in the unit indicated by the `wind_speed_unit` state attribute. | 24.41
## Examples
{% details "Example template sensor using get_forecasts" %}
Example template sensor that contains the hourly forecast
{% raw %}
```yaml
template:
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.home
response_variable: hourly
sensor:
- name: Temperature forecast next hour
unique_id: temperature_forecast_next_hour
state: "{{ hourly['weather.home'].forecast[0].temperature }}"
unit_of_measurement: °C
```
{% endraw %}
{% enddetails %}
{% details "Example service response" %}
```yaml
weather.tomorrow_io_home_nowcast:
forecast:
- datetime: "2023-12-07T13:00:00+00:00"
condition: cloudy
precipitation_probability: 0
wind_bearing: 241.19
temperature: 0.1
dew_point: -1.9
wind_speed: 16.88
precipitation: 0
humidity: 86
- datetime: "2023-12-07T14:00:00+00:00"
condition: cloudy
precipitation_probability: 0
wind_bearing: 232.41
temperature: 0.8
dew_point: -2.8
wind_speed: 17.82
precipitation: 0
humidity: 77
- datetime: "2023-12-07T15:00:00+00:00"
condition: cloudy
precipitation_probability: 0
wind_bearing: 236.09
temperature: 1.1
dew_point: -2.6
wind_speed: 17.89
precipitation: 0
humidity: 77
weather.toronto_forecast:
forecast:
- datetime: "2023-12-07T14:00:00+00:00"
condition: snowy
precipitation_probability: 40
temperature: 0
- datetime: "2023-12-07T15:00:00+00:00"
condition: snowy
precipitation_probability: 40
temperature: 0
- datetime: "2023-12-07T16:00:00+00:00"
condition: snowy
precipitation_probability: 40
temperature: 0
```
{% enddetails %}