Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lawtancool/pycontrol4
Python 3 asyncio package for interacting with Control4 systems
https://github.com/lawtancool/pycontrol4
control4 home-assistant
Last synced: 5 days ago
JSON representation
Python 3 asyncio package for interacting with Control4 systems
- Host: GitHub
- URL: https://github.com/lawtancool/pycontrol4
- Owner: lawtancool
- License: apache-2.0
- Created: 2020-06-09T03:10:03.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-01T21:44:11.000Z (4 months ago)
- Last Synced: 2024-12-29T01:14:49.449Z (5 days ago)
- Topics: control4, home-assistant
- Language: Python
- Homepage: https://lawtancool.github.io/pyControl4/
- Size: 245 KB
- Stars: 38
- Watchers: 7
- Forks: 17
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pyControl4
[![PyPI version](https://badge.fury.io/py/pyControl4.svg)](https://badge.fury.io/py/pyControl4)[![Downloads](https://pepy.tech/badge/pycontrol4)](https://pepy.tech/project/pycontrol4)[![CI](https://github.com/lawtancool/pyControl4/workflows/CI/badge.svg)](https://github.com/lawtancool/pyControl4/actions?query=workflow%3ACI)[![pdoc](https://github.com/lawtancool/pyControl4/workflows/pdoc/badge.svg)](https://github.com/lawtancool/pyControl4/actions?query=workflow%3Apdoc)[![PyPI Release](https://github.com/lawtancool/pyControl4/workflows/PyPI%20Release/badge.svg)](https://github.com/lawtancool/pyControl4/actions?query=workflow%3A%22PyPI+Release%22)
An asynchronous library to interact with Control4 systems through their built-in REST API. This is known to work on controllers with OS 2.10.1.544795-res and OS 3.0+.
Auto-generated function documentation can be found at
For those who are looking for a pre-built solution for controlling their devices, this library is implemented in the [official Home Assistant Control4 integration](https://www.home-assistant.io/integrations/control4/).
## Usage example
```python
from pyControl4.account import C4Account
from pyControl4.director import C4Director
from pyControl4.light import C4Light
import asyncio
import jsonusername = ""
password = ""ip = "192.168.1.25"
"""Authenticate with Control4 account"""
account = C4Account(username, password)
asyncio.run(account.getAccountBearerToken())"""Get and print controller name"""
accountControllers = asyncio.run(account.getAccountControllers())
print(accountControllers["controllerCommonName"])"""Get bearer token to communicate with controller locally"""
director_bearer_token = asyncio.run(
account.getDirectorBearerToken(accountControllers["controllerCommonName"])
)["token"]"""Create new C4Director instance"""
director = C4Director(ip, director_bearer_token)"""Print all devices on the controller"""
print(asyncio.run(director.getAllItemInfo()))"""Create new C4Light instance"""
light = C4Light(director, 253)"""Ramp light level to 10% over 10000ms"""
asyncio.run(light.rampToLevel(10, 10000))"""Print state of light"""
print(asyncio.run(light.getState()))
```## Contributing
Pull requests are welcome! Please lint your Python code with `flake8` and format it with [Black](https://pypi.org/project/black/).## Disclaimer
This library is not affiliated with or endorsed by Control4.