Patent application title: REMOTE MANAGEMENT OF COMMUNICATING THERMOSTAT TO ACHIEVE JUST IN TIME CONDITIONING
John Douglas Steinberg (Millbrae, CA, US)
Scott Douglas Hublou (Redwood City, CA, US)
Leo Cheung (Sunnyvale, CA, US)
Leo Cheung (Sunnyvale, CA, US)
IPC8 Class: AG05D2319FI
Class name: Mechanical control system hvac control specific thermally responsive controller
Publication date: 2013-11-21
Patent application number: 20130310989
Systems and methods for reducing the cycling time of a climate control
system. For example, one or more of the exemplary systems can receive
from a database a target time at which a structure is desired to reach a
target temperature. In addition, the system acquires the temperature
inside the structure and the temperature outside the structure at a time
prior to said target time. The systems use a thermal characteristic of
the structure and a performance characteristic of the climate control
system, to determine the appropriate time prior to the target time at
which the climate control system should turn on based at least in part on
the structure, the climate control system, the inside temperature and the
outside temperature. The systems then set a setpoint on a thermostatic
controller to control the climate control system.
1. A method for reducing the cycling time of a climate control system,
said method comprising: accessing stored data comprising a plurality of
internal temperature readings taken within a structure and a plurality of
measurements relating to temperatures outside said structure; using the
stored data to determine one or more thermal performance values of said
structure, wherein said one or more thermal performance values indicate a
rate of change of temperature in said structure in response to changes in
outside temperatures; storing said one or more thermal performance values
of said structure; retrieving a target time at which said structure is
desired to reach a target temperature; acquiring a measurement relating
to a temperature outside said structure at a time prior to said target
time; retrieving at least a said one or more thermal performance values
of said structure; determining a first time prior to said target time at
which said climate control system should turn on to reach the target
temperature by the target time based at least in part on said one or more
thermal performance values of said structure, and said outside
temperature; and calculating a plurality of intermediate setpoints that
occur between the first time and the target time, wherein the plurality
of intermediate setpoints control said climate control system such that
the temperature inside the structure reaches approximately the target
temperature at approximately the target time.
2. A method as in claim 1 wherein said climate control system further comprises a thermostatic controller.
3. A method as in claim 1 where said climate control system is a heating, ventilation and air conditioning system.
4. A method as in claim 1 where said climate control system is a heating, ventilation and air conditioning system in a single family residence.
5. A method as in claim 1 in which at least one remote processor is in communication with said climate control system.
6. A method as in claim 5 in which said remote processor is not located in the same structure as said climate control system.
7. A method as in claim 5 in which said remote processor sets programming for said climate control system.
8. A method as in claim 1 in which said th climate control system is programmable.
9. A method for minimizing the cycling time of a space heating system, said method comprising: accessing stored data comprising a plurality of temperatures within a structure and a plurality of outside temperatures outside said structure; using the stored data to determine one or more thermal performance values of said structure, wherein said one or more thermal performance values indicate a rate of change of temperature in said structure in response to changes in outside temperatures; storing the one or more thermal performance values of said structure; retrieving a target time at which a temperature in said structure is desired to reach a target temperature; acquiring the temperature outside said structure at a time prior to said target time; retrieving at least said one or more thermal performance values of said structure; calculating at least a first setpoint and a second setpoint that occur between the first time and the target time, wherein the first and second setpoints direct a climate control system to change the actual temperature inside the structure to the target temperature in a series of intermediate steps based at least in part on said one or more thermal performance values of said structure, and said outside temperature, where said second setpoint is lower than said target temperature, and said first setpoint is lower than said second setpoint; calculating at least a first setpoint target time and a second setpoint target time based at least in part on said one or more thermal performance values of said structure, and said outside temperature, where said second setpoint target time is prior to said target time, and said first setpoint target time is prior to said second setpoint target time; and setting at least said first setpoint at said first setpoint target time and said second setpoint at said second setpoint target time to control said climate control system.
10. A method as in claim 9 where said climate control system is a heating, ventilation and air conditioning system in a single family residence.
11. A method as in claim 9 in which at least one remote processor is in communication with said climate control system.
12. A method as in claim 11 in which said remote processor is not located in the same structure as said climate control system.
13. A method as in claim 11 in which said remote processor sets programming for said climate control system.
14. A method as in claim 9 in which said climate control system is programmable.
15. A method for minimizing the cycling time of an air conditioning system, said method comprising: accessing stored data comprising a plurality of temperatures readings taken within a structure and a plurality of measurements relating to temperatures outside said structure; using the stored data to determine one or more thermal performance values of said structure, wherein said one or more thermal performance values indicate a rate of change of temperature in said structure in response to changes in outside temperatures; storing one or more thermal performance values of said structure; retrieving a target time at which a temperature in said structure is desired to reach a target temperature; acquiring the temperature outside said structure at a time prior to said target time; retrieving at least said one or more thermal performance values of said structure; calculating at least a first setpoint and a second setpoint that occur between the first time and the target time, wherein the first and second setpoints direct a climate control system to change the actual temperature inside the structure to the target temperature in a series of intermediate steps based at least in part on said one or more thermal performance values of said structure, and said outside temperature, where said second setpoint is higher than said target temperature, and said first setpoint is higher than said second setpoint; calculating at least a first setpoint target time and a second setpoint target time based at least in part on said one or more thermal performance values of said structure, where said second setpoint target time is prior to said target time, and said first setpoint target time is prior to said second setpoint target time; and setting at least said first setpoint at said first setpoint target time and said second setpoint at said second setpoint target time to control said climate control system.
16. A method as in claim 15 where said climate control system is a heating, ventilation and air conditioning system in a single family residence.
17. A method as in claim 15 in which at least one remote processor is in communication with said climate control system.
18. A method as in claim 17 in which said remote processor is not located in the same structure as said climate control system.
19. A method as in claim 17 in which said remote processor sets programming for said climate control system.
20. A method as in claim 15 in which said climate control system is programmable.
CROSS-REFERENCE TO RELATED APPLICATIONS
 This application is a continuation of U.S. patent application Ser. No. 12/773,690, filed on May 4, 2010, which claims priority to Provisional Application No. 61/215,657, filed May 8, 2009, the entireties of both of which are incorporated herein by reference and are to be considered part of this specification.
BACKGROUND OF THE INVENTION
Field of the Invention
 Programmable thermostats have been available for more than 20 years. Programmable thermostats offer two types of advantages as compared to non-programmable devices. On the one hand, programmable thermostats can save energy in large part because they automate the process of reducing conditioning during times when the space is unoccupied, or while occupants are sleeping, and thus reduce energy consumption.
 On the other hand, programmable thermostats can also enhance comfort as compared to manually changing setpoints using a non-programmable thermostat. For example, during the winter, a homeowner might manually turn down the thermostat from 70 degrees F. to 64 degrees when going to sleep and back to 70 degrees in the morning. The drawback to this approach is that there can be considerable delay between the adjustment of the thermostat and the achieving of the desired change in ambient temperature, and many people find getting out of bed, showering, etc. in a cold house unpleasant. A programmable thermostat allows homeowners to anticipate the desired result by programming a pre-conditioning of the home. So, for example, if the homeowner gets out of bed at 7 AM, setting the thermostat to change from the overnight setpoint of 64 degrees to 70 at 6 AM can make the house comfortable when the consumer gets up. The drawback to this approach is that the higher temperature will cost more to maintain, so the increase in comfort is purchased at the cost of higher energy usage.
 A significant difficulty with this approach is that the amount of preconditioning required to meet a given standard of comfort is a function of several variables. First, the amount of preconditioning required will vary with outside temperature. An HVAC system that might require an hour to increase the temperature in a given home from 64 to 70 degrees when it is 45 degrees outside might take two hours when it is 5 degrees outside. Second, the amount of preconditioning required will vary depending on the relationship between the capacity of the HVAC system and the thermal characteristics of the structure. That is, a high capacity HVAC system in a given structure will achieve a target temperature faster than a smaller system; a well-insulated home with double-glazed windows will respond more quickly to a given HVAC system than an uninsulated home with single-glazed windows will. Consumers can program their thermostats to turn on the furnace early enough that the desired temperature is always reached at the target time even on the coldest days, but the cost of this choice will be wasted energy and money on warmer days. Alternatively, consumers can choose more economical settings, with the cost of loss of comfort on cold days. Similar tradeoffs will be faced when trying to optimize setbacks during the summer in homes that have air conditioning.
 It would therefore be advantageous to have a means for controlling the HVAC system that is capable of taking into account both outside weather conditions and the thermal characteristics of individual homes in order to improve the ability to dynamically achieve the best possible balance between comfort and energy savings.
BRIEF DESCRIPTION OF THE DRAWINGS
 FIG. 1 shows an example of an overall environment in which an embodiment of the invention may be used.
 FIG. 2 shows a high-level illustration of the architecture of a network showing the relationship between the major elements of one embodiment of the subject invention.
 FIG. 3 shows an embodiment of the website to be used as part of the subject invention.
 FIG. 4 shows a high-level schematic of the thermostat used as part of the subject invention.
 FIG. 5 shows one embodiment of the database structure used as part of the subject invention.
 FIGS. 6A and 6B show how comparing inside temperature against outside temperature and other variables permits calculation of dynamic signatures.
 FIG. 7 shows a flow chart for a high level version of the process of calculating the appropriate turn-on time in a given home.
 FIG. 8 shows a more detailed flowchart listing the steps in the process of calculating the appropriate turn-on time in a given home.
 FIGS. 9A-9D show the steps shown in the flowchart in FIG. 8 in the form of a graph of temperature and time.
 FIG. 10 shows a table of some of the data used by the subject invention to predict temperatures.
 FIG. 11 shows the subject invention as applied in a specific home on a specific day.
 FIG. 12 shows the subject invention as applied in a different specific home on a specific day.
 FIG. 13 shows a table of predicted rates of change in temperature inside a given home for a range of temperature differentials between inside and outside.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
 FIG. 1 shows an example of an overall environment 100 in which an embodiment of the invention may be used. The environment 100 includes an interactive communication network 102 with computers 104 connected thereto. Also connected to network 102 are one or more server computers 106, which store information and make the information available to computers 104. The network 102 allows communication between and among the computers 104 and 106.
 Presently preferred network 102 comprises a collection of interconnected public and/or private networks that are linked to together by a set of standard protocols to form a distributed network. While network 102 is intended to refer to what is now commonly referred to as the Internet, it is also intended to encompass variations which may be made in the future, including changes additions to existing standard protocols.
 One popular part of the Internet is the World Wide Web. The World Wide Web contains a large number of computers 104 and servers 106, which store HyperText Markup Language (HTML) documents capable of displaying graphical and textual information. HTML is a standard coding convention and set of codes for attaching presentation and linking attributes to informational content within documents.
 The servers 106 that provide offerings on the World Wide Web are typically called websites. A website is often defined by an Internet address that has an associated electronic page. Generally, an electronic page is a document that organizes the presentation of text graphical images, audio and video.
 In addition to the Internet, the network 102 can comprise a wide variety of interactive communication media. For example, network 102 can include local area networks, interactive television networks, telephone networks, wireless data systems, two-way cable systems, and the like.
 Network 102 can also comprise servers 106 that provide services other than HTML documents. Such services may include the exchange of data with a wide variety of "edge" devices, some of which may not be capable of displaying web pages, but that can record, transmit and receive information.
 In one embodiment, computers 104 and servers 106 are conventional computers that are equipped with communications hardware such as a modem or a network interface card. The computers include processors such as those sold by Intel and AMD. Other processors may also be used, including general-purpose processors, multi-chip processors, embedded processors and the like.
 Computers 104 can also be handheld and wireless devices such as personal digital assistants (PDAs), cellular telephones and other devices capable of accessing the network.
 Computers 104 utilize a browser configured to interact with the World Wide Web. Such browsers may include Microsoft Explorer, Mozilla, Firefox, Opera or Safari. They may also include browsers used on handheld and wireless devices.
 The storage medium may comprise any method of storing information. It may comprise random access memory (RAM), electronically erasable programmable read only memory (EEPROM), read only memory (ROM), hard disk, floppy disk, CD-ROM, optical memory, or other method of storing data.
 Computers 104 and 106 may use an operating system such as Microsoft Windows, Apple Mac OS, Linux, Unix or the like.
 Computers 106 may include a range of devices that provide information, sound, graphics and text, and may use a variety of operating systems and software optimized for distribution of content via networks.
 FIG. 2 illustrates in further detail the architecture of the specific components connected to network 102 showing the relationship between the major elements of one embodiment of the subject invention. Attached to the network are thermostats 108 and computers 104 of various users. Connected to thermostats 108 are HVAC units 110. The HVAC units may be conventional air conditioners, heat pumps, or other devices for transferring heat into or out of a building. Each user is connected to the servers 106a via wired or wireless connection such as Ethernet or a wireless protocol such as IEEE 802.11, a gateway or wireless access point 112 that connects the computer and thermostat to the Internet via a broadband connection such as a digital subscriber line (DSL) or other form of broadband connection to the World Wide Web. In one embodiment, thermostat management server 106 is in communication with the network 102. Server 106 contains the content to be served as web pages and viewed by computers 104, as well as databases containing information used by the servers, and applications used to remotely manage thermostats 108.
 In the currently preferred embodiment, the website 200 includes a number of components accessible to the user, as shown in FIG. 3. Those components may include a means to store temperature settings 202, a means to enter information about the user's home 204, a means to enter the user's electricity bills 206, and means to elect to enable the subject invention 208.
 FIG. 4 shows a high-level block diagram of thermostat 108 used as part of the subject invention. Thermostat 108 includes temperature sensing means 252, which may be a thermistor, thermal diode or other means commonly used in the design of electronic thermostats. It includes a microprocessor 254, memory 256, a display 258, a power source 260, at least one relay 262, which turns the HVAC system on and off in response to a signal from the microprocessor, and contacts by which the relay is connected to the wires that lead to the HVAC system. To allow the thermostat to communicate bi-directionally with the computer network, the thermostat also includes means 264 to connect the thermostat to a local computer or to a wired or wireless network. Such means could be in the form of Ethernet, wireless protocols such as IEEE 802.11, IEEE 802.15.4, Bluetooth, or other wireless protocols. The thermostat may be connected to the computer network directly via wired or wireless Internet Protocol connection. Alternatively, the thermostat may connect wirelessly to a gateway such as an IP-to-Zigbee gateway, an IP-to-Z-wave gateway, or the like. Where the communications means enabled include wireless communication, antenna 266 will also be included. The thermostat 250 may also include controls 268 allowing users to change settings directly at the thermostat, but such controls are not necessary to allow the thermostat to function.
 The data used to generate the content delivered in the form of the website and to automate control of thermostat 108 is stored on one or more servers 106 within one or more databases. As shown in FIG. 5, the overall database structure 300 may include temperature database 400, thermostat settings database 500, energy bill database 600, HVAC hardware database 700, weather database 800, user database 900, transaction database 1000, product and service database 1100 and such other databases as may be needed to support these and additional features.
 The website will allow users of connected thermostats 108 to create personal accounts. Each user's account will store information in database 900, which tracks various attributes relative to users. Such attributes may include the make and model of the specific HVAC equipment in the user's home; the age and square footage of the home, the solar orientation of the home, the location of the thermostat in the home, the user's preferred temperature settings, etc.
 As shown in FIG. 3, the website 200 will permit thermostat users to perform through the web browser substantially all of the programming functions traditionally performed directly at the physical thermostat, such as temperature set points, the time at which the thermostat should be at each set point, etc. Preferably the website will also allow users to accomplish more advanced tasks such as allow users to program in vacation settings for times when the HVAC system may be turned off or run at more economical settings, and to set macros that will allow changing the settings of the temperature for all periods with a single gesture such as a mouse click.
 In addition to using the system to allow better signaling and control of the HVAC system, which relies primarily on communication running from the server to the thermostat, the bi-directional communication will also allow the thermostat 108 to regularly measure and send to the server information about the temperature in the building. By comparing outside temperature, inside temperature, thermostat settings, cycling behavior of the HVAC system, and other variables, the system will be capable of numerous diagnostic and controlling functions beyond those of a standard thermostat.
 For example, FIG. 6a shows a graph of inside temperature, outside temperature and HVAC activity for a 24 hour period. When outside temperature 302 increases, inside temperature 304 follows, but with some delay because of the thermal mass of the building, unless the air conditioning 306 operates to counteract this effect. When the air conditioning turns on, the inside temperature stays constant (or rises at a much lower rate or even falls) despite the rising outside temperature. In this example, frequent and heavy use of the air conditioning results in only a very slight temperature increase inside the house of 4 degrees, from 72 to 76 degrees, despite the increase in outside temperature from 80 to 100 degrees.
 FIG. 6b shows a graph of the same house on the same day, but assumes that the air conditioning is turned off from noon to 7 PM. As expected, the inside temperature 304a rises with increasing outside temperatures 302 for most of that period, reaching 88 degrees at 7 PM. Because server 106 logs the temperature readings from inside each house (whether once per minute or over some other interval), as well as the timing and duration of air conditioning cycles, database 300 will contain a history of the thermal performance of each house. That performance data will allow the server 106 to calculate an effective thermal mass for each such structure--that is, the speed with the temperature inside a given building will change in response to changes in outside temperature. Because the server will also log these inputs against other inputs including time of day, humidity, etc. the server will be able to predict, at any given time on any given day, the rate at which inside temperature should change for given inside and outside temperatures.
 The ability to predict the rate of change in inside temperature in a given house under varying conditions may be applied by in effect holding the desired future inside temperature as a constraint and using the ability to predict the rate of change to determine when the HVAC system must be turned on in order to reach the desired temperature at the desired time.
 FIG. 7 shows a flowchart illustrating the high-level process for controlling a just-in-time (JIT) event. In step 1002, the server determines whether a specific thermostat 108 is scheduled to run the preconditioning program. If, not, the program terminates. If it so scheduled, then in step 1004 the server retrieves the predetermined target time when the preconditioning is intended to have been completed (TT). Using TT as an input, in step 1006 the server then determines the time at which the computational steps required to program the preconditioning event will be performed (ST). In step 1008, performed at start time ST, the server begins the process of actually calculating the required parameters, as discussed in greater detail below. Then in 1010 specific setpoint changes are transmitted to the thermostat so that the temperature inside the home may be appropriately changed as intended.
 FIG. 8 shows a more detailed flowchart of the process. In step 1102, the server retrieves input parameters used to create a JIT event. These parameters include the maximum time allowed for a JIT event for thermostat 108 (MTI); the target time the system is intended to hit the desired temperature (TT); and the desired inside temperature at TT (TempTT). It is useful to set a value for MTI because, for example, it will be reasonable to prevent the HVAC system from running a preconditioning event if it would be expected to take 8 hours, which might be prohibitively expensive.
 In step 1104, the server retrieves data used to calculate the appropriate start time with the given input parameters. This data includes a set of algorithmic learning data (ALD), composed of historic readings from the thermostat, together with associated weather data, such as outside temperature, solar radiation, humidity, wind speed and direction, etc; together with weather forecast data for the subject location for the period when the algorithm is scheduled to run (the weather forecast data, or WFD). The forecasting data can be as simple as a listing of expected temperatures for a period of hours subsequent to the time at which the calculations are performed, to more detailed tables including humidity, solar radiation, wind, etc. Alternatively, it can include additional information such as some or all of the kinds of data collected in the ALD.
 In step 1106, the server uses the ALD and the WFD to create prediction tables that determine the expected rate of change or slope of inside temperature for each minute of HVAC cycle time (ΔT) for the relevant range of possible pre-existing inside temperatures and outside climatic conditions. An example of a simple prediction table is illustrated in FIG. 13.
 In step 1108, the server uses the prediction tables created in step 1106, combined with input parameters TT and Temp(TT) to determine the time at which slope ΔT intersects with predicted initial temperature PT. The time between PT and TT is the key calculated parameter: the preconditioning time interval, or PTI.
 In step 1110, the server checks to confirm that the time required to execute the pre-conditioning event PTI does not exceed the maximum parameter MTI. If PTI exceeds MTI, the scheduling routine concludes and no ramping setpoints are transmitted to the thermostat.
 If the system is perfect in its predictive abilities and its assumptions about the temperature inside the home are completely accurate, then in theory the thermostat can simply be reprogrammed once--at time PT, the thermostat can simply be reprogrammed to Temp(TT). However, there are drawbacks to this approach. First, if the server has been overly conservative in its predictions as to the possible rate of change in temperature caused by the HVAC system, the inside temperature will reach TT too soon, thus wasting energy and at least partially defeating the purpose of running the preconditioning routine in the first place. If the server is too optimistic in its projections, there will be no way to catch up, and the home will not reach Temp(TT) until after TT. Thus it would be desirable to build into the system a means for self-correcting for slightly conservative start times without excessive energy use. Second, the use of setpoints as a proxy for actual inside temperatures in the calculations is efficient, but can be inaccurate under certain circumstances. In the winter (heating) context, for example, if the actual inside temperature is a few degrees above the setpoint (which can happen when outside temperatures are warm enough that the home's natural "set point" is above the thermostat setting), then setting the thermostat to Temp(TT) at time PT will almost certainly lead to reaching TT too soon as well.
 The currently preferred solution to both of these possible inaccuracies is to calculate and program a series of intermediate settings between Temp(PT) and Temp(TT) that are roughly related to ΔT.
 Thus if MTI is greater than PTI, then in step 1112 the server calculates the schedule of intermediate setpoints and time intervals to be transmitted to the thermostat. Because thermostats cannot generally be programmed with steps of less than 1 degree F., ΔT is quantized into discrete interval data of at least 1 degree F. each. For example, if Temp(PT) is 65 degrees F., Temp(TT) is 72 degrees F., and PT is 90 minutes, the thermostat might be programmed to be set at 66 for 10 minutes, 67 for 12 minutes, 68 for 15 minutes, etc. The server may optionally limit the process by assigning a minimum programming interval (e.g., at least ten minutes between setpoint changes) to avoid frequent switching of the HVAC system, which can reduce accuracy because of the thermostat's compressor delay circuit, which may prevent quick corrections. The duration of each individual step may be a simple arithmetic function of the time PTI divided by the number of whole-degree steps to be taken; alternatively, the duration of each step may take into account second order thermodynamic effects relating to the increasing difficulty of "pushing" the temperature inside a house further from its natural setpoint given outside weather conditions, etc. (that is, the fact that on a cold winter day it may take more energy to move the temperature inside the home from 70 degrees F. to 71 than it does to move it from 60 degrees to 61).
 In step 1114, the server schedules setpoint changes calculated in step 1112 for execution by the thermostat.
 With this system, if actual inside temperature at PT is significantly higher than Temp(PT), then the first changes to setpoints will have no effect (that is, the HVAC system will remain off), and the HVAC system will not begin using energy, until the appropriate time, as shown in FIG. 12. Similarly, if the server has used conservative predictions to generate ΔT, and the HVAC system runs ahead of the predicted rate of change, the incremental changes in setpoint will delay further increases until the appropriate time in order to again minimize unnecessary energy use, as shown in FIG. 11.
 FIG. 9(a) through 9(d) shows the steps in the preconditioning process as a graph of temperature and time. FIG. 9(a) shows step 1102, in which inputs target time TT 1202, target temperature Temp(TT) 1204, maximum conditioning interval MTI 1206 and the predicted inside temperature during the period of time the preconditioning event is likely to begin Temp(TT) 1208 are retrieved.
 FIG. 9(b) shows the initial calculations performed in step 1108, in which expected rate of change in temperature ΔT 1210 inside the home is generated from the ALD and WFD using Temp(TT) 1204 at time TT 1202 as the endpoint.
 FIG. 9(c) shows how in step 1108 ΔT 1210 is used to determine start time PT 1212 and preconditioning time interval PTI 1214. It also shows how in step 1110 the server can compare PTI with MTI to determine whether or not to instantiate the pre-conditioning program for the thermostat.
 FIG. 9(d) shows step 1112, in which specific ramped setpoints 1216 are generated. Because of the assumed thermal mass of the system, actual inside temperature at any given time will not correspond to setpoints until some interval after each setpoint change. Thus initial ramped setpoint 1216 may be higher than Temp(PT) 1208, for example.
 FIG. 10 shows an example of the types of data that may be used by the server in order to calculate ΔT 1210. Such data may include inside temperature 1302, outside temperature 1304, cloud cover 1306, humidity 1308, barometric pressure 1310, wind speed 1312, and wind direction 1314.
 Each of these data points should be captured at frequent intervals. In the preferred embodiment, as shown in FIG. 10, the interval is once every 60 seconds.
 FIG. 11 shows application of the subject invention in an actual house. Temperature and setpoints are plotted for the 4-hour period from 4 AM to 8 AM with temperature on the vertical axis and time on the horizontal axis. The winter nighttime setpoint 1402 is 60 degrees F.; the morning setpoint temperature 1404 is 69 degrees F. The outside temperature 1406 is approximately 45 degrees F. The target time TT 1408 for the setpoint change to morning setting is 6:45 AM. In the absence of the subject invention, the homeowner could program the thermostat to change to the new setpoint at 6:45, but there is an inherent delay between a setpoint change and the response of the temperature inside the home. (In this home on this day, the delay is approximately fifty minutes.) Thus if the homeowner truly desired to achieve the target temperature at the target time, some anticipation would be necessary. The amount of anticipation required depends upon numerous variables, as discussed above.
 After calculating the appropriate slope ΔT 1210 by which to ramp inside temperature in order to reach the target as explained above, the server transmits a series of setpoints 1216 to the thermostat because the thermostat is presumed to only accept discrete integers as program settings. (If a thermostat is capable of accepting finer settings, as in the case of some thermostats designed to operate in regions in which temperature is generally denoted in Centigrade rather than Fahrenheit, which accept settings in half-degree increments, tighter control may be possible.) In any event, in the currently preferred embodiment of the subject invention, programming changes are quantized such that the frequency of setpoint changes is balanced between the goal of minimizing network traffic and the frequency of changes made on the one hand and the desire for accuracy on the other. Balancing these considerations may result in some cases in either more frequent changes or in larger steps between settings. As shown in FIG. 11, the setpoint "stairsteps" from 60 degrees F. to 69 degrees F. in nine separate setpoint changes over a period of 90 minutes.
 Because the inside temperature 1408 when the setpoint management routine was instantiated at 5:04 AM 1210 was above the "slope" and thus above the setpoint, the HVAC system was not triggered and no energy was used unnecessarily heating the home before such energy use was required. Actual energy usage does not begin until 5:49 AM.
 FIG. 12 shows application of the subject invention in a different house during a similar four hour interval. In FIG. 12, the predicted slope ΔT 1210 is less conservative relative to the actual performance of the home and HVAC system, so there is no off cycling during the preconditioning event--the HVAC system turns on at approximately 4:35 AM and stays on continuously during the event. The home reaches the target temperature Temp(TT) roughly two minutes prior to target time TT.
 FIG. 13 shows a simple prediction table. The first column 1602 lists a series of differentials between outside and inside temperatures. Thus when the outside temperature is 14 degrees and the inside temperature is 68 degrees, the differential is -54 degrees; when the outside temperature is 94 degrees and the inside temperature is 71 degrees, the differential is 13 degrees. The second column 1604 lists the predicted rate of change in inside temperature ΔT 1210 assuming that the furnace is running in terms of degrees Fahrenheit of change per hour. A similar prediction table will be generated for predicted rates of change when the air conditioner is on; additional tables may be generated that predict how temperatures will change when the HVAC system is off.
 Alternatively, the programming of the just-in-time setpoints may be based not on a single rate of change for the entire event, but on a more complex multivariate equation that takes into account the possibility that the rate of change may be different for events of different durations.
 The method for calculating start times may also optionally take into account not only the predicted temperature at the calculated start time, but may incorporate measured inside temperature data from immediately prior to the scheduled start time in order to update calculations, or may employ more predictive means to extrapolate what inside temperature based upon outside temperatures, etc.
 Additional means of implementing the instant invention may be achieved using variations in system architecture. For example, much or even all of the work being accomplished by remote server 106 may also be done by thermostat 108 if that device has sufficient processing capabilities, memory, etc. Alternatively, these steps may be undertaken by a local processor such as a local personal computer, or by a dedicated appliance having the requisite capabilities, such as gateway 112.
Patent applications by John Douglas Steinberg, Millbrae, CA US
Patent applications by Leo Cheung, Sunnyvale, CA US
Patent applications by Scott Douglas Hublou, Redwood City, CA US
Patent applications by EcoFactor, Inc.
Patent applications in class Specific thermally responsive controller
Patent applications in all subclasses Specific thermally responsive controller