AC Infinity Controller 69 Pro command-line and API
Project description
About
This software provides basic CLI and API functionality for controlling a single fan and reading sensor values from the AC Infinity Controller 69 Pro.
Install
pip install acinf
This script was authored for python 3.10 and Linux, but other python versions and operating systems may work.
Usage
If everything is installed correctly, command acinf should have the following output:
$ acinf usage: acinf [-h] [--log-level {debug,info,warning,error}] mac_address {get,set} [value] acinf: error: the following arguments are required: mac_address, action
To set fan level to 5 use command for example MAC address DE:AD:BE:EF:CA:FE:
acinf DE:AD:BE:EF:CA:FE set 5
To show all values to stdout in json format:
$ acinf DE:AD:BE:EF:CA:FE get { "temperature_c": 18.56, "temperature_f": 65.408, "humidity": 70.03, "vpd_kpa": 0.61 }
To retrieve just a single value as ASCII float to stdout, combine get with any of the following values temperature_c, temperature_f, humidity, vpd_kpa:
$ acinf DE:AD:BE:EF:CA:FE get temperature_f 65.408
MAC address
To determine the MAC address of your AC Infinity controller on Linux, ensure the bluetooth package is installed and execute bluetoothctl, then, command scan on, examine devices marked ‘NEW’, or, enter command devices.
AC infinity controllers are marked ‘ACI-E’, as in the example below:
linux# bluetoothctl Agent registered [CHG] Controller 00:11:22:33:44:66 Pairable: yes [bluetooth]# scan on Discovery started [CHG] Controller 00:11:22:33:44:66 Discovering: yes [NEW] Device AB:CD:EF:AB:CD:EF AB-CD-EF-AB-CD-EF [NEW] Device DE:AD:BE:EF:CA:FE ACI-E [NEW] Device AB:CD:EF:AB:CD:FF AB-CD-EF-AB-CD-FF
Pairing
If you haven’t previously paired with your device, do that now. Press and Hold the bluetooth button on the controller until it begins flashing, then, enter bluetoothctl command, pair DE:AD:BE:EF:CA:FE.
About
This software is not affiliated with AC Infinity. AC Infinity is a trademark of AC Infinity Inc. This software is not guaranteed to work with any particular AC Infinity product. It is not guaranteed to work at all. Use at your own risk.
Caveats
Although 4 fans may be connected to the controller, this software only supports controlling a single fan.
Do not execute more than 1 of these processes at a time. All ‘get’ and ‘set’ commands are failed if they exceed 1 minute, and so any scheduled execution of this command should be limited to approximately once per 2 minutes.
This API and software has a very slow startup time, because it reconnects to the bluetooth device each time. Although it is possible to re-use a connection, I found persistent connections to be unreliable over long durations.
Errors may often report to stderr, about timeout or failure to discover or connect, especially for long receiver distances, but all get or set operations are automatically retried for a full minute before failure.
Contributing
This project is not very serious, if you wish to expand it for more features and devices, consider making a pull requests and becoming a co-maintainer and feel free to fork. Thanks, enjoy, and best wishes!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file acinf-0.0.2.tar.gz
.
File metadata
- Download URL: acinf-0.0.2.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5181042fbadddc4a086174bb5d83f5e996d75a6a0368599ce89f253196b7833e |
|
MD5 | dd4a2ee319e58afe45d781f1deee6003 |
|
BLAKE2b-256 | 5430365c507ff2b14e38562bd64f1ce1e48235e9414b07f6cf138deb69b638ed |
File details
Details for the file acinf-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: acinf-0.0.2-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 614b78d9e55ee96b9e4912a9961169e06b01b50c08d7c46ef39685cbb71a8378 |
|
MD5 | fee1684ea6506d4896bdede0758eaa44 |
|
BLAKE2b-256 | 51eda4d4f472f7e79125da16423a7247ba12eff9155b8eb7107a49db4c8d978a |