Ecobee?

Ecobee?

Hi folks,

Has anyone on the list started work on on an interface for the Ecobee3
thermostat?

The reason I ask is that I I picked up and Ecobee3 and a handful of room
sensors last week and just wrapped up the physical installation this
past weekend. I started digging through the API yesterday and in the
process of provisioning an app in the Ecobee developer portal, I noticed
that someone had already registered the application name "MisterHouse"
and was curious if it was anyone here. If so, I would be interested in
anything you might have come up with as far as an interface with MH. The
existing MH thermostat modules (Nest, Venstar, etc..) are quite
comprehensive and a great reference, but I wouldn't mind helping hack up
something that is already partially written rather than starting from
scratch.

For anyone who hasn't heard of the Ecobee3, it is a WiFi enabled
thermostat with a cloud-based API ala Nest. The major difference with
the Ecobee3 and other WiFi thermostats currently on the market is that
it supports up to 32 wireless (915MHz) room sensors. The room sensors
contain both a motion sensor and a temperature sensor that are used to
inform the Ecobee3 of room occupancy as well as individual room's
temperature that can be used to average the temperature between occupied
rooms and determine overall home occupancy.

My initial impressions:

The Ecobee3 has a cloud-based API, but no local API ala Honeywell or
Venstar which creates a dependency on Internet connectivity for control.
Unlike the Nest's "streaming" API, the Ecobee API is a traditional
RESTful interface that requires polling to get/set updates. This makes
things simpler from the interface-side, but updates will be delayed
until the next polling interval (>=30 seconds).

API authentication is OAuth 2.0-based and grants both an access token
and refresh token once a user authenticates through a portal or adds an
app via a four digit PIN on the Ecobee site. The token lifetime
(expires_in) is fairly short (1 hour) and requires refreshing the tokens
either preemptively or after the access_token expires. This will require
storing the access_token and refresh_token across MH restarts (as saved
variables). It is unclear how many refresh tokens are valid for a
particular client (Google, for example, allows up to 25).

The Ecobee API seems to be fairly comprehensive, and allows access and
control to all features available to their mobile apps. The only stuff
that isn't API accessible is the configuration of the "installation
settings" such as HVAC wiring and enabling accessory devices
(humidifier/dehumidifier, ERV/HRV, etc).

The wireless sensors seem to work fairly well, but I did manage to get
one to stop communicating by placing it too close to a row of aluminum
picture frames. Moving the sensor across the room (actually further from
the RF receiver in the thermostat) resolved the issue.

I setup simple geofencing that currently uses Tasker (Android) and IFTTT
(iOS) apps to inform MH when the house occupants are home, near or far.
When the last occupant leaves home, MH POSTs to a URL that triggers the
IFTTT "Maker" module and sets the "Away" comfort profile hold on the
Ecobee3 (via the Ecobee IFTTT integration). Likewise when any of the
occupants comes home, it calls another IFTTT URL which sets the "Home"
comfort profile hold. I will replace this once we have a proper Ecobee3
MH module, but it seems to work for now.

Re: Ecobee?

Hi folks,

I didn't see any responses so I guess I may be one of the first with one
of these.

I have made some progress assembling a MH module and now have the OAuth
2.0 PIN request, authentication and token refresh functionality working.
I did notice a couple things that struck me as odd as I was putting
things together that i wondered if any of you has seen before and have
any comments on:

1) Variables persisted across restarts via &Generic_Item::restore_data()
are not immediately available if you try to access them too soon, such
as reading them in a class' new() function, they are undefined. I was
able to work around this by adding a Timer that fires after one second
and calls a function to read them.

2) If you use the third argument ($cycles) of &Timer::set() and set it
to -1 which should cause it to repeat forever (e.g. $timer->set($delay,
sub {print "Hello!"}, -1); ) the $timer->stop() function doesn't
actually stop the timer. I noticed that when this happens, the
$timer->active() function shows that it is still running (true). I found
at least one other MH module that expects stop() to work in this case
(Venstar_Colortouch.pm), so I am probably not alone in the expectation
that it should behave accordingly. The alternative seems to be to not to
use $cycles and have the timer call a function that resets it each time.

Cheers!
-Brian

On 2/1/16 13:34, Brian Rudy wrote:

> Hi folks,
>
> Has anyone on the list started work on on an interface for the Ecobee3
> thermostat?
>
> The reason I ask is that I I picked up and Ecobee3 and a handful of room
> sensors last week and just wrapped up the physical installation this
> past weekend. I started digging through the API yesterday and in the
> process of provisioning an app in the Ecobee developer portal, I noticed
> that someone had already registered the application name "MisterHouse"
> and was curious if it was anyone here. If so, I would be interested in
> anything you might have come up with as far as an interface with MH. The
> existing MH thermostat modules (Nest, Venstar, etc..) are quite
> comprehensive and a great reference, but I wouldn't mind helping hack up
> something that is already partially written rather than starting from
> scratch.
>
> For anyone who hasn't heard of the Ecobee3, it is a WiFi enabled
> thermostat with a cloud-based API ala Nest. The major difference with
> the Ecobee3 and other WiFi thermostats currently on the market is that
> it supports up to 32 wireless (915MHz) room sensors. The room sensors
> contain both a motion sensor and a temperature sensor that are used to
> inform the Ecobee3 of room occupancy as well as individual room's
> temperature that can be used to average the temperature between occupied
> rooms and determine overall home occupancy.
>
> My initial impressions:
>
> The Ecobee3 has a cloud-based API, but no local API ala Honeywell or
> Venstar which creates a dependency on Internet connectivity for control.
> Unlike the Nest's "streaming" API, the Ecobee API is a traditional
> RESTful interface that requires polling to get/set updates. This makes
> things simpler from the interface-side, but updates will be delayed
> until the next polling interval (>=30 seconds).
>
> API authentication is OAuth 2.0-based and grants both an access token
> and refresh token once a user authenticates through a portal or adds an
> app via a four digit PIN on the Ecobee site. The token lifetime
> (expires_in) is fairly short (1 hour) and requires refreshing the tokens
> either preemptively or after the access_token expires. This will require
> storing the access_token and refresh_token across MH restarts (as saved
> variables). It is unclear how many refresh tokens are valid for a
> particular client (Google, for example, allows up to 25).
>
> The Ecobee API seems to be fairly comprehensive, and allows access and
> control to all features available to their mobile apps. The only stuff
> that isn't API accessible is the configuration of the "installation
> settings" such as HVAC wiring and enabling accessory devices
> (humidifier/dehumidifier, ERV/HRV, etc).
>
> The wireless sensors seem to work fairly well, but I did manage to get
> one to stop communicating by placing it too close to a row of aluminum
> picture frames. Moving the sensor across the room (actually further from
> the RF receiver in the thermostat) resolved the issue.
>
> I setup simple geofencing that currently uses Tasker (Android) and IFTTT
> (iOS) apps to inform MH when the house occupants are home, near or far.
> When the last occupant leaves home, MH POSTs to a URL that triggers the
> IFTTT "Maker" module and sets the "Away" comfort profile hold on the
> Ecobee3 (via the Ecobee IFTTT integration). Likewise when any of the
> occupants comes home, it calls another IFTTT URL which sets the "Home"
> comfort profile hold. I will replace this once we have a proper Ecobee3
> MH module, but it seems to work for now.
>
>
> Cheers!
> -Brian
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140> ________________________________________________________
> To unsubscribe from this list, go to: https://lists.sourceforge.net/lists/listinfo/misterhouse-users>

Re: Ecobee?

On 02/04/2016 01:55 PM, Brian Rudy wrote:
> Hi folks,
>
> I didn't see any responses so I guess I may be one of the first with one
> of these.
>
I have an ecobee but feel dirty enough with their servers housing my
data if I want to use the control features. Actually controlling it in
that way is too much.

If there was a way to control the thermostat without involving them I
would be all over that.

Re: Ecobee?

On 2/4/16 15:47, john wrote:

>
> On 02/04/2016 01:55 PM, Brian Rudy wrote:
>> Hi folks,
>>
>> I didn't see any responses so I guess I may be one of the first with one
>> of these.
>>
> I have an ecobee but feel dirty enough with their servers housing my
> data if I want to use the control features. Actually controlling it in
> that way is too much.
>
> If there was a way to control the thermostat without involving them I
> would be all over that.
>
> John

Ecobee has documented the API that the thermostats use to communicate
with their servers, so with a little DNS trickery and a not
insignificant effort, it is possible to recreate their APIs on something
that we could own/control.

For the time being, I will be using their public API for my MH module,
but would be happy to use something else if it comes along.

Re: Ecobee?

It's been a while, but I finally submitted a pull request for my code
after fiddling with it on and off for most of the year and would be
grateful if any other ecobee3 owners could give it a try.

On 2/4/16 16:47, john wrote:

>
> On 02/04/2016 06:36 PM, Brian Rudy wrote:
>> For the time being, I will be using their public API for my MH module,
>> but would be happy to use something else if it comes along. -Brian
> Good luck getting things to work. We have been happy with the product
> and having the ability to control it would be a good mh feature.
>
> John
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140> ________________________________________________________
> To unsubscribe from this list, go to: https://lists.sourceforge.net/lists/listinfo/misterhouse-users>