Jump to content

How to send email if tstat set point changed at tstat


62vetteefp

Recommended Posts

Posted

Is there a way to have ISY send an email if the temperature set point is changed at the tstat?

 

Just cannot figure out the IF statement.

 

The closest I can figure out is below but does not work:

If

Control 'Upstairs Thermostat - Heat Ct' is switched On

 

Then

Send Notification to 'Chris email'

 

Else

- No Actions - (To add one, press 'Action')

Posted

Without setting up a bunch of back end stuff, the simplest one would be to check the value of the current SPs vs what the ISY thinks they should be.

 

If
       From     9:30:00AM
       To       9:30:00PM (same day)
   And (
            Status  'Thermostat- Main' is not 65° (Heat Setpoint)
         Or Status  'Thermostat- Main' is not 75° (Cool Setpoint)
       )

Then
  - No Actions - (To add one, press 'Action')

Else
  - No Actions - (To add one, press 'Action')

 

You would set one of these up with your notify programs as the THEN action for each of the scheduled SP changes that the ISY makes.

 

 

There is a way, with a bunch of programs, to read / write variables to the TSTAT, and in this case you could just compare if the SP is different then what it was set to, using variables. A future update will add direct variable support, and then it will be much easier to accomplish.

Posted

At our house, instead of a notification, we 'walk' the set points back to where they should be.

 

Example, if the schedule has the cooling set point at 75, and someone was to lower it to 71 then:

 

If Schedule Logic Here 
AND Cooling Set Point < 70

Then 
Wait 1 Hour
Set Cooling Set Point to 70

If Schedule Logic Here 
AND Cooling Set Point = 70

Then 
Wait 1 Hour
Set Cooling Set Point to 71

If Schedule Logic Here 
AND Cooling Set Point = 71

Then 
Wait 1 Hour
Set Cooling Set Point to 72

 

and so on.

Posted

Thanks, I can see how that would work.

 

However I have 3 tstats running 3 different programs each and multiple days/times within these programs.

 

To set that up would be mind boggling for me!

 

I was thinking that when the setpoint changes it does tell ISY in the log and somehow that action could notify me.

Posted

I do what you want with 2 state vairables. You'll get a email like this Temp Change - 68 >> 69

 

Varables

 

M1_Temp_S (what is is set now)

M1_Old_Temp (what was the old setting)

 

 

 

Program

 

If

$M1_Temp_S is not $M1_Old_Temp

 

Then

Send Notification to 'emai-address ' content 'Temp change'

Wait 2 seconds

$M1_Old_Temp = $M1_Temp_S

 

Else

- No Actions - (To add one, press 'Action')

 

 

Temp Change (add in customizations)

 

Temp Change - ${var.2.3} >> ${var.2.2}

 

 

I'm guessing you would have to do the variables & programs 3 time customizing for each thermostat

Are you use the elk-M1 with z-wave thermostats ?

Posted

Is M1_Temp_S something you made up or some kind of value for each thermostat?

 

And wouldn't an email get sent every time the tstat set temp changed, even if changed by the ISY program?

Posted
Thanks, I can see how that would work.

 

However I have 3 tstats running 3 different programs each and multiple days/times within these programs.

 

To set that up would be mind boggling for me!

 

I was thinking that when the setpoint changes it does tell ISY in the log and somehow that action could notify me.

 

It does, but this is not something that currently the user can access. As in, the ISY knows when the SP is changed, and it updates a system level variable for what the new SP is. You can only compare that number against other numbers; and not variables.

 

UD is planning on releasing an update that will allow us to directly read these variables. In this case it will be easy to do what you want. Until then you will have to work around the issue.

 

As to mind boggling for the first recommendation; you can really break it down into a system of programs that is easy to understand. This is true because we can actually check programs to see if they are true or false.

 

So, your structure:

- First make a new folder called TStat One (or whatever you call it)

- In here make a program for each schedule with nothing in the Then/Else section.

- Name these (long names) something like Tstat - One - Schedule - Weekday - Morning

If
       On Mon, Tue, Wed, Thu, Fri
       From     9:10:00AM
       To      11:10:00AM (same day)

- Now COPY this program, rename it and change what needs to be changed (such as making it the evening schedule)

If
       On Mon, Tue, Wed, Thu, Fri
       From    11:10:00AM
       To       9:10:00AM (next day)

- Once you are done making all the schedule only programs, redo this process for your 2nd and 3rd tstats.

- Now you will have all the programs to compare to see if you are running a particular schedule.

- Next, make new programs in all the folders with your temperature range in there, name these Tstat - One - Range - 65 to 80

If
       Status  'Thermostat- Main' is 80° (Cool Setpoint)
   And Status  'Thermostat- Main' is 65° (Heat Setpoint)

- You'll do this for each temperature range you use, I'll add a second one called Tstat - One - Range - 65 to 70

If
       Status  'Thermostat- Main' is 70° (Cool Setpoint)
   And Status  'Thermostat- Main' is 65° (Heat Setpoint)

- Again, redo this for all the other Tstats.

 

 

 

- We now have all the schedules and ranges set up, for all three TStats; and they are easy to glance at to see if one is missed; or even edit a range or schedule if you change them.

- Now we will create a notification program for each TStat.

- In this we will use several nested and blocks. Essentially each nested And Block will have a Schedule and a Range.

- We will be using the Else command to send the notification.

- Here is the Tstat - One - Notify program

If
      -(
      |     Program 'Tstat - One - Schedule - Weekday - Morning' is True
      | And Program 'Tstat - One - Range - 65 to 70' is True
      -)
    Or-(
      |     Program 'Tstat - One - Schedule - Weekday - Evening' is True
      | And Program 'Tstat - One - Range - 65 to 80' is True
      -)
    Or-(
      |     Status  'Thermostat- Main' is 1° (Heat Setpoint)
      | And Status  'Thermostat- Main' is 1° (Cool Setpoint)
      | And Status  'Thermostat- Main' is 1° (Temperature)
      -)

Then
  - No Actions - (To add one, press 'Action')

Else
       Wait  1 minute 
       Send Notification to 'Admin' content 'House Out of Bounds'

 

Since we named all our programs something reasonable, this final program is very easy to understand what it is looking for. We want to send an email when none of the schedules and temperature ranges match up.

The last 3 conditions should never be true, but because we called them in our IF block, this program will run whenever the Temperature, Heating SP or Cooling SP change.

 

I should note, that you can re use any of the programs. In this way, if your Weekend Morning Temperature Range is the same as the Weekday Temperature range, but they start at different times;

- You would have your And Block look like:

If   (
    Schedule - Weekend Morning is True
    Range - 65 to 75 is True
    )
Or  (
    Schedule - Weekday Morning is True
    Range - 65 to 75 is True
    )

Posted

Another way to tackle the situation comes into play if you use the ISY to set your schedule.

 

This is because we can actually enable and disable programs from within a program. Assuming you do use the ISY to set your schedules and SPs; modify your program to include the following:

If
       On Mon, Tue, Wed, Thu, Fri
       From    11:10:00AM
       To       9:10:00AM (next day)

Then
       Disable Program 'Tstat - One - Notify'
       Wait  30 seconds
       Set 'Thermostat- Main' 75° (Cool Setpoint)
       Set 'Thermostat- Main' 65° (Heat Setpoint)
       Wait  30 seconds
       Enable Program 'Tstat - One - Notify'

Else
  - No Actions - (To add one, press 'Action')


 

In this way, our Notification Program is disabled before, and enabled after, any ISY Scheduled SP Changes.

 

Our notification program is:

If
       Status  'Thermostat- Main' is 1° (Heat Setpoint)
   And Status  'Thermostat- Main' is 1° (Cool Setpoint)

Then
  - No Actions - (To add one, press 'Action')

Else
       Wait  1 minute 
       Send Notification to 'Admin' content 'House Out of Bounds'


This program will only get called if the Heating SP or the Cooling SP changes, for any reason; and it will essentially always be false. Because we disabled it before, and enabled it after an ISY SP change, it will not run when the ISY changes SP. It will only run if the SP is changed by something other than the ISY.

 

Edit: I should note that the above program will run when you Query your TStat, such as the 3am Query. To get around that you can add a range around the 3am time in the IF block of the notify program. That way it is TRUE during the Query and won't run the Else statement.

Guest
This topic is now closed to further replies.

×
×
  • Create New...