Patent Description:
Thermostats have been used for decades to control room temperatures based on user settings and temperature sensors commonly built into the thermostats. Thermostats typically control heating and/or cooling equipment (HVAC) by turning the equipment on or off. For example, when a room temperature where a thermostat is located drops below a setpoint, the thermostat sends a signal to heating equipment to begin heating the room. When the setpoint has been achieved or exceeded, the thermostat sends another signal to the heating equipment to turn off.

As wireless communication technology and microprocessors have become widespread, modern thermostats can be accessed by smart phones or tablet computers in order to define temperature profiles, to set temperatures on demand, and to receive status information. Typically, such wireless communication technology comprises one or more variations of the IEEE <NUM> standard, commonly known as Wi-Fi.

While such modern thermostats are convenient, they typically require a local Wi-Fi network in order for communications to occur. Many households in the United States, and a far greater number in other parts of the world, do not have such Wi-Fi networks, because they may not have access to the Internet, either because of financial issues or simply that the necessary public infrastructure is either non-existent.

It would be desirable, therefore, for thermostats to be able to communicate with mobile devices without the need for a local-area network. <CIT> discloses a system for optimising and controlling energy consumption of a building, including based on external temperatures. <CIT> discloses a system to store site report data from a plurality of sites using wireless energy networks at each site.

Document <CIT> discloses a system comprising: a thermostat comprising a processor, a temperature sensor, a user interface, a memory, and low-power communication circuitry; a mobile device suitable for direct communications with the thermostat, comprising: a memory; a network interface suitable for receiving a modified temperature profile from a remote server over a wide-area network; communication circuitry for communicating directly with the thermostat; and a processor coupled to the memory, the network interface and the communication circuitry.

The invention is defined by the independent claim. A selection of optional features of the invention is set out in the dependent claims.

The features, advantages, and objects of the present invention will become more apparent from the detailed description as set forth below, when taken in conjunction with the drawings in which like referenced characters identify correspondingly throughout, and wherein:.

Embodiments of the present invention are directed towards a system according to claim <NUM>. One or more temperature profiles are received from a remote server by a mobile device over a wide-area network, such as the Internet, and provided to the thermostat when the mobile device determines that it is in range of the thermostat. The temperature profiles are optimized to reduce the cost of heating/cooling a residence when time-of-use pricing is in effect. In one embodiment, the temperature profiles are also optimized for anticipated predicted outdoor temperatures.

<FIG> is a top, plan view of a structure <NUM> according to the invention. In this embodiment, structure <NUM> comprises a multi-room, single-story residence having a heating system <NUM>, a cooling system <NUM> and a thermostat <NUM> that controls heating system <NUM> and cooling system <NUM>. Thermostat <NUM> comprises a temperature sensor that senses the ambient temperature of the room where thermostat <NUM> is located. In some embodiments, thermostat may be configured to receive two or more temperature sensor inputs from temperature sensors located in other parts of structure <NUM>.

Like prior art thermostats, thermostat <NUM> may be programmable to execute one or more temperature profiles in the form of desired temperature setpoints and times when these setpoints should be achieved. For example, a user may set thermostat <NUM> to warm structure <NUM> to an ambient temperature of <NUM> degrees Celsius (<NUM> degrees Fahrenheit) at 7am when the user typically wakes, to maintain a temperature of no less than <NUM> degrees Celsius (<NUM> degrees Fahrenheit) at <NUM>:30am when the user leaves structure <NUM> to go to work, to set the temperature to <NUM> degrees Celsius (<NUM> degrees Fahrenheit) at 6pm when the user returns from work, and to maintain the temperature of no less than <NUM> degrees Celsius (<NUM> degrees Fahrenheit) at 10pm when the user typically goes to bed. As each of the times set by the user in the temperature profile near, thermostat <NUM> sends signals to heating system <NUM> or cooling system <NUM> to begin or stop heating or cooling, depending on the temperature setpoint for each setpoint time (i.e., waking, leaving, returning, retiring) and the ambient air temperature in the room where thermostat <NUM> is located.

To achieve the temperature setpoints at the times specified in the temperature profile, thermostat <NUM> typically begins heating or cooling before the set time for each temperature setpoint. In this way, the desired room temperature will be achieved at the time desired by the user. This is known in the art as "temperature ramping", "thermal ramping" or simply, "ramping". Prior art thermostats may be pre-programmed to begin ramping a predetermined, fixed time period before each setpoint time, such as <NUM> minutes or <NUM> minutes.

While many modern-day thermostats offer Internet connectivity, many do not. In addition, while most households in the United States have a local-area network installed, such as a home Wi-Fi network, many other households do not. In these cases, thermostat <NUM> is not capable of sending or receiving information via a local or wide-area network, such as the Internet. However, thermostat <NUM> may be capable of wireless communications directly with a mobile device <NUM>, such as a smart phone or tablet computer, using another form of wireless communications, such as Bluetooth Low Energy (BLE) or near-field communications (NFC). Using such direct communications allows thermostat <NUM> to receive wireless information, such as setup information and temperature profiles from mobile device <NUM> when mobile device <NUM> is within range of thermostat <NUM>, and also to provide historical information to mobile device <NUM>.

Mobile device <NUM> may be in communication with server <NUM> via a local-area network, such as a home Wi-Fi router and modem, and a wide-area network <NUM>, such as the Internet, or it may be in "direct" communication with server <NUM> via a cellular network <NUM>. Server <NUM> is used to automatically provide temperature profiles to mobile device <NUM>, which then, in turn, provides them to thermostat <NUM> when mobile device <NUM> is within range of thermostat <NUM>. Moreover, server <NUM> may be capable of receiving information from thermostat <NUM>, such as past temperature readings and/or other information, by relaying such information to mobile device <NUM> when mobile device <NUM> is within range of thermostat <NUM>, whereupon mobile device <NUM> may provide this information to server <NUM> via data and/or cellular networks mentioned above.

Server <NUM> may be coupled to a weather server <NUM> to determine past, current and predicted weather conditions in a large number of geographical regions, including a region where structure <NUM> is located. Such past, current and predicted weather information may comprise past, current and predicted predictions of outdoor temperatures, precipitation predictions, wind speed and direction, cloud coverage, and other past, current and predicted weather-related information.

Server <NUM> may be programmed with time-of-use pricing information in effect for one or more utilities. Time-of-use pricing is a new type of utility billing structure, where rates vary not only on how much resources are consumed by structure <NUM>, but also on when such resources are consumed. For example, a utility <NUM>, coupled to server <NUM> via wide-area network <NUM>, may set electricity time-of-use rates at $<NUM> per kilowatt-hour for electricity consumed between 4am and 4pm, $<NUM> per kilowatt-hour for electricity consumed between 4pm and 9pm, and $<NUM> per kilowatt-hour for electricity consumed between 4am and 4pm. Server <NUM> may use the time-of-use pricing information, in conjunction with past usage data, past or current weather conditions, and/or predicted weather forecasts, to generate temperature profiles that will result in the lowest cost to the homeowner. Such temperature profiles may then be provided to mobile device <NUM> and then relayed to thermostat <NUM> when mobile device <NUM> is within range of thermostat <NUM>. It should be understood that the term "temperature profile", as used herein, may refer to all temperature setpoints, starting and stopping times that define a temperature profile, or it can refer to a single profile attribute, such as a single temperature setting, a single temperature setting, a single ramp start time, etc. It should be understood that in some embodiments, the functionality of server <NUM> may be provided by utility <NUM>.

<FIG> is a functional block diagram of one embodiment of thermostat <NUM>. <FIG> shows processor <NUM>, memory <NUM>, low-power communication circuitry <NUM>, user interface <NUM>, and temperature sensor <NUM>. It should be understood that in some embodiments, some functionality has been omitted for purposes of clarity, such as a power supply.

Processor <NUM> comprises one or more general-purpose microprocessors, microcontrollers and/or custom or semi-custom ASICs, and/or discrete components able to carry out the functionality required for operation of thermostat <NUM>. Processor <NUM> may be selected based on processing capabilities, power-consumption properties, and/or cost and size considerations. In the case of a microprocessor, microcontroller, or ASIC, processor <NUM> generally executes processor-executable instructions stored in memory <NUM> that control the functionality of the intelligent personal assistant.

Memory <NUM> one or more non-transitory information storage devices, such as RAM, ROM, EEPROM, UVPROM, flash memory, SD memory, XD memory, or other type of electronic, optical, or mechanical memory device. Memory <NUM> is used to store processor-executable instructions for operation of mobile device <NUM>, as well as any information used by mobile device <NUM>, such as temperature profiles, historical temperature readings, humidity levels, occupancy status, etc. It should be understood that in some embodiments, a portion, or all of, memory <NUM> is incorporated into processor <NUM> and, further, that memory <NUM> excludes media for propagating signals.

Low-power communication circuitry <NUM> comprises electronic circuitry necessary to communicate directly, and wirelessly, with mobile device <NUM>, i.e., without the use of an intermediary system such as a home Wi-Fi network. Such communication circuitry <NUM> comprise one or more discreet components, integrated circuits, ASICs, or other circuitry well-known in the art for low-power communications directly with mobile device <NUM>, such as BLE, NFC, or other well-known communication circuitry.

User interface <NUM> comprises one or more keys, buttons, switches, touchpads, touchscreens, or other devices that allows a user to operate thermostat <NUM>, and to enter information that may be used by thermostat <NUM>, such as a location of structure <NUM>, a square footage of structure <NUM>, an age of structure <NUM>, a number of stories that structure <NUM> has, etc..

Temperature sensor <NUM> comprises a device that provides electronic signals to processor <NUM> in accordance with the ambient air temperature surrounding thermostat <NUM>. In some embodiments, temperature sensor <NUM> is not used, and thermostat <NUM> receives temperature readings from one or more temperature sensors located in one or more locations of structure <NUM>. Temperature sensor <NUM> may comprise one of a thermistor, a resistive temperature detector, a thermocouple, semiconductor-type devices, or other temperature sensors known in the art.

<FIG> is a functional block diagram of one embodiment of server <NUM>, comprising processor <NUM>, memory <NUM>, and network interface <NUM>.

Processor <NUM> is configured to provide general operation of server <NUM> by executing processor-executable instructions stored in memory <NUM>, for example, executable code. Processor <NUM> typically comprises a general-purpose processor, such as an i5 processor manufactured by Intel Corporation of Santa Clara, California, although any one of a variety of microprocessors, microcomputers, and/or microcontrollers may be used alternatively.

Memory <NUM> comprises one or more information storage devices, such as RAM, ROM, EEPROM, UVPROM, flash memory, SD memory, XD memory, or other type of electronic, optical, or mechanical memory device. Memory <NUM> is used to store processor-executable instructions for operation of server <NUM>, as well as any information used by server <NUM>, such as user account information (including names, addresses, thermostat makes and models, billing information, contact information, etc.), time-of-use pricing information from one or more utility providers (i.e., gas, electric, water), and past, current and predicted weather information (such as past and/or current weather conditions and predicted temperatures, humidity, wind speed and direction, etc.).

Network interface <NUM> comprises circuitry necessary for processor <NUM> to communicate over one or more networks, such as wide-area network <NUM>. Such circuitry is well known in the art.

<FIG> is a functional block diagram of one embodiment of mobile device <NUM>, showing processor <NUM>, memory <NUM>, user interface <NUM>, transceiver <NUM> and low-power communication circuitry <NUM>. It should be understood that the functional blocks shown in <FIG> may be connected to one another in a variety of ways, and that not all functional blocks necessary for operation of mobile device <NUM> are shown (such as a power supply), for purposes of clarity.

Processor <NUM> is configured to provide general operation of mobile device <NUM> by executing processor-executable instructions stored in memory <NUM>, for example, executable code. Processor <NUM> typically comprises one or more microprocessors, microcontrollers, or custom ASICs that provide communications functionality to mobile device <NUM> as well as to execute instructions that provide an ability for personal communication device to determine modified temperature profiles and communicate with server <NUM> and thermostat <NUM>.

Memory <NUM> comprises one or more non-transient information storage devices, otherwise referred to as one or more processor-readable mediums, such as RAM, ROM, flash memory, SD memory, XD memory, or virtually any other type of electronic, optical, or mechanical memory device. Memory <NUM> is used to store the processor-executable instructions for general operation of mobile device <NUM> and for storing a software application or "app" that interacts with a user in order to provide certain information to server <NUM>, such as user account information and information about thermostat <NUM>, as well as to relay communications between server <NUM> and thermostat <NUM>.

User interface <NUM> is coupled to processor <NUM>, allowing a user to control typical functions of mobile device <NUM>, including making and receiving phone calls, sending and receiving text messages, and interacting with apps. User interface <NUM> may comprise one or more pushbuttons, touchscreen devices, electronic display devices, lights, LEDs, LCDs, biometric readers, switches, sensors, keypads, microphones, speakers, and/or other human interface devices. A very popular user interface device today is a touchscreen device.

Transceiver <NUM> comprises circuitry necessary to transmit and receive information to/from server <NUM>, either via wide-area network <NUM>, cellular network <NUM>, or both. In some embodiments, more than one transceiver is present, for example, a cellular transceiver and a Wi-Fi transceiver. Such circuitry is generally well known in the art.

Low-power communication circuitry <NUM> comprises electronic circuitry necessary to communicate directly, and wirelessly, with thermostat <NUM>, i.e., without the use of an intermediary system such as a home Wi-Fi network. Such communication circuitry <NUM> comprises one or more discreet components, integrated circuits, ASICs, or other circuitry well-known in the art for low-power communications directly with thermostat <NUM>, such as BLE, NFC, or other well-known communication circuitry.

<FIG> is a flow diagram of one embodiment of a method not part of the invention but useful for understanding it, performed by thermostat <NUM>, server <NUM> and mobile device <NUM> for controlling thermostat <NUM> over a wide-area network that is not in communication with a local or wide-area network. It should be understood that the steps described in this method could be performed in an order other than what is shown and discussed and that some minor method steps may have been omitted for clarity and simplicity. It should also be understood that the functionality described in this method by server <NUM> could be performed by mobile device <NUM>.

At block <NUM>, a user initiates contact with server <NUM> in order to register thermostat <NUM> with server <NUM> so that server <NUM> can provide one or more temperature profiles to thermostat <NUM>, and for thermostat <NUM> to provide information to server <NUM> for use in generating the temperature profiles, in some embodiments not part of the invention. The user launches an app running on mobile device <NUM> that provides communications with server <NUM> and thermostat <NUM>. Once connected to server <NUM>, the user may provide server <NUM> with initial contact information such as information about the user (i.e., name, date of birth), structure <NUM> (i.e., location), thermostat <NUM> (make, model), billing information, contact information (physical address, email address, phone number), a utility account number and access code, etc..

At block <NUM>, processor <NUM> within server <NUM> receives the initial contact information from mobile device <NUM> and, in response, creates an account associated with the user in memory <NUM>. The account creates an association between thermostat <NUM> and mobile device <NUM>, as well as all of the data stored within the account.

At block <NUM>, processor <NUM> receives time-of-use pricing information from one or more utilities, such as utility <NUM>. This information may be provided to processor <NUM> via network interface <NUM> or by programming server <NUM> via a user interface (not shown). In one embodiment not part of the invention, server <NUM> receives time-of-use pricing information from a large number of utilities at regular time intervals, such as once per month, or the information is "pushed" to server <NUM> whenever a change in time-of-use pricing information is effectuated by a utility. In another embodiment not part of the invention, in response to receiving the initial contact information, or at some later time, processor <NUM> determines a location of structure <NUM>/thermostat <NUM>, and determines a utility that services that location. Then, processor <NUM> queries the utility, via network interface <NUM>, to provide time-of-use pricing information. In a related embodiment not part of the invention, processor <NUM> uses a utility account number provided by mobile device <NUM> to determine a utility associated with thermostat <NUM>. In any case, processor <NUM> stores the time-of-use pricing information for each utility in memory <NUM> and, in some cases, associates a particular time-of-use pricing information with any user account having a location serviced by a particular utility that provided the particular time-of-use pricing information. In one embodiment not part of the invention, along with the time-of-use pricing information, processor <NUM> receives geographical information from each utility, specifying a geographic boundary where service is offered, such as one or more zip codes, or mapping information.

At block <NUM>, processor <NUM> receives past and/or current weather conditions and/or weather forecasts from weather server <NUM>. This information is received via network interface <NUM>, either at regular time intervals or upon a material change in forecast by weather server <NUM>. While only one weather server <NUM> is shown in <FIG>, in actuality there may be hundreds of such weather servers, each providing weather-related data for a particular geographic area. Past and current weather conditions may comprise temperatures, wind speeds and directions, humidity levels and other weather-related information related to one or more particular geographic regions. The weather forecasts may comprise predicted temperatures, predicted wind speeds and directions, predicted humidity levels and other predicted weather-related information related to one or more particular geographic regions. In one embodiment not part of the invention, in response to receiving the initial contact information, or at some later time, processor <NUM> determines a location of structure <NUM>/thermostat <NUM>, and determines a weather server that provides weather information pertaining to that location. Then, processor <NUM> queries the server, via network interface case, processor <NUM> stores the conditions/forecasts in memory <NUM> and, in some cases, associates a particular conditions/forecast with any user account having a location covered by the conditions; forecasts. In one embodiment, along with the conditions/forecasts, processor <NUM> receives geographical information specifying a geographic area where the conditions/forecasts pertain, such as one or more zip codes, or mapping information.

At block <NUM>, mobile device <NUM> may program thermostat <NUM> with a temperature profile, where the temperature profile is provided directly from mobile device <NUM> to thermostat <NUM> via low-power communication circuitry <NUM> when mobile device <NUM> is within range of thermostat <NUM>. In another embodiment not part of the invention, a user enters a temperature profile into thermostat <NUM> using user interface <NUM>. In this case, the temperature profile may be provided from thermostat <NUM> to mobile device <NUM> when mobile device <NUM> is within range of thermostat <NUM>.

At block <NUM>, mobile device <NUM> may provide the temperature profile to server <NUM>, along with identifying information for processor <NUM> to store the temperature profile in memory <NUM> in an account associated with mobile device <NUM>, a user, or thermostat <NUM>.

At block <NUM>, thermostat <NUM> may additionally provide historical data to mobile device <NUM> in the form of previous actual temperatures measured by thermostat <NUM>, determinations by thermostat <NUM> whether various temperature set points were reached within given ramp times, humidity levels, past energy usage and/or associated billing information, HVAC usage data (such as the times when a fan is turned on and off, the times when a compressor is active, and/or the times when a furnace is active), and previous temperature profiles used by thermostat <NUM>. The historical data is provided to mobile device <NUM> via low-power communication circuitry <NUM> when mobile device <NUM> is within range of thermostat <NUM>. Mobile device <NUM> may provide this historical information at various times to server <NUM> and processor <NUM> may store it in the user account associated with mobile device <NUM>, thermostat <NUM>, structure <NUM> or a user.

At block <NUM>, processor <NUM> determines a modified temperature profile for thermostat <NUM>. The term "modified temperature profile", as used herein, comprises a set of one or more temperature settings and related set point times determined by server <NUM>, based on either an already-existing temperature profile, or one generated without the use of an already-existing temperature profile. The modified temperature profile may be determined initially upon receipt of the initial information from mobile device <NUM>, the time-of-use pricing information and the conditions/forecast information pertaining to the location of thermostat <NUM> or structure <NUM>. Alternatively, or in addition, the modified temperature profile may be calculated at regular time intervals, such as once per day, and/or upon a material change of the time-of-use pricing information and/or the conditions/forecast information.

In one embodiment not part of the invention, processor <NUM> determines a modified temperature profile by first retrieving a baseline temperature profile from memory <NUM>. The baseline profile may comprise a temperature profile provided by mobile device <NUM>, or a predefined temperature profile based on average temperatures and average temperature settings for homes in particular geographic areas. In other embodiments not part of the invention, processor <NUM> does not use a baseline profile, and builds a temperature profile from scratch. Such baseline temperature profiles, each covering a particular geographic region, may be pre-stored in memory <NUM> by an operator of server <NUM>, taking into account expected average outdoor temperatures in each geographic region and the time of year. The baseline temperature profile may comprise set times and temperatures, as discussed above.

After the baseline temperature profile has been retrieved, processor <NUM> may retrieve a weather forecast, either from memory <NUM> or from weather server <NUM>, associated with the location of thermostat <NUM>, structure <NUM> or the user or user account. The weather forecast may be used to modify the baseline temperature profile (or create a new, modified temperature profile) to account for expected, changing weather conditions. For example, if the outdoor temperature where thermostat <NUM> is located is expected to cool significantly over the next <NUM> hours, processor <NUM> may create or modify a ramp time when a heating cycle should begin on the morning just before the cold weather is due to arrive, by beginning a heating cycle earlier than the baseline time indicates. For example, if the baseline temperature profile indicates a temperature setpoint of <NUM> degrees, and a heating time starting at <NUM>:<NUM> am, processor <NUM> may modify the start time to begin at <NUM>:<NUM> am if the weather forecast calls for cold temperatures below a predetermined threshold, which could be an absolute temperature (i.e., <NUM> degrees), or a temperature differential between an average temperature and a forecasted temperature (i.e., <NUM> degrees). If a warming trend will be occurring in the next several days, processor <NUM> may alter the baseline temperature profile to begin a heating cycle later than the baseline ramp start time, or begin a cooling cycle earlier than the baseline ramp start time. Alternatively, or in addition, a ramp end time can be adjusted by processor <NUM> to achieve the same goal.

Alternatively or in addition to adjusting a temperature ramp start time, processor <NUM> may adjust a setpoint temperature in response to time-of-use pricing information and/or weather forecasts. Using the example above, in one embodiment not part of the invention, processor <NUM> may decrease the temperature setpoint from <NUM> degrees to <NUM> degrees in order that the ramp time be minimized, as well as to conserve energy by setting the temperature setpoint at <NUM>.

Alternatively, or in addition to the above, processor <NUM> may factor time-of use pricing information into the modified temperature profile. For example, if the price of electricity increases during <NUM> pm and <NUM> pm, processor <NUM> may attempt to cool structure <NUM> during off-peak hours, in order to conserve the amount of electricity used during peak hours. For example, during summertime, if the baseline temperature profile indicates a temperature of <NUM> degrees at <NUM>:<NUM> pm, with a ramp start time of <NUM>:<NUM> pm, processor <NUM> may calculate a new ramp start time of <NUM> pm, in order to start cooling structure <NUM> early, before <NUM> pm when the price of electricity increases. In this way, the price of cooling structure <NUM> will be reduced.

In another example, if a weather forecast indicates that a heat wave will arrive in three days, with temperatures averaging ten degrees above normal summer temperatures in the location of thermostat, lasting seven days, processor <NUM> may alter one or more temperature setpoints in the baseline temperature profile by calculating an estimated cost of using the baseline temperature profile and then calculating one or more modified temperature profiles having one or more of the temperature setpoints increased. For example, continuing the example from above, if the baseline temperature profile comprises a setpoint of <NUM> degrees at <NUM>:<NUM> pm, with a cooling ramp start time of <NUM>:<NUM> pm, processor first estimates how much it would cost to cool structure <NUM> using this information in conjunction with the time-of-use pricing information. Processor <NUM> can base this calculation off of historical information originating from thermostat <NUM>. In other words, processor <NUM> can evaluate the historical information and determine that when it is actually one hundred degrees at <NUM> pm at the location of thermostat <NUM>, structure <NUM> was not cooled to the desired temperature set point within the ramp time, but that structure <NUM> was cooled to the temperature set point at <NUM> pm. Thus, processor <NUM> can determine an estimated time that cooling must be active in order to achieve the desired temperature setpoint, as well as a cost, based on the time-of-use pricing information. Processor <NUM> can then estimate a cost associated with altering the ramp start time to a time earlier than the baseline start time and, assuming structure <NUM> reaches the desired temperature set point at <NUM>:<NUM>, calculate a cost to cool structure <NUM> based on the extended ramp time during off-peak hours, and to maintain such a temperature during peak hours. Processor <NUM> can then determine whether the modified temperature profile would save money on cooling costs.

In another embodiment not part of the invention, processor <NUM> may alter one or more temperature setpoints, additionally or alternatively to altering one or more temperature ramp start times. In this embodiment, a setpoint may be altered based, again, on past and/or present weather conditions and/or forecasts and/or on time-of-use pricing information pertinent to the location of thermostat <NUM>. For example, if the weather forecast calls for colder weather than usual, i.e., less than a predetermined temperature threshold or temperature differential, processor <NUM> may estimate the cost of heating structure <NUM>, based on the time-of-use pricing information and, in one embodiment not part of the invention, the historical data from thermostat <NUM> and historical weather data from weather server <NUM>. For example, near the beginning of December, processor <NUM> may retrieve historical data from memory <NUM> to determine an amount of energy used to heat structure <NUM> during the previous December, or to determine a cost to heat structure <NUM> the previous December by retrieving historical billing information for structure <NUM> from an account stored in memory <NUM> or utility <NUM>. Processor <NUM> may, in addition, retrieve a temperature profile that was active during the previous December by retrieving such a temperature profile from memory <NUM>. Processor <NUM> can associate the cost to heat structure <NUM> to the historical temperature data and compare forecasted temperatures for the following month to estimate the cost to heat structure <NUM> for the month, based on the time-of-use pricing information. If the forecast indicates that the month will be colder than the previous year, processor <NUM> can generate a modified temperature profile, in one embodiment not part of the invention, based on the previous temperature December profile, to alter one or more setpoints to a lower temperature setting, in order to approximate the cost of heating structure <NUM> in the previous December.

In another example, processor <NUM> determines a modified temperature profile by comparing a desired monthly energy cost, previously provided by a user utilizing the app on mobile device <NUM>, to a month-to-date estimate of energy usage costs. In this example, the term "monthly" is used to either denote a colander month, or a monthly billing cycle. The user could provide a desired monthly utility cost for each month of the year, and the desired monthly utility costs could be stored in the user's account in memory <NUM>. Processor <NUM> can estimate a month-to-date cost for heating or cooling structure <NUM>, based on the month-to-date HVAC data received from mobile device <NUM> in connection with the time-of-use pricing information, or directly from utility <NUM>, using the user's account number and passcode stored in memory <NUM>. Processor then can estimate the month's utility cost using the month-to-date usage/cost information plus a remaining monthly cost based on one or more weather forecasts and the time-of-use pricing information. For example, knowing the predicted temperatures for the remaining portion of a month, processor <NUM> can estimate a remaining monthly utility cost by comparing the predicted temperatures with past actual temperatures provided by weather server <NUM> and previous costs to heat or cool structure <NUM>, based on previous utility bills. Processor <NUM> may search memory <NUM> to identify past temperatures most closely matching the predicted temperatures, and identify a past utility bill covering the period of the past temperatures most closely matching the forecast. Then, processor <NUM> may estimate the remaining billing cycle cost by calculating a daily average utility cost for the previous billing cycle, then multiplying that figure by the number of days remaining in the billing cycle. If the estimated cost of the monthly utility bill exceeds the desired monthly utility cost, processor <NUM> can adjust one or more temperature setpoints in a modified temperature profile to reduce the expected energy usage of the HVAC system. The amount of change to the one or more setpoints to achieve the desired monthly utility cost may be determined by a trial-and-error process, favoring small changes in order to avoid uncomfortable temperatures inside structure <NUM>. For example, after adjusting one or more setpoints, and providing the modified temperature profile to thermostat <NUM> via mobile device <NUM> (described below), processor <NUM> may receive updated HVAC usage information from thermostat <NUM> via mobile device <NUM>, or from utility <NUM> and determine whether usage/cost was reduced by an amount to meet the desired monthly utility cost, based on continuing with the current modified temperature profile that was provided to thermostat <NUM>. If the resulting usage/cost savings is not enough to achieve the desired monthly utility cost, processor <NUM> may again adjust one or more temperature setpoints in the modified temperature profile, and send this updated modified temperature profile to thermostat <NUM>. This process may be repeated until processor <NUM> determines that the latest temperature setpoints will achieve the desired monthly utility cost, based on the weather forecast.

In yet another embodiment not part of the invention, server <NUM> may generate a modified temperature profile based on a determination, from utility <NUM> or related entity, that utility demand is, or is expected to, exceed supply. In these circumstances, it is desirable to change the temperature profile on a large number of thermostats in an area served by utility <NUM> to conserve utility resources and avoid brownout or blackouts. Processor <NUM> may receive notice from utility <NUM> of such a supply/demand imbalance and, in response, generate a modified temperature profile that raises one or more temperature setpoints during hot weather and lowers one or more temperature setpoints during cold weather. Processor <NUM> may raise or lower one or more temperature setpoints by a predetermined amount, such as <NUM>% or <NUM> degrees initially, then readjust one or more temperature setpoints if another notice from utility <NUM> to further reduce energy consumption.

At block <NUM>, after processor has modified the baseline temperature profile, creating a modified temperature profile, processor <NUM> provides the modified temperature profile to mobile device <NUM>. Processor <NUM> provides the modified temperature profile to mobile device <NUM> in accordance with adjustments made to ramp start times, stop times, and temperature setpoints. For example, if a weather forecast has predicted a cold front to arrive in three days, and processor <NUM> modifies at least one ramp start time, stop time, or temperature setpoint as a result of the cold front, processor <NUM> may provide the modified temperature profile to mobile device <NUM> just before arrival of the cold front, i.e., after a scheduled temperature set point time has passed before arrival of the cold front, and before the scheduled temperature set point time arrives on a day that the cold front arrives. Processor <NUM> provides the modified temperature profile to mobile device <NUM> via wide-area network <NUM> and/or cellular network <NUM>.

At block <NUM>, mobile device <NUM> receives the modified temperature profile and stores it in memory <NUM> until mobile device <NUM> is within range of thermostat <NUM>.

At block <NUM>, processor <NUM> determines that mobile device <NUM> is within range of thermostat <NUM>, in one embodiment not part of the invention, by scanning for an "advertisement package" transmitted periodically by thermostat <NUM>. When processor <NUM> receives an advertising package via low-power communication technology <NUM>, processor <NUM> determines that mobile device <NUM> is within range of thermostat <NUM>. In response, processor <NUM> may initiate a communication with thermostat <NUM> using low-power communication circuitry <NUM>. Alternatively, processor <NUM> causes low-power communication circuitry <NUM> to periodically broadcast advertising packages, and thermostat <NUM> determines that mobile device <NUM> is within range when thermostat <NUM> receives the advertising package. In response, thermostat <NUM> may initiate a communication with mobile device <NUM> using low-power communication circuitry <NUM>. Other methods may be used to determine proximity, as is well-known in the art.

At block <NUM>, in response to determining that mobile device <NUM> is within range of thermostat <NUM>, processor <NUM> checks memory <NUM> to determine if any modified thermostat profiles have been stored. If so, processor <NUM> retrieves the modified thermostat profile and transmits it via low-power communication circuitry <NUM> directly to thermostat <NUM>.

At block <NUM>, processor <NUM> within thermostat <NUM> may check memory <NUM> to determine if there is any historical information ready for transmission to mobile device <NUM>. If so, processor <NUM> causes the historical information to be transmitted to mobile device <NUM> via low-power communication circuitry <NUM>.

At block <NUM>, mobile device <NUM> provides the historical information to server <NUM>, for use in future modifications to the modified temperature profile.

The methods or steps described in connection with the embodiment not part of the invention disclosed herein may be embodied directly in hardware or embodied in machine-readable instructions executed by a processor, or a combination of both. The machine-readable instructions may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. In the alternative, the processor and the storage medium may reside as discrete components.

Accordingly, an embodiment of the invention may comprise a non-transitory processor-readable media embodying code or machine-readable instructions to implement the teachings, methods, processes, algorithms, steps and/or functions disclosed herein as long as comprising the features of claim <NUM>.

Claim 1:
A system comprising:
a thermostat (<NUM>) comprising a processor (<NUM>), a temperature sensor (<NUM>), a user interface (<NUM>), a memory (<NUM>), and low-power communication circuitry (<NUM>);
a mobile device for direct communications with the thermostat (<NUM>) that is not in communication with a local-area network, comprising:
a memory (<NUM>) for storing modified temperature profile and processor-executable instructions, the modified temperature profile for replacing a temperature profile stored by the thermostat (<NUM>);
a network interface (<NUM>) for receiving a modified temperature profile from a remote server (<NUM>) over a wide-area network (<NUM>);
low-power communication circuitry (<NUM>) for communicating directly with the thermostat (<NUM>); and
a processor (<NUM>) coupled to the memory (<NUM>) , the network interface (<NUM>) and the low-power communication circuitry (<NUM>), for execution of the processor-executable instructions that causes the mobile device (<NUM>) to:
receive, by the processor (<NUM>) via the network interface (<NUM>), the modified temperature profile from the remote server (<NUM>); and
provide, by the processor (<NUM>) via the low-power communication circuitry (<NUM>), the modified temperature profile to the thermostat (<NUM>) when the mobile device (<NUM>) is in range of the thermostat (<NUM>).