Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Hass.io const variables."""
2 
3 from datetime import timedelta
4 from enum import StrEnum
5 
6 DOMAIN = "hassio"
7 
8 ATTR_ADDON = "addon"
9 ATTR_ADDONS = "addons"
10 ATTR_ADMIN = "admin"
11 ATTR_COMPRESSED = "compressed"
12 ATTR_CONFIG = "config"
13 ATTR_DATA = "data"
14 ATTR_SESSION_DATA_USER_ID = "user_id"
15 ATTR_DISCOVERY = "discovery"
16 ATTR_ENABLE = "enable"
17 ATTR_ENDPOINT = "endpoint"
18 ATTR_FOLDERS = "folders"
19 ATTR_HEALTHY = "healthy"
20 ATTR_HOMEASSISTANT = "homeassistant"
21 ATTR_HOMEASSISTANT_EXCLUDE_DATABASE = "homeassistant_exclude_database"
22 ATTR_INPUT = "input"
23 ATTR_ISSUES = "issues"
24 ATTR_MESSAGE = "message"
25 ATTR_METHOD = "method"
26 ATTR_PANELS = "panels"
27 ATTR_PASSWORD = "password"
28 ATTR_RESULT = "result"
29 ATTR_SUGGESTIONS = "suggestions"
30 ATTR_SUPPORTED = "supported"
31 ATTR_TIMEOUT = "timeout"
32 ATTR_TITLE = "title"
33 ATTR_UNHEALTHY = "unhealthy"
34 ATTR_UNHEALTHY_REASONS = "unhealthy_reasons"
35 ATTR_UNSUPPORTED = "unsupported"
36 ATTR_UNSUPPORTED_REASONS = "unsupported_reasons"
37 ATTR_UPDATE_KEY = "update_key"
38 ATTR_USERNAME = "username"
39 ATTR_UUID = "uuid"
40 ATTR_WS_EVENT = "event"
41 
42 X_AUTH_TOKEN = "X-Supervisor-Token"
43 X_INGRESS_PATH = "X-Ingress-Path"
44 X_HASS_USER_ID = "X-Hass-User-ID"
45 X_HASS_IS_ADMIN = "X-Hass-Is-Admin"
46 X_HASS_SOURCE = "X-Hass-Source"
47 
48 WS_TYPE = "type"
49 WS_ID = "id"
50 
51 WS_TYPE_API = "supervisor/api"
52 WS_TYPE_EVENT = "supervisor/event"
53 WS_TYPE_SUBSCRIBE = "supervisor/subscribe"
54 
55 EVENT_SUPERVISOR_EVENT = "supervisor_event"
56 EVENT_SUPERVISOR_UPDATE = "supervisor_update"
57 EVENT_HEALTH_CHANGED = "health_changed"
58 EVENT_SUPPORTED_CHANGED = "supported_changed"
59 EVENT_ISSUE_CHANGED = "issue_changed"
60 EVENT_ISSUE_REMOVED = "issue_removed"
61 
62 UPDATE_KEY_SUPERVISOR = "supervisor"
63 
64 ADDONS_COORDINATOR = "hassio_addons_coordinator"
65 
66 
67 DATA_CORE_INFO = "hassio_core_info"
68 DATA_CORE_STATS = "hassio_core_stats"
69 DATA_HOST_INFO = "hassio_host_info"
70 DATA_STORE = "hassio_store"
71 DATA_INFO = "hassio_info"
72 DATA_OS_INFO = "hassio_os_info"
73 DATA_NETWORK_INFO = "hassio_network_info"
74 DATA_SUPERVISOR_INFO = "hassio_supervisor_info"
75 DATA_SUPERVISOR_STATS = "hassio_supervisor_stats"
76 DATA_ADDONS_CHANGELOGS = "hassio_addons_changelogs"
77 DATA_ADDONS_INFO = "hassio_addons_info"
78 DATA_ADDONS_STATS = "hassio_addons_stats"
79 HASSIO_UPDATE_INTERVAL = timedelta(minutes=5)
80 
81 ATTR_AUTO_UPDATE = "auto_update"
82 ATTR_VERSION = "version"
83 ATTR_VERSION_LATEST = "version_latest"
84 ATTR_CPU_PERCENT = "cpu_percent"
85 ATTR_CHANGELOG = "changelog"
86 ATTR_LOCATION = "location"
87 ATTR_MEMORY_PERCENT = "memory_percent"
88 ATTR_SLUG = "slug"
89 ATTR_STATE = "state"
90 ATTR_STARTED = "started"
91 ATTR_URL = "url"
92 ATTR_REPOSITORY = "repository"
93 
94 DATA_KEY_ADDONS = "addons"
95 DATA_KEY_OS = "os"
96 DATA_KEY_SUPERVISOR = "supervisor"
97 DATA_KEY_CORE = "core"
98 DATA_KEY_HOST = "host"
99 DATA_KEY_SUPERVISOR_ISSUES = "supervisor_issues"
100 
101 PLACEHOLDER_KEY_ADDON = "addon"
102 PLACEHOLDER_KEY_ADDON_URL = "addon_url"
103 PLACEHOLDER_KEY_REFERENCE = "reference"
104 PLACEHOLDER_KEY_COMPONENTS = "components"
105 
106 ISSUE_KEY_ADDON_BOOT_FAIL = "issue_addon_boot_fail"
107 ISSUE_KEY_SYSTEM_DOCKER_CONFIG = "issue_system_docker_config"
108 ISSUE_KEY_ADDON_DETACHED_ADDON_MISSING = "issue_addon_detached_addon_missing"
109 ISSUE_KEY_ADDON_DETACHED_ADDON_REMOVED = "issue_addon_detached_addon_removed"
110 
111 CORE_CONTAINER = "homeassistant"
112 SUPERVISOR_CONTAINER = "hassio_supervisor"
113 
114 CONTAINER_STATS = "stats"
115 CONTAINER_CHANGELOG = "changelog"
116 CONTAINER_INFO = "info"
117 
118 # This is a mapping of which endpoint the key in the addon data
119 # is obtained from so we know which endpoint to update when the
120 # coordinator polls for updates.
121 KEY_TO_UPDATE_TYPES: dict[str, set[str]] = {
122  ATTR_VERSION_LATEST: {CONTAINER_INFO, CONTAINER_CHANGELOG},
123  ATTR_MEMORY_PERCENT: {CONTAINER_STATS},
124  ATTR_CPU_PERCENT: {CONTAINER_STATS},
125  ATTR_VERSION: {CONTAINER_INFO},
126  ATTR_STATE: {CONTAINER_INFO},
127 }
128 
129 REQUEST_REFRESH_DELAY = 10
130 
131 
132 class SupervisorEntityModel(StrEnum):
133  """Supervisor entity model."""
134 
135  ADDON = "Home Assistant Add-on"
136  OS = "Home Assistant Operating System"
137  CORE = "Home Assistant Core"
138  SUPERVIOSR = "Home Assistant Supervisor"
139  HOST = "Home Assistant Host"