Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants for Met Office Integration."""
2 
3 from datetime import timedelta
4 
6  ATTR_CONDITION_CLEAR_NIGHT,
7  ATTR_CONDITION_CLOUDY,
8  ATTR_CONDITION_EXCEPTIONAL,
9  ATTR_CONDITION_FOG,
10  ATTR_CONDITION_HAIL,
11  ATTR_CONDITION_LIGHTNING,
12  ATTR_CONDITION_LIGHTNING_RAINY,
13  ATTR_CONDITION_PARTLYCLOUDY,
14  ATTR_CONDITION_POURING,
15  ATTR_CONDITION_RAINY,
16  ATTR_CONDITION_SNOWY,
17  ATTR_CONDITION_SNOWY_RAINY,
18  ATTR_CONDITION_SUNNY,
19  ATTR_CONDITION_WINDY,
20  ATTR_CONDITION_WINDY_VARIANT,
21 )
22 
23 DOMAIN = "metoffice"
24 
25 DEFAULT_NAME = "Met Office"
26 ATTRIBUTION = "Data provided by the Met Office"
27 
28 DEFAULT_SCAN_INTERVAL = timedelta(minutes=15)
29 
30 METOFFICE_COORDINATES = "metoffice_coordinates"
31 METOFFICE_HOURLY_COORDINATOR = "metoffice_hourly_coordinator"
32 METOFFICE_DAILY_COORDINATOR = "metoffice_daily_coordinator"
33 METOFFICE_MONITORED_CONDITIONS = "metoffice_monitored_conditions"
34 METOFFICE_NAME = "metoffice_name"
35 
36 MODE_3HOURLY = "3hourly"
37 MODE_DAILY = "daily"
38 
39 CONDITION_CLASSES: dict[str, list[str]] = {
40  ATTR_CONDITION_CLEAR_NIGHT: ["0"],
41  ATTR_CONDITION_CLOUDY: ["7", "8"],
42  ATTR_CONDITION_FOG: ["5", "6"],
43  ATTR_CONDITION_HAIL: ["19", "20", "21"],
44  ATTR_CONDITION_LIGHTNING: ["30"],
45  ATTR_CONDITION_LIGHTNING_RAINY: ["28", "29"],
46  ATTR_CONDITION_PARTLYCLOUDY: ["2", "3"],
47  ATTR_CONDITION_POURING: ["13", "14", "15"],
48  ATTR_CONDITION_RAINY: ["9", "10", "11", "12"],
49  ATTR_CONDITION_SNOWY: ["22", "23", "24", "25", "26", "27"],
50  ATTR_CONDITION_SNOWY_RAINY: ["16", "17", "18"],
51  ATTR_CONDITION_SUNNY: ["1"],
52  ATTR_CONDITION_WINDY: [],
53  ATTR_CONDITION_WINDY_VARIANT: [],
54  ATTR_CONDITION_EXCEPTIONAL: [],
55 }
56 CONDITION_MAP = {
57  cond_code: cond_ha
58  for cond_ha, cond_codes in CONDITION_CLASSES.items()
59  for cond_code in cond_codes
60 }
61 
62 VISIBILITY_CLASSES = {
63  "VP": "Very Poor",
64  "PO": "Poor",
65  "MO": "Moderate",
66  "GO": "Good",
67  "VG": "Very Good",
68  "EX": "Excellent",
69 }
70 
71 VISIBILITY_DISTANCE_CLASSES = {
72  "VP": "<1",
73  "PO": "1-4",
74  "MO": "4-10",
75  "GO": "10-20",
76  "VG": "20-40",
77  "EX": ">40",
78 }