Skip to main content

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!

Release files for acinf 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acinf 0.0.2
File Size Uploaded
acinf-0.0.2.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for acinf 0.0.2
File Interpreter ABI Platform
acinf-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 11.7 kB

Release files / acinf-0.0.2.tar.gz

Download URL acinf-0.0.2.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5181042fbadddc4a086174bb5d83f5e996d75a6a0368599ce89f253196b7833e
BLAKE2b-256 checksum
How to use checksums
5430365c507ff2b14e38562bd64f1ce1e48235e9414b07f6cf138deb69b638ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.0

Release files / acinf-0.0.2-py3-none-any.whl

Download URL acinf-0.0.2-py3-none-any.whl
Size 6.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
614b78d9e55ee96b9e4912a9961169e06b01b50c08d7c46ef39685cbb71a8378
BLAKE2b-256 checksum
How to use checksums
51eda4d4f472f7e79125da16423a7247ba12eff9155b8eb7107a49db4c8d978a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.0

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page