/python-ecobee

Basic Python client for Ecobee thermostats

Primary LanguagePythonMIT LicenseMIT

Ecobee

This is a simple library to talk to an Ecobee thermostat.

Usage

>>> import ecobee

>>> eapi = ecobee.Client(APIKEY, [THERMOSTAT_ID])
>>> eapi.update()

>>> t = eapi.get_thermostat(THERMOSTAT_ID)
>>> t.settings.get('hvacMode')
'heat'

>>> s = t.get_sensor('ei:0')
>>> print('{}: {}°F'.format(s.name, s.temperature))
Main Floor: 70.3°F

Event loop

You will probably want to use some kind of event loop where you call eapi.poll() (this method is referenced inside Thermostat and Sensor) on a regular basis, though the data is only updated every three minutes, so there's no need to do this often.

When poll() returns a thermostat ID, then you would all update() to refresh the data about that thermostat.

Implementation is of course up to the reader.

Reference material

Ecobee has lots of great documentation here: https://www.ecobee.com/home/developer/api/documentation/v1/index.shtml

Python version

This library was designed to work with Python 3. Parts may work with Python 2.7, but I don't intend to support it at all, so you're on your own there.