Infinitude allows direct web-based control of
As well as providing an open RESTish API
Infinitude can also optionally monitor the Carrier/Bryant RS485(ABCD) bus for higher resolution access to your thermostat, air handler, heat pump, and other devices. Infinitude provides a serial monitor which keeps track of the current state of registers on the serial bus, and highlights changing bytes to aid in protocol analysis. Serial monitoring can be done via an attached serial port or via a networked serial bridge.
RS485 stream monitoring example video:
Infinitude does not control thermostats via the RS485 bus at this time. RS485 communication is optional, and read only. Serial-based control of some older non-touch thermostats is provided by the Infinitive project
Prebuilt Docker containers are available for multiple architectures on DockerHub, or you can build a container manually with the included Dockerfile. Special thanks go to @scyto for instrumental contributions to the Infinitude containers in general, and multiarch builds in particular.
Infinitude configuration parameters can be passed through environment variables into the container. Support is included for:
|APP_SECRET||Cookie signature string. Matters to almost nobody|
|PASS_REQS||Minimum amount of time to wait(in seconds) between requests to Carrier/Bryant servers.
|SERIAL_TTY||optional rs485 device string eg
|SERIAL_SOCKET||optional tcp/rs485 bridge string eg
the published container can be run as
docker run --rm -v $PWD/state:/infinitude/state -p 3000:3000 nebulous/infinitude
with additional config items as ENV vars
docker run --rm -v $PWD/state:/infinitude/state \ -e APP_SECRET='YOUR_SECRET_HERE' \ -e PASS_REQS='1020' \ -e MODE='Production' \ -p 3000:3000 \ nebulous/infinitude
or via the included docker-compose file.
The easiest way to run Infinitude is by running a published Docker image, but if you'd like to install manually, these are the basic requirements
sudo cpanm --installdeps .to install
Many users opt to run Infinitude on a Raspberry Pi. This is also most easily accomplished using a Docker image, but More specific manual installation instructions are available on the wiki
Basic hardware capable of running docker or a unix/posix system. This could be a desktop machine, many people use a Raspberry Pi, or any embedded device with sufficient memory and storage. The author runs Infinitude in a Docker container on an Atomic PI, but has also used a Pandaboard and first ran it on the very limited Pogoplug v4 hardware, which at the time(2014) cost less than $10 USD and sat on top of the air handler and allowed for a USB RS485 dongle to interface with it.
Infinitude is a Mojolicious application, so the simplest way to run it from source is via:
which starts a server in development mode on port 3000.
Or to listen on port 80:
./infinitude daemon -l http://:80
See ./infinitude --help for additional options
With any luck, Carrier will allow the owners of these devices and data direct access rather than this ridiculous work around. If you have one of these thermostats, tell Carrier you'd like direct network access to your thermostat, or at the very least, access to a public API!