diff --git a/custom_components/gree_controller/manifest.json b/custom_components/gree_controller/manifest.json index 7a788b5..466a331 100644 --- a/custom_components/gree_controller/manifest.json +++ b/custom_components/gree_controller/manifest.json @@ -1,7 +1,7 @@ { "domain": "gree_controller", "name": "GREE Controller", - "version": "0.15.2", + "version": "0.15.4", "config_flow": true, "integration_type": "hub", "iot_class": "local_polling", diff --git a/gree-controller/CHANGELOG.md b/gree-controller/CHANGELOG.md index bed02e9..715baa6 100644 --- a/gree-controller/CHANGELOG.md +++ b/gree-controller/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.15.4 + +- Updates the Rust dependency stack to current major/minor releases, including Axum 0.8, Reqwest 0.13, Rusqlite 0.40, Rand 0.10, AES 0.9, AES-GCM 0.11, Base64 0.23, SHA-2 0.11, Tower HTTP 0.7 and utoipa-swagger-ui 9. +- Migrates Axum route parameters and WebSocket text frames, Rand APIs, RustCrypto AES/AES-GCM APIs and Reqwest TLS configuration for the new dependency versions. +- Updates the Home Assistant add-on Rust builder to Rust 1.98.1. +- Pins direct Rust dependencies to exact updated releases; container builds generate a fresh lockfile before fetching and compiling with `--locked`. +- Uses `ring` as the single Rustls crypto provider across Reqwest and the direct MQTT TLS client, avoiding the Rustls provider ambiguity introduced by Reqwest 0.13. + +## 0.15.3 + +- Simplifies the built-in Swagger API documentation: removes the embedded release-history changelog, starts with all endpoint groups collapsed and hides the global Schemas section. +- Documents the HTTP/WebSocket API, Swagger UI (`/api-docs`) and OpenAPI document (`/api-docs/openapi.json`) in the main documentation and Home Assistant add-on package. + ## 0.15.2 - Adds a dedicated Visual Flow action for changing exactly one GREE unit function without modifying unrelated settings. diff --git a/gree-controller/DOCS.md b/gree-controller/DOCS.md index 0dc0bec..d22da09 100644 --- a/gree-controller/DOCS.md +++ b/gree-controller/DOCS.md @@ -59,6 +59,10 @@ Broadcast zwykle nie przechodzi przez router. Sterowanie unicast może działać | `public_chart_base_url` | opcjonalny bazowy URL publicznych linków Custom Chart; puste = automatyczne główne IPv4 hosta HA + `:8787` | | `log_level` | `error`, `warn`, `info`, `debug`, `trace` | +### API i dokumentacja API + +Aplikacja udostępnia HTTP API pod `/api/*` oraz WebSocket pod `/ws`. Interaktywna dokumentacja Swagger jest dostępna pod `/api-docs`, a dokument OpenAPI 3.1 pod `/api-docs/openapi.json`. Te same ścieżki działają przez ingress Home Assistant; bezpośredni dostęp na porcie `8787` podlega regułom `app_token`. + ### Home Assistant API Dodatek korzysta automatycznie z wewnętrznego proxy Home Assistant Core (`http://supervisor/core/api/`) i tokenu `SUPERVISOR_TOKEN` przekazywanego przez Supervisor. Gdy token jest wykryty, UI pokazuje automatyczną autoryzację i ukrywa ręczne pola URL/token. Dopiero nieudany `Test HA` odblokowuje awaryjny ręczny fallback. Token Supervisor jest używany tylko w pamięci procesu i nie jest zapisywany w SQLite. @@ -125,6 +129,10 @@ Broadcast normally does not cross routers. Unicast control may work through rout | `public_chart_base_url` | optional base URL for public Custom Chart links; empty = primary HA host IPv4 + `:8787` automatically | | `log_level` | `error`, `warn`, `info`, `debug`, `trace` | +### API and API documentation + +The application exposes its HTTP API under `/api/*` and WebSocket under `/ws`. Interactive Swagger documentation is available at `/api-docs`, with the OpenAPI 3.1 document at `/api-docs/openapi.json`. The same paths work through Home Assistant ingress; direct access on port `8787` follows the configured `app_token` rules. + ### Home Assistant API The add-on automatically uses the internal Home Assistant Core proxy (`http://supervisor/core/api/`) and the runtime `SUPERVISOR_TOKEN` provided by Supervisor. When the token is detected, the UI shows automatic authorization and hides manual URL/token fields. A failed `Test HA` unlocks the optional manual fallback. The Supervisor token is used only at runtime and is not stored in SQLite. diff --git a/gree-controller/README.md b/gree-controller/README.md index f67375f..80a1425 100644 --- a/gree-controller/README.md +++ b/gree-controller/README.md @@ -1,6 +1,6 @@ # GREE Controller -Local GREE HVAC controller packaged as a Home Assistant add-on, with Web UI, local API, UDP discovery/control, `amd64` and `aarch64` support, ingress, and database backup from `/data/gree-controller.db`. +Local GREE HVAC controller packaged as a Home Assistant add-on, with Web UI, HTTP/WebSocket API, built-in Swagger API documentation, UDP discovery/control, `amd64` and `aarch64` support, ingress, and database backup from `/data/gree-controller.db`. ![Home Assistant OS + GREE + VLAN topology](https://git.linuxiarz.pl/gru/gree-controller-ha-addon/raw/branch/master/gree-controller/topology-ha-vlan-gree-en.png) @@ -8,6 +8,8 @@ For VLAN deployments, configure VLAN interfaces on the Home Assistant OS host. T Full documentation: [DOCS.md](./DOCS.md). +The controller exposes `/api/*` and `/ws`. Interactive API documentation is available at `/api-docs`, with the OpenAPI 3.1 document at `/api-docs/openapi.json`. The same paths work through Home Assistant ingress; direct access on port `8787` follows the configured `app_token` rules. + The same Git repository also contains the optional `custom_components/gree_controller` integration. It is distributed with the repository but is not installed automatically with the add-on. Repository: https://git.linuxiarz.pl/gru/gree-controller-ha-addon/ diff --git a/gree-controller/config.yaml b/gree-controller/config.yaml index 523dec3..047f1d8 100644 --- a/gree-controller/config.yaml +++ b/gree-controller/config.yaml @@ -1,7 +1,7 @@ name: "GREE Controller" -version: "0.15.2" +version: "0.15.4" slug: "gree_controller" -description: "Local GREE HVAC controller with Web UI and Home Assistant integration" +description: "Local GREE HVAC controller with Web UI, API, Swagger API docs and Home Assistant integration" url: "https://git.linuxiarz.pl/gru/gree-controller-ha-addon/" arch: - amd64