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:
parent
700336258b
commit
dd4f41c1db
@ -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]
|
||||
|
@ -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(
|
||||
|
@ -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,
|
||||
}
|
||||
|
||||
|
@ -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],
|
||||
],
|
||||
),
|
||||
]
|
||||
|
@ -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",
|
||||
|
@ -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],
|
||||
}
|
||||
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
||||
|
@ -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"]
|
||||
|
@ -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: [],
|
||||
}
|
||||
|
@ -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 = {
|
||||
|
@ -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"},
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user