From ff2702ce1ac9ddb00a1dafe9a842c75dc507ada5 Mon Sep 17 00:00:00 2001 From: Markus Zehnder Date: Thu, 17 Apr 2025 11:45:17 +0200 Subject: [PATCH] docs: update README and driver description - Add support link to main driver setup page. - Enhance README with supported entities and requirements from the support article. --- README.md | 91 ++++++++++++++++++++++++++++++++++++------- resources/driver.json | 15 +++---- 2 files changed, 84 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 3b6f582..028e28f 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,86 @@ [![Rust](https://github.com/unfoldedcircle/integration-home-assistant/actions/workflows/build.yml/badge.svg)](https://github.com/unfoldedcircle/integration-home-assistant/actions/workflows/build.yml) -# Home-Assistant Integration for Remote Two +# Home-Assistant Integration for Remote Two/3 -This service application connects [Home Assistant](https://www.home-assistant.io/) with the -[Remote Two](https://www.unfoldedcircle.com/) and allows to interact with most entities on the remote. +This integration connects [Home Assistant](https://www.home-assistant.io/) (HA) with the +[Remote Two/3](https://www.unfoldedcircle.com/) and allows to interact with most Home Assistant entities on the remote. +Only a single HA server is supported. -The integration is included in the Remote Two firmware and no external service must be run to connect Home Assistant -with Remote Two. The standalone service can be used for development or connecting multiple Home Assistant servers. +The integration is included in the Remote firmware and no external service must be run to connect Home Assistant +with Remote Two/3. It can be run as an external integration for development or connecting multiple servers. -The integration implements the Remote Two [Integration-API](https://github.com/unfoldedcircle/core-api) which -communicates with JSON messages over WebSocket. - -The WebSocket server and client uses [Actix Web](https://actix.rs/) with the Actix actor system for internal service -communication. +The integration requires WebSocket API access to communicate with Home Assistant. +See [Home Assistant documentation](https://www.home-assistant.io/docs/authentication/) for more information on how to +create a long-lived access token. +When using the 3rd party [Unfolded Circle for Home Assistant component](https://github.com/JackJPowell/hass-unfoldedcircle), +the connection parameters are automatically configured, and you don't need to manually set an access token. -## Container Image +The integration implements the Remote Two [Integration-API](https://github.com/unfoldedcircle/core-api) which +communicates with JSON messages over WebSocket. The WebSocket server and client uses [Actix Web](https://actix.rs/) +with the Actix actor system for internal service communication. + +## Supported Home Assistant entities + +The following HA entities are supported in the Unfolded Circle Remote: + +- [Button](https://developers.home-assistant.io/docs/core/entity/button/) +- [Climate](https://developers.home-assistant.io/docs/core/entity/climate) + - Supported: on/off, heat, cool, current temperature, target temperature. + - Fan modes are planned, but not yet supported. +- [Cover](https://developers.home-assistant.io/docs/core/entity/cover) + - Supported: open, close, stop, set position. + - Tilt features are planned, but not yet supported. +- [Light](https://developers.home-assistant.io/docs/core/entity/light) + - Supported: on/off, dimming, set color, set color temperature. + - Color effects are not supported. +- [Media player](https://developers.home-assistant.io/docs/core/entity/media-player) + - Media browsing, playlist handling, group members are not supported. +- [Remote](https://developers.home-assistant.io/docs/core/entity/remote) + - Supported: on, off, toggle, command, sequence. + - Activities and command learning / deleting are not supported. +- [Sensor](https://developers.home-assistant.io/docs/core/entity/sensor) +- [Switch](https://developers.home-assistant.io/docs/core/entity/switch) +- [Input boolean](https://www.home-assistant.io/integrations/input_boolean/): mapped to switch +- [Binary sensor](https://www.home-assistant.io/integrations/binary_sensor/): mapped to sensor + +The following HA integrations are mapped to a button. The functionality is limited to trigger the default action and no +further interactions are possible: + +- [Input button](https://www.home-assistant.io/integrations/input_button/) +- [Scripts](https://www.home-assistant.io/integrations/script/) +- [Scenes](https://www.home-assistant.io/integrations/scene/) + +## Network requirements + +- The [Home Assistant WebSocket API](https://www.home-assistant.io/integrations/websocket_api/) endpoint must be + accessible by the Remote. + - The default url is: `ws://homeassistant.local:8123/api/websocket` +- A direct connection without SSL (`ws://` connection) from the Remote to the Home Assistant API is recommended when + used in same internal network. + - We cannot provide support for custom installations with reverse proxy, SSL setups, changed endpoints or URLs. + - Self-signed certificates are not supported and don’t work. + - If only an SSL endpoint is exposed, then the `wss://` connection URL must be used in the integration! + - Please note, that not all certificates or SSL setups seem to work. + - It has been successfully tested with Let’s Encrypt certificates and a nginx reverse proxy. + +## Home Assistant requirements + +- A long-lived access token is required for the integration to connect to the Home Assistant server. +- Very large Home Assistant setups require either to increase the message size or use the 3rd party HACS component. + How to increase the message size: + 1. Start the Home Assistant integration setup in the web-configurator. + 2. Select the *Configure enhanced options* checkbox in the first screen and press *Next.* + 3. Increase the “Max. WebSocket frame size”. + 4. Save the new setting by finishing the setup. + +## Usage + +### Container Image See [Docker image](./docker/README.md) for more information. -## Configuration +### Configuration - Optional read-only configuration file to override defaults: [configuration.yaml](configuration.yaml) - User provided Home Integration server settings are written to `$UC_CONFIG_HOME/$UC_USER_CFG_FILENAME` @@ -34,7 +95,7 @@ The configuration values can be overwritten with ENV variables. - ENV prefix: `UC_` - Example: `integration.interface` configuration setting: `UC_INTEGRATION_INTERFACE=127.0.0.1` -### Environment Variables +#### Environment Variables The following environment variables exist in addition to the configuration file: @@ -47,7 +108,7 @@ The following environment variables exist in addition to the configuration file: | UC_API_MSG_TRACING | `all` / `in` / `out` | Enables incoming and outgoing WS Core-API message tracing
Default: no tracing | | UC_HASS_MSG_TRACING | `all` / `in` / `out` | Enables incoming and outgoing Home Assistant WS message tracing
Default: no tracing | -On the Remote Two device, the integration is configured for the embedded runtime environment with several environment +On the Unfolded Remote device, the integration is configured for the embedded runtime environment with several environment variables. Mainly `UC_DISABLE_MDNS_PUBLISH=true`, `UC_CONFIG_HOME` and some `UC_INTEGRATION_*` to listen on the local interface only. @@ -88,7 +149,7 @@ cargo run ## Home Assistant WebSocket API test tool The [bin/ha_test.rs](src/bin/ha_test.rs) tool is a simple CLI tool to test the Home Assistant WebSocket API connectivity -with the exact same code & logic as the HA integration for Remote Two. +with the exact same code & logic as the HA integration for Remote Two/3. The main purpose of this tool is to troubleshoot connectivity issues from a PC. Linux, macOS and Windows x86 binaries are automatically built with a GitHub action and attached to [GitHub releases](https://github.com/unfoldedcircle/integration-home-assistant/releases). diff --git a/resources/driver.json b/resources/driver.json index 79a5dde..1c5e90e 100644 --- a/resources/driver.json +++ b/resources/driver.json @@ -13,13 +13,14 @@ }, "icon": "uc:integration", "description": { - "en": "Control Home Assistant entities with Remote Two.", - "de": "Steuere Home Assistant Entitäten mit Remote Two.", - "fr": "Contrôler les entités de Home Assistant avec Remote Two." + "en": "Control Home Assistant entities with Remote Two/3.", + "de": "Steuere Home Assistant Entitäten mit Remote Two/3.", + "fr": "Contrôler les entités de Home Assistant avec Remote Two/3." }, "developer": { "name": "Unfolded Circle ApS", - "url": "https://www.unfoldedcircle.com" + "email": "hello@unfoldedcircle.com", + "url": "https://support.unfoldedcircle.com/hc/en-us/articles/19479726340380" }, "home_page": "https://www.unfoldedcircle.com", "setup_data_schema": { @@ -38,9 +39,9 @@ "field": { "label": { "value": { - "en": "The driver requires WebSocket API access to communicate with Home Assistant.\nSee [Home Assistant documentation](https://www.home-assistant.io/docs/authentication/) for more information on how to create a long lived access token.\n\nWhen using the [Unfolded Circle for Home Assistant component](https://github.com/JackJPowell/hass-unfoldedcircle), the connection parameters are automatically configured and you don't need to manually set an access token.\n\nThe _enhanced options_ below can be used to change expert connection parameters.", - "de": "Der Treiber benötigt WebSocket-API Zugriff, um mit Home Assistant zu kommunizieren.\nWeitere Informationen zur Erstellung eines langlebigen Zugriffstokens findest du in der [Home Assistant Dokumentation](https://www.home-assistant.io/docs/authentication/).\n\nWenn Du die [Unfolded Circle for Home Assistant](https://github.com/JackJPowell/hass-unfoldedcircle) Komponente verwendest, werden die Verbindungsparameter automatisch konfiguriert, und Du musst kein Zugriffstoken manuell setzen.\n\nMit den _erweiterten Optionen_ können Experten-Verbindungsparameter geändert werden.", - "fr": "Le pilote nécessite l'accès à l'API WebSocket pour communiquer avec Home Assistant.\nVoir [Home Assistant documentation](https://www.home-assistant.io/docs/authentication/) pour plus d'informations sur la création d'un \"long lived access token\".\n\nLorsque vous utilisez le composant [Unfolded Circle for Home Assistant](https://github.com/JackJPowell/hass-unfoldedcircle), les paramètres de connexion sont automatiquement configurés et vous n'avez pas besoin de définir manuellement un jeton d'accès.\n\nLes _options avancées_ ci-dessous peuvent être utilisées pour modifier les paramètres de connexion des experts." + "en": "The driver requires WebSocket API access to communicate with Home Assistant.\nSee [Home Assistant documentation](https://www.home-assistant.io/docs/authentication/) for more information on how to create a long lived access token.\n\nWhen using the [Unfolded Circle for Home Assistant component](https://github.com/JackJPowell/hass-unfoldedcircle), the connection parameters are automatically configured and you don't need to manually set an access token.\n\nThe _enhanced options_ below can be used to change expert connection parameters.\n\nPlease see our [support article](https://support.unfoldedcircle.com/hc/en-us/articles/19479726340380) for requirements, features and restrictions.", + "de": "Der Treiber benötigt WebSocket-API Zugriff, um mit Home Assistant zu kommunizieren.\nWeitere Informationen zur Erstellung eines langlebigen Zugriffstokens findest du in der [Home Assistant Dokumentation](https://www.home-assistant.io/docs/authentication/).\n\nWenn Du die [Unfolded Circle for Home Assistant](https://github.com/JackJPowell/hass-unfoldedcircle) Komponente verwendest, werden die Verbindungsparameter automatisch konfiguriert, und Du musst kein Zugriffstoken manuell setzen.\n\nMit den _erweiterten Optionen_ können Experten-Verbindungsparameter geändert werden.\n\nBitte beachte unseren [Support-Artikel](https://support.unfoldedcircle.com/hc/en-us/articles/19479726340380) zu Anforderungen, unterstützten Funktionen und Einschränkungen.", + "fr": "Le pilote nécessite l'accès à l'API WebSocket pour communiquer avec Home Assistant.\nVoir [Home Assistant documentation](https://www.home-assistant.io/docs/authentication/) pour plus d'informations sur la création d'un \"long lived access token\".\n\nLorsque vous utilisez le composant [Unfolded Circle for Home Assistant](https://github.com/JackJPowell/hass-unfoldedcircle), les paramètres de connexion sont automatiquement configurés et vous n'avez pas besoin de définir manuellement un jeton d'accès.\n\nLes _options avancées_ ci-dessous peuvent être utilisées pour modifier les paramètres de connexion des experts.\n\nConsulte [l’article de support](https://support.unfoldedcircle.com/hc/en-us/articles/19479726340380) pour connaître les exigences, les fonctionnalités prises en charge et les restrictions." } } }