Documentation and information on protocol(s) available on the Wiki. Please contribute!
Infinitude is an alternative web service for Carrier Infinity Touch and compatible thermostats.
It allows direct web-based control of
- Temperature setpoints
- Schedules
- Dealer information
As well as providing an open RESTish api and monitoring of weather and any other sensors you may want to integrate.
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. The serial monitor keeps track of the current state, and highlights changing bytes to aid in protocol analysis. Infinitude does not control thermostats via the RS485 bus at this time. RS485 communication is optional, and read only. Limited control of non-touch thermostats is provided by the Infinitive project
Demonstrated in the video below:
- Some flavor of UNIX. Both Linux and OSX are known to work.
- Perl with the following modules
- Mojolicious
- DateTime
- IO::Termios optional for RS485 serial monitoring
- Path::Tiny
- Try::Tiny
- JSON
- a cpanfile is provided which lists Infinitude's minimum dependencies.
- use your distribution's packaging system, your favorite cpan installer, or
sudo cpanm --installdeps .
to install
Many users opt to run Infinitude on a Raspberry Pi. More specific installation instructions are available on the wiki
- Basic hardware capable of running Linux. This could be a desktop machine, a Raspberry Pi, or an embedded device. The author runs Infinitude on ArchLinux using a Pogoplug v4 which can be obtained for less than $10 USD and sits on top of the air handler like so:
See Infinitude Hardware for recommended devices.
Docker support is provided in the docker
directory.
Infinitude configuration parameters can be passed through environment variables into the container. Support is included for:
Variable |
---|
APP_SECRET |
PASS_REQS |
MODE |
The latest docker image can be built directly from this repository
docker build -t infinitude https://raw.githubusercontent.com/nebulous/infinitude/master/docker/Dockerfile
and the corresponding container can be run as
docker run \
-e APP_SECRET='YOUR_SECRET_HERE' \
-e PASS_REQS='1020' \
-e MODE='Production' \
-p 3000:3000 \
--name infinitude docker_infinitude
An example docker-compose file is also included.
- Set your proxy server/port in the advanced wireless settings on the thermostat to point to your infinitude host/port.
- Edit the $conf section of the infinitude file to set your optional RS485 serial tty device.
- Start Infinitude. This traffic is not encrypted, so only run on a trusted network.
Infinitude is a Mojolicious application, so the simplest way to run it is via:
./infinitude daemon
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!