1 """Hass.io const variables."""
3 from datetime
import timedelta
4 from enum
import StrEnum
11 ATTR_COMPRESSED =
"compressed"
12 ATTR_CONFIG =
"config"
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"
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"
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"
40 ATTR_WS_EVENT =
"event"
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"
51 WS_TYPE_API =
"supervisor/api"
52 WS_TYPE_EVENT =
"supervisor/event"
53 WS_TYPE_SUBSCRIBE =
"supervisor/subscribe"
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"
62 UPDATE_KEY_SUPERVISOR =
"supervisor"
64 ADDONS_COORDINATOR =
"hassio_addons_coordinator"
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"
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"
90 ATTR_STARTED =
"started"
92 ATTR_REPOSITORY =
"repository"
94 DATA_KEY_ADDONS =
"addons"
96 DATA_KEY_SUPERVISOR =
"supervisor"
97 DATA_KEY_CORE =
"core"
98 DATA_KEY_HOST =
"host"
99 DATA_KEY_SUPERVISOR_ISSUES =
"supervisor_issues"
101 PLACEHOLDER_KEY_ADDON =
"addon"
102 PLACEHOLDER_KEY_ADDON_URL =
"addon_url"
103 PLACEHOLDER_KEY_REFERENCE =
"reference"
104 PLACEHOLDER_KEY_COMPONENTS =
"components"
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"
111 CORE_CONTAINER =
"homeassistant"
112 SUPERVISOR_CONTAINER =
"hassio_supervisor"
114 CONTAINER_STATS =
"stats"
115 CONTAINER_CHANGELOG =
"changelog"
116 CONTAINER_INFO =
"info"
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},
129 REQUEST_REFRESH_DELAY = 10
133 """Supervisor entity model."""
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"