6.1 KiB
6.1 KiB
Changelog
All notable changes to the OpenClaw Home Assistant Integration will be documented in this file.
[0.1.7] - 2026-02-20
Fixed
- Resolved chat card startup race where Lovelace resources were attempted before HTTP/Lovelace were ready, causing
Custom element not found: openclaw-chat-card. - Frontend registration now retries and waits for Home Assistant startup readiness before giving up.
- Static JS path registration is now idempotent and only marked successful after the path is actually registered.
Added
- Added MIT license file at repository root (
LICENSE).
[0.1.6] - 2025-01-01
Fixed
- Integration "Not loaded" state caused by
hass.http.register_static_path()being called inasync_setupbefore the HTTP server is ready - Removed
async_setupand the synchronous_async_register_static_pathhelper _async_register_frontendis now a properasyncfunction, safe to fire-and-forget fromasync_setup_entry- Supports both the HA 2024.11+
async_register_static_paths/StaticPathConfigAPI and the legacyregister_static_pathAPI with automatic fallback to/local/URL - Frontend registration errors are caught and logged as warnings — they can never crash the integration load
[0.1.5] - 2026-02-20
Added
- Automatic Lovelace resource registration — the chat card JS is now served
directly from inside the integration package (
custom_components/openclaw/www/) via a registered static HTTP path at/openclaw/openclaw-chat-card.js. The integration also adds it to Lovelace's resource store automatically on first setup. No manual "Add resource" step is required. async_setup()registered so the static path is available before any config entry setup runs.lovelaceadded toafter_dependenciesso Lovelace is ready when we attempt to register the resource.
Changed
openclaw-chat-card.jsis now shipped insidecustom_components/openclaw/www/(in addition to the top-levelwww/for backward compatibility with HACS installs that copy files toconfig/www/).- If programmatic Lovelace registration fails (e.g. Lovelace not loaded), a clear warning with manual fallback instructions is logged instead of silently doing nothing.
[0.1.4] - 2026-02-20
Fixed
- Connection probe no longer uses
/v1/models— the OpenClaw gateway does not implement that endpoint (only/v1/chat/completionsis registered whenenable_openai_apiis enabled). Unrecognised routes fall through to the SPA catch-all and return HTML, which caused every connection check to fail withopenai_api_disabledeven when the API was actually enabled. async_check_connection()now POSTs to/v1/chat/completionswith an empty messages body. The gateway's auth middleware validates the token first, then the endpoint returns a JSON error for the invalid body — proving server is reachable, API is enabled, and the token is accepted. No LLM call is made.- Coordinator polling now uses
async_check_alive()(lightweight base-URL GET) for connectivity, withasync_get_models()as a best-effort call that is silently ignored if the endpoint doesn't exist.
Added
- New
async_check_alive()method — simple HTTP GET to the gateway base URL to confirm the gateway process is running (does not verify auth or API status).
[0.1.3] - 2026-02-20
Fixed
async_check_connection()no longer silently swallowsOpenClawApiError. Previously any API-level error (e.g. gateway returning HTML) was caught and converted to a generic "Cannot connect" message with no indication of the real cause. The error is now propagated to the config flow.- Config flow now catches
OpenClawApiErrorseparately and shows a clear, actionable error message: "openai_api_disabled" — pointing the user to enableenable_openai_apiin the addon settings and restart. - Auto-discovery now logs a
WARNINGwhenenable_openai_apiisfalsein the addon options, making the issue visible in the HA log before setup fails.
Changed
- The
enable_openai_apiaddon option (defaultfalse) must betruefor the integration to connect. The/v1/modelsprobe endpoint requires the OpenAI-compatible API layer to be active.
[0.1.2] - 2026-02-20
Fixed
- Removed non-existent
/api/statusand/api/sessionsgateway endpoints that caused the integration to receive HTML pages instead of JSON, resulting inContentTypeErroron every poll and a failed config flow connection check. async_check_connection()now probes/v1/models(the only reliable GET endpoint on the gateway) instead of the missing/api/status.
Changed
DataUpdateCoordinatornow performs a single/v1/modelsrequest per poll cycle instead of three separate requests (/api/status,/api/sessions,/v1/models).DATA_GATEWAY_VERSION,DATA_UPTIME,DATA_SESSION_COUNT, andDATA_SESSIONSreport unavailable values (None/0/[]) since the gateway does not expose dedicated status or session endpoints.- Removed
_model_poll_counter(no longer needed with a unified poll).
Added
- Integration icon and logo (sourced from the OpenClaw Assistant add-on).
[0.1.1] - 2026-02-20
Fixed
- Added content-type guard in
_request(): when the gateway returns a non-JSON response (e.g. HTML redirect/login page), a clearOpenClawApiErroris now raised instead of an unhandledaiohttp.ContentTypeError.
[0.1.0] - 2026-02-20
Added
- Initial release of the OpenClaw Home Assistant Integration.
- Config flow with automatic add-on discovery and manual host/port/token entry.
sensorplatform: Status, Last Activity, Session Count, Active Model.binary_sensorplatform: Gateway Connected.conversationplatform: native HA Assist / Voice PE agent backed by the OpenClaw gateway/v1/chat/completionsendpoint (SSE streaming supported).DataUpdateCoordinatorpolling the gateway on a configurable interval (default 30 s).- Service calls:
openclaw.send_message,openclaw.clear_history. - Lovelace
openclaw-chat-cardcustom card (www/openclaw-chat-card.js). - HACS-compatible repository structure (
hacs.json).