Jump to content

Control your Nest Thermostat with the ISY *Multi-Thermostat*


abuttino

Recommended Posts

Posted

**************************

Weather data: Temperature, Weather Conditions (number coded, read below), heat index, length of day and, request data from ISY.

 

With each of the items listed above, you will need to add a variable to your ISY Variable table if you don't currently have them. Then follow the instructions below.

 

All major weather conditions are coded in numbers:

Clear = 0

Partly Cloudy = 1

Mostly Cloudy = 2

Drizzle = 3

Rain = 4

Snow = 5

Thunderstorms = 6

 

If you want to turn a light on several minutes before sunset if the weather is "dark" you could set a program like this:

if:

WeatherCondition > 2

AND

It's 2 hours and 30 minutes before sunset

Then:

Turn L/R Lamp to 40%

 

All the rest of the weather objects are pretty self-explanatory, feel free to use these in any programs you'd like.

My new favorite program is:

If

$Ambient_Temp is not 0

And $AtHome is not 0

And $Sleeping is 0

And From Sunrise

To Sunset (same day)

And (

$Outdoor_Temp > 89

Or $Heat_Index > 99

)

 

Then

$Temp_Difference = 0

$Temp_Difference -= $Set.Temp

$Temp_Difference += $Ambient_Temp

 

Also, the program to read the temperature difference:

If

$Temp_Difference > 1

 

Then

$Set.Temp += 1

$Temp_Difference = 0

***************************

The new and old news......

 

Currently, there is no official API with the Nest Thermostat. However, that hasn't been inhibiting development on other platforms.

 

Yesterday, I finalized some macros to use with EventGhost and a specialized ISY plugin that I modified to allow control of your Nest Thermostat. This plugin watches the ISY's events and, the macros I wrote translate these into ways to control your Nest thermostat.

 

Any experienced person with Python knowledge could easily alter this script to watch for other variable changes but I'm not going to go into that.

 

So, here we go!

 

 

  1. To start with, download EventGhost from
http://eventghost.org.

 

  • Next download the "NestISYv80" zip file from
http://www.tinozplace.com/Nestv80.zip, then extract it a new folder.
 
Posted

Home/Away is definitely doable...

 

The scripts are attached to this post..

 

In the "Read ISY Event" Python Script, you need to change "if VarNum == "1":" to the variable number that you have for your home/away status

 

In the "Set Away Status to Nest" Python Script, you'll need to change:

 

if awaystatus == "0":

eg.plugins.Nest.set_away(1)

 

You need to change the awaystatus == "0": to your value when you are away from home

 

And here:

 

if awaystatus == "1":

eg.plugins.Nest.set_away(0)

 

You need to change the awaystatus == "1": to your value when you are at home

 

Done!

-------------------------

 

I had a feeling that someone would ask for this, and it was easy in comparison to the things you can actually do with that Nest Plugin.

 

 

 

I hope you enjoy it.

Posted

Thanks for the updated script. For some reason I still can get it to toggle between home/away. Does the variable have to be a 'state' or an 'integer'? Currently I have it as a state with the variable ID of 8. I updated "if VarNum == "8":" as directed. When I toggle the variable between 0 and 1 nothing happens to the state of the Nest (and yes in-between toggles I wait a minimum of 5 mins).

 

Looking at the log it appears everything is communicating ok. I'm getting a constant stream of Insteon.command and Insteon.heartbeat from the ISY, and I get the "Login to Nest Successful" entry. Also when I change the variable I get "Insteon.Command 'VAR 2 8:1'" or "Insteon.Command 'VAR 2 8:0'" depending if its a 1 or 0.

 

In the Nest plugin settings I have the 'device' set to 0 by default. Do I need to set it to something else? I only have 1 Nest.

 

Any help would be much appreciated... I feel like I'm getting close!

Posted

You have the prefix set wrong on the ISYPlugin...

 

Open that plugin up and at the bottom, you'll see "Insteon" for the prefix, change it to ISYEvent

 

After that, you are good to go :)

Posted

Take a look at all the things the Nest plugin can do..

 

If you want a quick python script:

 

Change object 38 to your desired object (obtained from the nest plugin)

 

testvar = str(eg.plugins.Nest.get_object(38))

print testvar

 

that will print (on the log) any of the values.. If you try to execute them on their own you don't get a returned value

  • 1 month later...
Posted

There was a new plugin version and I reprogrammed the scripts to allow control with this version.

 

There has also been extensive editing done to the original post. Included new method for new/non users of EventGhost.

Posted

If you have an "at home" variable that is triggered by a geofence (AutoLocation with Tasker on Android or MobiLinc and an iPhone) you can use that variable to set away mode on the thermostat when the variable reaches a point that you aren't home.. Mine would be AtHome=0

 

I would be more then happy to help if you'd like. If you have Android, I'm very experienced with that, if we run into issues on an iPhone, we can always ask InsteonNut for help.

 

I also wrote a script on eventghost for away mode triggered by a non-pingable IP address if you'd like to go that route.

 

Sent from my DROID RAZR HD using Tapatalk

Posted

abuttino, thanks for the quick reply. I'm still kind of blurry on the details in setting up the away mode with the Nest. I have a "Home" variable configured in Mobilinc HD with geofencing that opens my garage door, and depending if it's day or night, turns on/off some my lights. I just got that working today after reading some helpful tips in this forum, and that's when I found your cool eventghost setup. I followed your step by step and have the Set_Temp and Ambient_Temp variables working. I would like to have the Nest's away mode control my lights when I leave and return. Do I need to make another state variable for away mode?

Posted

Good.. And now the answer to your question :)

 

Yes, you make another State variable. Then edit the next to last line to reflect the actual number of the variable and the variable value.

 

Do you understand Python?

 

Sent from my DROID RAZR HD using Tapatalk

Posted

Here is the translation...

 

In that Away line on the next to last line of "ISY Event"; the VarNum is the ISY variable number you assigned to awaymode. The VarVal is the actual value that states you are away.

 

Sent from my DROID RAZR HD using Tapatalk

Posted

Not a problem. If you know anyone with a Nest and an Android, please tell them about my widget!

 

Edit

 

Sent from my DROID RAZR HD using Tapatalk

  • 3 weeks later...
Posted

I use Windows Server 2012, I've also used a Windows PC. Doesn't matter as long as it isn't a mac.

 

Sent from my DROID RAZR HD using Tapatalk

  • 2 weeks later...
Posted

This plugin is great. Thank you for this.

 

My iSY to Nest is working and Nest to ISY too.

 

Is it possible to set the target and ambient variables so the ISY receives the temp with the decimal?

 

Thanks again.

Posted

Is there a way to run eventghost remotely and log into the ISY? I've got mine trying to authenticate over port 443 but it will not log into the ISY.

 

Any suggestions?

 

Thanks

Guest
This topic is now closed to further replies.

×
×
  • Create New...