Abstract:
Controllers and methods are disclosed for aiding a user in programming a schedule of a programmable controller. In an illustrative embodiment, a guided programming routine can be activated by a user, which then guides a user through two or more screens that are designed to collect sufficient information from the user to generate and/or update at least some of the schedule parameters of the controller.

Description:
PRIORITY STATEMENT 
       [0001]    This is a continuation of U.S. patent application Ser. No. 12/424,931, entitled “HVAC Controller With Guided Schedule Programming”, filed Apr. 16, 2009, which is a continuation of U.S. patent application Ser. No. 11/421,833, entitled “Natural Language Installer Setup For Controller”, filed Jun. 2, 2006, now U.S. Pat. No. 7,634,504, which is a continuation-in-part of U.S. patent application Ser. No. 10/726,245, entitled “Controller Interface With Interview Programming”, filed on Dec. 2, 2003, now U.S. Pat. No. 7,181,317. 
     
    
     FIELD 
       [0002]    The present invention relates generally to the field of programmable controllers for homes and/or buildings and their related grounds. More specifically, the present invention relates to simplified interfaces for such controllers having interview programming capabilities. 
       BACKGROUND 
       [0003]    Controllers are used on a wide variety of devices and systems for controlling various functions in homes and/or buildings and their related grounds. Some controllers have schedule programming that modifies device parameter set points as a function of date and/or time. Some such device or system controllers that utilize schedule programming for controlling various functions in homes and/or buildings and their related grounds include, for example, HVAC controllers, water heater controllers, water softener controllers, security system controllers, lawn sprinkler controllers, and lighting system controllers. 
         [0004]    HVAC controllers, for example, are employed to monitor and, if necessary, control various environmental conditions within a home, office, or other enclosed space. Such devices are useful, for example, in regulating any number of environmental conditions with a particular space including for example, temperature, humidity, venting, air quality, etc. The controller may include a microprocessor that interacts with other components in the system. For example, in many modern thermostats for use in the home, a controller unit equipped with temperature and humidity sensing capabilities may be provided to interact with a heater, blower, flue vent, air compressor, humidifier and/or other components, to control the temperature and humidity levels at various locations within the home. A sensor located within the controller unit and/or one or more remote sensors may be employed to sense when the temperature or humidity reaches a certain threshold level, causing the controller unit to send a signal to activate or deactivate one or more components in the system. 
         [0005]    The controller may be equipped with an interface that allows the user to monitor and adjust the environmental conditions at one or more locations within the building. With more modern designs, the interface typically includes a liquid crystal display (LCD) panel inset within a housing that contains the microprocessor as well as other components of the controller. In some designs, the interface may permit the user to program the controller to activate on a certain schedule determined by the user. For example, the interface may include a separate menu routine that permits the user to change the temperature at one or more times during a particular day. Once the settings for that day have been programmed, the user can then repeat the process to change the settings for the other remaining days. 
         [0006]    With more modern designs, the programmable controller may include a feature that allows the user to set a separate schedule for weekday and weekend use, or to copy the settings for a particular day and then apply them towards other selected days of the week. While these designs allow the user to copy settings from one day to another, a number of steps are often required to establish a program, adding to the complexity of the interface. In some cases, the interface may not permit the user to select multiple days outside of the normal weekday/weekend scheme. In other cases, the interface is simply too complex to be conveniently used to program a temperature scheme and is simply by-passed or not programmed by the user. Accordingly, there is an ongoing need in the art to decrease the time and complexity associated with programming a multi-day schedule in a programmable controller. 
         [0007]    During the installation process, the steps required to program the controller to operate with other system components can also add to the time and complexity associated with configuring the controller. Typically, programming of the controller is accomplished by entering in numeric codes via a fixed segment user interface, by manually setting jumper switches on a circuit board, or by adjusting screws or potentiometers on a circuit board. In some cases, the codes or settings used to program the controller are obtained from a manual or table which must be consulted by the installer during the installation process. For example, to configure an HVAC system having a multistage heat pump, the controller may require the installer to enter a numeric or alphanumeric code (e.g. 91199) from a manual or table in order to program the controller to properly operate the various stages of the heat pump. Such process of referring to a manual or table of codes is not often intuitive to the user, and requires the user to store the manual in a safe place for subsequent use. Accordingly, there is also an ongoing need in the art to decrease the time and complexity associated with programming the controller during the installation process. 
       SUMMARY 
       [0008]    Generally, the present invention pertains to simplified interfaces for controllers having interview programming capabilities. 
         [0009]    In one illustrative embodiment, a method of programming a schedule of a controller having a user interface is described. The illustrative method includes the steps of providing one or more interview questions to a user via the user interface; accepting one or more user responses to the one or more interview questions from the user via the user interface; and creating and/or modifying or building a schedule based on the user responses. 
         [0010]    In another illustrative embodiment, a method of programming configuration information within a controller is further described. An illustrative method can include the steps of providing one or more interview questions to a user via a user interface, prompting the user to selected between at least two answers simultaneously displayed on the user interface, accepting one or more user responses to the interview questions via the user interface, and modifying the operational parameters of the controller and/or one or more components controlled by the controlled based at least in part on the user responses. The interview questions can include at least one question relating to the installation or setup of the controller as well as any components controlled by the controller. 
         [0011]    An illustrative controller having interview programming capabilities can include an interview question generator adapted to generate a number of interview questions relating to the installation or setup of the controller and/or any components controlled by the controller, a user interface including a display screen adapted to display interview questions to a user along with at least two answers for each interview question, and a memory unit for storing operational parameters within the controller based at least in part on the user responses to the interview questions. 
         [0012]    The above summary of the present invention is not intended to describe each disclosed embodiment or every implementation of the present invention. The Figures, Detailed Description and Examples which follow more particularly exemplify these embodiments. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The invention may be more completely understood in consideration of the following detailed description of various embodiments of the invention in connection with the accompanying drawings, in which: 
           [0014]      FIG. 1  is a flow diagram of an illustrative HVAC interview program; 
           [0015]      FIG. 2  is a block diagram of the illustrative HVAC interview program shown in  FIG. 1 ; 
           [0016]      FIG. 3  is a flow diagram of another illustrative HVAC interview program; 
           [0017]      FIG. 4A  is a block diagram of the illustrative HVAC interview program shown in  FIG. 3 ; 
           [0018]      FIG. 4B  is an illustrative partial block diagram of the block diagram shown in  FIG. 4A ; 
           [0019]      FIG. 5  is a flow diagram of another illustrative HVAC interview program; 
           [0020]      FIG. 6  is a block diagram of the illustrative HVAC interview program shown in  FIG. 5 ; 
           [0021]      FIGS. 7A-C  are flow diagrams of another illustrative HVAC interview program; 
           [0022]      FIGS. 8A-T  are schematic drawings of an illustrative HVAC interface showing an embodiment of the flow diagram of the illustrative HVAC interview program shown in  FIG. 7 ; 
           [0023]      FIG. 9  is a block diagram of an illustrative HVAC system including a programmable controller having interview capabilities for configuring one or more HVAC components; 
           [0024]      FIG. 10  is a block diagram showing the controller and user interface of  FIG. 9 ; 
           [0025]      FIG. 11  is a flow diagram showing several illustrative interview questions and answers that can be provided by the interview question generator of  FIG. 10 ; 
           [0026]      FIG. 12  is a flow diagram of an illustrative method of programming configuration information within a controller; and 
           [0027]      FIGS. 13A-13J  are schematic drawings of an illustrative user interface showing an illustrative implementation of the flow diagram depicted in  FIG. 12 . 
       
    
    
       [0028]    While the invention is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. 
       DETAILED DESCRIPTION 
       [0029]    The following description should be read with reference to the drawings, in which like elements in different drawings are numbered in like fashion. The drawings, which are not necessarily to scale, depict selected embodiments and are not intended to limit the scope of the invention. Although examples of construction, dimensions, and materials are illustrated for the various elements, those skilled in the art will recognize that many of the examples provided have suitable alternatives that may be utilized. 
         [0030]    Generally, the present invention pertains to simplified interfaces for controllers having interview programming capabilities. These controllers can be used in a variety of systems such as, for example, HVAC systems, water heater systems, water softener systems, sprinkler systems, security systems, lighting systems, and the like. The Figures depict HVAC controllers. While the present invention is not so limited, an appreciation of various aspects of the invention will be gained through a discussion of the examples provided below. 
         [0031]      FIG. 1  is a flow diagram of an illustrative HVAC interview program  100 . The flow diagram starts at a normal thermostat operation block  110 . Normal thermostat operation block  110  can be an initial parameter setting operation or a modification of parameter settings. Interview scheduling block  120 ,  130  provides one or more interview questions to a user via the user interface. The user interface can accept one or more responses to the one or more interview questions from the user via the user interface. The schedule is then built or modified, in some cases by adding or modifying one or more schedule parameters  140 ,  150 , based on the user responses provided via the user interface. Once the schedule parameters  140 ,  150  are modified, the controller can return to the normal operation block  110 , and follow the new schedule. 
         [0032]    In some embodiments, the interview scheduling blocks  120  and  130  can provide interview questions that elicit an affirmative (e.g., “yes”) or negative (e.g., “no”) user response. Alternatively, or in addition, the interview scheduling blocks  120 , and  130  can provide include interview questions that allow a user to select one (or more) answers from a predetermined list of answers. 
         [0033]    In some embodiments, these interview questions can solicit information from the user regarding the grouping of the controller set points entered or the temporal relationship of the controller set points such as, for example, the interview question may ask “Do you want the schedule to apply to every day of the week?”, requiring the user to respond with a “YES” or “NO” answer. The interview scheduling block  120  preferably includes questions that are natural language questions, which may be phrases that have one, two, three, four, five, six, or seven or more words, although this is not required in all embodiments. 
         [0034]    Alternatively, or in addition, interview scheduling block  130  can provide interview questions that require a numerical user response. For example, these interview questions can solicit information from the user regarding the specific time and temperature set points for each grouping of controller set points solicited by the interview block  120  described above. Interview block  130  can provide a question such as, for example, “What is a comfortable sleeping temperature in the winter?”, requiring the user to respond with a numerical temperature answer. Like interview schedule block  120  above, interview scheduling block  130  can include questions that are natural language questions, which may be phrases that have one, two, three, four, five, six, or seven or more words, although this is not required in all embodiments. 
         [0035]    The interview scheduling blocks  120  and  130  can provide one or more interview questions about, for example, which weekdays will have the same schedule?, when a first person wakes up?, when a last person goes to sleep?, when a last person leaves during the day?, when a first person arrives home?, what a comfortable temperature is when heat is on?, what a comfortable temperature is when air conditioning is on?, what a comfortable sleeping temperature is in summer?, and/or what a comfortable sleeping temperature is in winter? 
         [0036]    Alternatively, or in addition, the interview scheduling blocks  120  and  130  may provide one or more interview questions that provide a plurality of predetermined answers or responses (e.g., multiple choice format) where the user selects an answer or response. For example, the interview question may provide a question such as, “What type of schedule do you desire?” In this illustrative embodiment, a series of predetermined responses or answers can be provided such as, “Every day of the week is the same,” “Weekdays are the same and Saturday/Sunday is the same,” “Weekday are the same and Saturday/Sunday is different,” “Each Weekday is different and Saturday/Sunday is the same,” and “Each day of the week is different.” 
         [0037]    Alternatively, or in addition, once an initial schedule has been built, the interview scheduling blocks  120 , and  130  can display a previous answer that was accepted by the user interface based on the prior built schedule. This illustrative feature can provide the user with a convenient option to select and alter only the schedule parameters  140 ,  150  that the user desires to modify. This feature can be utilized in all illustrative embodiments described herein, however it is not required. 
         [0038]      FIG. 2  is a block diagram of the illustrative HVAC controller with an illustrative interview function similar to that shown in  FIG. 1 . Controller  200  includes a control module  210  that can be a microprocessor or the like. The control module  210  communicates with a user interface  220 , and can include an interview question generator  225 , a response acceptor  240  and a programmable schedule  250 . The control module  210  can also generate a control signal  260  to a device (not shown), such as an HVAC system or device. 
         [0039]    In an illustrative embodiment, the interview question generator  225  provides interview questions, such as those described above, to the user interface  220 . The user interface  220  can be any form of user interface such as, for example, a physical interface including a touchscreen, an LCD with buttons, and/or an aural interface including a speaker and microphone, or any other suitable user interface. A user can activate the interview question generator  225  by any suitable mechanism, such as by pressing a schedule button on a touchscreen of the user interface  220 . Alternatively, or in addition, the controller  210  may activate the interview question generator  225  on its own, such as when it believes additional scheduling information is needed or might otherwise be desired. In response to questions posed by the interview question generator  225 , the user can enter one or more user responses into the user interface  220 . The response acceptor  240  accepts the user responses and provides the response to the programmable schedule  250 . In some embodiments, the programmable schedule  250  has a number of time and temperature set points that can be entered or modified by the response acceptor  240 . Once the schedule is built and/or modified, a control signal  260  is generated by the control module  210  based on the programmable schedule  250 . 
         [0040]      FIG. 3  is a flow diagram of another illustrative HVAC interview program  300 . The flow diagram starts at a normal thermostat operation block  310 . Normal thermostat operation block  310  can be an initial parameter setting operation or a modification of parameter settings. Interview scheduling block  325  provides one or more interview questions to a user via a user interface. The user interface then accepts one or more responses to the one or more interview questions from the user via the user interface. A user response translator  360  translates the one or more user responses to form a translated response. One or more schedule parameters  370  are then modified based on the translated responses from the response translator  360 . Once the schedule parameters  370  are modified, the controller can return to the normal operation block  310 . 
         [0041]    In some embodiments, the interview scheduling block  325  includes interview questions that require an affirmative (e.g., “yes”) or negative (e.g., “no”) user response. In addition, the interview questions can solicit information from the user regarding the grouping of the controller set points entered or the temporal relationship of the controller set points. For example, the interview question may ask “Do you want the schedule to apply to every day of the week?”, requiring the user to respond with a “YES” or “NO” answer. The interview scheduling block  325  can include questions that are natural language questions such as, for example, phrases that can have one, two, three, four, five, six, or seven or more words. 
         [0042]    In an illustrative embodiment, interview scheduling block  325  may also provide interview questions that require a numerical user response. These interview questions can solicit information from the user regarding the specific time and temperature set points for each grouping of controller set points solicited by the interview block  325  described above. The interview block  325  can provide a question such as, for example, “What is a comfortable sleeping temperature in the winter?”, requiring the user to respond with a numerical temperature answer. The interview scheduling block  325  can include questions that are natural language questions such as, for example, phrases that can have one, two, three, four, five, six, or seven or more words. 
         [0043]    In the illustrative embodiment, the interview scheduling block  325  can also provide one or more interview questions related to, for example, which weekdays will have the same schedule?, when a first person wakes up?, when a last person goes to sleep?, when a last person leaves during the day?, when a first person arrives home?, what a comfortable temperature is when heat is on?, what a comfortable temperature is when air conditioning is on?, what a comfortable sleeping temperature is in the summer?, or what a comfortable sleeping temperature is in the winter? 
         [0044]    The response translator  360  can translate the user responses to create appropriate schedule parameters  370  that help define the schedule of the controller. That is, the response translator  360  applies the user responses to one or more interview questions to establish the controller schedule. For example, the response translator  360  can take an affirmative user response to the interview question, “Do you want the same schedule for Saturday and Sunday?” and correlate with the interview question, “What temperature do you like when the heat is on?” to establish the schedule parameters for the heating temperature during at least selected periods on Saturday and Sunday. 
         [0045]    Alternatively, or in addition, the interview scheduling block  325  may provide one or more interview questions that provide a plurality of predetermined answers or responses (e.g., multiple choice format) where the user selects an answer or response. For example, the interview question may provide a question such as, “What type of schedule do you desire?” In this illustrative embodiment, a series of predetermined responses or answers can be provided such as, “Every day of the week is the same,” “Weekdays are the same and Saturday/Sunday is the same,” “Weekday are the same and Saturday/Sunday is different,” “Each Weekday is different and Saturday/Sunday is the same,” and “Each day of the week is different.” 
         [0046]      FIG. 4A  is a block diagram of the illustrative HVAC controller with an illustrative interview function similar to that shown in  FIG. 3 . Controller  400  includes a control module  410  that can be a microprocessor or the like. The control module  410  communicates with a user interface  420 , and may include an interview question generator  425 , a response acceptor  440 , a response translator  460 , and a programmable schedule  470 . The control module  410  can also generate a control signal  465  to a device (not shown), such as an HVAC system or device. 
         [0047]    In the illustrative embodiment, the interview question generator  435  provides interview questions, such as those described above, to the user interface  420 . The user interface  420  can be any form of user interface such as, for example, a physical interface including a touchscreen, an LCD with buttons, and/or an aural interface including a speaker and microphone, or any other suitable user interface. A user can activate the interview question generator  435  by any suitable mechanism, such as by pressing a mechanical schedule button on the controller, touching an appropriate region of a touchscreen, voice activation, etc. Alternatively, or in addition, the controller  410  may activate the interview question generator  425  on its own, such as when it believes additional scheduling information is needed or might otherwise be desired. In response to questions posed by the interview question generator  425 , the user can enter one or more user responses into the user interface  420 . The response acceptor  440  accepts the user responses and provides the response to the response translator  460 . The response translator  460  provides a translated response to a programmable schedule  470 . In some embodiments, the programmable schedule  470  has a number of time and temperature set points that can be entered or modified by the response translator  470 . Once the schedule is built and/or modified a control signal  465  is generated by the control module  410  based on the programmable schedule  470 . 
         [0048]      FIG. 4B  is an illustrative partial block diagram of the block diagram shown in  FIG. 4A  showing one embodiment of the interaction of the interview question generator  425 , response acceptor  440 , response translator  460  and programmable schedule  470 . The illustrative programmable schedule  470  has a plurality of cells such as, for example, a Saturday wake cell  471 , a Sunday wake cell  472 , a Saturday sleep cell  473 , and a Sunday sleep cell  474 . In this embodiment, each cell  471 ,  472 ,  473 ,  474  may include a number of schedule parameters such as, for example, a start time, a heat temperature and a cool temperature. 
         [0049]    Interview questions  425  are posed to the user. As shown in the illustrative example: an interview question  425  of “Same schedule for Saturday and Sunday?” elicits an user response  440  of “YES”; an interview question  425  of “For the weekend, is someone home all day?” elicits an user response  440  of “YES”; an interview question  425  of “What time does the first person wake up?” elicits an user response  440  of “7:00 a.m.”; an interview question  425  of “What time does the last person go to sleep?” elicits an user response  440  of “10:00 p.m.”; an interview question  425  of “What temperature is comfortable when the heat is on?” elicits an user response  440  of “72° F.”; an interview question  425  of “What temperature is comfortable when the air conditioning is on?” elicits an user response  440  of “68° F.”; an interview question  425  of “What is a comfortable sleeping temperature in summer?” elicits an user response  440  of “67° F.”; and an interview question  425  of “What is a comfortable sleeping temperature in winter?” elicits an user response  440  of “65° F.”. 
         [0050]    In the illustrative embodiment, the response translator  460  accepts the user responses provided in block  440 . The response translator  460  then builds and/or modifies the programmable schedule  470 . In the illustrative embodiment, each cell  471 ,  472 ,  473 ,  474  includes a start time, a heat temperature and a cool temperature. The Saturday wake cell  471  and the Sunday wake cell  472  has a start time of 7:00 a.m., a heat temperature of 72° F., and a cool temperature of 68° F., all of the times and temperatures are provided by the response translator. The Saturday sleep cell  473  and the Sunday sleep cell  474  has a start time of 10:00 p.m., a heat temperature of 65° F., and a cool temperature of 67° F., all of the times and temperatures are provided by the response translator. 
         [0051]    In this illustrative embodiment, the response translator  460  takes a plurality of user responses  440  to the interview questions  425  and builds and/or modifies a plurality of schedule parameters. The Saturday and Sunday Leave and Return cells  475 ,  476 ,  477 , and  478  are ignored and/or zeroed out by the response translator  460  since they are not required based on the user responses  425  for this example. 
         [0052]      FIG. 5  is a flow diagram of another illustrative HVAC interview program  500 . The flow diagram starts at a normal thermostat operation block  510 . Normal thermostat operation block  510  can be an initial parameter setting operation or a modification of parameter settings. Interview scheduling block  525  provides one or more interview questions to a user via a user interface. The user interface then accepts one or more responses to the one or more interview questions from the user via the user interface. A sufficient information block  560  determines if enough information has been solicited from the user response to the interview questions sufficient to build or modify the schedule at block  570 . If not, the interview scheduling block  525  provides another interview question to the user via the user interface. If the sufficient information block  560  determines that enough information has been solicited, then the schedule is built or modified by the modify schedule block  570 . Once the schedule is built or modified by the modify schedule block  570 , the controller can return to the normal operation block  510 . 
         [0053]    The sufficient information block  560  can, for example, help ensure that a sufficient number of schedule parameters are defined, such as, for example, a start time, a heating temperature and a cooling temperature for a particular time period such as, for example, a specific day or group of days wake period, leave period, return period and/or sleep period, as shown in  FIG. 4B . 
         [0054]    In some embodiments, the interview scheduling block  525  provides a number of predetermined interview questions in a predetermined sequential order. The number of questions or queries may be adapted to collect information from the user responses to generate at least a portion of the schedule parameters. 
         [0055]    Like above, the interview scheduling block  525  can include interview questions that require an affirmative (e.g., “yes”) or negative (e.g., “no”) user response. For example, interview scheduling block  525  can provide interview questions solicit information from the user regarding the grouping of the controller set points entered or the temporal relationship of the controller set points such as, for example, “Do you want the schedule to apply to every day of the week?”, requiring the user to respond with a “YES” or “NO” answer. The interview scheduling block  525  can include questions that are natural language questions which can be phrases that have one, two, three, four, five, six, or seven or more words in length. 
         [0056]    Alternatively or in addition, interview scheduling block  525  can provide interview questions that require a numerical user response. For example, these interview questions can solicit information from the user regarding the specific time and temperature set points for each grouping of controller set points solicited by the interview block  525  described above. The interview block  525  can provide a question such as, for example, “What is a comfortable sleeping temperature in the winter?”, requiring the user to respond with a numerical temperature answer. Again, the interview scheduling block  525  can include questions that are natural language questions that can be phrases which can be one, two, three, four, five, six, seven or more words, although this is not required in all embodiments. 
         [0057]    The interview scheduling block  525  may also provide one or more interview questions about, which weekdays will have a same schedule?, when a first person wakes up?, when a last person goes to sleep?, when a last person leaves during the day?, when a first person arrives home?, what a comfortable temperature is when heat is on?, what a comfortable temperature is when air conditioning is on?, what a comfortable sleeping temperature is in the summer?, or what a comfortable sleeping temperature is in the winter? 
         [0058]    Alternatively, or in addition, the interview scheduling block  525  may provide one or more interview questions that provide a plurality of predetermined answers or responses (e.g., multiple choice format) where the user selects an answer or response. For example, the interview question may provide a question such as, “What type of schedule do you desire?” In this illustrative embodiment, a series of predetermined responses or answers can be provided such as, “Every day of the week is the same,” “Weekdays are the same and Saturday/Sunday is the same,” “Weekday are the same and Saturday/Sunday is different,” “Each Weekday is different and Saturday/Sunday is the same,” and “Each day of the week is different.” 
         [0059]      FIG. 6  is a block diagram of the illustrative HVAC controller with an illustrative interview function similar to that shown in  FIG. 5 . Controller  600  includes a control module  610  that can be a microprocessor or the like. The control module  610  communicates with a user interface  620 , and may include an interview question generator  625 , a response acceptor  640  and a programmable schedule  650 . The control module  610  can also generate a control signal  660  to a device (not shown), such as an HVAC system or device. 
         [0060]    In the illustrative embodiment, the interview question generator  625  provides interview questions, such as those described above, to the user interface  620 . The user interface  620  can be any form of user interface such as, for example, a physical interface including a touchscreen, an LCD with buttons, an aural interface including a speaker and microphone, or any other suitable user interface. A user can activate the interview question generator  625  by any suitable mechanism, such as by pressing a schedule button on a touchscreen of the user interface  620 . Alternatively, or in addition, the controller  610  may activate the interview question generator  625  on its own, such as when it believes additional scheduling information is needed or might otherwise be desired. In response to the questions posed by the interview question generator  625 , the user can enter one or more user responses into the user interface  620 . The response acceptor  640  accepts the user responses and provides the responses to the programmable schedule  650  if it determines that sufficient information has been provided by the user responses to establish a program schedule. If not, the response acceptor  640  instructs the interview question generator  625  to provide another interview question to the user via the user interface  620 . Once the response acceptor  640  determines that sufficient information has been provided by the user to establish a program schedule  650  the program schedule  650  is built and/or modified. In some embodiments, the programmable schedule  650  has a number of time and temperature set points that can be entered or modified by the response acceptor  640 . Once the programmable schedule  650  is built and/or modified, a control signal  660  is generated by the control module  610  based on the programmable schedule  650 . 
         [0061]      FIGS. 7A-C  are flow diagrams of another illustrative HVAC interview program  700 . The flow diagram starts at a normal thermostat operation block  710 , but this is not required in all embodiments. In the illustrative embodiment, the interview program  700  can be initiated by pressing a program initiation button or key such as, for example, an “EZ Schedule” button. 
         [0062]    The program can begin by asking whether the user wants the same schedule to be used for every day of the week, as shown at block  720 . If the user responds with a “YES” response, then the program can move to ask context questions for that group of days, as shown at block  725 , which may set the schedule for the week assuming the same schedule for every 24 hour period or day. If the user responds with a “NO” response, the program may ask the user if the same schedule applies to both weekend days, Saturday and Sunday, as shown at block  730 . If the user responds with a “YES” response, then the program can ask if the user wants two schedules, one for weekdays and one for weekends, as shown at block  735 . A “YES response to block  735  can move the program to asking context questions for a weekend group of days and a weekdays group of days, as shown at block  725 , to set the schedule for the week assuming a first schedule for weekend days and a second schedule for weekdays. A “NO” response to block  730  can cause the program to ask whether the user wants three schedules including a weekday schedule, a Saturday schedule, and a Sunday schedule, as shown at block  740 . A “YES” response to block  740  moves the program to asking context questions for a week day group of days schedule, a Saturday schedule and a Sunday schedule, as shown at block  725 , to set the schedule for the week assuming a first schedule for weekdays, and a second schedule for Saturday and a third schedule for Sundays. A “NO” response to either block  740  or block  735  moves the program to asking the user to group each day of the seven days of the week into similar schedule groupings until all days are assigned to one group, as shown at block  750 . The program can ask if all days are assigned at block  755 , with a “NO” response returning the user to block  750  to assign a non-assigned day or days until all days have been assigned. Once all days have been assigned to a group, the program moves to asking context questions for each group of days schedule, as shown at block  725 , to set the schedule for the each grouping of days assuming a first schedule for a first group, a second schedule for a second group, a third schedule for a third group and so on until all groupings of days are scheduled. 
         [0063]    The program  700  can ask a variety of context sensitive question to determine the desired schedule for each grouping of days identified by the program  700  above. For example, and as shown in  FIG. 7B , the program  700  can inquire whether someone is home all day, as shown at block  760 . If the user enters a “YES” response to block  760 , the program can ask when the first person gets and request that the user to enter a wake time, as shown at block  770 . Then the program  700  can ask when the last person goes to sleep and request that the user to enter a sleep time, as shown at block  780 . If the user enters a “NO” response to block  760 , the program can ask when the first person gets up, and request that the user to enter a wake time, as shown at block  761 . Then the program can ask what time the first person leaves home and request that the user enter a leave time, as shown at block  762 . The program can also ask when the last person gets home for the day, and request the user to enter a return time, as shown at block  763 . The program can also ask when the last person goes to sleep, and request that the user enter a sleep time, as shown at block  764 . Once all the above information has been entered by the user for each grouping of days, the program may move to an end block  781 . 
         [0064]    The program  700  can then request information from the user regarding comfortable awake, sleeping and away temperatures. For example, and referring to  FIG. 7C , the program can request that the user enter a comfortable temperature when the heat is on, as shown at block  790 . The temperature information received in block  790  can be automatically inserted into a program schedule for each grouping of days to set the wake heat and return heat set points. The program can also request that the user enter a comfortable temperature when the air conditioning is on, as shown at block  791 . This information can be automatically inserted into a program schedule for each grouping of days to set the wake cool and return cool set points. This illustrative program can also request that the user enter a comfortable summer sleeping temperature, as shown at block  792 . This information can be automatically inserted into a program schedule for each grouping of days to set the sleep cool set point. The program can also request that the user enter a comfortable winter sleeping temperature, as shown at block  793 . This information can be automatically inserted into a program schedule for each grouping of days to set the sleep heat set point. The program can also request that the user to enter an energy savings offset at block  794 . This information can be automatically inserted into a program schedule for each grouping of days to set the leave cool and leave heat set points. 
         [0065]    In some embodiments, the program  700  can allow the user to request a schedule review at block  795 , which can allow the user to review the built or modified schedule, as shown at block  796 . If the user does not wish to review the schedule or when the user is done reviewing the schedule, the program returns to normal thermostat operation block  710  under the newly built or modified schedule. 
         [0066]      FIGS. 8A-T  are schematic drawings of an illustrative HVAC interface  800  showing an illustrative embodiment of the flow diagram of the HVAC interview program shown in  FIGS. 7A-7C . The schematic screen shots are taken in sequential order based on the user selections shown in each screen shot. At  FIG. 8A , a user  810  selects an “EZ Schedule”  801  button located on the interface  800  to begin the interview scheduling program. 
         [0067]    At  FIG. 8B , the program asks the user  810 , via the interface  800 , if the user  810  wants the same schedule to apply to every day of the week. The user  810  is shown selecting a “NO” response  802 . 
         [0068]    At  FIG. 8C , the program asks the user  810 , via the interface  800 , if the user  810  wants Saturday and Sunday to follow the same schedule. The user  810  is shown selecting a “YES” response  803 . 
         [0069]    At  FIG. 8D , the program asks the user  810 , via the interface  800 , to verify the there will be two schedules, one for weekends and a second for weekdays. The user  810  is shown selecting a “YES” response  804 . 
         [0070]    At  FIG. 8E , the program asks the user  810 , via the interface  800 , whether someone will be home all day on weekdays. The user  810  is shown selecting a “NO” response  805 . 
         [0071]    At  FIG. 8F , the program asks the user  810 , via the interface  800 , to enter what time the first person wakes up on weekdays. The user  810  is shown pressing an “ENTER” button  806  after selecting a wake time. 
         [0072]    At  FIG. 8G , the program asks the user  810 , via the interface  800 , to enter what time the last person leaves the house on weekdays. The user  810  is shown pressing an “ENTER” button  807  after selecting a leave time. 
         [0073]    At  FIG. 8H , the program asks the user  810 , via the interface  800 , to enter what time the first person arrives home on weekdays. The user  810  is shown pressing an “ENTER” button  808  after selecting a return time. 
         [0074]    At  FIG. 8I , the program asks the user  810 , via the interface  800 , to enter what time the last person goes to sleep on weekdays. The user  810  is shown pressing an “ENTER” button  809  after selecting a sleep time. 
         [0075]    At  FIG. 8J , the program asks the user  810 , via the interface  800 , whether someone will be home all day on weekends. The user  810  is shown selecting a “YES” response  811 . 
         [0076]    At  FIG. 8K , the program asks the user  810 , via the interface  800 , to enter what time the first person wakes up on weekends. The user  810  is shown pressing an “ENTER” button  812  after selecting a wake time. 
         [0077]    At  FIG. 8L , the program asks the user  810 , via the interface  800 , to enter what time the last person goes to sleep on weekends. The user  810  is shown pressing an “ENTER” button  813  after selecting a sleep time. 
         [0078]    At  FIG. 8M , the program asks the user  810 , via the interface  800 , a comfort question such as, what temperature do you like when the heat is on? The user  810  is shown pressing an “ENTER” button  814  after selecting a desired temperature. 
         [0079]    At  FIG. 8N , the program asks the user  810 , via the interface  800 , a comfort question such as, what temperature do you like when the air conditioning is on? The user  810  is shown pressing an “ENTER” button  815  after selecting a desired temperature. 
         [0080]    At  FIG. 8O , the program asks the user  810 , via the interface  800 , a comfort question such as, what is a comfortable sleeping temperature in the summer? The user  810  is shown pressing an “ENTER” button  816  after selecting a desired temperature. 
         [0081]    At  FIG. 8P , the program asks the user  810 , via the interface  800 , another comfort question such as, what is a comfortable sleeping temperature in the winter? The user  810  is shown pressing an “ENTER” button  817  after selecting a desired temperature. 
         [0082]    At  FIG. 8Q , the program asks the user  810 , via the interface  800 , another comfort question such as, what energy saving offset is desired? The user  810  is shown pressing an “ENTER” button  818  after selecting a desired energy saving offset. 
         [0083]    At  FIG. 8R , the program informs the user  810 , via the interface  800 , that the schedule has been completed, and may allow the user to view a portion of the schedule or selected day groupings. The user  810  is shown pressing a “VIEW WEEKDAYS” button  819 . 
         [0084]    At  FIG. 8S , the program informs the user  810 , via the interface  800 , specifics of the selected schedule. The user  810  is shown pressing a “DONE” button  821 . 
         [0085]    At  FIG. 8T , the program displays, via the interface  800 , specifics of the currently running schedule. 
         [0086]    Referring now to  FIG. 9 , a block diagram of an illustrative HVAC system including a programmable controller having interview capabilities for configuring one or more HVAC components will now be described. The HVAC system  900  can include a programmable controller  902  in communication with a number of system components that can be activated to regulate various environmental conditions such as temperature, humidity, and air quality levels occurring within the space to be controlled. As shown in  FIG. 9 , for example, the controller  902  can be connected to a heating unit  904  and cooling unit  906  that can be activated to regulate temperature. The heating unit  904  can include a boiler, furnace, heat pump, electric heater, and/or other suitable heating device. In some embodiments, the heating unit  904  can include a multistage device such as a multistage heat pump, the various stages of which can be controlled by the controller  902 . The cooling unit  906  can include an air-conditioner, heat pump, chiller, and/or other suitable cooling device which can likewise be either single staged or multistaged depending on the application. 
         [0087]    A ventilation unit  908  such as a fan or blower equipped with one or more dampers can be employed to regulate the volume of air delivered to various locations within the controlled space. A filtration unit  910 , UV lamp unit  912 , humidifier unit  914 , and dehumidifier unit  916  can also be provided in some embodiments to regulate the air quality and moisture levels within the controlled space. One or more local and/or remote sensors  918  can be connected to the controller  902  to monitor temperature or humidity levels inside, and in some cases, outside of the space to be controlled. In some embodiments, the controller  902  can be connected to one or more other controllers  920  such as another HVAC controller for providing multi-zoned climate control. The system components can be directly connected to a corresponding I/O port or I/O pins on the controller  902 , and/or can be connected to the controller  902  via a network or the like. 
         [0088]    The controller  902  can include a user interface  922  to permit an installer or service technician to input commands for programming the controller  902  to operate with the various system components and any other connected controllers  922 . The user interface  922  can include, for example, a touch screen, liquid crystal display (LCD) or dot matrix display, an aural interface including a speaker and microphone, a computer, or any other suitable device for sending and receiving signals to and from the controller  902 . Depending on the configuration, the user interface  922  can also include buttons, knobs, slides, a keypad, or other suitable selector means for inputting commands into the controller  902 . 
         [0089]      FIG. 10  is a block diagram showing the controller  902  and user interface  922  of  FIG. 9  in greater detail. As can be further seen in  FIG. 10 , the controller  902  can include a control module  924  such as a microprocessor/CPU, a storage memory  926 , a clock  928 , and an I/O interface  930  that connects the controller  902  to the various system components in  FIG. 9 . An internal sensor  932  located within the controller housing can be used to measure the temperature, humidity levels, and/or other environmental conditions occurring within the controlled space. 
         [0090]    During installation, the control module  924  communicates with the user interface  922  to provide the installer with interview questions relating to the configuration of one or more of the system components. In the illustrative embodiment of  FIG. 10 , the controller  902  includes an interview question generator  934  that prompts the installer to provide feedback to the controller  902  regarding the types of system components to be controlled, the dates and times such components are to be operated, the power or temperature levels in which such components are to be operated, the bandwidth or offsets at which such components are to be operated, the type of space to be controlled, as well as other operating parameters. Activation of the interview question generator  934  can occur, for example, by pressing an installation button on a touchscreen or keypad of the user interface  922 . Alternatively, or in addition, the controller  902  may activate the interview question generator  934  on its own when a new system component is connected to the I/O interface  930  or when additional setup information is needed or desired by the controller  902 . 
         [0091]    Input commands received via the user interface  922  can be fed to a response acceptor  936 , which accepts the user responses to the interview questions generated by the interview question generator  934 . The response acceptor  936  can be configured to translate the user responses into operation parameters  938  that can be stored within the memory unit  926  along with other information such as prior usage, scheduling parameters, user preferences, etc. The operation parameters  938  can then be used by the controller  902  to generate control signals  940  to operate the various system components in a particular manner. 
         [0092]      FIG. 11  is a flow chart showing several illustrative interview questions and answers that can be provided by the interview question generator of  FIG. 10 . As shown in  FIG. 11 , once the installation mode has been initiated, the user interface can be configured to prompt the installer to enter a desired language in which to display the interview question and answer queries, as indicated generally by block  1000 . For example, the user interface may prompt the installer to select between “English”, “Espanol”, or “Francais” as language choices. The selection of a particular language at block  1000  causes the user interface to subsequently display the interview questions and answers in that selected language. 
         [0093]    Once the desired language is chosen, the user interface can be configured to provide interview questions pertaining to the various system components to be installed. At block  1002 , for example, the user interface can prompt the installer to select the type of equipment to be controlled by the controller. In certain embodiments, for example, the user interface can prompt the installer to select between a conventional heating/cooling unit, a heat pump, or heat only. Once the type of equipment has been selected, the user interface may then prompt the installer to enter the number of stages of heat and cool to be controlled by the controller, as indicated generally by blocks  1004  and  1006 . In some embodiments, the answers provided to the interview question at block  1004  may affect whether the user interface displays a follow-up query at block  1006 . For example, if the response to the interview question regarding the number of heat stages at block  1004  is “2”, the interview question generator may assume that there are 2 cooling stages, and thus skip the query at block  1006 . 
         [0094]    For each stage of heat and cool, the user interface can be configured to prompt the installer to select the number of cycles per hour to be provided by the equipment, as indicated generally by block  1008  and  1010 , respectively. At block  1008 , for example, the user interface may prompt the installer to select the cycles per hour to be provided by each stage of heating selected at block  1004 . If, for example, the installer indicates at block  1004  that the equipment has 3 stages of heating, the user interface can be configured to repeat query block  1008  three separate times for each individual stage to be configured. A similar process can then be performed at block  1010  for each stage of cooling to be controlled by the controller. If at block  1004  the installer indicates that there are “0” stages of heat, the user interface can be configured to skip the query at block  1008 . In addition, if at block  1006  the installer indicates that there are “0” stages of cool, or if at block  1002  the installer indicates that the equipment is “Heat Only”, the user interface can be configured to skip the query at block  1010 . 
         [0095]    In some embodiments, the user interface can be further configured to provide the installer with interview questions and answers that can be used to set other operational parameters within the controller. As indicated generally at block  1012 , for example, the user interface can be configured to prompt the installer to select the minimum amount of on time that the equipment operates. The user interface can further prompt the installer to select a lower and/or upper temperature limit at which the system operates, as indicated generally at blocks  1014  and  1016 , respectively. If desired, the temperature offset and proportional bandwidth of the system can be further set via query blocks  1018  and  1020 , respectively. 
         [0096]    Although several exemplary interview questions and answers are illustrated in  FIG. 11 , it should be understood that the type, number, and ordering of the interview questions and answers provided to the installer may be varied based on the type of equipment to be configured, the user&#39;s previous answers to interview questions, the number of stages to be controlled, as well as other factors. In some embodiments, the interview questions and answers can be grouped together to permit the installer to configure a particular system component or components without having to answer interview questions for the remaining system components. If, for example, the installer desires to only configure a newly installed heat pump, the user interface can be configured to provide the installer with interview questions and answers relating to the cooling unit, skipping those queries related to other components not affected by the installation. 
         [0097]      FIG. 12  is a flow diagram of an illustrative method  1100  of programming configuration information within a controller. The method  1100  can begin generally at block  1102  in which an installation mode of the controller is activated to permit an installer to configure the controller to operate with one or more system components. Initiation of the installation mode can occur, for example, by the installer selecting an installation mode button on a touchscreen or keypad of the user interface, or automatically when the controller is activated for the first time or when one or more system components are connected to the controller. 
         [0098]    Once the installation mode has been initiated, the controller can then be configured to provide one or more interview questions to the installer via the user interface, as indicated generally by block  1104 . The interview questions provided can be configured to solicit information from the installer regarding the type and configuration of the various system components to be controlled by the controller. In certain embodiments, for example, the interview questions can include a sequence of interview questions relating to the type of equipment to be controlled, the number of heat stages the equipment has, the number of cooling stages the equipment has, the number of cycles per hour each stage of heating requires, and the number of cycles per hour each stage of cooling requires. 
         [0099]    In some embodiments, other interview questions pertaining to the type or configuration of the controller and/or any system components controlled by the controller can be further presented to the installer via the user interface. Examples of other interview questions can include, but are not limited to, the minimum operating time desired to operate the system, whether a pump exercise is to be enabled for any installed heat pumps, the upper temperature limit at which to operate the system, the lower temperature limit at which to operate the system, the temperature offset at which the controller operates, the proportional bandwidth of the equipment, the type and operating times of the ventilation fan employed, the type and rating of the UV lamp employed, and the type and rating of the humidifier or dehumidifier employed. Other interview questions relating to the user&#39;s preferences such as the date and time format, daylight savings options, schedule programming options, temperature display options, etc. can also be provided, if desired. It should be understood that the types of interview questions and their ordering will vary depending on the type of equipment to be controlled. 
         [0100]    The interview questions may be provided to the installer in the form of natural language questions, which may be phrases having one or more words that prompt the installer to select between one or more answers from a predetermined list of answers. For example, the interview questions can include a question such as “What type of equipment is the thermostat controlling?” In some embodiments, one or more of the interview questions may elicit an affirmative “YES” or “NO” user response. Alternatively, or in addition, one or more of the interview questions can solicit information requiring a numeric or alphanumeric user response. 
         [0101]    With certain interview questions, and in some embodiments, the controller can be configured to prompt the installer to select between at least two answers or responses displayed on the display screen of the user interface, as indicated generally by block  1106 . For example, in response to the interview question “What type of equipment is the thermostat controlling?”, the user interface can be configured to display the answers “Conventional”, “Heat Pump”, and “Heat Only”, prompting the installer to select the appropriate type of equipment to be installed and/or configured. The user interface can then be configured to accept the user responses to each of the questions and then modify the operational parameters of the controller based on the user responses, as indicated generally by blocks  1108  and  1110 , respectively. 
         [0102]    In some embodiments, the user interface can be configured to display each of the answers simultaneously on the display screen of the user interface. In such configuration, the selection of a user response at block  1108  can be accomplished by the installer selecting an answer to the interview question from a list of multiple answers graphically displayed on the screen. In those embodiments in which the user interface includes a touchscreen, for example, the selection of a response can be accomplished directly by pressing the desired answer from a choice of answers provided on the screen, causing the controller to store that parameter and cycle to the next interview question in the queue. Alternatively, in those embodiments in which the user interface includes an LCD or dot matrix screen, the selection of the desired answer from the choice of answers can be accomplished via a button, knob, slide, keypad, or other suitable selector means on the user interface. 
         [0103]    The user interface can vary the presentation of the interview questions based at least in part on the installer&#39;s previous responses to other interview questions. If, for example, the installer selects on the user interface that the type equipment being installed is “Heat Only”, the interview question generator can be configured to skip those questions pertaining to the stages and cycle times for cooling. The ordering of the interview questions can also be varied based on the particular piece of equipment being configured. If, for example, the installation mode at block  1102  is initiated in response to a new piece of equipment connected to the controller, the interview question generator can be configured to present to the installer only those questions pertaining to the new equipment. 
         [0104]    The interview question generator can also be configured to suggest a default answer based on any previous responses, based on any previous controller settings, and/or based on settings which are commonly selected for that particular piece of equipment. For example, with respect to the selection of the number of stages for heating, the user interface can be configured to default to a common answer or response of “2” while providing the installer with the ability to select among other numbers of heating stages (e.g., “0”, “1”, “3”, “4”, “5”, “6”, etc.), if desired. The suggestion of a default answer can be accomplished, for example, by highlighting or flashing the answer on the display screen, by moving a selection indicator adjacent to the answer on the display screen, or by other suitable means. 
         [0105]      FIGS. 13A-13Z  are schematic drawings of an illustrative HVAC touchscreen interface  1200  showing an illustrative implementation of the flow diagram depicted in  FIG. 12 . In a first view depicted in  FIG. 13A , the interface  1200  can be configured to display a main installation menu screen  1202  on the display panel  1204 , providing the installer with the choice of configuring one or more HVAC system components. The main installation menu screen  1202  can include, for example, a “FULL SET-UP” icon button  1206 , a “COMPONENT BASED SET-UP” icon button  1208 , and a “MANUAL SET-UP” icon button  1210 . 
         [0106]    The “FULL SET-UP” icon button  1206  can be selected on the display panel  1204  to permit the installer to fully configure the controller to work with the system components for the first time, or when the installer otherwise desires to cycle through each of the interview questions in sequence. The “COMPONENT BASED SET-UP” icon button  1208 , in turn, can be selected to permit the installer to configure only certain system components or to configure the system in a different order than that normally provided by the interface  1200 . The “MANUAL SET-UP” icon button  1210  can be selected to permit the installer to configure the controller manually using numeric or alphanumeric codes, if desired. 
         [0107]      FIG. 13B  is a schematic drawing showing the selection of the “FULL SET-UP” icon button  1206  on the main installation menu screen  1202  of  FIG. 13A . As shown in  FIG. 13B , the selection of icon button  1206  causes the interface  1200  to display a language setup screen  1212  that prompts the installer to select a desired language format for the remainder of the installation configuration. The interface  1200  can be configured to display, for example, an “ENGLISH” icon button  1214 , an “ESPANOL” icon button  1216 , and a “FRANCAIS” icon button  1218 . Other language choices can also be displayed on the language setup screen  1212 , if desired. A “BACK” icon button  1220  and “ENTER” icon button  1222  can be provided on the display panel  1204  to permit the installer to move back to the prior screen or to enter the current setting selected and move forward to the next question in the queue. A “QUIT” icon button  1224  can be provided on the display panel  1204  to permit the installer to quit the installation configuration mode, save any changes made, and then return the controller to normal operation. 
         [0108]      FIG. 13C  is a schematic view showing the interface  1200  after the selection of the “ENGLISH” icon button  1214  on the language setup screen  1212  of  FIG. 13B . As shown in  FIG. 13C , once the installer has selected a desired language, the interface  1200  can be configured to display an equipment type screen  1226  allowing the installer to select the type of equipment to be configured. In some embodiments, for example, the equipment type screen  1226  may prompt the installer to select among a “CONVENTIONAL” icon button  1228 , a “HEAT PUMP” icon button  1230 , or a “HEAT ONLY” icon button  1232  each simultaneously displayed on the display panel  1204 . 
         [0109]    Once the installer has selected the desired equipment to be installed via the equipment type screen  1226 , and as further shown in  FIG. 13D , the interface  1200  can be configured to display a screen  1236  prompting the installer to select the number of heat stages to be configured, if any. Several numeric icon buttons  1238  can be provided on the screen  1236  to permit the installer to select the desired number of heat stages to be controlled. If, for example, the equipment to be configured has 2 stages of heating, the installer may select a “2” icon button  1238   a  on the screen  1236 . Conversely, if the equipment to be configured has no heating stages, the installer may select a “0” icon button  238   b  on the display screen  1236 , causing the interface  1200  to thereafter skip those interview questions pertaining to heating stages and cycles. 
         [0110]    Once the number of heat stages has been configured via screen  1236 , and as further shown in  FIG. 13E , the interface  1200  can be configured to display another screen  1240  prompting the installer to select the number of cooling stages to be configured, if any. Several numeric icon buttons  1242  can be provided simultaneously on the screen  1240  to permit the installer to select the desired number of cooling stages. If, for example, the equipment to be configured has 2 stages of cooling, the installer may select a “2” icon button  1242   a  on the screen  1240 . Depending on the response to the previous interview question on screen  1236  of  FIG. 13D , the interface  1200  can be configured to default to a particular answer (e.g. “2”) by blinking or flashing the answer on the screen  1240 . In some cases, the interface  1240  may assume that the number of cooling stages is the same as the number of heating stages and skip screen  1240  altogether. 
         [0111]      FIG. 13F  is a schematic view showing the interface  1200  subsequent to the steps of configuring the heating and cooling stages in  FIGS. 13D-13E . As shown in  FIG. 13F , the interface  1200  can be configured to provide a screen  1244  initially prompting the installer to select a desired number of cycles per hour for the first stage of heating. Several numeric icon buttons  1246  can be provided simultaneously on the screen  1244  to permit the user to select the cycle rate at which the system operates for the particular stage number  1248  displayed on the screen  1244 . For the first stage of heating for a two-stage system, for example, the installer may select the “6” icon button  1246   a  to operate the first heating stage for six cycles per each hour. Once a response is received for the first heating cycle, the interface  1200  may then prompt the installer to select the number of cycles for the second heating stage, as further shown in FIG.  13 G. The process can be repeated one or more times depending on the number of heating stages to be configured. 
         [0112]      FIG. 13H  is a schematic view showing the presentation of another screen  1250  on the interface  1200  for selecting the cycle rate for each cooling stage to be configured within the controller. Similar to the screen  1244  depicted in  FIGS. 13F-13G , the screen  1250  may prompt the installer to initially select a desired number of cycles per hour for the first stage of cooling, and then repeat the interview process for each additional stage to be programmed, if any. Several numeric icon buttons  1252  can be provided simultaneously on the screen  1250  to permit the installer to select the cycle rate at which the system operates for the particular stage number  1254  displayed on the screen  1250 . Once the installer has completed configuring each stage of heating and cooling, the interface  1200  can be configured jump to additional interview questions for any other components to be configured, or, alternatively, can exit the routine and return to normal operation using the newly programmed settings. 
         [0113]    Once programming is complete, and as further shown in  FIG. 13I , the interface  1200  can be configured to display a screen  1256  indicating that the configuration was successful along with a “VIEW SETTINGS” icon button  1258  allowing the installer to view the controller settings. A “BACK” icon button  1260  can be selected if the installer desires to go back and modify or change any settings. A “DONE” icon button  1262 , in turn, can be selected by the installer to return the controller to normal operation. 
         [0114]    Referring back to  FIG. 13A , if the installer desires to configure only selective components of the system, or prefers to enter configuration information in an order different than that generated by the interview question generator, the installer may select the “COMPONENT BASED SET-UP” icon button  1208  on the main installation menu screen  1202 . When selected, the interface  1200  can be configured to display a component selection screen  1264 , allowing the installer to select from among several different categories of equipment for configuration, as shown in  FIG. 13J . The component selection screen  1264  can include, for example, a “HEATING” icon button  1266 , a “COOLING” icon button  1268 , a “VENTILATION” icon button  1270 , a “FILTRATION” icon button  1272 , a “UV LAMP” icon button  1274 , a “HUMIDIFICATION” icon button  1276 , and a “DEHUMIDIFICATION” icon button  1278 . The icon buttons can correspond, for example, to the system components described above with respect to  FIG. 9 , although other combinations of system components are contemplated. An “OTHER” icon button  1280  provided on the screen  1264  can be selected by the installer to configure other system components such as any sensors or other connected controllers, if desired. 
         [0115]    The selection of the icon buttons on the component selection screen  1264  causes the interface  1200  to display one or more interview questions and answers on the display panel  1204  based on the type of equipment to be configured. If, for example, the installer desires to configure only the heating and cooling system components, the installer may select both the “HEATING” icon button  1266  and “COOLING” icon button  1268  on the screen  1264 , causing the user interface  1200  to present only those interview questions that pertain to heating and cooling control. The process of providing the installer interview questions and answers in multiple-choice format can then be performed in a manner similar to that described above with respect to  FIGS. 13C-13H . If desired, the process can be performed for any other system component or components to be configured. 
         [0116]    The present invention should not be considered limited to the particular examples described above, but rather should be understood to cover all aspects of the invention as fairly set out in the attached claims. Various modifications, equivalent processes, as well as numerous structures to which the present invention can be applicable will be readily apparent to those of skill in the art to which the present invention is directed upon review of the instant specification.