Jump to content

vacation setting without a vacation button


62vetteefp

Recommended Posts

I set up my switch for the fast off and fast on. I can change the variable state to 1 (per the ISY program status) which should set all tstats to 60. However the tstats do not change. The variable did change to 1 but in the event log viewer I get:

 

Thu 02/20/2014 07:50:25 AM : [iNST-SRX ] 02 50 24.7A.16 00.00.01 CB 13 00 LTOFFRR(00)

 

Thu 02/20/2014 07:50:25 AM : [std-Group ] 24.7A.16-->Group=1, Max Hops=3, Hops Left=2

 

Thu 02/20/2014 07:50:25 AM : [ 24 7A 16 1] DOF 0

 

Thu 02/20/2014 07:50:26 AM : [iNST-SRX ] 02 50 24.7A.16 00.00.01 CB 13 00 LTOFFRR(00)

 

Thu 02/20/2014 07:50:26 AM : [std-Group ] 24.7A.16-->Group=1, Max Hops=3, Hops Left=2

 

Thu 02/20/2014 07:50:26 AM : [iNST-DUP ] Previous message ignored.

 

Thu 02/20/2014 07:50:26 AM : [iNST-SRX ] 02 50 24.7A.16 13.00.01 CB 06 00 (00)

 

Thu 02/20/2014 07:50:26 AM : [std-Group ] 24.7A.16-->13.00.01, Max Hops=3, Hops Left=2

 

Thu 02/20/2014 07:50:26 AM : [iNST-INFO ] Previous message ignored.

 

MY VARIABLE SET PROGRAM

If

Control '24.7A.16.1 outside driveway' is switched Fast Off

And Control '24.7A.16.1 outside driveway' is not switched Fast On

 

Then

$S.vacation = 1

 

Else

$S.vacation = 0

 

MY VACATION FOLDER/FOLDER

 

Folder Conditions for 'Vacation / Away'

Add conditions to limit when programs in this folder are allowed to run.

 

 

 

If

$S.vacation is 1

 

Then

Allow the programs in this folder to run.

 

 

If

- No Conditions - (To add one, press 'Schedule' or 'Condition')

 

Then

Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint)

Set 'Master Thermostat - Main' 60° (Heat Setpoint)

Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint)

 

Else

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

 

 

Am I missing something?

Link to comment

I moved the 3 line program setting the tstats to 60 out of the folder and added the variable if statement to it so it is now part of the MY Programs base folder. It now works.

 

What was I doing wrong? Seems like it should have worked.

 

If

$S.vacation is 1

 

Then

Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint)

Set 'Master Thermostat - Main' 60° (Heat Setpoint)

Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint)

 

Else

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

Link to comment

Now I am trying to make it so when I FAST ON, the tstats resume their normal schedules. I modified the program by adding the Or statement thinking it would force the tstats to change. However the programs seem to not be running until the change times happen in the programs. How do I force the tstats to run the corresponding part of their program during the time? Do I need to modify the tstat programs with a time from ***** to ****** statement? Would htat do it? A better way?

 

Folder Conditions for 'Thermostats'

Add conditions to limit when programs in this folder are allowed to run.

 

If

$S.vacation is 0

Or Control '24.7A.16.1 outside driveway' is switched Fast On

 

Then

Allow the programs in this folder to run.

 

 

Sample tstat program

If

On Mon, Tue, Wed, Thu, Fri

Time is 3:45:00PM

Or On Sun

Time is 11:00:00AM

 

Then

Set 'Kitchen Thermostat-Main' 68° (Heat Setpoint)

 

Else

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

Link to comment

Using If Control as a Folder condition does not work. If Control is looking at the command flowing from the device. That would be True only for the small time the command is actually received. That would be used in a Program rather than a Folder.

 

The second Off command appears to be a duplicate message to the ISY and is ignored. The third message (second that is marked ignored) is an I2CS message reflecting the state of the Group message sequence when the button/paddle is pressed. It is not a functional message.

 

On insteon.com there is an insteondetails.pdf document that describes many of the internals of Insteon messages.

Link to comment
Using If Control as a Folder condition does not work. If Control is looking at the command flowing from the device. That would be True only for the small time the command is actually received. That would be used in a Program rather than a Folder.

 

 

Which commands can I use in a folder?

 

variables? status? ?????

Link to comment

Variables and Status are fine as Folder conditions.

 

If Status xxxx On

 

If $xxxx = 4

 

The If Control is checking the command that has just flowed from a device. It would be True only for the instant that the command reaches the ISY. Otherwise the If Control result would be False, not what is needed for a Folder condition. Use If Control as a condition in a Program rather than a condition in a Folder.

Link to comment

62vetteefp-

 

I think I see what you are trying to accomplish here. You can use the same state variable for your home folder that you use for your vacation folder simply testing for a 0 instead of a 1. Then create the following program to watch for your FastOn/FastOff commands at your switch:

 

If 
  Control '24.7A.16.1 outside driveway' is Switched Fast On
  and Control '24.7A.16.1 outside driveway' is not Switched Fast Off

Then
  $s.Vacation = 1

Else
  $s.Vacation = 0

 

This program will set you to vacation mode with a fast on and to home mode with a fast off. Note the IS NOT in the second line of the If. It causes the ELSE clause to run when you issue the FastOff at the switch.

 

Use: If $s.Vacation = 1

 

for your vacation folder condition and

 

If $s.Vacation = 0

 

for your home folder.

 

Hope this helps

 

-Xathros

Link to comment

Xathros, that is not the issue. Problem was that the home programs would not run.

 

In the original program below There is just a start time so it ask the set point to change only at 3:45. So when I added "If variable = 0" and then did the fast on at 4:00 it would not run. The next program would run though at 9:30 when it was supposed to run.

 

If

On Mon, Tue, Wed, Thu, Fri

Time is 3:45:00PM

Or On Sun

Time is 11:00:00AM

 

Then

Set 'Kitchen Thermostat-Main' 68° (Heat Setpoint)

 

Else

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

 

So I think I have to copy all those programs and add the too time.

 

If

Control '24.7A.16.1 outside driveway' is switched Fast On

And On Sun

From 11:00:00AM

To 9:29:00PM (same day)

Or On Mon, Tue, Wed, Thu, Fri

From 2:00:00PM

To 9:29:00PM (same day)

 

Then

Set 'Kitchen Thermostat-Main' 68° (Heat Setpoint)

 

Else

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

 

Is there a better way to modify the original programs so I do not have to add another set of programs?

Gonna get mighty messy with.

Link to comment

Well, you could include the variable test in your Ifs. That way when the state variable changes at 4:00, the ifs are triggered and evaluated.

 

If

(

On Mon, Tue, Wed, Thu, Fri

Time is 3:45:00PM

Or On Sun

Time is 11:00:00AM

)

and $s.Vacation = 0

 

Then

Set 'Kitchen Thermostat-Main' 68° (Heat Setpoint)

 

Else

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

 

-Xathros

Link to comment

Nope. It triggers at your times and anytime the state variable s.Vacation changes value. Once triggered the conditions are evaluated and either Then or Else is run.

 

Remember, a state variable will trigger and if statement that refrences it when the value changes, and integer variable will NOT. That is why it was critical for s.Vacation to be a state variable. the "s." at the beginning is just a voluntary nameing convention that some of use use to identify a variable as a state type. I name my integer variables with "i." at the beginning. Makes debugging a bit easier down the road.

 

Remember, the ISY is event driven. Its all about the triggers!

 

Hope this helps.

 

-Xathros

Link to comment

But what about the sleep program that starts at 9:30 pm? Why does that program not run at 9:00 if the state variable changes to 0? It says IS 9:30, not after or before.

 

If

Time is 9:30:00PM

And $S.vacation is 0

 

Then

Set 'Kitchen Thermostat-Main' 62° (Heat Setpoint)

 

Else

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

Link to comment

Change And to Or.

 

Your program says If time is 9:30 AND the value of s.Vacation is 0

 

So lets say at 9pm the variable changes from 1 to 0, the program triggers and the if is evaluated and runs false (Else) since the time is NOT 9:30

 

Change the and to an OR - the program will trigger and run true at 9:30 or anytime the value of s.Vacation becomes 0

 

Make sense?

 

Now, that question makes me think that you have multiple programs for different times of day that might all trigger at once if coded this way. If so, you might think of coding a time range instead:

 

If

Time is From 5:00pm to 9:30pm (same day)

AND s.Vacation = 0

 

Notice, I used AND instead of OR here - because of the range rather than a specific time. This will run true at 5:00 as long as s.Vacation is 0 and anytime between 5 -9:30 when s.Vacation becomes 0

 

-Xathros

 

EDIT: If you need further assistance tonight, make sure to quote my post or mention @Xathros in your reply so I get notified by my phone otherwise, I won't see anything here till tomorrow morning.

Link to comment
Change And to Or.

 

Your program says If time is 9:30 AND the value of s.Vacation is 0

 

So lets say at 9pm the variable changes from 1 to 0, the program triggers and the if is evaluated and runs false (Else) since the time is NOT 9:30

 

Change the and to an OR - the program will trigger and run true at 9:30 or anytime the value of s.Vacation becomes 0

 

Make sense?

 

Now, that question makes me think that you have multiple programs for different times of day that might all trigger at once if coded this way. If so, you might think of coding a time range instead:

 

If

Time is From 5:00pm to 9:30pm (same day)

AND s.Vacation = 0

 

Notice, I used AND instead of OR here - because of the range rather than a specific time. This will run true at 5:00 as long as s.Vacation is 0 and anytime between 5 -9:30 when s.Vacation becomes 0

 

-Xathros

 

EDIT: If you need further assistance tonight, make sure to quote my post or mention @Xathros in your reply so I get notified by my phone otherwise, I won't see anything here till tomorrow morning.

 

 

Thanks, I think that is what I have been trying to say!

 

That will be a bunch of program changes but off I go.

Link to comment

Wake up:

If

On Mon, Tue, Wed, Thu, Fri

From 6:00:00AM

To 8:00:00AM (same day)

Or On Sat

From 7:45:00AM

To 9:29:59PM (same day)

Or On Sun

From 7:45:00AM

To 9:15:00AM (same day)

And $S.vacation is 0

 

Then

Set 'Kitchen Thermostat-Main' 68° (Heat Setpoint)

 

Else

Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint)

 

Back Home

If

On Mon, Tue, Wed, Thu, Fri

From 3:45:00PM

To 9:29:59PM (same day)

Or On Sun

From 11:00:00AM

To 9:29:59PM (same day)

And $S.vacation is 0

 

Then

Set 'Kitchen Thermostat-Main' 68° (Heat Setpoint)

 

Else

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

 

Bedtime:

If

On Sun, Mon, Tue, Wed, Thu

From 9:30:00PM

To 5:59:59AM (next day)

Or On Sat, Fri

From 9:30:00PM

To 7:44:59AM (next day)

And $S.vacation is 0

 

Then

Set 'Kitchen Thermostat-Main' 62° (Heat Setpoint)

 

Else

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

 

 

 

Link to comment

If

$S.vacation is 1

And Status 'Kitchen Thermostat-Main' is Mode Heat

And Status 'Master Thermostat - Main' is Mode Heat

And Status 'Upstairs Thermostat - Main' is Mode Heat

 

Then

Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint)

Set 'Master Thermostat - Main' 60° (Heat Setpoint)

Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint)

 

Else

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

Link to comment

Any program that is coded this way needs parens as indicated. The final AND is anding only the last OR in the list without the parens.

 

If

(

On Mon, Tue, Wed, Thu, Fri

From 6:00:00AM

To 8:00:00AM (same day)

Or On Sat

From 7:45:00AM

To 9:29:59PM (same day)

Or On Sun

From 7:45:00AM

To 9:15:00AM (same day)

)

And $S.vacation is 0

 

 

If

(

On Mon, Tue, Wed, Thu, Fri

From 3:45:00PM

To 9:29:59PM (same day)

Or On Sun

From 11:00:00AM

To 9:29:59PM (same day)

)

And $S.vacation is 0

 

 

This change is required for all programs with this sequence

Link to comment

So much to learn!!!!!! And anyone can jump in on my behalf!!!

 

If

(

On Mon, Tue, Wed, Thu, Fri

From 3:45:00PM

To 9:29:59PM (same day)

Or On Sun

From 11:00:00AM

To 9:29:59PM (same day)

)

And $S.vacation is 0

 

Then

Set 'Kitchen Thermostat-Main' 68° (Heat Setpoint)

 

Else

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

Link to comment

Archived

This topic is now archived and is closed to further replies.


  • Recently Browsing

    • No registered users viewing this page.
  • Who's Online (See full list)

    • There are no registered users currently online
  • Forum Statistics

    • Total Topics
      36.9k
    • Total Posts
      370.2k
×
×
  • Create New...