1 """Constants for IPMA component."""
3 from __future__
import annotations
5 from datetime
import timedelta
8 ATTR_CONDITION_CLEAR_NIGHT,
10 ATTR_CONDITION_EXCEPTIONAL,
13 ATTR_CONDITION_LIGHTNING,
14 ATTR_CONDITION_LIGHTNING_RAINY,
15 ATTR_CONDITION_PARTLYCLOUDY,
16 ATTR_CONDITION_POURING,
19 ATTR_CONDITION_SNOWY_RAINY,
22 ATTR_CONDITION_WINDY_VARIANT,
23 DOMAIN
as WEATHER_DOMAIN,
28 HOME_LOCATION_NAME =
"Home"
31 DATA_LOCATION =
"location"
33 ENTITY_ID_SENSOR_FORMAT_HOME = f
"{WEATHER_DOMAIN}.ipma_{HOME_LOCATION_NAME}"
37 CONDITION_CLASSES: dict[str, list[int]] = {
38 ATTR_CONDITION_CLOUDY: [4, 5, 24, 25, 27],
39 ATTR_CONDITION_FOG: [16, 17, 26],
40 ATTR_CONDITION_HAIL: [21, 22],
41 ATTR_CONDITION_LIGHTNING: [19],
42 ATTR_CONDITION_LIGHTNING_RAINY: [20, 23],
43 ATTR_CONDITION_PARTLYCLOUDY: [2, 3],
44 ATTR_CONDITION_POURING: [8, 11],
45 ATTR_CONDITION_RAINY: [6, 7, 9, 10, 12, 13, 14, 15],
46 ATTR_CONDITION_SNOWY: [18],
47 ATTR_CONDITION_SNOWY_RAINY: [],
48 ATTR_CONDITION_SUNNY: [1],
49 ATTR_CONDITION_WINDY: [],
50 ATTR_CONDITION_WINDY_VARIANT: [],
51 ATTR_CONDITION_EXCEPTIONAL: [],
52 ATTR_CONDITION_CLEAR_NIGHT: [-1],
56 for cond_ha, cond_codes
in CONDITION_CLASSES.items()
57 for cond_code
in cond_codes
60 ATTRIBUTION =
"Instituto Português do Mar e Atmosfera"