Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants for the Open-Meteo integration."""
2 
3 from __future__ import annotations
4 
5 from datetime import timedelta
6 import logging
7 from typing import Final
8 
10  ATTR_CONDITION_CLOUDY,
11  ATTR_CONDITION_FOG,
12  ATTR_CONDITION_LIGHTNING,
13  ATTR_CONDITION_PARTLYCLOUDY,
14  ATTR_CONDITION_POURING,
15  ATTR_CONDITION_RAINY,
16  ATTR_CONDITION_SNOWY,
17  ATTR_CONDITION_SUNNY,
18 )
19 
20 DOMAIN: Final = "open_meteo"
21 
22 LOGGER = logging.getLogger(__package__)
23 SCAN_INTERVAL = timedelta(minutes=30)
24 
25 # World Meteorological Organization Weather Code
26 # mapped to Home Assistant weather conditions.
27 # https://www.weather.gov/tg/wmo
28 WMO_TO_HA_CONDITION_MAP = {
29  0: ATTR_CONDITION_SUNNY, # Clear sky
30  1: ATTR_CONDITION_SUNNY, # Mainly clear
31  2: ATTR_CONDITION_PARTLYCLOUDY, # Partly cloudy
32  3: ATTR_CONDITION_CLOUDY, # Overcast
33  45: ATTR_CONDITION_FOG, # Fog
34  48: ATTR_CONDITION_FOG, # Depositing rime fog # codespell:ignore rime
35  51: ATTR_CONDITION_RAINY, # Drizzle: Light intensity
36  53: ATTR_CONDITION_RAINY, # Drizzle: Moderate intensity
37  55: ATTR_CONDITION_RAINY, # Drizzle: Dense intensity
38  56: ATTR_CONDITION_RAINY, # Freezing Drizzle: Light intensity
39  57: ATTR_CONDITION_RAINY, # Freezing Drizzle: Dense intensity
40  61: ATTR_CONDITION_RAINY, # Rain: Slight intensity
41  63: ATTR_CONDITION_RAINY, # Rain: Moderate intensity
42  65: ATTR_CONDITION_POURING, # Rain: Heavy intensity
43  66: ATTR_CONDITION_RAINY, # Freezing Rain: Light intensity
44  67: ATTR_CONDITION_POURING, # Freezing Rain: Heavy intensity
45  71: ATTR_CONDITION_SNOWY, # Snow fall: Slight intensity
46  73: ATTR_CONDITION_SNOWY, # Snow fall: Moderate intensity
47  75: ATTR_CONDITION_SNOWY, # Snow fall: Heavy intensity
48  77: ATTR_CONDITION_SNOWY, # Snow grains
49  80: ATTR_CONDITION_RAINY, # Rain showers: Slight intensity
50  81: ATTR_CONDITION_RAINY, # Rain showers: Moderate intensity
51  82: ATTR_CONDITION_POURING, # Rain showers: Violent intensity
52  85: ATTR_CONDITION_SNOWY, # Snow showers: Slight intensity
53  86: ATTR_CONDITION_SNOWY, # Snow showers: Heavy intensity
54  95: ATTR_CONDITION_LIGHTNING, # Thunderstorm: Slight and moderate intensity
55  96: ATTR_CONDITION_LIGHTNING, # Thunderstorm with slight hail
56  99: ATTR_CONDITION_LIGHTNING, # Thunderstorm with heavy hail
57 }