aiopulse2
Asynchronous library to control Rollease Acmeda Automate roller blinds with the Pulse v2 Hub
This is an updated fork of aiopulse for the v2 hub (note: this is not compatible with the v1 hub, use aiopulse for that). The protocol implementation uses a combination of WebSockets and a TCP connection using a serial like protocol. See the project wiki page for details.
Requires Python 3.7 or later and uses asyncio and websockets.
It has been primarily developed as an integration for Home Assistant, using the Automate Pulse v2 integration.
Installing
Run pip install aiopulse2.
Demo.py
This is an interactive interface to test the integration. The available commands are listed below.
Use the list command to get the id of the hubs/blinds.
| Command | Description |
|---|---|
| connect [hub ip][hub ip]...] | Connect to the hub at ip(s) |
| disconnect | Disconnect all hubs |
| list | List currently connected hubs and their blinds, use to get the [hub id] and [blind id] for the following commands. |
| open [hub id][blind id] | Open blind |
| close [hub id][blind id] | Close blind |
| stop [hub id][blind id] | Stop blind |
| moveto [hub id][blind id] [% closed] | Open blind to percentage |
| exit | Exit program |
| log [level str] | Set log level, e.g. log debug |
pulse_hub_cli.py
This is a trivial work-in-progress aiopulse2 command-line-interface wrapper. It issues a command to a blind given the hub ip address, device name as defined in the Pulse 2 app and desired percentage closed. It then waits for the command to complete.
python3 pulse_hub_cli.py '192.168.1.127' 'Office 1 of 3' 100
close.sh
This is an example application of pulse_hub_cli.py. It closes three blinds in sequence. In this case, it is useful to close the blinds one at a time because they share a small power supply.
python3 pulse_hub_cli.py '192.168.1.127' 'Office 1 of 3' 100
python3 pulse_hub_cli.py '192.168.1.127' 'Office 2 of 3' 100
python3 pulse_hub_cli.py '192.168.1.127' 'Office 3 of 3' 100
Metadata
Release files for aiopulse2 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aiopulse2-1.0.0.tar.gz | 15.0 kB | Without provenance | Details for aiopulse2-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aiopulse2-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for aiopulse2-1.0.0-py3-none-any.whl |
Total release size: 29.6 kB
Release files / aiopulse2-1.0.0.tar.gz
| Download URL | aiopulse2-1.0.0.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c84142919cc2b667c512f9c9ab42456165e66f862dd07d1240e72390427729c1
|
|
BLAKE2b-256 checksum How to use checksums |
3c4f802d0bb109473df9cef9162d07ac52af5e03bb40206affbf00f107c4dd21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|
Release files / aiopulse2-1.0.0-py3-none-any.whl
| Download URL | aiopulse2-1.0.0-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bce09ff92c811c770d8c5011bcee8a50fafb11ab039b0e46b1dc8442272327c2
|
|
BLAKE2b-256 checksum How to use checksums |
1237e07c31130b707f605a1b51db41b2190158cdc11476c89e89e68265117cd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|
Security for aiopulse2 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.