All Projects → nebulous → Infinitude

nebulous / Infinitude

Licence: mit
Open control of Carrier/Bryant thermostats

Programming Languages

perl
6916 projects

Projects that are alternatives of or similar to Infinitude

Home Assistant Configuration
My Home Assistant Config. For more Information visit ->
Stars: ✭ 102 (-14.29%)
Mutual labels:  home-automation
Core
🏡 Open source home automation that puts local control and privacy first.
Stars: ✭ 48,265 (+40458.82%)
Mutual labels:  home-automation
Node Milight Promise
A node module to control Milight LED bulbs and OEM equivalents such as Rocket LED, Limitless LED Applamp, Easybulb, s`luce, iLight, iBulb, and Kreuzer
Stars: ✭ 112 (-5.88%)
Mutual labels:  home-automation
Home Assistant Main
My Main Instance
Stars: ✭ 104 (-12.61%)
Mutual labels:  home-automation
Openinvoiceperu
Repositorio OpenInvoicePeru, API REST para la Facturación Electrónica del Perú
Stars: ✭ 106 (-10.92%)
Mutual labels:  api-rest
Kalliope
Kalliope is a framework that will help you to create your own personal assistant.
Stars: ✭ 1,509 (+1168.07%)
Mutual labels:  home-automation
Home Assistant Js Websocket
🚡 JavaScript websocket client for Home Assistant
Stars: ✭ 100 (-15.97%)
Mutual labels:  home-automation
Vizio smartcast api
API documentation for Vizio SmartCast TV's
Stars: ✭ 114 (-4.2%)
Mutual labels:  home-automation
Home Assistant Config
🏠 My Home Assistant configuration and documentation. More info below.
Stars: ✭ 107 (-10.08%)
Mutual labels:  home-automation
Xiaomi Flower Care Api
Xiaomi Flower Care (MiFlora) API wrapper.
Stars: ✭ 111 (-6.72%)
Mutual labels:  home-automation
Denonavr
Automation Library for Denon AVR receivers.
Stars: ✭ 104 (-12.61%)
Mutual labels:  home-automation
Loadcelloccupany
Home automation occupancy sensor using load cells
Stars: ✭ 103 (-13.45%)
Mutual labels:  home-automation
Hass Data Detective
Explore and analyse your Home Assistant data
Stars: ✭ 109 (-8.4%)
Mutual labels:  home-automation
Yamaha Nodejs
A node module to control your yamaha receiver
Stars: ✭ 103 (-13.45%)
Mutual labels:  home-automation
Laravel Api Boilerplate
A Boilerplate Project For Laravel API's (NOT MAINTAINED)
Stars: ✭ 113 (-5.04%)
Mutual labels:  api-rest
Frontend
🍭 Frontend for Home Assistant
Stars: ✭ 1,366 (+1047.9%)
Mutual labels:  home-automation
Home Assistant Android
UNOFFICIAL Android app/frontend for Home Assistant (https://home-assistant.io)
Stars: ✭ 108 (-9.24%)
Mutual labels:  home-automation
Itead sonoff
Alternative firmware for Itead Sonoff switches, based on the MQTT protocol and a TLS connection
Stars: ✭ 115 (-3.36%)
Mutual labels:  home-automation
Addon Ssh
SSH & Web Terminal - Home Assistant Community Add-ons
Stars: ✭ 114 (-4.2%)
Mutual labels:  home-automation
Cec Mqtt Bridge
A HDMI-CEC to MQTT bridge for connecting HDMI-CEC-devices to your Home Automation system.
Stars: ✭ 110 (-7.56%)
Mutual labels:  home-automation

Infinitude

Docker image Build Status Docker Hub documentation

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.

Infinitude allows direct web-based control of

  • Temperature setpoints
  • Schedules
  • Dealer information

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:

Real time RS485 monitoring

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

Docker - Recommended

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:

Variable Description
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. 0 means never.
MODE production(default) or development(more logging)
SERIAL_TTY optional rs485 device string eg /dev/ttyUSB0
SERIAL_SOCKET optional tcp/rs485 bridge string eg 192.168.1.42:23

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. docker-compose up

Manual installation Requirements

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

Software
  • Some flavor of UNIX. Both Linux and OSX are known to work and some have even used Strawberry Perl in Windows.
  • Perl with the following modules
    • Mojolicious
    • DateTime
    • IO::Termios optional for RS485 serial monitoring
    • Path::Tiny
    • Try::Tiny
    • JSON
Dependency 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. This is also most easily accomplished using a Docker image, but More specific manual installation instructions are available on the wiki

Hardware

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.

See a list of hardware others have used.

Usage / Thermostat configuration

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].