Nest Thermostat Review, Update #3

Sorry, if you’re tiring of reading these as I write about the experience of buying a Nest thermostat. Just move along if you’re not interested. :-)

Here’s the support e-mail I just sent Nest (via their online contact form) (Dec. 31, 2011, 9:15am):

We have three Nest thermostats in our house on a zoned system.

 

One of the thermostats has begun to often register a temperature (i.e, the current room temperature) that is more than several degrees (3-4) WARMER than the actual room temperature.

 

I have a digital non-contact thermometer that reads the surface temperature of whatever it is pointed at (not this model, but very similar in function: http://amzn.to/tbp0RH). Right now, for example, the wall temperature around the thermostat is about 66F. The temperature of the device reads 71F. Last night, it said 73F when the wall next to the thermostat was 64F. I have a second portable thermometer that confirms the air temperature very near the nest thermostat is around 66F.

We have a standard forced air heating system (no radiant).

 

The surface temperature of the nest reads 72F right now.

This wasn’t happening that we noticed when we first installed the unit and only started happening in the last week. I have not seen this problem with the other Nest thermostats in our home.

 

I’ll post updates here about their response to the issue. (The web site suggests it will be an hour or two before someone responds).

Has anyone else confirmed the Nest reported versus actual room temperature is accurate on their installed thermostats?

Update December 31, 2011

About six hours from my original request for support, I received a phone call from a Nest support engineer. (Note to Nest: you said the wait would be 1 to 2 hours …, manage expectations!)

We talked through the problem and he had me swap the thermostat from one floor to another. It’s relatively easy to do – but I did need to adjust the programming for both thermostats then. He promised to call me back Monday afternoon to see if things have improved (or changed at least). Of course, the issue should show up now in the basement (which is the thermostat I swapped the problem thermostat with).

Update #6Update #5Update #4Update #3Update #2Update #1Install

Nest Thermostat Review, Update #2

I’ve discussed my Nest thermostat experience a few times and am slowly becoming less convinced that it is ready for the market if you’re at all technically savvy and you’re easily frustrated by things not working the way you’d expect (like, you know how to setup e-mail on your phone).

Update #6Update #5Update #4Update #3Update #2Update #1Install

Here’s a image of the schedule for the second floor, where my computer/den is located.

image

image

On Monday and Tuesday of this week, my wife and I had the day off and were home most of the day. We spent a lot of time upstairs as her computer and crafting area is on the second floor, as is my den. So, the heat was turned up most of the day.

The “learning” mode of the thermostat decided that as we were home two days in a row, that the whole week likely was going to look like that apparently. As you can see, the same schedule was replicated through all week days. image

On a normal morning, I often go to my den and do a bit of tinkering before leaving for work. However, I rarely turn up the thermostat and instead just leave it at the preset temperature. I’m not in my den long enough to justify the amount of energy it would take to heat the second floor.

So, it’s frustrating that the thermostat would turn up the heat automatically at 9:30am, long after I’ve left for work and then run it all day long. Thankfully, after 3 hours, it apparently realizes there’s no one home, and will automatically adjust the temperature.

Since I didn’t turn the heat UP, I don’t expect to need to turn it DOWN before I leave (I leave earlier than 9:30am). (Turn it down from what?)

I could turn off the learning features. But, then one of the key features of the thermostat is turned off:

image

GregN left a comment yesterday where he mentioned that Nest support recommended to try turning of the learning feature (activating “learning pause”).

Now, I need to go fix the schedule to reflect my reality. Again.

Nest, are you listening? This is a perfect example of my user experience not matching with the expectations Nest has set.

Update (December 30, 2011)

I tweeted this post (and directed it at nest and they did respond):

image

Update (December 31, 2011)

My wife had the day off on Friday (Dec 30) and adjusted the downstairs thermostat after lunch. Apparently, the thermostat believes that’s going to be a new routine for Friday’s (at about 1:30pm, temperature is set to 68F).

Just the day before I’d fixed the schedule for every day. It’s not taking into account manual schedule changes and giving them proper weighting.

image

The learning algorithm needs some help.

Creating a simple Entity Reference system for Ember.js

I had some data stored in a structure similar to this:

image

Nothing too fancy. A table of Gift(s) and a table of Person(s). Each gift had a foreign key relationship to a Person (the person who “gave” the gift).

Since some people may give several gifts, I didn’t want to load the same data multiple times (each gift shouldn’t have the person’s name for example spelled out). I wanted to build a RESTful web service to return the gifts and persons as independent queries, with the resulting JavaScript objects being very similar to the original data storage in the database.

Using Ember.JS I built a small demonstration of one way that this could be done. I am aware of the in-progress data library for ember.js on github, but it was way more than I wanted (or needed). Furthermore, I found it more far complex than I wanted (and I’m not particularly fond of the syntax it requires). So, I created a simple system that I’ll likely expand upon over time and post here.

Here’s the very basic demo using handlebars templates (a core feature of Ember.js).

<!DOCTYPE html>

<html>
<head>
    <title>Demo2-EmberJS</title>
</head>
<body>

    <script type="text/x-handlebars" data-template-name="gifts">
      <h1>{{ giftReason }}</h1>
      <table>
          <thead>
          <tr>
              <td>Description</td>
              <td>Thrill</td>
              <td>From</td>
          </tr>
          </thead>
          {{#each gifts}}
          <tr>
              <td>
                  {{ name }} 
              </td>
              <td>
                  {{ excitement }}
              </td>
              <td>
                  {{ person.fullName }}
              </td>
          </tr>
          {{/each}}
      </table>
    </script>

    <script src="demo2/jquery-1.7.1.js" type="text/javascript"></script>
    <script src="demo2/ember-0.9.3.js" type="text/javascript"></script>
    <script src="demo2/app.js" type="text/javascript"></script>
</body>
</html>

And here is the content of app.js file referenced above (the other files can be downloaded from the web):

var Demo2App;
Demo2App = Ember.Application.create();
window.Demo2App = Demo2App;

// standard class that has an 'id' property
var Entity = Ember.Object.extend({
    id:null
});

(function () {
    Ember.entityRef = function (property, type) {
        // auto build connection if property is in the form
        // of 'typenameID' if type is not specified
        if (arguments.length === 1 && property) {
            var l = property.length;
            if (l > 2 && property.substr(l - 2).toLowerCase() === 'id') {
                type = property.substr(0, l - 2);
            } else {
                throw new Error("Type not specified, and cannot automatically determine store name. Referenced property name must end with Id.");
            }
        }
        var fn = new Function("return Demo2App.Stores.find('" + type + "', this.get('" + property + "')); ");
        return Ember.computed(fn).property(property);
    };
})();

/*
 Class definitions
 */

Demo2App.Person = Entity.extend({
    firstName:'',
    lastName:'',

    fullName:function () {
        return this.get('lastName') + ", " + this.get('firstName');
    }.property('firstName', 'lastName')
});


Demo2App.Gift = Ember.Object.extend({
    personId:null,
    person:Ember.entityRef('personId')
});


// build in a data store API
(function () {
    // within a closure, we'll store the current stores

    var stores = {};

    var Store = Ember.Object.extend({
        name:null,
        _data:null,
        add:function (obj) {
            if (!obj) {
                return;
            }
            if (!obj.id) {
                return;
            }
            this.get('_data')[obj.id] = obj;
        },
        remove:function (obj) {
            if (!obj) {
                return;
            }
            if (!obj.id) {
                return;
            }
            var data = this.get('_data');
            delete data[obj.id];
        },

        find:function (id) {
            if (!id) {
                return;
            }
            return this.get('_data')[id];
        }
    });

    Demo2App.Stores = Demo2App.Stores || {};

    Demo2App.Stores.create = function (name, options) {
        name = name.toLowerCase();
        var s = Store.create({
            name:name
        });
        s.set('_data', {});
        stores[name] = s;
        return s;
    };

    Demo2App.Stores.get = function (name) {
        name = name.toLowerCase();
        return stores[name];
    };

    Demo2App.Stores.remove = function (name) {
        name = name.toLowerCase();
        delete stores[name];
    };

    Demo2App.Stores.clear = function (name) {
        name = name.toLowerCase();
        stores[name].set('_data', {});
    };

    Demo2App.Stores.find = function (name, id) {
        var ds = Demo2App.Stores.get(name);
        var entity = ds.find(id);
        if (entity) {
            return entity;
        }
        return null;
    }

})();


var personsDS = Demo2App.Stores.create('person');
personsDS.add(Demo2App.Person.create({
    id:"123",
    firstName:"Aaron",
    lastName:"Bourne"
})
);

personsDS.add(Demo2App.Person.create({
    id:"234",
    firstName:"Bonnie",
    lastName:"Highways"
})
);

personsDS.add(Demo2App.Person.create({
    id:"345",
    firstName:"Daddy",
    lastName:"Peacebucks"
})
);

personsDS.add(Demo2App.Person.create({
    id:"456",
    firstName:"Cotton",
    lastName:"Kandi"
})
);


Demo2App.mainController = Ember.Object.create({

    gifts:Ember.ArrayController.create({
        content:[],

        newGift:function (details) {
            var gift = Demo2App.Gift.create(details);
            this.addObject(gift);
            return gift;
        }
    })
});

var giftsView = Ember.View.create({
    templateName:'gifts',
    giftsBinding:'Demo2App.mainController.gifts',
    giftReason:'Birthday 2011'
});

var moreGifts = [
    { name:'Book', excitement:'3', personId:'123' },
    { name:'Shirt', excitement:'1', personId:'234'},
    { name:'Game System', excitement:'5', personId:'123'},
    { name:'Movie', excitement:'4', personId:'345'},
    { name:'Gift Card', excitement:'3', personId:'123'},
    { name:'MP3 Player', excitement:'3', personId:'456'},
    { name:'Tie', excitement:'1', personId:'456'},
    { name:'Candy', excitement:'3', personId:'234'},
    { name:'Coffee', excitement:'3', personId:'123'},
    { name:'Blanket', excitement:'2', personId:'456'},
    { name:'Camera', excitement:'4', personId:'234'},
    { name:'Phone', excitement:'5', personId:'234'},
    { name:'Socks', excitement:'1', personId:'123'},
    { name:'Game', excitement:'5', personId:'456'}
];

var moreGiftsIndex = moreGifts.length;

$(function () {

    function addMoreGifts() {
        moreGiftsIndex--;
        if (moreGiftsIndex >= 0) {
            Demo2App.mainController.gifts.newGift(moreGifts[moreGiftsIndex]);
        }
        setTimeout(addMoreGifts, 2000);
    }

    giftsView.append();
    addMoreGifts();
});

Here’s a few details about the JavaScript code. #1, it’s got very little in the way of error checking. I’ll add that later. And if you use it, you should add it. :)

Recall the simple data model with each gift having a foreign key reference to a person. If you look at each Gift, it contains keys that mirror the DB: name, excitement, and personId. All 3 are handled as strings. The Person class has an Id, lastName, and firstName.

When creating the Ember Gift class, I made a connection to the Person class using a new function I added called entityRef.

Demo2App.Gift = Ember.Object.extend({
    personId:null,
    person:Ember.entityRef('personId') // [3] 
});

As you can see on line [3] above, a person property is declared not with a value, but as a function. Ember.js includes support for computed properties which, when properly used, return a computed value and can be automatically updated when a dependency is established between the function and the values the computed property requires. Following is the code for the entityRef function.

(function () {
    Ember.entityRef = function (property, type) {
        // auto build connection if property is in the form
        // of 'typenameID' if type is not specified
        if (arguments.length === 1 && property) {   // [1]
            var l = property.length;
            if (l > 2 && property.substr(l - 2).toLowerCase() === 'id') {
                type = property.substr(0, l - 2);
            } else {
                throw new Error("Type not specified, and cannot automatically determine store name. Referenced property name must end with Id.");
            }
        }
        var fn = new Function("return Demo2App.Stores.find('" + type + "', this.get('" + property + "')); ");
        return Ember.computed(fn).property(property);
    };
})();

Thankfully, the entityRef function doesn’t need to do much, and much of what it does is make it easy to make a connection automatically between the local data store and the source property by using a simple naming convention.

Starting at [1], the code makes a simple attempt at doing an “auto-map” when a type isn’t specified specifically. In this case, when “personId” is passed to the function, it chops the “Id” off and uses “person” as the name of the data store automatically. It doesn’t validate the name or anything sophisticated (as I said, it’s light on error checking), but it works when everything is specified correctly. In this case, there’s a “person” data store created in the JavaScript code created a little bit later.

var personsDS = Demo2App.Stores.create('person');

Once the data store type name is located, it creates a new function which returns the object by Id stored in the named data store. That function is wrapped in an Ember computed function, and then the dependency on the “personId” is established. Both of these features are core to the Ember JavaScript library (check out the Ember JavaScript library web site for more information). While they may look a bit strange if you’re not familiar with Ember, trust me, they’re perfectly normal. :)

The remaining code is standard Ember JavaScript code with the addition of a simple data store object that manages objects by Id.

Have fun!

(And if you haven’t transitioned from the earlier SproutCore 2.0 betas to Ember, this code should work with a tiny bit of namespace fixing).

Nest Thermostat Review, Update #1

After a few weeks of using the Nest thermostat, I’ve got a few more comments that I’d like to share. (Here’s my post about the installation).

The learning feature honestly hasn’t been very useful in the first few weeks. It’s apparently easily confused by days that you’re home unexpectedly (for example, a holiday or vacation). If these days are early in the learning process, it makes some very poor choices as to when to activate the HVAC system. I’d recommend not installing it during periods of very inconsistent schedules for this reason.

image

It doesn’t have a “I’m on vacation today” mode which would be extremely useful and ideally would help while it’s learning (and other days).

In a recent update, Nest made it significantly easier to manage the schedule of a day from the web site – by being able to copy the settings from one day to another:

image

I found the variations in the early learning to be not helpful as we didn’t arrive home at the same time every day, so I mirrored all of the week days for now to better reflect our typical schedules. (And to be clear, the thermostats each reported that they’d “learned” enough to start doing the work automatically before I started making manual adjustments).

I had the expectation that the thermostat would begin to predict when we wanted a specific temperature and start adjusting for it. For example, if we arrive home at 6pm, we want the house to be nearly completely warmed to our preferred temperature (69F) at that time. Not start warming at 6pm. In colder winter months of southern Wisconsin, it takes about 45 minutes to increase the house’s temperature by 9 degrees from the away temperature we’ve set of 60F.

Unfortunately, it doesn’t seem like Nest performs that function. It has the right data – and a simple behavior switch is all it would take. I’d love to see it added. The thermostat already has an estimate of how long it takes to reach a certain temperature, so it could activate the HVAC system more intelligently than traditional programmable thermostats.

So for now, I’ve manually adjusted the schedule to better reflect our requirements. We don’t need too many temperature adjustments during an average day. In fact, most programmable thermostats can meet our needs when it comes to the basic requirement of a scheduled temperature adjustment.

We’ve not used the ‘auto-away’ feature yet successfully. By that I mean the thermostat can detect that you’re not at home and automatically set the temperature to the “away” temperature. One day, it reported auto away when we were still home. I’m not sure why as we’ve got 3 Nest thermostats, one on each floor, and I’m convinced we’d walked in front of one of them very frequently during the day.

I’ve seen this problem more than once with the thermostats:

image

It’s never been the same thermostat, and I’m 100% confident that each of the Nest thermostats is always within a strong WiFi signal.

image

When I noticed the problem this morning (right as I was about to write this blog post), I took a snapshot of the screen and went down to our basement to see if the thermostat was reporting an error. It was not. I went through the settings to see when it had last connected to the “Nest Cloud” and it claimed it had just done that. When I returned to the computer, the web site had updated and did not report any errors. I don’t know what to make of that issue and will continue to watch for patterns to the problem.

The mobile applications are functional. I’ve forgotten we have them though and fail to take advantage of them consistently. Yesterday, we missed an opportunity to remotely adjust the temperature of the home before we arrived after being away for several days in Chicago. It would have been nice to return to a warm home. :-)

I’ve written Nest support once making a few suggestions about their web application – some things that were bugging me. Unfortunately, no human responded (just an automated response). I am disappointed by that. It’s very low effort to paste in a “thanks for your feedback” type of a response and hit send. Nest as a company likely could live and be successful on their technology and devices. But, to thrive, they need awesome customers. Right now, they have not gotten customer service figured out. I also pinged their Twitter account asking for an RSS feed on their blog (seriously! they don’t have one) and they responded they were working on it. I know how hard it is to setup a blog these … WHAT?! They should be scouring the Internet, looking for positive and negative feedback and reacting to it.

I want to be excited about this type of technology. It has promise. Since heating and cooling costs so much these days, I want to be more efficient about how we spend money on heating and cooling and how we use non-renewable resources. The Nest thermostat is most certainly a new way of thinking about the user experience of a normally mundane and ignored device in the home. Having owned a (Radio Thermostat) Filtrete Touch-Screen programmable thermostat with WiFi (on Amazon for around $100), I can attest to the horrible user experience of some of the alternatives.

However at $249 USD each, I remain neutral to negative about this product. While the geek factor is high, and the usability and user experience of the product is very well done, it’s a very expensive thermostat for the home. The Radio Thermostat I mentioned above, while it’s difficult to setup, has most of the same features and is $150 less. The Radio Thermostat is not particularly attractive, but it would be a conversation starter in most homes. The Nest definitely would be.

For less than $50US, it’s easy to obtain a decent programmable thermostat. I’ve bought them many times over the years for various locations, including some apartments we were living in.

Final words of advice/feedback for potential Nest owners now:

If you have a decent programmable thermostat already consider whether it’s worth an additional $250 to:

  • Frequently remotely adjust the temperature of the house
  • Have more than the 5 to 7 daily adjustments you’re allowed by typical programmable thermostats
  • Have a thermostat which could theoretically save you money by detecting you’re not at home (if you have a location for the thermostat which makes it possible to detect you being home/away).
  • Have a glitzy color thermostat that doesn’t show the time on it when you walk by (still missing that feature)
  • Encourage you with a small green leaf to turn up/down the temperature to save you money (yes, it’s weak)
  • Have a topic to talk about with your friends (“Hey! I got a new color thermostat”)

If you already have a decent programmable thermostat and were conscious of when you needed to adjust it (hold) based on unexpected scheduled changes, save your money and wait for something cheaper unless you really need the features above.

I remain very skeptical whether we’ll recoup the costs of the units in energy savings.

If you feel otherwise about the thermostat (or agree), speak up! I’d like to see what the other early adopters think about it. I’ve read some stupidly excited tweets/posts about the product that are often: “OMG! It’s a programmable color thermostat! OMG! Love it!!” Yeah. My phone doesn’t have wires and also has a color screen. Smile

My Nest Thermostat installation experience

imageAfter the amazing mad dash for the Nest thermostats when they were first made available for pre-order, I ordered three thermostats for our home from Best Buy (as Nest.com had sold out). We’ve got a three zone heating system, and I wanted to replace all at once (as the system works as “mesh” to learn habits, if people are in the house, etc.).

Our order wasn’t scheduled to ship until January/February of 2012, so I was pleasantly surprised by their early arrival.

It’s evident that Nest has paid careful attention to the entire experience of purchase and installation as you’ll see. I can’t think of another appliance in our home that has come close. Hopefully, other manufacturers are starting to take notice that as consumers, we don’t want everything sealed in a nearly impossible to crack open plastic casing.

20111218-IMG_0095

20111218-IMG_0096

20111218-IMG_0098

20111218-IMG_0097

More consumer electronics packaging is slowly becoming part of the product experience. Apple deserves credit for being a consistent proponent of the packaging being part of the product purchasing and initial “ownership” experience.

The Nest thermostat is no different.

20111218-IMG_0113

Opening the top immediately reveals the product. There’s no drama here, just a thermostat (covered in a plastic shell to protect the case from scratches).

20111218-IMG_0116

The top of the box has a mold to keep the thermostat safe and secure. It’s glued to the top so it too stays out of the way of “product.”

20111218-IMG_0117

No annoying twist ties or anything here .. the thermostat is easily removed from the box. In fact, make sure you don’t drop it as there’s nothing holding in the box.

20111218-IMG_0118

Under the bottom mold for the thermostat is a small color welcome packet and B&W installation instructions.

20111218-IMG_0120

When you pull out the instructions, you’ll find the remainder of the installation parts. Inside you’ll find a mini multi-bit screwdriver, the installation base, a few screws and drywall anchors, and the optional wall plates.

20111218-IMG_0122

I had the (unfortunate?) need of 2 of the different sizes of wall plates to make installation easier.

20111218-IMG_0123

The multi-bit screw driver was a nice touch. My only suggestion to Nest would be to investigate making the screwdriver have a slightly more “grippy” exterior. I found in a few cases where screws were overly tightened that the screwdriver rotated too freely in my hand.

20111218-IMG_0125

As is very typical of home thermostats, Nest has included a set of stickers for the various wires you might encounter during installation. At first I read through the instructions and then went hunting through the paperwork looking for a loose set of stickers.

In fact, they’re part of the instructions and I had completely overlooked them! I’ve installed more than my fair share of thermostats over the years, and found that the ones that are labeled and colored are the nicest. The blue, while attractive from a design perspective, just isn’t as nice. If you have more modern house, it’s likely that the color of the wires match the connections, so the stickers may not be needed. While our HVAC wiring did have the modern wiring, I still use the stickers, just to make certain everything is properly connected (as I’d rather not have to call a HVAC specialist out to our house to get the HVAC working again!).

20111218-IMG_0127

First step is to turn off the furnace. Don’t leave it on. Either kill power at your electrical panel or at the furnace itself. Many furnaces/HVACS have a power switch on the furnace itself which you can use and may be more convenient. In either case – make sure you’ve turned off the power.

To remove a thermostat, you’ll likely need to remove a few screws and maybe a wall plate. I found that the included screwdriver wasn’t long enough to reach the screws of the old thermostat, so you may need an extra (the included Nest screwdriver was still handy for removal of the wires from the older thermostat).

20111218-IMG_0129

After removal of the wall plate and old thermostat, you may be greeted by a giant “HEY, I SUCK AT CUTTING A HOLE IN DRYWALL BUT YOU’LL NEVER NOTICE YOU STUPID HOMEOWNER” hole like I was when removing the old thermostat. If you’re as handy with drywall repairs as I am, you’ll be thankful that Nest included some wall plates.

I labeled each of the wires using the enclosed stickers and then removed the wires from the thermostat.

Be careful to not allow the cable to fall back into the wall! If the wires are stiff, you can wrap a few loose wires around a pencil or pen which should help prevent the cable from sliding back into the wall. (Or if the wires aren’t stiff, consider a piece of tape, a pencil, and the wires to be a reasonable alternative).

20111218-IMG_0130

Next, you’ll want to see what you might be up against behind the wall. During installation of two of our new Nest thermostats, I found that the best location for the thermostat meant that one of the screws would line up with a wall-stud behind the drywall. If you weren’t blessed with a giant freaking hole like in the example above, do a bit of gentle prodding with a screwdriver to see if there are any unexpected obstacles. Use a stud finder if necessary.

20111218-IMG_0134

For one of the installations in our house, I needed to use the long drywall screw to accommodate the thickness of the Nest thermostat mount, wall plate, and drywall into a stud. It’s a 2 inch screw. Without it, the screw wasn’t deep enough to hold the thermostat securely to the wall. I found that although the screw-head of the drywall screw was larger than the original screw included, it didn’t cause any problems when the main unit was connected to the base.

If you’re using the included drywall anchors, do the right thing and predrill. While I predrilled the hole, it wasn’t large enough to allow smooth entry, and it quickly stripped the anchor’s Phillips screw head. I had to use some electrical pliers I had in my tool bag to remove the partially set wall anchor (thankfully, I was able to just twist it slowly out).

20111218-IMG_0135

Thankfully, I had a replacement wall anchor available that nearly matched the original, yet was a bit stronger and better made. So, a second attempt worked without a hitch.

You’d think I’d learn my lesson … however, I proceeded to wreck the second drywall anchor just as quickly as the first. Again, a replacement with a better made anchor did the trick. As you may not have replacements, be more careful than I. Don’t expect them to work well without predrilling. Note to Nest: your included drywall anchors suck and you saved money in the wrong place. The bulk package of plastic anchors I already had on hand were far better. I’d suggest considering metal ones instead – I’ve got some of the those – and they rock! (However, they were slightly too large for this installation, otherwise I would have switched to them without hesitation).

20111218-IMG_0147

I used the square plate to cover the giant hole in the drywall and then connected the wires. As this was my third thermostat installation, getting the wires in place on this unit was much easier than the first two. I’d like to think it was “experience,” but I’m actually going to say it was a bit of luck. On the second unit, I struggled getting the 24V “C” wire connected successfully. Each time I pushed it in … it would pop back out. It was bad enough that I thought it was connected and then not until I had installed everything did I notice that the thermostat reported that I hadn’t connected the “C” wire.

(Note, the “C” wire is very important, as it’s where the Nest thermostat draws power for the unit and without it, you may have a less than stellar experience).

20111218-IMG_0136

I’d made sure that the “C” wires were powered before beginning the installation (I actually had to add the connection myself to the furnace).

Here’s with the wires connected. If you’d wondered how you’d level a round object like this – no worries! There’s a small “level” at the top of the Nest thermostat which makes leveling a breeze (right below the nest logo in the photo below)!

20111218-IMG_0138

I snapped the front of the unit onto the base carefully and then turned on the power to the furnace again.

A few moments later, I could see a tiny green light in the lower right corner of the thermostat and the screen activated. It’s a really great touch to the over all experience that the screen is round like the device.

20111218-IMG_0139

It takes a few minutes for the device to begin the setup process.

20111218-IMG_0140

The device has a tiny speaker so, it makes a few little “clicks” as it nears readiness.

20111218-IMG_0141

As you’ll see throughout the installation, the Nest thermostat has a very simple and elegant user experience. It’s not got much flourish, … just clean lines and a simple UI. Very pleasant. Thankfully, no EULA! :)

20111218-IMG_0143

You’ll only need to do this once ideally – setup of the Internet wifi connection. Our home’s wifi password is sufficiently complex and was particularly annoying to spin, click, toggle, spin, click…. But, it’s done with. I can’t think of a better way to do this that wouldn’t take just as much time. To select a number or character, spin the outer frame, and then “push” the frame to select. That’s really the only input the device takes from the user. Spin and click. Nice.

20111218-IMG_0144

As soon as the wifi is connected, it downloads an update. It took about 5 minutes to download the update, install the update, “backing up software” and reboot.20111218-IMG_0146

20111218-IMG_0148

20111218-IMG_0153

20111218-IMG_0154

I don’t know what “Backing up software” is doing. I hope the “Cloud” is involved somehow because that makes all Internet things better. :)

20111218-IMG_0155

This was a very nice touch – an image of the connections I made. On the second unit I installed, this was key to my discovery that the “C” wire had become dislodged already!

20111218-IMG_0156

In order to receive the time and temperature, your zip code is needed.

20111218-IMG_0157

20111218-IMG_0158

If you’ve got more than one thermostat, you’re asked for a name for each thermostat. It’s got a few reasonable defaults. You can do a custom name if you’d like directly on the unit, or later on the web site.

20111218-IMG_0159

20111218-IMG_0160

20111218-IMG_0161

The thermostat asks if it should start in heating or cooling mode:

20111218-IMG_0162

I don’t know if the unit tries to make an educated guess based on the outside temperature (obtained by using the Zip code provided earlier), or if it always defaults to heat.

20111218-IMG_0165

OK-doky.

20111218-IMG_0166

Done!

One setting I‘d immediately suggest is going to settings (push the display once, spin to “SETTINGS”) and changing the “BRIGHTNESS” to auto. Just spin the outer wheel until you find the BRIGHTNESS setting and then push to toggle through the options. It defaults to medium which was much too bright at night in a darkened hallway.

20111218-IMG_0169

 

20111218-IMG_0167

After completion of installation, set the temperature as desired.

Here are some things I learned:

  • The display activates when it detects nearby movement.
  • It shows the current set temperature in the “large” font size and the current temperature in a very small font (and graphically). I’d prefer if the current temperature was made slightly larger for at a glance reading. During heating seasons, I don’t care so much about that, but I know that I use the “current temperature” far too much during the “cooling” season to decide how freaking hot the house is and whether it’s finally time to turn on the air conditioning.
  • There’s no on-screen clock. I’m amazed how much I relied on the clocks on the thermostats for knowing what time it is (or at least a confirmation of what time it is). I miss that already. They easily could add that and would love to see it added.
  • Predrill for the screws (both the drywall anchors and other screws). You’ll be more successful and end up less frustrated.
  • Expect that it will take you longer than you’d thought. It took between 30-60 minutes per thermostat to install. If you hit a problem (like a wall stud for example), you may find it takes longer. In fact, you might want to remove the old thermostat by removing the wall mount before you even start to see what you might be up against – in case a trip to your local hardware store might be necessary.
  • Install power to the unit (the “C” wire).
  • Be careful and go slow.

Download the app for your iPhone or Android device and enjoy remote control of your HVAC system!

You may also use their web site to adjust settings, temperature, etc. You can even change the name of the thermostats (in a multi-thermostat dwelling at least).

image

The web app shows the current set temperature and the current temperature.

image

Not that here they did the same thing and put the current temperature on the spinning gauge of the dial. It’s more difficult to read there than it should be. I don’t know why Nest considers the current temperature so unimportant.

UPDATES:

Update #1, Update #2, Update #3, Update #4, Update #5, Update #6

 

I took many of the nest box photos in a white portable photo box with my iPhone 4S (all photos were taken with the iPhone). Our Ragdoll cat thought it was great fun, so I’m including a few obligatory pet photos. I’m amazed by the quality of the camera (especially the second one)!

20111218-IMG_0102

20111218-IMG_0111