Jump to content
C4 Forums | Control4

advanced thermostat programming, need ideas, help!


Recommended Posts

I have a customer who has a summer home in rhode island. They have requested special thermostat programming for guests that meets these criteria:

While in vacation mode,

the minimum cool temperature should not drop below 70 degrees

the maximum heat temperature should not exceed 72 degrees.

they have 6 control4 thermostats in the house and they are controlled off an HC800. There are no issues with the zigbee mesh.

I have attempted to write a true/false macro that checks the status of each thermostat, and tries to revert the temperature back to these criteria but it doesn't work with all the thermostats.

They would also like to be able to check the status of "vacation mode" remotely, and if need be enable it. I was thinking of using a relay and contact on the HC800 as a feedback device and that would be accessed through the motorization/relays page.

Any ideas or suggestions would be appreciated!

Mike C.

Link to comment
Share on other sites


Have you considered creating a Custom Button for Vacation Mode that sets all the thermostats to a certain temperature when Activated.

Then you can configure an Announcement with some type of symbol that displays when Vacation Mode is activated.

Link to comment
Share on other sites

I'm not sure what you're trying to accomplish by the programming in the document you've attached. That loop isnt nested under the conditional so it will fire regardless of the check you have in the conditional being met or not.

The OP is using an 800 so I'll assume 2.2.1, you can click on the thermostat under system design, click the vacation button in the middle pane, and set your heat and cool points there. The same temps will need to be applied to all six thermostat's vacation mode.

Then, you can trigger enabling vacation mode with a button press, custom button on-screen, etc. It can be disabled by some other means, like unlocking the door with a certain code - check if vacation mode is enabled, if it is, then set vacation mode to OFF on all six, which will resume the regular temp schedules.

Link to comment
Share on other sites

Codeman,

I get the impression the original poster is trying to enforce a max heat point and minimum cooling point to stop guest being silly and blowing the energy cost.

I'm assuming your solution just sets the new points but they can still be adjusted by guests at the tstat.

Could you program on a temp change event to test set point and reset to max heat value or min cool value if guest exceeds desired parameters?

I like the idea for home to enforce family constraint as well!

Link to comment
Share on other sites

Codeman,

I get the impression the original poster is trying to enforce a max heat point and minimum cooling point to stop guest being silly and blowing the energy cost.

I'm assuming your solution just sets the new points but they can still be adjusted by guests at the tstat.

Could you program on a temp change event to test set point and reset to max heat value or min cool value if guest exceeds desired parameters?

I like the idea for home to enforce family constraint as well!

You could set it in programming, then disable the buttons on the thermostat in it's properties in Composer. You can still adjust set points from the other interfaces though

Link to comment
Share on other sites

The intended idea is to allow the guests some control, but to limit the heating and cooling temperatures. This way the guest can set the cool set point to any temperature above 70, or the heat set point to anything below 72. Ive tried to do this using either while or if conditionals, but it seems to work with only limited success. Might I need to attach these conditions to a scheduler event?

Link to comment
Share on other sites

Two options come to mind:

1)

Set a timer that expires every 5 seconds and have it repeat. Make a variable called TempLocked and set it to true. Under the timer expired event create something like this.

IF Temp Locked = true then

If Thermostat1 CoolSetPoint < 70 then

Thermostat1 CoolSetPoint = 70

If Thermostat1 HeatSetPoint >72 Then

Thermostat1 HeatSetPoint = 72

Repeat this as necessary for each thermostat. Toggle the variable TempLock with a button press or have two buttons and set the variable true for one and false for the other. This ensures the setpoints can not remain past the limits set.

2)

I think using a three button keypad with the top button as temp up, the middle as HVAC mode toggle, and bottom as temp down and then lock out the actual thermostat buttons might be a better solution. You can mount it near the thermostats. This is the more expensive but more elegant solution.

You could code cool mode to set the middle led to blue and heat to red. Then you can have the top and bottom buttons pulse blue when pushed unless it goes outside the range you want and then have it pulse red.

Link to comment
Share on other sites

I have found a solution to my dilemma. I will be happy to share it in depth but the basics are as such:

1) create a boolean variable "thermostats locked"

2) go to programming. Find a thermostat. Expand its device events and locate "V1 heat_setpoint"

3) for this event, the script should be:

@ While variables > thermostats locked is true

? if the heat setpoint on kitchen > kitchen is greater than or equal to 72F

-> set the heat point on kitchen > kitchen to 72F

so this is the script to check the heat setpoint on a single thermostat. this needs to be repeated for the cool cycle, and also repeated for every other thermostat you desire this action.

You will need to create an event or trigger so that the state of "thermostats locked" is made true. While this variable is true, the setpoints of the thermostats will be dictated by your programming. As soon as "thermostats locked" is made false, the thermostats can be adjusted as you wish.

I found it helpful to have a popup message appear on a touchpanel and remain there as long as "thermostats locked" was in the true state.

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.