Enums
TERMINAL_STATUSES: frozenset[ResourceStatus] = frozenset({ResourceStatus.STOPPED, ResourceStatus.EXHAUSTED_DEAD})
module-attribute
Resource has reached an end state — shutdown can skip the STOPPING transition.
ACTIVE_STATUSES: frozenset[ResourceStatus] = frozenset({ResourceStatus.NOT_STARTED, ResourceStatus.STARTING, ResourceStatus.RUNNING})
module-attribute
Resource is in normal lifecycle progression (not failed, stopped, or exhausted).
RestartType
Bases: StrEnum
Enumeration for service restart strategies.
Source code in src/hassette/types/enums.py
4 5 6 7 8 9 10 11 12 13 14 | |
PERMANENT = auto()
class-attribute
instance-attribute
The service is permanent and should always be restarted on failure.
TRANSIENT = auto()
class-attribute
instance-attribute
The service is transient — restarts on failure but supports cooldown cycling.
TEMPORARY = auto()
class-attribute
instance-attribute
The service is temporary — once its restart budget is exhausted, it stops permanently.
Topic
Bases: StrEnum
Event topic identifiers for the internal pub/sub bus.
Source code in src/hassette/types/enums.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | |
HASSETTE_EVENT_SERVICE_STATUS = 'hassette.event.service_status'
class-attribute
instance-attribute
Service status updates
HASSETTE_EVENT_WEBSOCKET_CONNECTED = 'hassette.event.websocket_connected'
class-attribute
instance-attribute
WebSocket connection established
HASSETTE_EVENT_WEBSOCKET_DISCONNECTED = 'hassette.event.websocket_disconnected'
class-attribute
instance-attribute
WebSocket connection lost
HASSETTE_EVENT_FILE_WATCHER = 'hassette.event.file_watcher'
class-attribute
instance-attribute
File watcher events
HASSETTE_EVENT_APP_LOAD_COMPLETED = 'hassette.event.app_load_completed'
class-attribute
instance-attribute
Application load completion events
HASSETTE_EVENT_APP_STATE_CHANGED = 'hassette.event.app_state_changed'
class-attribute
instance-attribute
App instance state change events
HASSETTE_EVENT_EXECUTION_COMPLETED = 'hassette.event.execution_completed'
class-attribute
instance-attribute
Handler or job execution persisted to the telemetry database
HASS_EVENT_STATE_CHANGED = 'hass.event.state_changed'
class-attribute
instance-attribute
State change events
HASS_EVENT_CALL_SERVICE = 'hass.event.call_service'
class-attribute
instance-attribute
Service call events
HASS_EVENT_COMPONENT_LOADED = 'hass.event.component_loaded'
class-attribute
instance-attribute
Component loaded events
HASS_EVENT_SERVICE_REGISTERED = 'hass.event.service_registered'
class-attribute
instance-attribute
Service registered events
HASS_EVENT_SERVICE_REMOVED = 'hass.event.service_removed'
class-attribute
instance-attribute
Service removed events
HASS_EVENT_LOGBOOK_ENTRY = 'hass.event.logbook_entry'
class-attribute
instance-attribute
Logbook entry events
HASS_EVENT_USER_ADDED = 'hass.event.user_added'
class-attribute
instance-attribute
User added events
HASS_EVENT_USER_REMOVED = 'hass.event.user_removed'
class-attribute
instance-attribute
User removed events
HASS_EVENT_AUTOMATION_TRIGGERED = 'hass.event.automation_triggered'
class-attribute
instance-attribute
Automation triggered events
HASS_EVENT_SCRIPT_STARTED = 'hass.event.script_started'
class-attribute
instance-attribute
Script started events
BlockReason
Bases: StrEnum
Reasons an app may be intentionally blocked from starting.
Source code in src/hassette/types/enums.py
76 77 78 79 80 | |
ONLY_APP = auto()
class-attribute
instance-attribute
Another app has the @only_app decorator, so this app is excluded.
ResourceStatus
Bases: StrEnum
Enumeration for resource status.
Source code in src/hassette/types/enums.py
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |
NOT_STARTED = auto()
class-attribute
instance-attribute
The resource has not been started yet.
STARTING = auto()
class-attribute
instance-attribute
The resource is in the process of starting.
RUNNING = auto()
class-attribute
instance-attribute
The resource is currently running.
STOPPING = auto()
class-attribute
instance-attribute
The resource is in the process of stopping.
STOPPED = auto()
class-attribute
instance-attribute
The resource has been stopped without errors.
FAILED = auto()
class-attribute
instance-attribute
The resource has failed with a recoverable error.
CRASHED = auto()
class-attribute
instance-attribute
The resource has crashed unexpectedly and cannot recover.
EXHAUSTED_DEAD = auto()
class-attribute
instance-attribute
The service's restart budget is exhausted with no further restarts (permanent end state).
EXHAUSTED_COOLING = auto()
class-attribute
instance-attribute
The service's restart budget is exhausted and a long cooldown is in progress.
ConnectionState
Bases: StrEnum
Enumeration for WebSocket connection states.
Source code in src/hassette/types/enums.py
123 124 125 126 127 128 129 130 131 132 133 | |
DISCONNECTED = auto()
class-attribute
instance-attribute
The WebSocket connection is not established.
CONNECTING = auto()
class-attribute
instance-attribute
The WebSocket connection is being established.
CONNECTED = auto()
class-attribute
instance-attribute
The WebSocket connection is established and active.
ResourceRole
Bases: StrEnum
Enumeration for resource roles.
Source code in src/hassette/types/enums.py
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | |
CORE = 'Core'
class-attribute
instance-attribute
Only used by Hassette directly, as it does not inherit from Resource.
BASE = 'Base'
class-attribute
instance-attribute
The base role for all resources.
SERVICE = 'Service'
class-attribute
instance-attribute
A service resource.
RESOURCE = 'Resource'
class-attribute
instance-attribute
A generic resource.
APP = 'App'
class-attribute
instance-attribute
An application resource.
UNKNOWN = 'Unknown'
class-attribute
instance-attribute
An unknown or unclassified resource.