/integration-python-library

Python API wrapper for the Unfolded Circle Integration API

Primary LanguagePythonMozilla Public License 2.0MPL-2.0

Python API wrapper for the UC Integration API

PyPi License Code style: black

This library simplifies writing Python based integrations for the Unfolded Circle Remote Two by wrapping the WebSocket Integration API.

It's an alpha release (in our eyes). Breaking changes are to be expected and missing features will be continuously added. Based on our Node.js integration library.

❗️Attention:

This is our first Python project, and we don't see ourselves as Python professionals.
Therefore, the library is most likely not yet that Pythonic!
We are still learning and value your feedback on how to improve it :-)

Not yet supported:

  • Secure WebSocket
  • Token based authentication

Requirements:

  • Python 3.10 or newer

Installation

Use pip:

pip3 install ucapi

See examples directory for a minimal integration driver example. More examples will be published.

Environment Variables

Certain features can be configured by environment variables:

Variable Values Description
UC_CONFIG_HOME directory path Configuration directory to save the user configuration from the driver setup.
Default: $HOME or current directory
UC_INTEGRATION_INTERFACE address Listening interface for WebSocket server.
Default: 0.0.0.0
UC_INTEGRATION_HTTP_PORT number WebSocket listening port.
Default: port field in driver metadata json file, if not specified: 9090
UC_MDNS_LOCAL_HOSTNAME hostname Published local hostname in mDNS service announcement.
Default: short hostname with .local domain.
UC_DISABLE_MDNS_PUBLISH true / false Disables mDNS service advertisement.
Default: false

Versioning

We use SemVer for versioning. For the versions available, see the tags and releases on this repository.

Changelog

The major changes found in each new release are listed in the changelog and under the GitHub releases.

Contributions

Please read our contribution guidelines before opening a pull request.

License

This project is licensed under the Mozilla Public License 2.0. See the LICENSE file for details.