Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants used by Home Assistant components."""
2 
3 from __future__ import annotations
4 
5 from enum import StrEnum
6 from functools import partial
7 from typing import TYPE_CHECKING, Final
8 
9 from .helpers.deprecation import (
10  DeprecatedConstant,
11  DeprecatedConstantEnum,
12  EnumWithDeprecatedMembers,
13  all_with_deprecated_constants,
14  check_if_deprecated_constant,
15  dir_with_deprecated_constants,
16 )
17 from .util.event_type import EventType
18 from .util.hass_dict import HassKey
19 from .util.signal_type import SignalType
20 
21 if TYPE_CHECKING:
22  from .core import EventStateChangedData, EventStateReportedData
23  from .helpers.typing import NoEventData
24 
25 APPLICATION_NAME: Final = "HomeAssistant"
26 MAJOR_VERSION: Final = 2024
27 MINOR_VERSION: Final = 12
28 PATCH_VERSION: Final = "1"
29 __short_version__: Final = f"{MAJOR_VERSION}.{MINOR_VERSION}"
30 __version__: Final = f"{__short_version__}.{PATCH_VERSION}"
31 REQUIRED_PYTHON_VER: Final[tuple[int, int, int]] = (3, 12, 0)
32 REQUIRED_NEXT_PYTHON_VER: Final[tuple[int, int, int]] = (3, 13, 0)
33 # Truthy date string triggers showing related deprecation warning messages.
34 REQUIRED_NEXT_PYTHON_HA_RELEASE: Final = "2025.2"
35 
36 # Format for platform files
37 PLATFORM_FORMAT: Final = "{platform}.{domain}"
38 
39 
40 class Platform(StrEnum):
41  """Available entity platforms."""
42 
43  AIR_QUALITY = "air_quality"
44  ALARM_CONTROL_PANEL = "alarm_control_panel"
45  ASSIST_SATELLITE = "assist_satellite"
46  BINARY_SENSOR = "binary_sensor"
47  BUTTON = "button"
48  CALENDAR = "calendar"
49  CAMERA = "camera"
50  CLIMATE = "climate"
51  CONVERSATION = "conversation"
52  COVER = "cover"
53  DATE = "date"
54  DATETIME = "datetime"
55  DEVICE_TRACKER = "device_tracker"
56  EVENT = "event"
57  FAN = "fan"
58  GEO_LOCATION = "geo_location"
59  HUMIDIFIER = "humidifier"
60  IMAGE = "image"
61  IMAGE_PROCESSING = "image_processing"
62  LAWN_MOWER = "lawn_mower"
63  LIGHT = "light"
64  LOCK = "lock"
65  MEDIA_PLAYER = "media_player"
66  NOTIFY = "notify"
67  NUMBER = "number"
68  REMOTE = "remote"
69  SCENE = "scene"
70  SELECT = "select"
71  SENSOR = "sensor"
72  SIREN = "siren"
73  STT = "stt"
74  SWITCH = "switch"
75  TEXT = "text"
76  TIME = "time"
77  TODO = "todo"
78  TTS = "tts"
79  UPDATE = "update"
80  VACUUM = "vacuum"
81  VALVE = "valve"
82  WAKE_WORD = "wake_word"
83  WATER_HEATER = "water_heater"
84  WEATHER = "weather"
85 
86 
87 BASE_PLATFORMS: Final = {platform.value for platform in Platform}
88 
89 
90 # Can be used to specify a catch all when registering state or event listeners.
91 MATCH_ALL: Final = "*"
92 
93 # Entity target all constant
94 ENTITY_MATCH_NONE: Final = "none"
95 ENTITY_MATCH_ALL: Final = "all"
96 ENTITY_MATCH_ANY: Final = "any"
97 
98 # If no name is specified
99 DEVICE_DEFAULT_NAME: Final = "Unnamed Device"
100 
101 # Max characters for data stored in the recorder (changes to these limits would require
102 # a database migration)
103 MAX_LENGTH_EVENT_EVENT_TYPE: Final = 64
104 MAX_LENGTH_EVENT_ORIGIN: Final = 32
105 MAX_LENGTH_EVENT_CONTEXT_ID: Final = 36
106 MAX_LENGTH_STATE_DOMAIN: Final = 64
107 MAX_LENGTH_STATE_ENTITY_ID: Final = 255
108 MAX_LENGTH_STATE_STATE: Final = 255
109 
110 # Sun events
111 SUN_EVENT_SUNSET: Final = "sunset"
112 SUN_EVENT_SUNRISE: Final = "sunrise"
113 
114 # #### CONFIG ####
115 CONF_ABOVE: Final = "above"
116 CONF_ACCESS_TOKEN: Final = "access_token"
117 CONF_ACTION: Final = "action"
118 CONF_ADDRESS: Final = "address"
119 CONF_AFTER: Final = "after"
120 CONF_ALIAS: Final = "alias"
121 CONF_LLM_HASS_API = "llm_hass_api"
122 CONF_ALLOWLIST_EXTERNAL_URLS: Final = "allowlist_external_urls"
123 CONF_API_KEY: Final = "api_key"
124 CONF_API_TOKEN: Final = "api_token"
125 CONF_API_VERSION: Final = "api_version"
126 CONF_ARMING_TIME: Final = "arming_time"
127 CONF_AT: Final = "at"
128 CONF_ATTRIBUTE: Final = "attribute"
129 CONF_AUTH_MFA_MODULES: Final = "auth_mfa_modules"
130 CONF_AUTH_PROVIDERS: Final = "auth_providers"
131 CONF_AUTHENTICATION: Final = "authentication"
132 CONF_BASE: Final = "base"
133 CONF_BEFORE: Final = "before"
134 CONF_BELOW: Final = "below"
135 CONF_BINARY_SENSORS: Final = "binary_sensors"
136 CONF_BRIGHTNESS: Final = "brightness"
137 CONF_BROADCAST_ADDRESS: Final = "broadcast_address"
138 CONF_BROADCAST_PORT: Final = "broadcast_port"
139 CONF_CHOOSE: Final = "choose"
140 CONF_CLIENT_ID: Final = "client_id"
141 CONF_CLIENT_SECRET: Final = "client_secret"
142 CONF_CODE: Final = "code"
143 CONF_COLOR_TEMP: Final = "color_temp"
144 CONF_COMMAND: Final = "command"
145 CONF_COMMAND_CLOSE: Final = "command_close"
146 CONF_COMMAND_OFF: Final = "command_off"
147 CONF_COMMAND_ON: Final = "command_on"
148 CONF_COMMAND_OPEN: Final = "command_open"
149 CONF_COMMAND_STATE: Final = "command_state"
150 CONF_COMMAND_STOP: Final = "command_stop"
151 CONF_CONDITION: Final = "condition"
152 CONF_CONDITIONS: Final = "conditions"
153 CONF_CONTINUE_ON_ERROR: Final = "continue_on_error"
154 CONF_CONTINUE_ON_TIMEOUT: Final = "continue_on_timeout"
155 CONF_COUNT: Final = "count"
156 CONF_COUNTRY: Final = "country"
157 CONF_COUNTRY_CODE: Final = "country_code"
158 CONF_COVERS: Final = "covers"
159 CONF_CURRENCY: Final = "currency"
160 CONF_CUSTOMIZE: Final = "customize"
161 CONF_CUSTOMIZE_DOMAIN: Final = "customize_domain"
162 CONF_CUSTOMIZE_GLOB: Final = "customize_glob"
163 CONF_DEFAULT: Final = "default"
164 CONF_DELAY: Final = "delay"
165 CONF_DELAY_TIME: Final = "delay_time"
166 CONF_DESCRIPTION: Final = "description"
167 CONF_DEVICE: Final = "device"
168 CONF_DEVICES: Final = "devices"
169 CONF_DEVICE_CLASS: Final = "device_class"
170 CONF_DEVICE_ID: Final = "device_id"
171 CONF_DISARM_AFTER_TRIGGER: Final = "disarm_after_trigger"
172 CONF_DISCOVERY: Final = "discovery"
173 CONF_DISKS: Final = "disks"
174 CONF_DISPLAY_CURRENCY: Final = "display_currency"
175 CONF_DISPLAY_OPTIONS: Final = "display_options"
176 CONF_DOMAIN: Final = "domain"
177 CONF_DOMAINS: Final = "domains"
178 CONF_EFFECT: Final = "effect"
179 CONF_ELEVATION: Final = "elevation"
180 CONF_ELSE: Final = "else"
181 CONF_EMAIL: Final = "email"
182 CONF_ENABLED: Final = "enabled"
183 CONF_ENTITIES: Final = "entities"
184 CONF_ENTITY_CATEGORY: Final = "entity_category"
185 CONF_ENTITY_ID: Final = "entity_id"
186 CONF_ENTITY_NAMESPACE: Final = "entity_namespace"
187 CONF_ENTITY_PICTURE_TEMPLATE: Final = "entity_picture_template"
188 CONF_ERROR: Final = "error"
189 CONF_EVENT: Final = "event"
190 CONF_EVENT_DATA: Final = "event_data"
191 CONF_EVENT_DATA_TEMPLATE: Final = "event_data_template"
192 CONF_EXCLUDE: Final = "exclude"
193 CONF_EXTERNAL_URL: Final = "external_url"
194 CONF_FILENAME: Final = "filename"
195 CONF_FILE_PATH: Final = "file_path"
196 CONF_FOR: Final = "for"
197 CONF_FOR_EACH: Final = "for_each"
198 CONF_FORCE_UPDATE: Final = "force_update"
199 CONF_FRIENDLY_NAME: Final = "friendly_name"
200 CONF_FRIENDLY_NAME_TEMPLATE: Final = "friendly_name_template"
201 CONF_HEADERS: Final = "headers"
202 CONF_HOST: Final = "host"
203 CONF_HOSTS: Final = "hosts"
204 CONF_HS: Final = "hs"
205 CONF_ICON: Final = "icon"
206 CONF_ICON_TEMPLATE: Final = "icon_template"
207 CONF_ID: Final = "id"
208 CONF_IF: Final = "if"
209 CONF_INCLUDE: Final = "include"
210 CONF_INTERNAL_URL: Final = "internal_url"
211 CONF_IP_ADDRESS: Final = "ip_address"
212 CONF_LANGUAGE: Final = "language"
213 CONF_LATITUDE: Final = "latitude"
214 CONF_LEGACY_TEMPLATES: Final = "legacy_templates"
215 CONF_LIGHTS: Final = "lights"
216 CONF_LOCATION: Final = "location"
217 CONF_LONGITUDE: Final = "longitude"
218 CONF_MAC: Final = "mac"
219 CONF_MATCH: Final = "match"
220 CONF_MAXIMUM: Final = "maximum"
221 CONF_MEDIA_DIRS: Final = "media_dirs"
222 CONF_METHOD: Final = "method"
223 CONF_MINIMUM: Final = "minimum"
224 CONF_MODE: Final = "mode"
225 CONF_MODEL: Final = "model"
226 CONF_MODEL_ID: Final = "model_id"
227 CONF_MONITORED_CONDITIONS: Final = "monitored_conditions"
228 CONF_MONITORED_VARIABLES: Final = "monitored_variables"
229 CONF_NAME: Final = "name"
230 CONF_OFFSET: Final = "offset"
231 CONF_OPTIMISTIC: Final = "optimistic"
232 CONF_PACKAGES: Final = "packages"
233 CONF_PARALLEL: Final = "parallel"
234 CONF_PARAMS: Final = "params"
235 CONF_PASSWORD: Final = "password"
236 CONF_PATH: Final = "path"
237 CONF_PAYLOAD: Final = "payload"
238 CONF_PAYLOAD_OFF: Final = "payload_off"
239 CONF_PAYLOAD_ON: Final = "payload_on"
240 CONF_PENDING_TIME: Final = "pending_time"
241 CONF_PIN: Final = "pin"
242 CONF_PLATFORM: Final = "platform"
243 CONF_PORT: Final = "port"
244 CONF_PREFIX: Final = "prefix"
245 CONF_PROFILE_NAME: Final = "profile_name"
246 CONF_PROTOCOL: Final = "protocol"
247 CONF_PROXY_SSL: Final = "proxy_ssl"
248 CONF_QUOTE: Final = "quote"
249 CONF_RADIUS: Final = "radius"
250 CONF_RECIPIENT: Final = "recipient"
251 CONF_REGION: Final = "region"
252 CONF_REPEAT: Final = "repeat"
253 CONF_RESOURCE: Final = "resource"
254 CONF_RESOURCE_TEMPLATE: Final = "resource_template"
255 CONF_RESOURCES: Final = "resources"
256 CONF_RESPONSE_VARIABLE: Final = "response_variable"
257 CONF_RGB: Final = "rgb"
258 CONF_ROOM: Final = "room"
259 CONF_SCAN_INTERVAL: Final = "scan_interval"
260 CONF_SCENE: Final = "scene"
261 CONF_SELECTOR: Final = "selector"
262 CONF_SENDER: Final = "sender"
263 CONF_SENSORS: Final = "sensors"
264 CONF_SENSOR_TYPE: Final = "sensor_type"
265 CONF_SEQUENCE: Final = "sequence"
266 CONF_SERVICE: Final = "service"
267 CONF_SERVICE_DATA: Final = "data"
268 CONF_SERVICE_DATA_TEMPLATE: Final = "data_template"
269 CONF_SERVICE_TEMPLATE: Final = "service_template"
270 CONF_SET_CONVERSATION_RESPONSE: Final = "set_conversation_response"
271 CONF_SHOW_ON_MAP: Final = "show_on_map"
272 CONF_SLAVE: Final = "slave"
273 CONF_SOURCE: Final = "source"
274 CONF_SSL: Final = "ssl"
275 CONF_STATE: Final = "state"
276 CONF_STATE_TEMPLATE: Final = "state_template"
277 CONF_STOP: Final = "stop"
278 CONF_STRUCTURE: Final = "structure"
279 CONF_SWITCHES: Final = "switches"
280 CONF_TARGET: Final = "target"
281 CONF_TEMPERATURE_UNIT: Final = "temperature_unit"
282 CONF_THEN: Final = "then"
283 CONF_TIMEOUT: Final = "timeout"
284 CONF_TIME_ZONE: Final = "time_zone"
285 CONF_TOKEN: Final = "token"
286 CONF_TRIGGER: Final = "trigger"
287 CONF_TRIGGERS: Final = "triggers"
288 CONF_TRIGGER_TIME: Final = "trigger_time"
289 CONF_TTL: Final = "ttl"
290 CONF_TYPE: Final = "type"
291 CONF_UNIQUE_ID: Final = "unique_id"
292 CONF_UNIT_OF_MEASUREMENT: Final = "unit_of_measurement"
293 CONF_UNIT_SYSTEM: Final = "unit_system"
294 CONF_UNTIL: Final = "until"
295 CONF_URL: Final = "url"
296 CONF_USERNAME: Final = "username"
297 CONF_UUID: Final = "uuid"
298 CONF_VALUE_TEMPLATE: Final = "value_template"
299 CONF_VARIABLES: Final = "variables"
300 CONF_VERIFY_SSL: Final = "verify_ssl"
301 CONF_WAIT_FOR_TRIGGER: Final = "wait_for_trigger"
302 CONF_WAIT_TEMPLATE: Final = "wait_template"
303 CONF_WEBHOOK_ID: Final = "webhook_id"
304 CONF_WEEKDAY: Final = "weekday"
305 CONF_WHILE: Final = "while"
306 CONF_WHITELIST: Final = "whitelist"
307 CONF_ALLOWLIST_EXTERNAL_DIRS: Final = "allowlist_external_dirs"
308 LEGACY_CONF_WHITELIST_EXTERNAL_DIRS: Final = "whitelist_external_dirs"
309 CONF_DEBUG: Final = "debug"
310 CONF_XY: Final = "xy"
311 CONF_ZONE: Final = "zone"
312 
313 # #### EVENTS ####
314 EVENT_CALL_SERVICE: Final = "call_service"
315 EVENT_COMPONENT_LOADED: Final = "component_loaded"
316 EVENT_CORE_CONFIG_UPDATE: Final = "core_config_updated"
317 EVENT_HOMEASSISTANT_CLOSE: EventType[NoEventData] = EventType("homeassistant_close")
318 EVENT_HOMEASSISTANT_START: EventType[NoEventData] = EventType("homeassistant_start")
319 EVENT_HOMEASSISTANT_STARTED: EventType[NoEventData] = EventType("homeassistant_started")
320 EVENT_HOMEASSISTANT_STOP: EventType[NoEventData] = EventType("homeassistant_stop")
321 EVENT_HOMEASSISTANT_FINAL_WRITE: EventType[NoEventData] = EventType(
322  "homeassistant_final_write"
323 )
324 EVENT_LOGBOOK_ENTRY: Final = "logbook_entry"
325 EVENT_LOGGING_CHANGED: Final = "logging_changed"
326 EVENT_SERVICE_REGISTERED: Final = "service_registered"
327 EVENT_SERVICE_REMOVED: Final = "service_removed"
328 EVENT_STATE_CHANGED: EventType[EventStateChangedData] = EventType("state_changed")
329 EVENT_STATE_REPORTED: EventType[EventStateReportedData] = EventType("state_reported")
330 EVENT_THEMES_UPDATED: Final = "themes_updated"
331 EVENT_PANELS_UPDATED: Final = "panels_updated"
332 EVENT_LOVELACE_UPDATED: Final = "lovelace_updated"
333 EVENT_RECORDER_5MIN_STATISTICS_GENERATED: Final = "recorder_5min_statistics_generated"
334 EVENT_RECORDER_HOURLY_STATISTICS_GENERATED: Final = (
335  "recorder_hourly_statistics_generated"
336 )
337 EVENT_SHOPPING_LIST_UPDATED: Final = "shopping_list_updated"
338 
339 # #### DEVICE CLASSES ####
340 # DEVICE_CLASS_* below are deprecated as of 2021.12
341 # use the SensorDeviceClass enum instead.
342 _DEPRECATED_DEVICE_CLASS_AQI: Final = DeprecatedConstant(
343  "aqi", "SensorDeviceClass.AQI", "2025.1"
344 )
345 _DEPRECATED_DEVICE_CLASS_BATTERY: Final = DeprecatedConstant(
346  "battery",
347  "SensorDeviceClass.BATTERY",
348  "2025.1",
349 )
350 _DEPRECATED_DEVICE_CLASS_CO: Final = DeprecatedConstant(
351  "carbon_monoxide",
352  "SensorDeviceClass.CO",
353  "2025.1",
354 )
355 _DEPRECATED_DEVICE_CLASS_CO2: Final = DeprecatedConstant(
356  "carbon_dioxide",
357  "SensorDeviceClass.CO2",
358  "2025.1",
359 )
360 _DEPRECATED_DEVICE_CLASS_CURRENT: Final = DeprecatedConstant(
361  "current",
362  "SensorDeviceClass.CURRENT",
363  "2025.1",
364 )
365 _DEPRECATED_DEVICE_CLASS_DATE: Final = DeprecatedConstant(
366  "date", "SensorDeviceClass.DATE", "2025.1"
367 )
368 _DEPRECATED_DEVICE_CLASS_ENERGY: Final = DeprecatedConstant(
369  "energy",
370  "SensorDeviceClass.ENERGY",
371  "2025.1",
372 )
373 _DEPRECATED_DEVICE_CLASS_FREQUENCY: Final = DeprecatedConstant(
374  "frequency",
375  "SensorDeviceClass.FREQUENCY",
376  "2025.1",
377 )
378 _DEPRECATED_DEVICE_CLASS_GAS: Final = DeprecatedConstant(
379  "gas", "SensorDeviceClass.GAS", "2025.1"
380 )
381 _DEPRECATED_DEVICE_CLASS_HUMIDITY: Final = DeprecatedConstant(
382  "humidity",
383  "SensorDeviceClass.HUMIDITY",
384  "2025.1",
385 )
386 _DEPRECATED_DEVICE_CLASS_ILLUMINANCE: Final = DeprecatedConstant(
387  "illuminance",
388  "SensorDeviceClass.ILLUMINANCE",
389  "2025.1",
390 )
391 _DEPRECATED_DEVICE_CLASS_MONETARY: Final = DeprecatedConstant(
392  "monetary",
393  "SensorDeviceClass.MONETARY",
394  "2025.1",
395 )
396 _DEPRECATED_DEVICE_CLASS_NITROGEN_DIOXIDE: Final = DeprecatedConstant(
397  "nitrogen_dioxide",
398  "SensorDeviceClass.NITROGEN_DIOXIDE",
399  "2025.1",
400 )
401 _DEPRECATED_DEVICE_CLASS_NITROGEN_MONOXIDE: Final = DeprecatedConstant(
402  "nitrogen_monoxide",
403  "SensorDeviceClass.NITROGEN_MONOXIDE",
404  "2025.1",
405 )
406 _DEPRECATED_DEVICE_CLASS_NITROUS_OXIDE: Final = DeprecatedConstant(
407  "nitrous_oxide",
408  "SensorDeviceClass.NITROUS_OXIDE",
409  "2025.1",
410 )
411 _DEPRECATED_DEVICE_CLASS_OZONE: Final = DeprecatedConstant(
412  "ozone", "SensorDeviceClass.OZONE", "2025.1"
413 )
414 _DEPRECATED_DEVICE_CLASS_PM1: Final = DeprecatedConstant(
415  "pm1", "SensorDeviceClass.PM1", "2025.1"
416 )
417 _DEPRECATED_DEVICE_CLASS_PM10: Final = DeprecatedConstant(
418  "pm10", "SensorDeviceClass.PM10", "2025.1"
419 )
420 _DEPRECATED_DEVICE_CLASS_PM25: Final = DeprecatedConstant(
421  "pm25", "SensorDeviceClass.PM25", "2025.1"
422 )
423 _DEPRECATED_DEVICE_CLASS_POWER_FACTOR: Final = DeprecatedConstant(
424  "power_factor",
425  "SensorDeviceClass.POWER_FACTOR",
426  "2025.1",
427 )
428 _DEPRECATED_DEVICE_CLASS_POWER: Final = DeprecatedConstant(
429  "power", "SensorDeviceClass.POWER", "2025.1"
430 )
431 _DEPRECATED_DEVICE_CLASS_PRESSURE: Final = DeprecatedConstant(
432  "pressure",
433  "SensorDeviceClass.PRESSURE",
434  "2025.1",
435 )
436 _DEPRECATED_DEVICE_CLASS_SIGNAL_STRENGTH: Final = DeprecatedConstant(
437  "signal_strength",
438  "SensorDeviceClass.SIGNAL_STRENGTH",
439  "2025.1",
440 )
441 _DEPRECATED_DEVICE_CLASS_SULPHUR_DIOXIDE: Final = DeprecatedConstant(
442  "sulphur_dioxide",
443  "SensorDeviceClass.SULPHUR_DIOXIDE",
444  "2025.1",
445 )
446 _DEPRECATED_DEVICE_CLASS_TEMPERATURE: Final = DeprecatedConstant(
447  "temperature",
448  "SensorDeviceClass.TEMPERATURE",
449  "2025.1",
450 )
451 _DEPRECATED_DEVICE_CLASS_TIMESTAMP: Final = DeprecatedConstant(
452  "timestamp",
453  "SensorDeviceClass.TIMESTAMP",
454  "2025.1",
455 )
456 _DEPRECATED_DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS: Final = DeprecatedConstant(
457  "volatile_organic_compounds",
458  "SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS",
459  "2025.1",
460 )
461 _DEPRECATED_DEVICE_CLASS_VOLTAGE: Final = DeprecatedConstant(
462  "voltage",
463  "SensorDeviceClass.VOLTAGE",
464  "2025.1",
465 )
466 
467 # #### STATES ####
468 STATE_ON: Final = "on"
469 STATE_OFF: Final = "off"
470 STATE_HOME: Final = "home"
471 STATE_NOT_HOME: Final = "not_home"
472 STATE_UNKNOWN: Final = "unknown"
473 STATE_OPEN: Final = "open"
474 STATE_OPENING: Final = "opening"
475 STATE_CLOSED: Final = "closed"
476 STATE_CLOSING: Final = "closing"
477 STATE_BUFFERING: Final = "buffering"
478 STATE_PLAYING: Final = "playing"
479 STATE_PAUSED: Final = "paused"
480 STATE_IDLE: Final = "idle"
481 STATE_STANDBY: Final = "standby"
482 STATE_UNAVAILABLE: Final = "unavailable"
483 STATE_OK: Final = "ok"
484 STATE_PROBLEM: Final = "problem"
485 
486 # #### LOCK STATES ####
487 # STATE_* below are deprecated as of 2024.10
488 # use the LockState enum instead.
489 _DEPRECATED_STATE_LOCKED: Final = DeprecatedConstant(
490  "locked",
491  "LockState.LOCKED",
492  "2025.10",
493 )
494 _DEPRECATED_STATE_UNLOCKED: Final = DeprecatedConstant(
495  "unlocked",
496  "LockState.UNLOCKED",
497  "2025.10",
498 )
499 _DEPRECATED_STATE_LOCKING: Final = DeprecatedConstant(
500  "locking",
501  "LockState.LOCKING",
502  "2025.10",
503 )
504 _DEPRECATED_STATE_UNLOCKING: Final = DeprecatedConstant(
505  "unlocking",
506  "LockState.UNLOCKING",
507  "2025.10",
508 )
509 _DEPRECATED_STATE_JAMMED: Final = DeprecatedConstant(
510  "jammed",
511  "LockState.JAMMED",
512  "2025.10",
513 )
514 
515 # #### ALARM CONTROL PANEL STATES ####
516 # STATE_ALARM_* below are deprecated as of 2024.11
517 # use the AlarmControlPanelState enum instead.
518 _DEPRECATED_STATE_ALARM_DISARMED: Final = DeprecatedConstant(
519  "disarmed",
520  "AlarmControlPanelState.DISARMED",
521  "2025.11",
522 )
523 _DEPRECATED_STATE_ALARM_ARMED_HOME: Final = DeprecatedConstant(
524  "armed_home",
525  "AlarmControlPanelState.ARMED_HOME",
526  "2025.11",
527 )
528 _DEPRECATED_STATE_ALARM_ARMED_AWAY: Final = DeprecatedConstant(
529  "armed_away",
530  "AlarmControlPanelState.ARMED_AWAY",
531  "2025.11",
532 )
533 _DEPRECATED_STATE_ALARM_ARMED_NIGHT: Final = DeprecatedConstant(
534  "armed_night",
535  "AlarmControlPanelState.ARMED_NIGHT",
536  "2025.11",
537 )
538 _DEPRECATED_STATE_ALARM_ARMED_VACATION: Final = DeprecatedConstant(
539  "armed_vacation",
540  "AlarmControlPanelState.ARMED_VACATION",
541  "2025.11",
542 )
543 _DEPRECATED_STATE_ALARM_ARMED_CUSTOM_BYPASS: Final = DeprecatedConstant(
544  "armed_custom_bypass",
545  "AlarmControlPanelState.ARMED_CUSTOM_BYPASS",
546  "2025.11",
547 )
548 _DEPRECATED_STATE_ALARM_PENDING: Final = DeprecatedConstant(
549  "pending",
550  "AlarmControlPanelState.PENDING",
551  "2025.11",
552 )
553 _DEPRECATED_STATE_ALARM_ARMING: Final = DeprecatedConstant(
554  "arming",
555  "AlarmControlPanelState.ARMING",
556  "2025.11",
557 )
558 _DEPRECATED_STATE_ALARM_DISARMING: Final = DeprecatedConstant(
559  "disarming",
560  "AlarmControlPanelState.DISARMING",
561  "2025.11",
562 )
563 _DEPRECATED_STATE_ALARM_TRIGGERED: Final = DeprecatedConstant(
564  "triggered",
565  "AlarmControlPanelState.TRIGGERED",
566  "2025.11",
567 )
568 
569 # #### STATE AND EVENT ATTRIBUTES ####
570 # Attribution
571 ATTR_ATTRIBUTION: Final = "attribution"
572 
573 # Credentials
574 ATTR_CREDENTIALS: Final = "credentials"
575 
576 # Contains time-related attributes
577 ATTR_NOW: Final = "now"
578 ATTR_DATE: Final = "date"
579 ATTR_TIME: Final = "time"
580 ATTR_SECONDS: Final = "seconds"
581 
582 # Contains domain, service for a SERVICE_CALL event
583 ATTR_DOMAIN: Final = "domain"
584 ATTR_SERVICE: Final = "service"
585 ATTR_SERVICE_DATA: Final = "service_data"
586 
587 # IDs
588 ATTR_ID: Final = "id"
589 
590 # Name
591 ATTR_NAME: Final = "name"
592 
593 # Contains one string or a list of strings, each being an entity id
594 ATTR_ENTITY_ID: Final = "entity_id"
595 
596 # Contains one string or a list of strings, each being an area id
597 ATTR_AREA_ID: Final = "area_id"
598 
599 # Contains one string, the device ID
600 ATTR_DEVICE_ID: Final = "device_id"
601 
602 # Contains one string or a list of strings, each being an floor id
603 ATTR_FLOOR_ID: Final = "floor_id"
604 
605 # Contains one string or a list of strings, each being an label id
606 ATTR_LABEL_ID: Final = "label_id"
607 
608 # String with a friendly name for the entity
609 ATTR_FRIENDLY_NAME: Final = "friendly_name"
610 
611 # A picture to represent entity
612 ATTR_ENTITY_PICTURE: Final = "entity_picture"
613 
614 ATTR_IDENTIFIERS: Final = "identifiers"
615 
616 # Icon to use in the frontend
617 ATTR_ICON: Final = "icon"
618 
619 # The unit of measurement if applicable
620 ATTR_UNIT_OF_MEASUREMENT: Final = "unit_of_measurement"
621 
622 CONF_UNIT_SYSTEM_METRIC: Final = "metric"
623 """Deprecated: please use a local constant."""
624 CONF_UNIT_SYSTEM_IMPERIAL: Final = "imperial"
625 """Deprecated: please use a local constant."""
626 
627 # Electrical attributes
628 ATTR_VOLTAGE: Final = "voltage"
629 
630 # Location of the device/sensor
631 ATTR_LOCATION: Final = "location"
632 
633 ATTR_MODE: Final = "mode"
634 
635 ATTR_CONFIGURATION_URL: Final = "configuration_url"
636 ATTR_CONNECTIONS: Final = "connections"
637 ATTR_DEFAULT_NAME: Final = "default_name"
638 ATTR_MANUFACTURER: Final = "manufacturer"
639 ATTR_MODEL: Final = "model"
640 ATTR_MODEL_ID: Final = "model_id"
641 ATTR_SERIAL_NUMBER: Final = "serial_number"
642 ATTR_SUGGESTED_AREA: Final = "suggested_area"
643 ATTR_SW_VERSION: Final = "sw_version"
644 ATTR_HW_VERSION: Final = "hw_version"
645 ATTR_VIA_DEVICE: Final = "via_device"
646 
647 ATTR_BATTERY_CHARGING: Final = "battery_charging"
648 ATTR_BATTERY_LEVEL: Final = "battery_level"
649 ATTR_WAKEUP: Final = "wake_up_interval"
650 
651 # For devices which support a code attribute
652 ATTR_CODE: Final = "code"
653 ATTR_CODE_FORMAT: Final = "code_format"
654 
655 # For calling a device specific command
656 ATTR_COMMAND: Final = "command"
657 
658 # For devices which support an armed state
659 ATTR_ARMED: Final = "device_armed"
660 
661 # For devices which support a locked state
662 ATTR_LOCKED: Final = "locked"
663 
664 # For sensors that support 'tripping', eg. motion and door sensors
665 ATTR_TRIPPED: Final = "device_tripped"
666 
667 # For sensors that support 'tripping' this holds the most recent
668 # time the device was tripped
669 ATTR_LAST_TRIP_TIME: Final = "last_tripped_time"
670 
671 # For all entity's, this hold whether or not it should be hidden
672 ATTR_HIDDEN: Final = "hidden"
673 
674 # Location of the entity
675 ATTR_LATITUDE: Final = "latitude"
676 ATTR_LONGITUDE: Final = "longitude"
677 
678 # Elevation of the entity
679 ATTR_ELEVATION: Final = "elevation"
680 
681 # Accuracy of location in meters
682 ATTR_GPS_ACCURACY: Final = "gps_accuracy"
683 
684 # If state is assumed
685 ATTR_ASSUMED_STATE: Final = "assumed_state"
686 ATTR_STATE: Final = "state"
687 
688 ATTR_EDITABLE: Final = "editable"
689 ATTR_OPTION: Final = "option"
690 
691 # The entity has been restored with restore state
692 ATTR_RESTORED: Final = "restored"
693 
694 # Bitfield of supported component features for the entity
695 ATTR_SUPPORTED_FEATURES: Final = "supported_features"
696 
697 # Class of device within its domain
698 ATTR_DEVICE_CLASS: Final = "device_class"
699 
700 # Temperature attribute
701 ATTR_TEMPERATURE: Final = "temperature"
702 
703 # Persons attribute
704 ATTR_PERSONS: Final = "persons"
705 
706 
707 # #### UNITS OF MEASUREMENT ####
708 # Apparent power units
709 class UnitOfApparentPower(StrEnum):
710  """Apparent power units."""
711 
712  VOLT_AMPERE = "VA"
713 
714 
715 _DEPRECATED_POWER_VOLT_AMPERE: Final = DeprecatedConstantEnum(
716  UnitOfApparentPower.VOLT_AMPERE,
717  "2025.1",
718 )
719 """Deprecated: please use UnitOfApparentPower.VOLT_AMPERE."""
720 
721 
722 # Power units
723 class UnitOfPower(StrEnum):
724  """Power units."""
725 
726  WATT = "W"
727  KILO_WATT = "kW"
728  MEGA_WATT = "MW"
729  GIGA_WATT = "GW"
730  TERA_WATT = "TW"
731  BTU_PER_HOUR = "BTU/h"
732 
733 
734 _DEPRECATED_POWER_WATT: Final = DeprecatedConstantEnum(
735  UnitOfPower.WATT,
736  "2025.1",
737 )
738 """Deprecated: please use UnitOfPower.WATT."""
739 _DEPRECATED_POWER_KILO_WATT: Final = DeprecatedConstantEnum(
740  UnitOfPower.KILO_WATT,
741  "2025.1",
742 )
743 """Deprecated: please use UnitOfPower.KILO_WATT."""
744 _DEPRECATED_POWER_BTU_PER_HOUR: Final = DeprecatedConstantEnum(
745  UnitOfPower.BTU_PER_HOUR,
746  "2025.1",
747 )
748 """Deprecated: please use UnitOfPower.BTU_PER_HOUR."""
749 
750 
751 # Reactive power units
752 class UnitOfReactivePower(StrEnum):
753  """Reactive power units."""
754 
755  VOLT_AMPERE_REACTIVE = "var"
756 
757 
758 _DEPRECATED_POWER_VOLT_AMPERE_REACTIVE: Final = DeprecatedConstantEnum(
759  UnitOfReactivePower.VOLT_AMPERE_REACTIVE,
760  "2025.9",
761 )
762 """Deprecated: please use UnitOfReactivePower.VOLT_AMPERE_REACTIVE."""
763 
764 
765 # Energy units
766 class UnitOfEnergy(StrEnum):
767  """Energy units."""
768 
769  JOULE = "J"
770  KILO_JOULE = "kJ"
771  MEGA_JOULE = "MJ"
772  GIGA_JOULE = "GJ"
773  WATT_HOUR = "Wh"
774  KILO_WATT_HOUR = "kWh"
775  MEGA_WATT_HOUR = "MWh"
776  GIGA_WATT_HOUR = "GWh"
777  TERA_WATT_HOUR = "TWh"
778  CALORIE = "cal"
779  KILO_CALORIE = "kcal"
780  MEGA_CALORIE = "Mcal"
781  GIGA_CALORIE = "Gcal"
782 
783 
784 _DEPRECATED_ENERGY_KILO_WATT_HOUR: Final = DeprecatedConstantEnum(
785  UnitOfEnergy.KILO_WATT_HOUR,
786  "2025.1",
787 )
788 """Deprecated: please use UnitOfEnergy.KILO_WATT_HOUR."""
789 _DEPRECATED_ENERGY_MEGA_WATT_HOUR: Final = DeprecatedConstantEnum(
790  UnitOfEnergy.MEGA_WATT_HOUR,
791  "2025.1",
792 )
793 """Deprecated: please use UnitOfEnergy.MEGA_WATT_HOUR."""
794 _DEPRECATED_ENERGY_WATT_HOUR: Final = DeprecatedConstantEnum(
795  UnitOfEnergy.WATT_HOUR,
796  "2025.1",
797 )
798 """Deprecated: please use UnitOfEnergy.WATT_HOUR."""
799 
800 
801 # Electric_current units
802 class UnitOfElectricCurrent(StrEnum):
803  """Electric current units."""
804 
805  MILLIAMPERE = "mA"
806  AMPERE = "A"
807 
808 
809 _DEPRECATED_ELECTRIC_CURRENT_MILLIAMPERE: Final = DeprecatedConstantEnum(
810  UnitOfElectricCurrent.MILLIAMPERE,
811  "2025.1",
812 )
813 """Deprecated: please use UnitOfElectricCurrent.MILLIAMPERE."""
814 _DEPRECATED_ELECTRIC_CURRENT_AMPERE: Final = DeprecatedConstantEnum(
815  UnitOfElectricCurrent.AMPERE,
816  "2025.1",
817 )
818 """Deprecated: please use UnitOfElectricCurrent.AMPERE."""
819 
820 
821 # Electric_potential units
822 class UnitOfElectricPotential(StrEnum):
823  """Electric potential units."""
824 
825  MICROVOLT = "µV"
826  MILLIVOLT = "mV"
827  VOLT = "V"
828 
829 
830 _DEPRECATED_ELECTRIC_POTENTIAL_MILLIVOLT: Final = DeprecatedConstantEnum(
831  UnitOfElectricPotential.MILLIVOLT,
832  "2025.1",
833 )
834 """Deprecated: please use UnitOfElectricPotential.MILLIVOLT."""
835 _DEPRECATED_ELECTRIC_POTENTIAL_VOLT: Final = DeprecatedConstantEnum(
836  UnitOfElectricPotential.VOLT,
837  "2025.1",
838 )
839 """Deprecated: please use UnitOfElectricPotential.VOLT."""
840 
841 # Degree units
842 DEGREE: Final = "°"
843 
844 # Currency units
845 CURRENCY_EURO: Final = "€"
846 CURRENCY_DOLLAR: Final = "$"
847 CURRENCY_CENT: Final = "¢"
848 
849 
850 # Temperature units
851 class UnitOfTemperature(StrEnum):
852  """Temperature units."""
853 
854  CELSIUS = "°C"
855  FAHRENHEIT = "°F"
856  KELVIN = "K"
857 
858 
859 _DEPRECATED_TEMP_CELSIUS: Final = DeprecatedConstantEnum(
860  UnitOfTemperature.CELSIUS,
861  "2025.1",
862 )
863 """Deprecated: please use UnitOfTemperature.CELSIUS"""
864 _DEPRECATED_TEMP_FAHRENHEIT: Final = DeprecatedConstantEnum(
865  UnitOfTemperature.FAHRENHEIT,
866  "2025.1",
867 )
868 """Deprecated: please use UnitOfTemperature.FAHRENHEIT"""
869 _DEPRECATED_TEMP_KELVIN: Final = DeprecatedConstantEnum(
870  UnitOfTemperature.KELVIN,
871  "2025.1",
872 )
873 """Deprecated: please use UnitOfTemperature.KELVIN"""
874 
875 
876 # Time units
877 class UnitOfTime(StrEnum):
878  """Time units."""
879 
880  MICROSECONDS = "μs"
881  MILLISECONDS = "ms"
882  SECONDS = "s"
883  MINUTES = "min"
884  HOURS = "h"
885  DAYS = "d"
886  WEEKS = "w"
887  MONTHS = "m"
888  YEARS = "y"
889 
890 
891 _DEPRECATED_TIME_MICROSECONDS: Final = DeprecatedConstantEnum(
892  UnitOfTime.MICROSECONDS,
893  "2025.1",
894 )
895 """Deprecated: please use UnitOfTime.MICROSECONDS."""
896 _DEPRECATED_TIME_MILLISECONDS: Final = DeprecatedConstantEnum(
897  UnitOfTime.MILLISECONDS,
898  "2025.1",
899 )
900 """Deprecated: please use UnitOfTime.MILLISECONDS."""
901 _DEPRECATED_TIME_SECONDS: Final = DeprecatedConstantEnum(
902  UnitOfTime.SECONDS,
903  "2025.1",
904 )
905 """Deprecated: please use UnitOfTime.SECONDS."""
906 _DEPRECATED_TIME_MINUTES: Final = DeprecatedConstantEnum(
907  UnitOfTime.MINUTES,
908  "2025.1",
909 )
910 """Deprecated: please use UnitOfTime.MINUTES."""
911 _DEPRECATED_TIME_HOURS: Final = DeprecatedConstantEnum(
912  UnitOfTime.HOURS,
913  "2025.1",
914 )
915 """Deprecated: please use UnitOfTime.HOURS."""
916 _DEPRECATED_TIME_DAYS: Final = DeprecatedConstantEnum(
917  UnitOfTime.DAYS,
918  "2025.1",
919 )
920 """Deprecated: please use UnitOfTime.DAYS."""
921 _DEPRECATED_TIME_WEEKS: Final = DeprecatedConstantEnum(
922  UnitOfTime.WEEKS,
923  "2025.1",
924 )
925 """Deprecated: please use UnitOfTime.WEEKS."""
926 _DEPRECATED_TIME_MONTHS: Final = DeprecatedConstantEnum(
927  UnitOfTime.MONTHS,
928  "2025.1",
929 )
930 """Deprecated: please use UnitOfTime.MONTHS."""
931 _DEPRECATED_TIME_YEARS: Final = DeprecatedConstantEnum(
932  UnitOfTime.YEARS,
933  "2025.1",
934 )
935 """Deprecated: please use UnitOfTime.YEARS."""
936 
937 
938 # Length units
939 class UnitOfLength(StrEnum):
940  """Length units."""
941 
942  MILLIMETERS = "mm"
943  CENTIMETERS = "cm"
944  METERS = "m"
945  KILOMETERS = "km"
946  INCHES = "in"
947  FEET = "ft"
948  YARDS = "yd"
949  MILES = "mi"
950  NAUTICAL_MILES = "nmi"
951 
952 
953 _DEPRECATED_LENGTH_MILLIMETERS: Final = DeprecatedConstantEnum(
954  UnitOfLength.MILLIMETERS,
955  "2025.1",
956 )
957 """Deprecated: please use UnitOfLength.MILLIMETERS."""
958 _DEPRECATED_LENGTH_CENTIMETERS: Final = DeprecatedConstantEnum(
959  UnitOfLength.CENTIMETERS,
960  "2025.1",
961 )
962 """Deprecated: please use UnitOfLength.CENTIMETERS."""
963 _DEPRECATED_LENGTH_METERS: Final = DeprecatedConstantEnum(
964  UnitOfLength.METERS,
965  "2025.1",
966 )
967 """Deprecated: please use UnitOfLength.METERS."""
968 _DEPRECATED_LENGTH_KILOMETERS: Final = DeprecatedConstantEnum(
969  UnitOfLength.KILOMETERS,
970  "2025.1",
971 )
972 """Deprecated: please use UnitOfLength.KILOMETERS."""
973 _DEPRECATED_LENGTH_INCHES: Final = DeprecatedConstantEnum(
974  UnitOfLength.INCHES,
975  "2025.1",
976 )
977 """Deprecated: please use UnitOfLength.INCHES."""
978 _DEPRECATED_LENGTH_FEET: Final = DeprecatedConstantEnum(
979  UnitOfLength.FEET,
980  "2025.1",
981 )
982 """Deprecated: please use UnitOfLength.FEET."""
983 _DEPRECATED_LENGTH_YARD: Final = DeprecatedConstantEnum(
984  UnitOfLength.YARDS,
985  "2025.1",
986 )
987 """Deprecated: please use UnitOfLength.YARDS."""
988 _DEPRECATED_LENGTH_MILES: Final = DeprecatedConstantEnum(
989  UnitOfLength.MILES,
990  "2025.1",
991 )
992 """Deprecated: please use UnitOfLength.MILES."""
993 
994 
995 # Frequency units
996 class UnitOfFrequency(StrEnum):
997  """Frequency units."""
998 
999  HERTZ = "Hz"
1000  KILOHERTZ = "kHz"
1001  MEGAHERTZ = "MHz"
1002  GIGAHERTZ = "GHz"
1003 
1004 
1005 _DEPRECATED_FREQUENCY_HERTZ: Final = DeprecatedConstantEnum(
1006  UnitOfFrequency.HERTZ,
1007  "2025.1",
1008 )
1009 """Deprecated: please use UnitOfFrequency.HERTZ"""
1010 _DEPRECATED_FREQUENCY_KILOHERTZ: Final = DeprecatedConstantEnum(
1011  UnitOfFrequency.KILOHERTZ,
1012  "2025.1",
1013 )
1014 """Deprecated: please use UnitOfFrequency.KILOHERTZ"""
1015 _DEPRECATED_FREQUENCY_MEGAHERTZ: Final = DeprecatedConstantEnum(
1016  UnitOfFrequency.MEGAHERTZ,
1017  "2025.1",
1018 )
1019 """Deprecated: please use UnitOfFrequency.MEGAHERTZ"""
1020 _DEPRECATED_FREQUENCY_GIGAHERTZ: Final = DeprecatedConstantEnum(
1021  UnitOfFrequency.GIGAHERTZ,
1022  "2025.1",
1023 )
1024 """Deprecated: please use UnitOfFrequency.GIGAHERTZ"""
1025 
1026 
1027 # Pressure units
1028 class UnitOfPressure(StrEnum):
1029  """Pressure units."""
1030 
1031  PA = "Pa"
1032  HPA = "hPa"
1033  KPA = "kPa"
1034  BAR = "bar"
1035  CBAR = "cbar"
1036  MBAR = "mbar"
1037  MMHG = "mmHg"
1038  INHG = "inHg"
1039  PSI = "psi"
1040 
1041 
1042 _DEPRECATED_PRESSURE_PA: Final = DeprecatedConstantEnum(
1043  UnitOfPressure.PA,
1044  "2025.1",
1045 )
1046 """Deprecated: please use UnitOfPressure.PA"""
1047 _DEPRECATED_PRESSURE_HPA: Final = DeprecatedConstantEnum(
1048  UnitOfPressure.HPA,
1049  "2025.1",
1050 )
1051 """Deprecated: please use UnitOfPressure.HPA"""
1052 _DEPRECATED_PRESSURE_KPA: Final = DeprecatedConstantEnum(
1053  UnitOfPressure.KPA,
1054  "2025.1",
1055 )
1056 """Deprecated: please use UnitOfPressure.KPA"""
1057 _DEPRECATED_PRESSURE_BAR: Final = DeprecatedConstantEnum(
1058  UnitOfPressure.BAR,
1059  "2025.1",
1060 )
1061 """Deprecated: please use UnitOfPressure.BAR"""
1062 _DEPRECATED_PRESSURE_CBAR: Final = DeprecatedConstantEnum(
1063  UnitOfPressure.CBAR,
1064  "2025.1",
1065 )
1066 """Deprecated: please use UnitOfPressure.CBAR"""
1067 _DEPRECATED_PRESSURE_MBAR: Final = DeprecatedConstantEnum(
1068  UnitOfPressure.MBAR,
1069  "2025.1",
1070 )
1071 """Deprecated: please use UnitOfPressure.MBAR"""
1072 _DEPRECATED_PRESSURE_MMHG: Final = DeprecatedConstantEnum(
1073  UnitOfPressure.MMHG,
1074  "2025.1",
1075 )
1076 """Deprecated: please use UnitOfPressure.MMHG"""
1077 _DEPRECATED_PRESSURE_INHG: Final = DeprecatedConstantEnum(
1078  UnitOfPressure.INHG,
1079  "2025.1",
1080 )
1081 """Deprecated: please use UnitOfPressure.INHG"""
1082 _DEPRECATED_PRESSURE_PSI: Final = DeprecatedConstantEnum(
1083  UnitOfPressure.PSI,
1084  "2025.1",
1085 )
1086 """Deprecated: please use UnitOfPressure.PSI"""
1087 
1088 
1089 # Sound pressure units
1090 class UnitOfSoundPressure(StrEnum):
1091  """Sound pressure units."""
1092 
1093  DECIBEL = "dB"
1094  WEIGHTED_DECIBEL_A = "dBA"
1095 
1096 
1097 _DEPRECATED_SOUND_PRESSURE_DB: Final = DeprecatedConstantEnum(
1098  UnitOfSoundPressure.DECIBEL,
1099  "2025.1",
1100 )
1101 """Deprecated: please use UnitOfSoundPressure.DECIBEL"""
1102 _DEPRECATED_SOUND_PRESSURE_WEIGHTED_DBA: Final = DeprecatedConstantEnum(
1103  UnitOfSoundPressure.WEIGHTED_DECIBEL_A,
1104  "2025.1",
1105 )
1106 """Deprecated: please use UnitOfSoundPressure.WEIGHTED_DECIBEL_A"""
1107 
1108 
1109 # Volume units
1110 class UnitOfVolume(StrEnum):
1111  """Volume units."""
1112 
1113  CUBIC_FEET = "ft³"
1114  CENTUM_CUBIC_FEET = "CCF"
1115  CUBIC_METERS = "m³"
1116  LITERS = "L"
1117  MILLILITERS = "mL"
1118  GALLONS = "gal"
1119  """Assumed to be US gallons in conversion utilities.
1120 
1121  British/Imperial gallons are not yet supported"""
1122  FLUID_OUNCES = "fl. oz."
1123  """Assumed to be US fluid ounces in conversion utilities.
1124 
1125  British/Imperial fluid ounces are not yet supported"""
1126 
1127 
1128 _DEPRECATED_VOLUME_LITERS: Final = DeprecatedConstantEnum(
1129  UnitOfVolume.LITERS,
1130  "2025.1",
1131 )
1132 """Deprecated: please use UnitOfVolume.LITERS"""
1133 _DEPRECATED_VOLUME_MILLILITERS: Final = DeprecatedConstantEnum(
1134  UnitOfVolume.MILLILITERS,
1135  "2025.1",
1136 )
1137 """Deprecated: please use UnitOfVolume.MILLILITERS"""
1138 _DEPRECATED_VOLUME_CUBIC_METERS: Final = DeprecatedConstantEnum(
1139  UnitOfVolume.CUBIC_METERS,
1140  "2025.1",
1141 )
1142 """Deprecated: please use UnitOfVolume.CUBIC_METERS"""
1143 _DEPRECATED_VOLUME_CUBIC_FEET: Final = DeprecatedConstantEnum(
1144  UnitOfVolume.CUBIC_FEET,
1145  "2025.1",
1146 )
1147 """Deprecated: please use UnitOfVolume.CUBIC_FEET"""
1148 
1149 _DEPRECATED_VOLUME_GALLONS: Final = DeprecatedConstantEnum(
1150  UnitOfVolume.GALLONS,
1151  "2025.1",
1152 )
1153 """Deprecated: please use UnitOfVolume.GALLONS"""
1154 _DEPRECATED_VOLUME_FLUID_OUNCE: Final = DeprecatedConstantEnum(
1155  UnitOfVolume.FLUID_OUNCES,
1156  "2025.1",
1157 )
1158 """Deprecated: please use UnitOfVolume.FLUID_OUNCES"""
1159 
1160 
1161 # Volume Flow Rate units
1162 class UnitOfVolumeFlowRate(StrEnum):
1163  """Volume flow rate units."""
1164 
1165  CUBIC_METERS_PER_HOUR = "m³/h"
1166  CUBIC_FEET_PER_MINUTE = "ft³/min"
1167  LITERS_PER_MINUTE = "L/min"
1168  GALLONS_PER_MINUTE = "gal/min"
1169  MILLILITERS_PER_SECOND = "mL/s"
1170 
1171 
1172 _DEPRECATED_VOLUME_FLOW_RATE_CUBIC_METERS_PER_HOUR: Final = DeprecatedConstantEnum(
1173  UnitOfVolumeFlowRate.CUBIC_METERS_PER_HOUR,
1174  "2025.1",
1175 )
1176 """Deprecated: please use UnitOfVolumeFlowRate.CUBIC_METERS_PER_HOUR"""
1177 _DEPRECATED_VOLUME_FLOW_RATE_CUBIC_FEET_PER_MINUTE: Final = DeprecatedConstantEnum(
1178  UnitOfVolumeFlowRate.CUBIC_FEET_PER_MINUTE,
1179  "2025.1",
1180 )
1181 """Deprecated: please use UnitOfVolumeFlowRate.CUBIC_FEET_PER_MINUTE"""
1182 
1183 
1184 class UnitOfArea(StrEnum):
1185  """Area units."""
1186 
1187  SQUARE_METERS = "m²"
1188  SQUARE_CENTIMETERS = "cm²"
1189  SQUARE_KILOMETERS = "km²"
1190  SQUARE_MILLIMETERS = "mm²"
1191  SQUARE_INCHES = "in²"
1192  SQUARE_FEET = "ft²"
1193  SQUARE_YARDS = "yd²"
1194  SQUARE_MILES = "mi²"
1195  ACRES = "ac"
1196  HECTARES = "ha"
1197 
1198 
1199 _DEPRECATED_AREA_SQUARE_METERS: Final = DeprecatedConstantEnum(
1200  UnitOfArea.SQUARE_METERS,
1201  "2025.12",
1202 )
1203 """Deprecated: please use UnitOfArea.SQUARE_METERS"""
1204 
1205 
1206 # Mass units
1207 class UnitOfMass(StrEnum):
1208  """Mass units."""
1209 
1210  GRAMS = "g"
1211  KILOGRAMS = "kg"
1212  MILLIGRAMS = "mg"
1213  MICROGRAMS = "µg"
1214  OUNCES = "oz"
1215  POUNDS = "lb"
1216  STONES = "st"
1217 
1218 
1219 _DEPRECATED_MASS_GRAMS: Final = DeprecatedConstantEnum(
1220  UnitOfMass.GRAMS,
1221  "2025.1",
1222 )
1223 """Deprecated: please use UnitOfMass.GRAMS"""
1224 _DEPRECATED_MASS_KILOGRAMS: Final = DeprecatedConstantEnum(
1225  UnitOfMass.KILOGRAMS,
1226  "2025.1",
1227 )
1228 """Deprecated: please use UnitOfMass.KILOGRAMS"""
1229 _DEPRECATED_MASS_MILLIGRAMS: Final = DeprecatedConstantEnum(
1230  UnitOfMass.MILLIGRAMS,
1231  "2025.1",
1232 )
1233 """Deprecated: please use UnitOfMass.MILLIGRAMS"""
1234 _DEPRECATED_MASS_MICROGRAMS: Final = DeprecatedConstantEnum(
1235  UnitOfMass.MICROGRAMS,
1236  "2025.1",
1237 )
1238 """Deprecated: please use UnitOfMass.MICROGRAMS"""
1239 _DEPRECATED_MASS_OUNCES: Final = DeprecatedConstantEnum(
1240  UnitOfMass.OUNCES,
1241  "2025.1",
1242 )
1243 """Deprecated: please use UnitOfMass.OUNCES"""
1244 _DEPRECATED_MASS_POUNDS: Final = DeprecatedConstantEnum(
1245  UnitOfMass.POUNDS,
1246  "2025.1",
1247 )
1248 """Deprecated: please use UnitOfMass.POUNDS"""
1249 
1250 
1252  StrEnum,
1253  metaclass=EnumWithDeprecatedMembers,
1254  deprecated={
1255  "SIEMENS": ("UnitOfConductivity.SIEMENS_PER_CM", "2025.11.0"),
1256  "MICROSIEMENS": ("UnitOfConductivity.MICROSIEMENS_PER_CM", "2025.11.0"),
1257  "MILLISIEMENS": ("UnitOfConductivity.MILLISIEMENS_PER_CM", "2025.11.0"),
1258  },
1259 ):
1260  """Conductivity units."""
1261 
1262  SIEMENS_PER_CM = "S/cm"
1263  MICROSIEMENS_PER_CM = "µS/cm"
1264  MILLISIEMENS_PER_CM = "mS/cm"
1265 
1266  # Deprecated aliases
1267  SIEMENS = "S/cm"
1268  """Deprecated: Please use UnitOfConductivity.SIEMENS_PER_CM"""
1269  MICROSIEMENS = "µS/cm"
1270  """Deprecated: Please use UnitOfConductivity.MICROSIEMENS_PER_CM"""
1271  MILLISIEMENS = "mS/cm"
1272  """Deprecated: Please use UnitOfConductivity.MILLISIEMENS_PER_CM"""
1273 
1274 
1275 _DEPRECATED_CONDUCTIVITY: Final = DeprecatedConstantEnum(
1276  UnitOfConductivity.MICROSIEMENS_PER_CM,
1277  "2025.11",
1278 )
1279 """Deprecated: please use UnitOfConductivity.MICROSIEMENS_PER_CM"""
1280 
1281 # Light units
1282 LIGHT_LUX: Final = "lx"
1283 
1284 # UV Index units
1285 UV_INDEX: Final = "UV index"
1286 
1287 # Percentage units
1288 PERCENTAGE: Final = "%"
1289 
1290 # Rotational speed units
1291 REVOLUTIONS_PER_MINUTE: Final = "rpm"
1292 
1293 
1294 # Irradiance units
1295 class UnitOfIrradiance(StrEnum):
1296  """Irradiance units."""
1297 
1298  WATTS_PER_SQUARE_METER = "W/m²"
1299  BTUS_PER_HOUR_SQUARE_FOOT = "BTU/(hâ‹…ft²)"
1300 
1301 
1302 # Irradiation units
1303 _DEPRECATED_IRRADIATION_WATTS_PER_SQUARE_METER: Final = DeprecatedConstantEnum(
1304  UnitOfIrradiance.WATTS_PER_SQUARE_METER,
1305  "2025.1",
1306 )
1307 """Deprecated: please use UnitOfIrradiance.WATTS_PER_SQUARE_METER"""
1308 _DEPRECATED_IRRADIATION_BTUS_PER_HOUR_SQUARE_FOOT: Final = DeprecatedConstantEnum(
1309  UnitOfIrradiance.BTUS_PER_HOUR_SQUARE_FOOT,
1310  "2025.1",
1311 )
1312 """Deprecated: please use UnitOfIrradiance.BTUS_PER_HOUR_SQUARE_FOOT"""
1313 
1314 
1315 class UnitOfVolumetricFlux(StrEnum):
1316  """Volumetric flux, commonly used for precipitation intensity.
1317 
1318  The derivation of these units is a volume of rain amassing in a container
1319  with constant cross section in a given time
1320  """
1321 
1322  INCHES_PER_DAY = "in/d"
1323  """Derived from in³/(in²⋅d)"""
1324 
1325  INCHES_PER_HOUR = "in/h"
1326  """Derived from in³/(in²⋅h)"""
1327 
1328  MILLIMETERS_PER_DAY = "mm/d"
1329  """Derived from mm³/(mm²⋅d)"""
1330 
1331  MILLIMETERS_PER_HOUR = "mm/h"
1332  """Derived from mm³/(mm²⋅h)"""
1333 
1334 
1336  """Precipitation depth.
1337 
1338  The derivation of these units is a volume of rain amassing in a container
1339  with constant cross section
1340  """
1341 
1342  INCHES = "in"
1343  """Derived from in³/in²"""
1344 
1345  MILLIMETERS = "mm"
1346  """Derived from mm³/mm²"""
1347 
1348  CENTIMETERS = "cm"
1349  """Derived from cm³/cm²"""
1350 
1351 
1352 # Precipitation units
1353 _DEPRECATED_PRECIPITATION_INCHES: Final = DeprecatedConstantEnum(
1354  UnitOfPrecipitationDepth.INCHES, "2025.1"
1355 )
1356 """Deprecated: please use UnitOfPrecipitationDepth.INCHES"""
1357 _DEPRECATED_PRECIPITATION_MILLIMETERS: Final = DeprecatedConstantEnum(
1358  UnitOfPrecipitationDepth.MILLIMETERS,
1359  "2025.1",
1360 )
1361 """Deprecated: please use UnitOfPrecipitationDepth.MILLIMETERS"""
1362 _DEPRECATED_PRECIPITATION_MILLIMETERS_PER_HOUR: Final = DeprecatedConstantEnum(
1363  UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
1364  "2025.1",
1365 )
1366 """Deprecated: please use UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR"""
1367 _DEPRECATED_PRECIPITATION_INCHES_PER_HOUR: Final = DeprecatedConstantEnum(
1368  UnitOfVolumetricFlux.INCHES_PER_HOUR,
1369  "2025.1",
1370 )
1371 """Deprecated: please use UnitOfVolumetricFlux.INCHES_PER_HOUR"""
1372 
1373 # Concentration units
1374 CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final = "µg/m³"
1375 CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: Final = "mg/m³"
1376 CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT: Final = "μg/ft³"
1377 CONCENTRATION_PARTS_PER_CUBIC_METER: Final = "p/m³"
1378 CONCENTRATION_PARTS_PER_MILLION: Final = "ppm"
1379 CONCENTRATION_PARTS_PER_BILLION: Final = "ppb"
1380 
1381 
1383  """Blood glucose concentration units."""
1384 
1385  MILLIGRAMS_PER_DECILITER = "mg/dL"
1386  MILLIMOLE_PER_LITER = "mmol/L"
1387 
1388 
1389 # Speed units
1390 class UnitOfSpeed(StrEnum):
1391  """Speed units."""
1392 
1393  BEAUFORT = "Beaufort"
1394  FEET_PER_SECOND = "ft/s"
1395  INCHES_PER_SECOND = "in/s"
1396  METERS_PER_SECOND = "m/s"
1397  KILOMETERS_PER_HOUR = "km/h"
1398  KNOTS = "kn"
1399  MILES_PER_HOUR = "mph"
1400  MILLIMETERS_PER_SECOND = "mm/s"
1401 
1402 
1403 _DEPRECATED_SPEED_FEET_PER_SECOND: Final = DeprecatedConstantEnum(
1404  UnitOfSpeed.FEET_PER_SECOND, "2025.1"
1405 )
1406 """Deprecated: please use UnitOfSpeed.FEET_PER_SECOND"""
1407 _DEPRECATED_SPEED_METERS_PER_SECOND: Final = DeprecatedConstantEnum(
1408  UnitOfSpeed.METERS_PER_SECOND, "2025.1"
1409 )
1410 """Deprecated: please use UnitOfSpeed.METERS_PER_SECOND"""
1411 _DEPRECATED_SPEED_KILOMETERS_PER_HOUR: Final = DeprecatedConstantEnum(
1412  UnitOfSpeed.KILOMETERS_PER_HOUR,
1413  "2025.1",
1414 )
1415 """Deprecated: please use UnitOfSpeed.KILOMETERS_PER_HOUR"""
1416 _DEPRECATED_SPEED_KNOTS: Final = DeprecatedConstantEnum(UnitOfSpeed.KNOTS, "2025.1")
1417 """Deprecated: please use UnitOfSpeed.KNOTS"""
1418 _DEPRECATED_SPEED_MILES_PER_HOUR: Final = DeprecatedConstantEnum(
1419  UnitOfSpeed.MILES_PER_HOUR, "2025.1"
1420 )
1421 """Deprecated: please use UnitOfSpeed.MILES_PER_HOUR"""
1422 
1423 _DEPRECATED_SPEED_MILLIMETERS_PER_DAY: Final = DeprecatedConstantEnum(
1424  UnitOfVolumetricFlux.MILLIMETERS_PER_DAY,
1425  "2025.1",
1426 )
1427 """Deprecated: please use UnitOfVolumetricFlux.MILLIMETERS_PER_DAY"""
1428 
1429 _DEPRECATED_SPEED_INCHES_PER_DAY: Final = DeprecatedConstantEnum(
1430  UnitOfVolumetricFlux.INCHES_PER_DAY,
1431  "2025.1",
1432 )
1433 """Deprecated: please use UnitOfVolumetricFlux.INCHES_PER_DAY"""
1434 
1435 _DEPRECATED_SPEED_INCHES_PER_HOUR: Final = DeprecatedConstantEnum(
1436  UnitOfVolumetricFlux.INCHES_PER_HOUR,
1437  "2025.1",
1438 )
1439 """Deprecated: please use UnitOfVolumetricFlux.INCHES_PER_HOUR"""
1440 
1441 
1442 # Signal_strength units
1443 SIGNAL_STRENGTH_DECIBELS: Final = "dB"
1444 SIGNAL_STRENGTH_DECIBELS_MILLIWATT: Final = "dBm"
1445 
1446 
1447 # Data units
1448 class UnitOfInformation(StrEnum):
1449  """Information units."""
1450 
1451  BITS = "bit"
1452  KILOBITS = "kbit"
1453  MEGABITS = "Mbit"
1454  GIGABITS = "Gbit"
1455  BYTES = "B"
1456  KILOBYTES = "kB"
1457  MEGABYTES = "MB"
1458  GIGABYTES = "GB"
1459  TERABYTES = "TB"
1460  PETABYTES = "PB"
1461  EXABYTES = "EB"
1462  ZETTABYTES = "ZB"
1463  YOTTABYTES = "YB"
1464  KIBIBYTES = "KiB"
1465  MEBIBYTES = "MiB"
1466  GIBIBYTES = "GiB"
1467  TEBIBYTES = "TiB"
1468  PEBIBYTES = "PiB"
1469  EXBIBYTES = "EiB"
1470  ZEBIBYTES = "ZiB"
1471  YOBIBYTES = "YiB"
1472 
1473 
1474 _DEPRECATED_DATA_BITS: Final = DeprecatedConstantEnum(UnitOfInformation.BITS, "2025.1")
1475 """Deprecated: please use UnitOfInformation.BITS"""
1476 _DEPRECATED_DATA_KILOBITS: Final = DeprecatedConstantEnum(
1477  UnitOfInformation.KILOBITS, "2025.1"
1478 )
1479 """Deprecated: please use UnitOfInformation.KILOBITS"""
1480 _DEPRECATED_DATA_MEGABITS: Final = DeprecatedConstantEnum(
1481  UnitOfInformation.MEGABITS, "2025.1"
1482 )
1483 """Deprecated: please use UnitOfInformation.MEGABITS"""
1484 _DEPRECATED_DATA_GIGABITS: Final = DeprecatedConstantEnum(
1485  UnitOfInformation.GIGABITS, "2025.1"
1486 )
1487 """Deprecated: please use UnitOfInformation.GIGABITS"""
1488 _DEPRECATED_DATA_BYTES: Final = DeprecatedConstantEnum(
1489  UnitOfInformation.BYTES, "2025.1"
1490 )
1491 """Deprecated: please use UnitOfInformation.BYTES"""
1492 _DEPRECATED_DATA_KILOBYTES: Final = DeprecatedConstantEnum(
1493  UnitOfInformation.KILOBYTES, "2025.1"
1494 )
1495 """Deprecated: please use UnitOfInformation.KILOBYTES"""
1496 _DEPRECATED_DATA_MEGABYTES: Final = DeprecatedConstantEnum(
1497  UnitOfInformation.MEGABYTES, "2025.1"
1498 )
1499 """Deprecated: please use UnitOfInformation.MEGABYTES"""
1500 _DEPRECATED_DATA_GIGABYTES: Final = DeprecatedConstantEnum(
1501  UnitOfInformation.GIGABYTES, "2025.1"
1502 )
1503 """Deprecated: please use UnitOfInformation.GIGABYTES"""
1504 _DEPRECATED_DATA_TERABYTES: Final = DeprecatedConstantEnum(
1505  UnitOfInformation.TERABYTES, "2025.1"
1506 )
1507 """Deprecated: please use UnitOfInformation.TERABYTES"""
1508 _DEPRECATED_DATA_PETABYTES: Final = DeprecatedConstantEnum(
1509  UnitOfInformation.PETABYTES, "2025.1"
1510 )
1511 """Deprecated: please use UnitOfInformation.PETABYTES"""
1512 _DEPRECATED_DATA_EXABYTES: Final = DeprecatedConstantEnum(
1513  UnitOfInformation.EXABYTES, "2025.1"
1514 )
1515 """Deprecated: please use UnitOfInformation.EXABYTES"""
1516 _DEPRECATED_DATA_ZETTABYTES: Final = DeprecatedConstantEnum(
1517  UnitOfInformation.ZETTABYTES, "2025.1"
1518 )
1519 """Deprecated: please use UnitOfInformation.ZETTABYTES"""
1520 _DEPRECATED_DATA_YOTTABYTES: Final = DeprecatedConstantEnum(
1521  UnitOfInformation.YOTTABYTES, "2025.1"
1522 )
1523 """Deprecated: please use UnitOfInformation.YOTTABYTES"""
1524 _DEPRECATED_DATA_KIBIBYTES: Final = DeprecatedConstantEnum(
1525  UnitOfInformation.KIBIBYTES, "2025.1"
1526 )
1527 """Deprecated: please use UnitOfInformation.KIBIBYTES"""
1528 _DEPRECATED_DATA_MEBIBYTES: Final = DeprecatedConstantEnum(
1529  UnitOfInformation.MEBIBYTES, "2025.1"
1530 )
1531 """Deprecated: please use UnitOfInformation.MEBIBYTES"""
1532 _DEPRECATED_DATA_GIBIBYTES: Final = DeprecatedConstantEnum(
1533  UnitOfInformation.GIBIBYTES, "2025.1"
1534 )
1535 """Deprecated: please use UnitOfInformation.GIBIBYTES"""
1536 _DEPRECATED_DATA_TEBIBYTES: Final = DeprecatedConstantEnum(
1537  UnitOfInformation.TEBIBYTES, "2025.1"
1538 )
1539 """Deprecated: please use UnitOfInformation.TEBIBYTES"""
1540 _DEPRECATED_DATA_PEBIBYTES: Final = DeprecatedConstantEnum(
1541  UnitOfInformation.PEBIBYTES, "2025.1"
1542 )
1543 """Deprecated: please use UnitOfInformation.PEBIBYTES"""
1544 _DEPRECATED_DATA_EXBIBYTES: Final = DeprecatedConstantEnum(
1545  UnitOfInformation.EXBIBYTES, "2025.1"
1546 )
1547 """Deprecated: please use UnitOfInformation.EXBIBYTES"""
1548 _DEPRECATED_DATA_ZEBIBYTES: Final = DeprecatedConstantEnum(
1549  UnitOfInformation.ZEBIBYTES, "2025.1"
1550 )
1551 """Deprecated: please use UnitOfInformation.ZEBIBYTES"""
1552 _DEPRECATED_DATA_YOBIBYTES: Final = DeprecatedConstantEnum(
1553  UnitOfInformation.YOBIBYTES, "2025.1"
1554 )
1555 """Deprecated: please use UnitOfInformation.YOBIBYTES"""
1556 
1557 
1558 # Data_rate units
1559 class UnitOfDataRate(StrEnum):
1560  """Data rate units."""
1561 
1562  BITS_PER_SECOND = "bit/s"
1563  KILOBITS_PER_SECOND = "kbit/s"
1564  MEGABITS_PER_SECOND = "Mbit/s"
1565  GIGABITS_PER_SECOND = "Gbit/s"
1566  BYTES_PER_SECOND = "B/s"
1567  KILOBYTES_PER_SECOND = "kB/s"
1568  MEGABYTES_PER_SECOND = "MB/s"
1569  GIGABYTES_PER_SECOND = "GB/s"
1570  KIBIBYTES_PER_SECOND = "KiB/s"
1571  MEBIBYTES_PER_SECOND = "MiB/s"
1572  GIBIBYTES_PER_SECOND = "GiB/s"
1573 
1574 
1575 _DEPRECATED_DATA_RATE_BITS_PER_SECOND: Final = DeprecatedConstantEnum(
1576  UnitOfDataRate.BITS_PER_SECOND,
1577  "2025.1",
1578 )
1579 """Deprecated: please use UnitOfDataRate.BITS_PER_SECOND"""
1580 _DEPRECATED_DATA_RATE_KILOBITS_PER_SECOND: Final = DeprecatedConstantEnum(
1581  UnitOfDataRate.KILOBITS_PER_SECOND,
1582  "2025.1",
1583 )
1584 """Deprecated: please use UnitOfDataRate.KILOBITS_PER_SECOND"""
1585 _DEPRECATED_DATA_RATE_MEGABITS_PER_SECOND: Final = DeprecatedConstantEnum(
1586  UnitOfDataRate.MEGABITS_PER_SECOND,
1587  "2025.1",
1588 )
1589 """Deprecated: please use UnitOfDataRate.MEGABITS_PER_SECOND"""
1590 _DEPRECATED_DATA_RATE_GIGABITS_PER_SECOND: Final = DeprecatedConstantEnum(
1591  UnitOfDataRate.GIGABITS_PER_SECOND,
1592  "2025.1",
1593 )
1594 """Deprecated: please use UnitOfDataRate.GIGABITS_PER_SECOND"""
1595 _DEPRECATED_DATA_RATE_BYTES_PER_SECOND: Final = DeprecatedConstantEnum(
1596  UnitOfDataRate.BYTES_PER_SECOND,
1597  "2025.1",
1598 )
1599 """Deprecated: please use UnitOfDataRate.BYTES_PER_SECOND"""
1600 _DEPRECATED_DATA_RATE_KILOBYTES_PER_SECOND: Final = DeprecatedConstantEnum(
1601  UnitOfDataRate.KILOBYTES_PER_SECOND,
1602  "2025.1",
1603 )
1604 """Deprecated: please use UnitOfDataRate.KILOBYTES_PER_SECOND"""
1605 _DEPRECATED_DATA_RATE_MEGABYTES_PER_SECOND: Final = DeprecatedConstantEnum(
1606  UnitOfDataRate.MEGABYTES_PER_SECOND,
1607  "2025.1",
1608 )
1609 """Deprecated: please use UnitOfDataRate.MEGABYTES_PER_SECOND"""
1610 _DEPRECATED_DATA_RATE_GIGABYTES_PER_SECOND: Final = DeprecatedConstantEnum(
1611  UnitOfDataRate.GIGABYTES_PER_SECOND,
1612  "2025.1",
1613 )
1614 """Deprecated: please use UnitOfDataRate.GIGABYTES_PER_SECOND"""
1615 _DEPRECATED_DATA_RATE_KIBIBYTES_PER_SECOND: Final = DeprecatedConstantEnum(
1616  UnitOfDataRate.KIBIBYTES_PER_SECOND,
1617  "2025.1",
1618 )
1619 """Deprecated: please use UnitOfDataRate.KIBIBYTES_PER_SECOND"""
1620 _DEPRECATED_DATA_RATE_MEBIBYTES_PER_SECOND: Final = DeprecatedConstantEnum(
1621  UnitOfDataRate.MEBIBYTES_PER_SECOND,
1622  "2025.1",
1623 )
1624 """Deprecated: please use UnitOfDataRate.MEBIBYTES_PER_SECOND"""
1625 _DEPRECATED_DATA_RATE_GIBIBYTES_PER_SECOND: Final = DeprecatedConstantEnum(
1626  UnitOfDataRate.GIBIBYTES_PER_SECOND,
1627  "2025.1",
1628 )
1629 """Deprecated: please use UnitOfDataRate.GIBIBYTES_PER_SECOND"""
1630 
1631 
1632 # States
1633 COMPRESSED_STATE_STATE: Final = "s"
1634 COMPRESSED_STATE_ATTRIBUTES: Final = "a"
1635 COMPRESSED_STATE_CONTEXT: Final = "c"
1636 COMPRESSED_STATE_LAST_CHANGED: Final = "lc"
1637 COMPRESSED_STATE_LAST_UPDATED: Final = "lu"
1638 
1639 # #### SERVICES ####
1640 SERVICE_TURN_ON: Final = "turn_on"
1641 SERVICE_TURN_OFF: Final = "turn_off"
1642 SERVICE_TOGGLE: Final = "toggle"
1643 SERVICE_RELOAD: Final = "reload"
1644 
1645 SERVICE_VOLUME_UP: Final = "volume_up"
1646 SERVICE_VOLUME_DOWN: Final = "volume_down"
1647 SERVICE_VOLUME_MUTE: Final = "volume_mute"
1648 SERVICE_VOLUME_SET: Final = "volume_set"
1649 SERVICE_MEDIA_PLAY_PAUSE: Final = "media_play_pause"
1650 SERVICE_MEDIA_PLAY: Final = "media_play"
1651 SERVICE_MEDIA_PAUSE: Final = "media_pause"
1652 SERVICE_MEDIA_STOP: Final = "media_stop"
1653 SERVICE_MEDIA_NEXT_TRACK: Final = "media_next_track"
1654 SERVICE_MEDIA_PREVIOUS_TRACK: Final = "media_previous_track"
1655 SERVICE_MEDIA_SEEK: Final = "media_seek"
1656 SERVICE_REPEAT_SET: Final = "repeat_set"
1657 SERVICE_SHUFFLE_SET: Final = "shuffle_set"
1658 
1659 SERVICE_ALARM_DISARM: Final = "alarm_disarm"
1660 SERVICE_ALARM_ARM_HOME: Final = "alarm_arm_home"
1661 SERVICE_ALARM_ARM_AWAY: Final = "alarm_arm_away"
1662 SERVICE_ALARM_ARM_NIGHT: Final = "alarm_arm_night"
1663 SERVICE_ALARM_ARM_VACATION: Final = "alarm_arm_vacation"
1664 SERVICE_ALARM_ARM_CUSTOM_BYPASS: Final = "alarm_arm_custom_bypass"
1665 SERVICE_ALARM_TRIGGER: Final = "alarm_trigger"
1666 
1667 
1668 SERVICE_LOCK: Final = "lock"
1669 SERVICE_UNLOCK: Final = "unlock"
1670 
1671 SERVICE_OPEN: Final = "open"
1672 SERVICE_CLOSE: Final = "close"
1673 
1674 SERVICE_CLOSE_COVER: Final = "close_cover"
1675 SERVICE_CLOSE_COVER_TILT: Final = "close_cover_tilt"
1676 SERVICE_OPEN_COVER: Final = "open_cover"
1677 SERVICE_OPEN_COVER_TILT: Final = "open_cover_tilt"
1678 SERVICE_SAVE_PERSISTENT_STATES: Final = "save_persistent_states"
1679 SERVICE_SET_COVER_POSITION: Final = "set_cover_position"
1680 SERVICE_SET_COVER_TILT_POSITION: Final = "set_cover_tilt_position"
1681 SERVICE_STOP_COVER: Final = "stop_cover"
1682 SERVICE_STOP_COVER_TILT: Final = "stop_cover_tilt"
1683 SERVICE_TOGGLE_COVER_TILT: Final = "toggle_cover_tilt"
1684 
1685 SERVICE_CLOSE_VALVE: Final = "close_valve"
1686 SERVICE_OPEN_VALVE: Final = "open_valve"
1687 SERVICE_SET_VALVE_POSITION: Final = "set_valve_position"
1688 SERVICE_STOP_VALVE: Final = "stop_valve"
1689 
1690 SERVICE_SELECT_OPTION: Final = "select_option"
1691 
1692 # #### API / REMOTE ####
1693 SERVER_PORT: Final = 8123
1694 
1695 URL_ROOT: Final = "/"
1696 URL_API: Final = "/api/"
1697 URL_API_STREAM: Final = "/api/stream"
1698 URL_API_CORE_STATE: Final = "/api/core/state"
1699 URL_API_CONFIG: Final = "/api/config"
1700 URL_API_STATES: Final = "/api/states"
1701 URL_API_STATES_ENTITY: Final = "/api/states/{}"
1702 URL_API_EVENTS: Final = "/api/events"
1703 URL_API_EVENTS_EVENT: Final = "/api/events/{}"
1704 URL_API_SERVICES: Final = "/api/services"
1705 URL_API_SERVICES_SERVICE: Final = "/api/services/{}/{}"
1706 URL_API_COMPONENTS: Final = "/api/components"
1707 URL_API_ERROR_LOG: Final = "/api/error_log"
1708 URL_API_LOG_OUT: Final = "/api/log_out"
1709 URL_API_TEMPLATE: Final = "/api/template"
1710 
1711 HTTP_BASIC_AUTHENTICATION: Final = "basic"
1712 HTTP_BEARER_AUTHENTICATION: Final = "bearer_token"
1713 HTTP_DIGEST_AUTHENTICATION: Final = "digest"
1714 
1715 HTTP_HEADER_X_REQUESTED_WITH: Final = "X-Requested-With"
1716 
1717 CONTENT_TYPE_JSON: Final = "application/json"
1718 CONTENT_TYPE_MULTIPART: Final = "multipart/x-mixed-replace; boundary={}"
1719 CONTENT_TYPE_TEXT_PLAIN: Final = "text/plain"
1720 
1721 # The exit code to send to request a restart
1722 RESTART_EXIT_CODE: Final = 100
1723 
1724 UNIT_NOT_RECOGNIZED_TEMPLATE: Final = "{} is not a recognized {} unit."
1725 
1726 LENGTH: Final = "length"
1727 AREA: Final = "area"
1728 MASS: Final = "mass"
1729 PRESSURE: Final = "pressure"
1730 VOLUME: Final = "volume"
1731 TEMPERATURE: Final = "temperature"
1732 SPEED: Final = "speed"
1733 WIND_SPEED: Final = "wind_speed"
1734 ILLUMINANCE: Final = "illuminance"
1735 ACCUMULATED_PRECIPITATION: Final = "accumulated_precipitation"
1736 
1737 WEEKDAYS: Final[list[str]] = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
1738 
1739 # The degree of precision for platforms
1740 PRECISION_WHOLE: Final = 1
1741 PRECISION_HALVES: Final = 0.5
1742 PRECISION_TENTHS: Final = 0.1
1743 
1744 # Static list of entities that will never be exposed to
1745 # cloud, alexa, or google_home components
1746 CLOUD_NEVER_EXPOSED_ENTITIES: Final[list[str]] = ["group.all_locks"]
1747 
1748 
1749 class EntityCategory(StrEnum):
1750  """Category of an entity.
1751 
1752  An entity with a category will:
1753  - Not be exposed to cloud, Alexa, or Google Assistant components
1754  - Not be included in indirect service calls to devices or areas
1755  """
1756 
1757  # Config: An entity which allows changing the configuration of a device.
1758  CONFIG = "config"
1759 
1760  # Diagnostic: An entity exposing some configuration parameter,
1761  # or diagnostics of a device.
1762  DIAGNOSTIC = "diagnostic"
1763 
1764 
1765 # ENTITY_CATEGOR* below are deprecated as of 2021.12
1766 # use the EntityCategory enum instead.
1767 _DEPRECATED_ENTITY_CATEGORY_CONFIG: Final = DeprecatedConstantEnum(
1768  EntityCategory.CONFIG, "2025.1"
1769 )
1770 _DEPRECATED_ENTITY_CATEGORY_DIAGNOSTIC: Final = DeprecatedConstantEnum(
1771  EntityCategory.DIAGNOSTIC, "2025.1"
1772 )
1773 ENTITY_CATEGORIES: Final[list[str]] = [cls.value for cls in EntityCategory]
1774 
1775 # The ID of the Home Assistant Media Player Cast App
1776 CAST_APP_ID_HOMEASSISTANT_MEDIA: Final = "B45F4572"
1777 # The ID of the Home Assistant Lovelace Cast App
1778 CAST_APP_ID_HOMEASSISTANT_LOVELACE: Final = "A078F6B0"
1779 
1780 # User used by Supervisor
1781 HASSIO_USER_NAME = "Supervisor"
1782 
1783 SIGNAL_BOOTSTRAP_INTEGRATIONS: SignalType[dict[str, float]] = SignalType(
1784  "bootstrap_integrations"
1785 )
1786 
1787 
1788 # hass.data key for logging information.
1789 KEY_DATA_LOGGING: HassKey[str] = HassKey("logging")
1790 
1791 
1792 # Date/Time formats
1793 FORMAT_DATE: Final = "%Y-%m-%d"
1794 FORMAT_TIME: Final = "%H:%M:%S"
1795 FORMAT_DATETIME: Final = f"{FORMAT_DATE} {FORMAT_TIME}"
1796 
1797 
1798 # Maximum entities expected in the state machine
1799 # This is not a hard limit, but caches and other
1800 # data structures will be pre-allocated to this size
1801 MAX_EXPECTED_ENTITY_IDS: Final = 16384
1802 
1803 # These can be removed if no deprecated constant are in this module anymore
1804 __getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
1805 __dir__ = partial(
1806  dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
1807 )
1808 __all__ = all_with_deprecated_constants(globals())
list[str] all_with_deprecated_constants(dict[str, Any] module_globals)
Definition: deprecation.py:356