1
mirror of https://github.com/home-assistant/core synced 2024-10-07 10:13:38 +02:00

Use weather attribute conditions constants (#39945)

This commit is contained in:
springstan 2020-11-20 21:04:03 +01:00 committed by GitHub
parent 700336258b
commit dd4f41c1db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 372 additions and 186 deletions

View File

@ -1,4 +1,20 @@
"""Constants for AccuWeather integration."""
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
)
from homeassistant.const import (
ATTR_DEVICE_CLASS,
CONCENTRATION_PARTS_PER_CUBIC_METER,
@ -29,20 +45,20 @@ NAME = "AccuWeather"
UNDO_UPDATE_LISTENER = "undo_update_listener"
CONDITION_CLASSES = {
"clear-night": [33, 34, 37],
"cloudy": [7, 8, 38],
"exceptional": [24, 30, 31],
"fog": [11],
"hail": [25],
"lightning": [15],
"lightning-rainy": [16, 17, 41, 42],
"partlycloudy": [4, 6, 35, 36],
"pouring": [18],
"rainy": [12, 13, 14, 26, 39, 40],
"snowy": [19, 20, 21, 22, 23, 43, 44],
"snowy-rainy": [29],
"sunny": [1, 2, 3, 5],
"windy": [32],
ATTR_CONDITION_CLEAR_NIGHT: [33, 34, 37],
ATTR_CONDITION_CLOUDY: [7, 8, 38],
ATTR_CONDITION_EXCEPTIONAL: [24, 30, 31],
ATTR_CONDITION_FOG: [11],
ATTR_CONDITION_HAIL: [25],
ATTR_CONDITION_LIGHTNING: [15],
ATTR_CONDITION_LIGHTNING_RAINY: [16, 17, 41, 42],
ATTR_CONDITION_PARTLYCLOUDY: [4, 6, 35, 36],
ATTR_CONDITION_POURING: [18],
ATTR_CONDITION_RAINY: [12, 13, 14, 26, 39, 40],
ATTR_CONDITION_SNOWY: [19, 20, 21, 22, 23, 43, 44],
ATTR_CONDITION_SNOWY_RAINY: [29],
ATTR_CONDITION_SUNNY: [1, 2, 3, 5],
ATTR_CONDITION_WINDY: [32],
}
FORECAST_DAYS = [0, 1, 2, 3, 4]

View File

@ -14,6 +14,20 @@ from buienradar.constants import (
import voluptuous as vol
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_CONDITION_WINDY_VARIANT,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION,
ATTR_FORECAST_TEMP,
@ -40,20 +54,20 @@ CONF_FORECAST = "forecast"
CONDITION_CLASSES = {
"cloudy": ["c", "p"],
"fog": ["d", "n"],
"hail": [],
"lightning": ["g"],
"lightning-rainy": ["s"],
"partlycloudy": ["b", "j", "o", "r"],
"pouring": ["l", "q"],
"rainy": ["f", "h", "k", "m"],
"snowy": ["u", "i", "v", "t"],
"snowy-rainy": ["w"],
"sunny": ["a"],
"windy": [],
"windy-variant": [],
"exceptional": [],
ATTR_CONDITION_CLOUDY: ["c", "p"],
ATTR_CONDITION_FOG: ["d", "n"],
ATTR_CONDITION_HAIL: [],
ATTR_CONDITION_LIGHTNING: ["g"],
ATTR_CONDITION_LIGHTNING_RAINY: ["s"],
ATTR_CONDITION_PARTLYCLOUDY: ["b", "j", "o", "r"],
ATTR_CONDITION_POURING: ["l", "q"],
ATTR_CONDITION_RAINY: ["f", "h", "k", "m"],
ATTR_CONDITION_SNOWY: ["u", "i", "v", "t"],
ATTR_CONDITION_SNOWY_RAINY: ["w"],
ATTR_CONDITION_SUNNY: ["a"],
ATTR_CONDITION_WINDY: [],
ATTR_CONDITION_WINDY_VARIANT: [],
ATTR_CONDITION_EXCEPTIONAL: [],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -7,6 +7,17 @@ from requests.exceptions import ConnectionError as ConnectError, HTTPError, Time
import voluptuous as vol
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION,
ATTR_FORECAST_TEMP,
@ -40,18 +51,18 @@ ATTRIBUTION = "Powered by Dark Sky"
FORECAST_MODE = ["hourly", "daily"]
MAP_CONDITION = {
"clear-day": "sunny",
"clear-night": "clear-night",
"rain": "rainy",
"snow": "snowy",
"sleet": "snowy-rainy",
"wind": "windy",
"fog": "fog",
"cloudy": "cloudy",
"partly-cloudy-day": "partlycloudy",
"partly-cloudy-night": "partlycloudy",
"hail": "hail",
"thunderstorm": "lightning",
"clear-day": ATTR_CONDITION_SUNNY,
"clear-night": ATTR_CONDITION_CLEAR_NIGHT,
"rain": ATTR_CONDITION_RAINY,
"snow": ATTR_CONDITION_SNOWY,
"sleet": ATTR_CONDITION_SNOWY_RAINY,
"wind": ATTR_CONDITION_WINDY,
"fog": ATTR_CONDITION_FOG,
"cloudy": ATTR_CONDITION_CLOUDY,
"partly-cloudy-day": ATTR_CONDITION_PARTLYCLOUDY,
"partly-cloudy-night": ATTR_CONDITION_PARTLYCLOUDY,
"hail": ATTR_CONDITION_HAIL,
"thunderstorm": ATTR_CONDITION_LIGHTNING,
"tornado": None,
}

View File

@ -2,6 +2,20 @@
from datetime import timedelta
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_CONDITION_WINDY_VARIANT,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION,
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
@ -14,20 +28,20 @@ from homeassistant.const import TEMP_CELSIUS, TEMP_FAHRENHEIT
import homeassistant.util.dt as dt_util
CONDITION_CLASSES = {
"cloudy": [],
"fog": [],
"hail": [],
"lightning": [],
"lightning-rainy": [],
"partlycloudy": [],
"pouring": [],
"rainy": ["shower rain"],
"snowy": [],
"snowy-rainy": [],
"sunny": ["sunshine"],
"windy": [],
"windy-variant": [],
"exceptional": [],
ATTR_CONDITION_CLOUDY: [],
ATTR_CONDITION_FOG: [],
ATTR_CONDITION_HAIL: [],
ATTR_CONDITION_LIGHTNING: [],
ATTR_CONDITION_LIGHTNING_RAINY: [],
ATTR_CONDITION_PARTLYCLOUDY: [],
ATTR_CONDITION_POURING: [],
ATTR_CONDITION_RAINY: ["shower rain"],
ATTR_CONDITION_SNOWY: [],
ATTR_CONDITION_SNOWY_RAINY: [],
ATTR_CONDITION_SUNNY: ["sunshine"],
ATTR_CONDITION_WINDY: [],
ATTR_CONDITION_WINDY_VARIANT: [],
ATTR_CONDITION_EXCEPTIONAL: [],
}
@ -49,13 +63,13 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
0.5,
TEMP_CELSIUS,
[
["rainy", 1, 22, 15, 60],
["rainy", 5, 19, 8, 30],
["cloudy", 0, 15, 9, 10],
["sunny", 0, 12, 6, 0],
["partlycloudy", 2, 14, 7, 20],
["rainy", 15, 18, 7, 0],
["fog", 0.2, 21, 12, 100],
[ATTR_CONDITION_RAINY, 1, 22, 15, 60],
[ATTR_CONDITION_RAINY, 5, 19, 8, 30],
[ATTR_CONDITION_CLOUDY, 0, 15, 9, 10],
[ATTR_CONDITION_SUNNY, 0, 12, 6, 0],
[ATTR_CONDITION_PARTLYCLOUDY, 2, 14, 7, 20],
[ATTR_CONDITION_RAINY, 15, 18, 7, 0],
[ATTR_CONDITION_FOG, 0.2, 21, 12, 100],
],
),
DemoWeather(
@ -67,13 +81,13 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
4.8,
TEMP_FAHRENHEIT,
[
["snowy", 2, -10, -15, 60],
["partlycloudy", 1, -13, -14, 25],
["sunny", 0, -18, -22, 70],
["sunny", 0.1, -23, -23, 90],
["snowy", 4, -19, -20, 40],
["sunny", 0.3, -14, -19, 0],
["sunny", 0, -9, -12, 0],
[ATTR_CONDITION_SNOWY, 2, -10, -15, 60],
[ATTR_CONDITION_PARTLYCLOUDY, 1, -13, -14, 25],
[ATTR_CONDITION_SUNNY, 0, -18, -22, 70],
[ATTR_CONDITION_SUNNY, 0.1, -23, -23, 90],
[ATTR_CONDITION_SNOWY, 4, -19, -20, 40],
[ATTR_CONDITION_SUNNY, 0.3, -14, -19, 0],
[ATTR_CONDITION_SUNNY, 0, -9, -12, 0],
],
),
]

View File

@ -1,6 +1,20 @@
"""Constants for the ecobee integration."""
import logging
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
)
_LOGGER = logging.getLogger(__package__)
DOMAIN = "ecobee"
@ -30,25 +44,25 @@ MANUFACTURER = "ecobee"
# Translates ecobee API weatherSymbol to Home Assistant usable names
# https://www.ecobee.com/home/developer/api/documentation/v1/objects/WeatherForecast.shtml
ECOBEE_WEATHER_SYMBOL_TO_HASS = {
0: "sunny",
1: "partlycloudy",
2: "partlycloudy",
3: "cloudy",
4: "cloudy",
5: "cloudy",
6: "rainy",
7: "snowy-rainy",
8: "pouring",
9: "hail",
10: "snowy",
11: "snowy",
12: "snowy-rainy",
0: ATTR_CONDITION_SUNNY,
1: ATTR_CONDITION_PARTLYCLOUDY,
2: ATTR_CONDITION_PARTLYCLOUDY,
3: ATTR_CONDITION_CLOUDY,
4: ATTR_CONDITION_CLOUDY,
5: ATTR_CONDITION_CLOUDY,
6: ATTR_CONDITION_RAINY,
7: ATTR_CONDITION_SNOWY_RAINY,
8: ATTR_CONDITION_POURING,
9: ATTR_CONDITION_HAIL,
10: ATTR_CONDITION_SNOWY,
11: ATTR_CONDITION_SNOWY,
12: ATTR_CONDITION_SNOWY_RAINY,
13: "snowy-heavy",
14: "hail",
15: "lightning-rainy",
16: "windy",
14: ATTR_CONDITION_HAIL,
15: ATTR_CONDITION_LIGHTNING_RAINY,
16: ATTR_CONDITION_WINDY,
17: "tornado",
18: "fog",
18: ATTR_CONDITION_FOG,
19: "hazy",
20: "hazy",
21: "hazy",

View File

@ -6,6 +6,18 @@ from env_canada import ECData # pylint: disable=import-error
import voluptuous as vol
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
ATTR_FORECAST_TEMP,
@ -45,18 +57,18 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
# Icon codes from http://dd.weatheroffice.ec.gc.ca/citypage_weather/
# docs/current_conditions_icon_code_descriptions_e.csv
ICON_CONDITION_MAP = {
"sunny": [0, 1],
"clear-night": [30, 31],
"partlycloudy": [2, 3, 4, 5, 22, 32, 33, 34, 35],
"cloudy": [10],
"rainy": [6, 9, 11, 12, 28, 36],
"lightning-rainy": [19, 39, 46, 47],
"pouring": [13],
"snowy-rainy": [7, 14, 15, 27, 37],
"snowy": [8, 16, 17, 18, 25, 26, 38, 40],
"windy": [43],
"fog": [20, 21, 23, 24, 44],
"hail": [26, 27],
ATTR_CONDITION_SUNNY: [0, 1],
ATTR_CONDITION_CLEAR_NIGHT: [30, 31],
ATTR_CONDITION_PARTLYCLOUDY: [2, 3, 4, 5, 22, 32, 33, 34, 35],
ATTR_CONDITION_CLOUDY: [10],
ATTR_CONDITION_RAINY: [6, 9, 11, 12, 28, 36],
ATTR_CONDITION_LIGHTNING_RAINY: [19, 39, 46, 47],
ATTR_CONDITION_POURING: [13],
ATTR_CONDITION_SNOWY_RAINY: [7, 14, 15, 27, 37],
ATTR_CONDITION_SNOWY: [8, 16, 17, 18, 25, 26, 38, 40],
ATTR_CONDITION_WINDY: [43],
ATTR_CONDITION_FOG: [20, 21, 23, 24, 44],
ATTR_CONDITION_HAIL: [26, 27],
}

View File

@ -6,7 +6,19 @@ from homematicip.aio.device import (
)
from homematicip.base.enums import WeatherCondition
from homeassistant.components.weather import WeatherEntity
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_FOG,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
WeatherEntity,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import TEMP_CELSIUS
from homeassistant.helpers.typing import HomeAssistantType
@ -15,20 +27,20 @@ from . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity
from .hap import HomematicipHAP
HOME_WEATHER_CONDITION = {
WeatherCondition.CLEAR: "sunny",
WeatherCondition.LIGHT_CLOUDY: "partlycloudy",
WeatherCondition.CLOUDY: "cloudy",
WeatherCondition.CLOUDY_WITH_RAIN: "rainy",
WeatherCondition.CLOUDY_WITH_SNOW_RAIN: "snowy-rainy",
WeatherCondition.HEAVILY_CLOUDY: "cloudy",
WeatherCondition.HEAVILY_CLOUDY_WITH_RAIN: "rainy",
WeatherCondition.HEAVILY_CLOUDY_WITH_STRONG_RAIN: "snowy-rainy",
WeatherCondition.HEAVILY_CLOUDY_WITH_SNOW: "snowy",
WeatherCondition.HEAVILY_CLOUDY_WITH_SNOW_RAIN: "snowy-rainy",
WeatherCondition.HEAVILY_CLOUDY_WITH_THUNDER: "lightning",
WeatherCondition.HEAVILY_CLOUDY_WITH_RAIN_AND_THUNDER: "lightning-rainy",
WeatherCondition.FOGGY: "fog",
WeatherCondition.STRONG_WIND: "windy",
WeatherCondition.CLEAR: ATTR_CONDITION_SUNNY,
WeatherCondition.LIGHT_CLOUDY: ATTR_CONDITION_PARTLYCLOUDY,
WeatherCondition.CLOUDY: ATTR_CONDITION_CLOUDY,
WeatherCondition.CLOUDY_WITH_RAIN: ATTR_CONDITION_RAINY,
WeatherCondition.CLOUDY_WITH_SNOW_RAIN: ATTR_CONDITION_SNOWY_RAINY,
WeatherCondition.HEAVILY_CLOUDY: ATTR_CONDITION_CLOUDY,
WeatherCondition.HEAVILY_CLOUDY_WITH_RAIN: ATTR_CONDITION_RAINY,
WeatherCondition.HEAVILY_CLOUDY_WITH_STRONG_RAIN: ATTR_CONDITION_SNOWY_RAINY,
WeatherCondition.HEAVILY_CLOUDY_WITH_SNOW: ATTR_CONDITION_SNOWY,
WeatherCondition.HEAVILY_CLOUDY_WITH_SNOW_RAIN: ATTR_CONDITION_SNOWY_RAINY,
WeatherCondition.HEAVILY_CLOUDY_WITH_THUNDER: ATTR_CONDITION_LIGHTNING,
WeatherCondition.HEAVILY_CLOUDY_WITH_RAIN_AND_THUNDER: ATTR_CONDITION_LIGHTNING_RAINY,
WeatherCondition.FOGGY: ATTR_CONDITION_FOG,
WeatherCondition.STRONG_WIND: ATTR_CONDITION_WINDY,
WeatherCondition.UNKNOWN: "",
}
@ -92,11 +104,11 @@ class HomematicipWeatherSensor(HomematicipGenericEntity, WeatherEntity):
def condition(self) -> str:
"""Return the current condition."""
if getattr(self._device, "raining", None):
return "rainy"
return ATTR_CONDITION_RAINY
if self._device.storm:
return "windy"
return ATTR_CONDITION_WINDY
if self._device.sunshine:
return "sunny"
return ATTR_CONDITION_SUNNY
return ""

View File

@ -8,6 +8,20 @@ from pyipma.location import Location
import voluptuous as vol
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_CONDITION_WINDY_VARIANT,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION_PROBABILITY,
ATTR_FORECAST_TEMP,
@ -38,20 +52,20 @@ ATTRIBUTION = "Instituto Português do Mar e Atmosfera"
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=30)
CONDITION_CLASSES = {
"cloudy": [4, 5, 24, 25, 27],
"fog": [16, 17, 26],
"hail": [21, 22],
"lightning": [19],
"lightning-rainy": [20, 23],
"partlycloudy": [2, 3],
"pouring": [8, 11],
"rainy": [6, 7, 9, 10, 12, 13, 14, 15],
"snowy": [18],
"snowy-rainy": [],
"sunny": [1],
"windy": [],
"windy-variant": [],
"exceptional": [],
ATTR_CONDITION_CLOUDY: [4, 5, 24, 25, 27],
ATTR_CONDITION_FOG: [16, 17, 26],
ATTR_CONDITION_HAIL: [21, 22],
ATTR_CONDITION_LIGHTNING: [19],
ATTR_CONDITION_LIGHTNING_RAINY: [20, 23],
ATTR_CONDITION_PARTLYCLOUDY: [2, 3],
ATTR_CONDITION_POURING: [8, 11],
ATTR_CONDITION_RAINY: [6, 7, 9, 10, 12, 13, 14, 15],
ATTR_CONDITION_SNOWY: [18],
ATTR_CONDITION_SNOWY_RAINY: [],
ATTR_CONDITION_SUNNY: [1],
ATTR_CONDITION_WINDY: [],
ATTR_CONDITION_WINDY_VARIANT: [],
ATTR_CONDITION_EXCEPTIONAL: [],
}
FORECAST_MODE = ["hourly", "daily"]

View File

@ -1,5 +1,22 @@
"""Meteo-France component constants."""
from homeassistant.components.weather import (
ATTR_CONDITION_CLEAR_NIGHT,
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_CONDITION_WINDY_VARIANT,
)
from homeassistant.const import (
DEVICE_CLASS_PRESSURE,
DEVICE_CLASS_TEMPERATURE,
@ -126,27 +143,31 @@ SENSOR_TYPES = {
}
CONDITION_CLASSES = {
"clear-night": ["Nuit Claire", "Nuit claire"],
"cloudy": ["Très nuageux", "Couvert"],
"fog": [
ATTR_CONDITION_CLEAR_NIGHT: ["Nuit Claire", "Nuit claire"],
ATTR_CONDITION_CLOUDY: ["Très nuageux", "Couvert"],
ATTR_CONDITION_FOG: [
"Brume ou bancs de brouillard",
"Brume",
"Brouillard",
"Brouillard givrant",
"Bancs de Brouillard",
],
"hail": ["Risque de grêle", "Risque de grèle"],
"lightning": ["Risque d'orages", "Orages"],
"lightning-rainy": ["Pluie orageuses", "Pluies orageuses", "Averses orageuses"],
"partlycloudy": [
ATTR_CONDITION_HAIL: ["Risque de grêle", "Risque de grèle"],
ATTR_CONDITION_LIGHTNING: ["Risque d'orages", "Orages"],
ATTR_CONDITION_LIGHTNING_RAINY: [
"Pluie orageuses",
"Pluies orageuses",
"Averses orageuses",
],
ATTR_CONDITION_PARTLYCLOUDY: [
"Ciel voilé",
"Ciel voilé nuit",
"Éclaircies",
"Eclaircies",
"Peu nuageux",
],
"pouring": ["Pluie forte"],
"rainy": [
ATTR_CONDITION_POURING: ["Pluie forte"],
ATTR_CONDITION_RAINY: [
"Bruine / Pluie faible",
"Bruine",
"Pluie faible",
@ -158,16 +179,16 @@ CONDITION_CLASSES = {
"Averses",
"Pluie",
],
"snowy": [
ATTR_CONDITION_SNOWY: [
"Neige / Averses de neige",
"Neige",
"Averses de neige",
"Neige forte",
"Quelques flocons",
],
"snowy-rainy": ["Pluie et neige", "Pluie verglaçante"],
"sunny": ["Ensoleillé"],
"windy": [],
"windy-variant": [],
"exceptional": [],
ATTR_CONDITION_SNOWY_RAINY: ["Pluie et neige", "Pluie verglaçante"],
ATTR_CONDITION_SUNNY: ["Ensoleillé"],
ATTR_CONDITION_WINDY: [],
ATTR_CONDITION_WINDY_VARIANT: [],
ATTR_CONDITION_EXCEPTIONAL: [],
}

View File

@ -1,6 +1,23 @@
"""Constants for Met Office Integration."""
from datetime import timedelta
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_CONDITION_WINDY_VARIANT,
)
DOMAIN = "metoffice"
DEFAULT_NAME = "Met Office"
@ -16,20 +33,20 @@ METOFFICE_NAME = "metoffice_name"
MODE_3HOURLY = "3hourly"
CONDITION_CLASSES = {
"cloudy": ["7", "8"],
"fog": ["5", "6"],
"hail": ["19", "20", "21"],
"lightning": ["30"],
"lightning-rainy": ["28", "29"],
"partlycloudy": ["2", "3"],
"pouring": ["13", "14", "15"],
"rainy": ["9", "10", "11", "12"],
"snowy": ["22", "23", "24", "25", "26", "27"],
"snowy-rainy": ["16", "17", "18"],
"sunny": ["0", "1"],
"windy": [],
"windy-variant": [],
"exceptional": [],
ATTR_CONDITION_CLOUDY: ["7", "8"],
ATTR_CONDITION_FOG: ["5", "6"],
ATTR_CONDITION_HAIL: ["19", "20", "21"],
ATTR_CONDITION_LIGHTNING: ["30"],
ATTR_CONDITION_LIGHTNING_RAINY: ["28", "29"],
ATTR_CONDITION_PARTLYCLOUDY: ["2", "3"],
ATTR_CONDITION_POURING: ["13", "14", "15"],
ATTR_CONDITION_RAINY: ["9", "10", "11", "12"],
ATTR_CONDITION_SNOWY: ["22", "23", "24", "25", "26", "27"],
ATTR_CONDITION_SNOWY_RAINY: ["16", "17", "18"],
ATTR_CONDITION_SUNNY: ["0", "1"],
ATTR_CONDITION_WINDY: [],
ATTR_CONDITION_WINDY_VARIANT: [],
ATTR_CONDITION_EXCEPTIONAL: [],
}
VISIBILITY_CLASSES = {

View File

@ -1,5 +1,19 @@
"""Consts for the OpenWeatherMap."""
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_CONDITION_WINDY_VARIANT,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION,
ATTR_FORECAST_TEMP,
@ -136,20 +150,33 @@ LANGUAGES = [
"zu",
]
CONDITION_CLASSES = {
"cloudy": [803, 804],
"fog": [701, 741],
"hail": [906],
"lightning": [210, 211, 212, 221],
"lightning-rainy": [200, 201, 202, 230, 231, 232],
"partlycloudy": [801, 802],
"pouring": [504, 314, 502, 503, 522],
"rainy": [300, 301, 302, 310, 311, 312, 313, 500, 501, 520, 521],
"snowy": [600, 601, 602, 611, 612, 620, 621, 622],
"snowy-rainy": [511, 615, 616],
"sunny": [800],
"windy": [905, 951, 952, 953, 954, 955, 956, 957],
"windy-variant": [958, 959, 960, 961],
"exceptional": [711, 721, 731, 751, 761, 762, 771, 900, 901, 962, 903, 904],
ATTR_CONDITION_CLOUDY: [803, 804],
ATTR_CONDITION_FOG: [701, 741],
ATTR_CONDITION_HAIL: [906],
ATTR_CONDITION_LIGHTNING: [210, 211, 212, 221],
ATTR_CONDITION_LIGHTNING_RAINY: [200, 201, 202, 230, 231, 232],
ATTR_CONDITION_PARTLYCLOUDY: [801, 802],
ATTR_CONDITION_POURING: [504, 314, 502, 503, 522],
ATTR_CONDITION_RAINY: [300, 301, 302, 310, 311, 312, 313, 500, 501, 520, 521],
ATTR_CONDITION_SNOWY: [600, 601, 602, 611, 612, 620, 621, 622],
ATTR_CONDITION_SNOWY_RAINY: [511, 615, 616],
ATTR_CONDITION_SUNNY: [800],
ATTR_CONDITION_WINDY: [905, 951, 952, 953, 954, 955, 956, 957],
ATTR_CONDITION_WINDY_VARIANT: [958, 959, 960, 961],
ATTR_CONDITION_EXCEPTIONAL: [
711,
721,
731,
751,
761,
762,
771,
900,
901,
962,
903,
904,
],
}
WEATHER_SENSOR_TYPES = {
ATTR_API_WEATHER: {SENSOR_NAME: "Weather"},

View File

@ -10,6 +10,20 @@ from smhi import Smhi
from smhi.smhi_lib import SmhiForecastException
from homeassistant.components.weather import (
ATTR_CONDITION_CLOUDY,
ATTR_CONDITION_EXCEPTIONAL,
ATTR_CONDITION_FOG,
ATTR_CONDITION_HAIL,
ATTR_CONDITION_LIGHTNING,
ATTR_CONDITION_LIGHTNING_RAINY,
ATTR_CONDITION_PARTLYCLOUDY,
ATTR_CONDITION_POURING,
ATTR_CONDITION_RAINY,
ATTR_CONDITION_SNOWY,
ATTR_CONDITION_SNOWY_RAINY,
ATTR_CONDITION_SUNNY,
ATTR_CONDITION_WINDY,
ATTR_CONDITION_WINDY_VARIANT,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_PRECIPITATION,
ATTR_FORECAST_TEMP,
@ -29,20 +43,20 @@ _LOGGER = logging.getLogger(__name__)
# Used to map condition from API results
CONDITION_CLASSES = {
"cloudy": [5, 6],
"fog": [7],
"hail": [],
"lightning": [21],
"lightning-rainy": [11],
"partlycloudy": [3, 4],
"pouring": [10, 20],
"rainy": [8, 9, 18, 19],
"snowy": [15, 16, 17, 25, 26, 27],
"snowy-rainy": [12, 13, 14, 22, 23, 24],
"sunny": [1, 2],
"windy": [],
"windy-variant": [],
"exceptional": [],
ATTR_CONDITION_CLOUDY: [5, 6],
ATTR_CONDITION_FOG: [7],
ATTR_CONDITION_HAIL: [],
ATTR_CONDITION_LIGHTNING: [21],
ATTR_CONDITION_LIGHTNING_RAINY: [11],
ATTR_CONDITION_PARTLYCLOUDY: [3, 4],
ATTR_CONDITION_POURING: [10, 20],
ATTR_CONDITION_RAINY: [8, 9, 18, 19],
ATTR_CONDITION_SNOWY: [15, 16, 17, 25, 26, 27],
ATTR_CONDITION_SNOWY_RAINY: [12, 13, 14, 22, 23, 24],
ATTR_CONDITION_SUNNY: [1, 2],
ATTR_CONDITION_WINDY: [],
ATTR_CONDITION_WINDY_VARIANT: [],
ATTR_CONDITION_EXCEPTIONAL: [],
}
# 5 minutes between retrying connect to API again