Skip to content

nebulous/infinitude

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infinitude

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:

Real time RS485 monitoring

Requirements

Software
  • 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
Installation
  • 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
Raspbian-specific

Many users opt to run Infinitude on a Raspberry Pi. More specific installation instructions are available on the wiki

Hardware
  • 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

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.

Usage

  • 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!