mirror of https://github.com/home-assistant/core
58 lines
2.3 KiB
Python
58 lines
2.3 KiB
Python
"""Constants for the Open-Meteo integration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import timedelta
|
|
import logging
|
|
from typing import Final
|
|
|
|
from homeassistant.components.weather import (
|
|
ATTR_CONDITION_CLOUDY,
|
|
ATTR_CONDITION_FOG,
|
|
ATTR_CONDITION_LIGHTNING,
|
|
ATTR_CONDITION_PARTLYCLOUDY,
|
|
ATTR_CONDITION_POURING,
|
|
ATTR_CONDITION_RAINY,
|
|
ATTR_CONDITION_SNOWY,
|
|
ATTR_CONDITION_SUNNY,
|
|
)
|
|
|
|
DOMAIN: Final = "open_meteo"
|
|
|
|
LOGGER = logging.getLogger(__package__)
|
|
SCAN_INTERVAL = timedelta(minutes=30)
|
|
|
|
# World Meteorological Organization Weather Code
|
|
# mapped to Home Assistant weather conditions.
|
|
# https://www.weather.gov/tg/wmo
|
|
WMO_TO_HA_CONDITION_MAP = {
|
|
0: ATTR_CONDITION_SUNNY, # Clear sky
|
|
1: ATTR_CONDITION_SUNNY, # Mainly clear
|
|
2: ATTR_CONDITION_PARTLYCLOUDY, # Partly cloudy
|
|
3: ATTR_CONDITION_CLOUDY, # Overcast
|
|
45: ATTR_CONDITION_FOG, # Fog
|
|
48: ATTR_CONDITION_FOG, # Depositing rime fog # codespell:ignore rime
|
|
51: ATTR_CONDITION_RAINY, # Drizzle: Light intensity
|
|
53: ATTR_CONDITION_RAINY, # Drizzle: Moderate intensity
|
|
55: ATTR_CONDITION_RAINY, # Drizzle: Dense intensity
|
|
56: ATTR_CONDITION_RAINY, # Freezing Drizzle: Light intensity
|
|
57: ATTR_CONDITION_RAINY, # Freezing Drizzle: Dense intensity
|
|
61: ATTR_CONDITION_RAINY, # Rain: Slight intensity
|
|
63: ATTR_CONDITION_RAINY, # Rain: Moderate intensity
|
|
65: ATTR_CONDITION_POURING, # Rain: Heavy intensity
|
|
66: ATTR_CONDITION_RAINY, # Freezing Rain: Light intensity
|
|
67: ATTR_CONDITION_POURING, # Freezing Rain: Heavy intensity
|
|
71: ATTR_CONDITION_SNOWY, # Snow fall: Slight intensity
|
|
73: ATTR_CONDITION_SNOWY, # Snow fall: Moderate intensity
|
|
75: ATTR_CONDITION_SNOWY, # Snow fall: Heavy intensity
|
|
77: ATTR_CONDITION_SNOWY, # Snow grains
|
|
80: ATTR_CONDITION_RAINY, # Rain showers: Slight intensity
|
|
81: ATTR_CONDITION_RAINY, # Rain showers: Moderate intensity
|
|
82: ATTR_CONDITION_POURING, # Rain showers: Violent intensity
|
|
85: ATTR_CONDITION_SNOWY, # Snow showers: Slight intensity
|
|
86: ATTR_CONDITION_SNOWY, # Snow showers: Heavy intensity
|
|
95: ATTR_CONDITION_LIGHTNING, # Thunderstorm: Slight and moderate intensity
|
|
96: ATTR_CONDITION_LIGHTNING, # Thunderstorm with slight hail
|
|
99: ATTR_CONDITION_LIGHTNING, # Thunderstorm with heavy hail
|
|
}
|