Patent Description:
Building automation systems can include systems such as a Heating, Ventilation and/or Air Conditioning (HVAC) systems, security/access control systems, lighting systems, fire alarm and/or suppression systems and/or other building control systems. HVAC systems are commonly used to control the comfort level within a building or other structure. There are various types of HVAC systems that are in use today. Some HVAC systems affect conditions in multiple rooms of a building with a centralized source of heated or cooled air (e.g., central furnace, air conditioner and/or air handler) and a network of ducts, dampers, etc., to manage airflow throughout the building. Other HVAC systems are more limited in extent, such as self-contained window air conditioner. Some HVAC systems, such as mini-split HVAC systems, include an indoor unit that circulates cooled and/or heated air in a particular room or region of the building, often with limited or no ducts running through the building. In many cases, such mini-split HVAC systems often extend outside of the building, often through a hole in an outer wall of the building. Such mini-split HVAC systems are often mounted high in a room, toward the ceiling.

Many HVAC systems include a controller that activates and deactivates components of the HVAC system to affect and control one or more environmental conditions within the building. These environmental conditions can include, but are not limited to, temperature, humidity, and/or ventilation. In many cases, such HVAC controllers may include, or have access to, one or more sensors, and may use parameters provided by the one or more sensors to control the one or more HVAC components to achieve the desired programmed or set environmental conditions within the building. In some cases, the HVAC controller and/or sensors are housed in the HVAC system itself, such as in a self-contained window air conditioner and/or in some mini-split HVAC systems. When so provided, a wireless remote control device is often provided to allow the user to remotely change the temperature setpoint and/or other parameters of the HVAC controller. Such wireless remote control devices may be especially common for those mini-split HVAC systems that are mounted high in a room and toward the ceiling, and thus the controls of which may not be readily reachable by the user.

What would be desirable is a universal self-contained wireless remote control device that may establish communication with a variety of different building automation systems such as mini-split HVAC systems in the field without having to gain access to a remote service such as over a wide area network. <CIT> discloses a discrete air conditioner controller for controlling a discrete air conditioner unit servicing a building which may receive an IR code, in some cases in a raw waveform format, from a handheld remote control that is associated with the discrete air conditioner unit during a programming process. The discrete air conditioner controller may associate the IR code with the discrete air conditioner unit and store the IR code and its association in memory. In some cases, the discrete air conditioner controller may transmit the IR code and its association to a central coordinator, where the IR code may be stored in the memory of the central coordinator. The IR code may be subsequently retrieved from the memory of the central coordinator and transmitted to selected discrete air conditioner controller units for use in controlling appropriate discrete air conditioner units.

This invention is set out in apparatus claim <NUM> and method claim <NUM>. The invention relates generally to building automation systems, and more particularly to remote wireless controllers for such building automation systems. More particularly, the invention describes systems, methods, and executable programs that allow a user to establish communication between a wireless controller and a building automation system. This may be accomplished by having a wireless controller configured with a NAND flash memory device or the like that stores an IR database. The IR database may include a lookup table that includes a plurality of IR protocols for a plurality of different building automation systems. When the wireless controller receives a selection of a particular building automation system, the wireless controller may identify the particular building automation system in the IR database lookup table and obtain the correct IR protocol that corresponds to the selected building automation system. The wireless controller may then use the correct IR protocol when transmitting command signals to the particular building automation system.

In an example of the invention, a wireless controller may be configured to send commands to a mini-split HVAC unit that may include an infra-red (IR) receiver, and the mini-split HVAC unit may be configured to thermostatically control a temperature in a space based at least in part on a temperature sensed by a temperature sensor associated with the mini-split HVAC unit in conjunction with a programmable set point. In some cases, the wireless controller may comprise an IR transmitter, a temperature sensor for sensing a temperature at the wireless controller, a user interface including a display, and a non-volatile memory storing infrared (IR) protocol for each of a plurality of different mini-split HVAC units. The wireless controller may also comprise a controller operatively coupled to the user interface, the
temperature sensor, the non-volatile memory and the IR transmitter. The controller may be configured to receive a selection of a particular one of the plurality of different mini-split HVAC units, store an indication of a correspondence between the selected one of the plurality of different mini-split HVAC units and an IR protocol in a non-volatile memory, and wirelessly transmit one or more commands to the selected one of the plurality of different mini-split HVAC units in accordance with the IR protocol.

Alternatively or additionally to the foregoing, the controller may also be further configured to transmit one or more commands via the IR transmitter to set the programmable set point of the mini-split HVAC unit to a commanded set point temperature and the commanded set point temperature may be based, at least in part, on a desired set point temperature set by a user and the temperature sensed by the temperature sensor of the wireless controller.

Alternatively or additionally to any of the embodiments above, the controller may be further configured to receive a brand of the particular one of the plurality of different mini-split HVAC units via the user interface of the wireless controller, receive a model of the particular one of the plurality of different mini-split HVAC units via the user interface of the wireless controller, and identify the IR protocol stored in the non-volatile memory that corresponds to the selected one of the plurality of different mini-split HVAC units based at least in part on the received brand and received model of the particular one of the plurality of different mini-split HVAC units.

Alternatively or additionally to any of the embodiments above, the non-volatile memory may comprise a plurality of pages having a plurality of IR protocols that correspond to the plurality of different mini-split HVAC units, each page having at least one IR protocol corresponding to at least one mini-split HVAC unit, and a lookup table that may include a plurality of brands and models for the plurality of different mini-split HVAC units and each combination of a brand and a model of an HVAC unit has an address for a page from the plurality of pages that has the corresponding IR protocol for the brand and the model of the HVAC unit.

Alternatively or additionally to any of the embodiments above, the plurality of pages may be a plurality of flash pages and each flash page may store one IR protocol.

Alternatively or additionally to any of the embodiments above, the controller may be further configured to identify a particular address based on the selected one of the plurality of different mini-split HVAC units, identify the IR protocol at the particular address, and access the indication of correspondence from the non-volatile memory.

Alternatively or additionally to any of the embodiments above, the controller may be further configured to receive a brand of the particular one of the plurality of different mini-split HVAC units via the user interface of the wireless controller, receive a model of the particular one of the plurality of different mini-split HVAC units via the user interface of the wireless controller, and identify the IR protocol based at least in part on the received brand and received model of the particular one of the plurality of different mini-split HVAC units.

Alternatively or additionally to any of the embodiments above, the indication of the correspondence may be stored in a different non-volatile memory from the non-volatile memory that stores the IR protocols for each of the plurality of different mini-split HVAC units.

Alternatively or additionally to any of the embodiments above, the indication of the correspondence may be stored in the same non-volatile memory that stores the IR protocols for each of the plurality of different mini-split HVAC units.

Alternatively or additionally to any of the embodiments above, the non-volatile memory storing the IR protocols for each of the plurality of different mini-split HVAC units may be a NAND flash memory.

In another example of the invention, a method as claimed in claim <NUM> is disclosed.

The above summary of some illustrative embodiments is not intended to describe each disclosed embodiment or every implementation of the present invention.

The Figures and Description which follow more particularly exemplify these and other illustrative embodiments.

The invention may be more completely understood in consideration of the following description in connection with the accompanying drawings, in which:.

In this specifictions the following non-SI units are used, which may be converted to the respective SI or metric unit according to the following conversion table:.

The following description should be read with reference to the drawings in which similar structures in different drawings are numbered the same. The drawings, which are not necessarily to scale, depict illustrative embodiments and are not intended to limit the scope of the invention, which is defined by the claims. Although examples of construction, dimensions, and materials may be 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.

<FIG> is a schematic block diagram showing features of an illustrative HVAC unit <NUM> that may thermostatically control a temperature of a space <NUM>. The HVAC unit <NUM> is shown in <FIG> as often referred to as a mini-split HVAC unit, but it is contemplated that the disclosure is not limited to such HVAC units. For example, it is contemplated that the HVAC unit <NUM> may be a window air conditioning unit, a central air conditioning unit, a forced-air central heating unit, or any other suitable HVAC unit. Moreover, it is contemplated that various embodiments and examples described herein may be extended to other building automation systems and/or units including, but not limited to, security system units, lighting system units, etc..

The illustrative HVAC unit <NUM> of <FIG> includes an indoor unit <NUM> that may be configured to draw in return air <NUM> and supply temperature regulated air <NUM> to the space <NUM>. The indoor unit <NUM> may be configured to handle air <NUM> and <NUM> with or without a network of ductwork installed within and/or around the space <NUM>.

The indoor unit <NUM> of the HVAC unit <NUM> may be connected to an outdoor unit <NUM>, sometimes through a hole in an external wall of the building. In some cases, lines <NUM> carrying a working fluid may be transferred between the indoor unit <NUM> and the outdoor unit <NUM>. Outdoor unit <NUM> may be exposed to an outdoor space, although this is not necessary in all instances. In some cases, outdoor unit <NUM> may be mechanically connected to the indoor unit <NUM>. The outdoor unit <NUM> may extend through a hole in an external wall of the building to access the outdoor space. Alternatively, the outdoor unit <NUM> may be located remote from the indoor unit <NUM> and may be operatively connected by lines <NUM> carrying a working fluid and/or by one or more ducts. In some cases, the HVAC unit <NUM> may have a cooling mode and/or a heating mode for controlling the temperature of air inside of the building. In some instances, such as when the HVAC unit is a mini-split HVAC system, the HVAC unit <NUM> may be mounted high in a room, toward the ceiling.

In some cases, the HVAC unit <NUM> may be in communication with a wireless controller <NUM>, which may be located remotely from the HVAC unit <NUM>. When so provided, the wireless controller <NUM> may be configured to communicate wirelessly with an onboard controller <NUM> of the HVAC unit <NUM>, and the onboard controller <NUM> may be configured to accept input signals, such as infra-red (IR) signals (IR codes), from the remotely located wireless controller <NUM>. In some instances, the wireless controller <NUM> may communicate with the onboard controller <NUM> of the HVAC unit <NUM> any suitable communication path, such as via a wired (Ethernet, USB, RS-<NUM>, etc.) and/or a wireless (Wifi, Bluetooth, Zigbee, etc.) communication link. Communication between the wireless controller <NUM> and the onboard controller <NUM> of the HVAC unit <NUM> may be unidirectional (e.g. from the wireless controller <NUM> to HVAC unit <NUM>) or bidirectional, as desired.

In some cases, the HVAC unit <NUM> may include an IR receiver that is configured to receive IR signals from the wireless controller <NUM>, and then pass those IR signals to the onboard controller <NUM>. Such IR signal may represent commands that are sent to the HVAC unit <NUM> from the wireless controller <NUM>, such as to change a setpoint temperature, change a mode (heat, cool) of the HVAC unit <NUM>, etc..

In some cases, the wireless controller <NUM> may store various IR protocols, along with a correspondence between the various IR protocols and different makes/models of HVAC units. When so provided, the user may use the wireless controller <NUM> to select a particular make/model that corresponds to their HVAC unit, and the wireless controller <NUM> may then look up and use the IR protocol that corresponds to the selected make/model when subsequently communicating with the user's HVAC unit <NUM>. In this way, the wireless controller <NUM> may be considered a universal wireless controller <NUM> that can communicate with a variety of makes/models of HVAC units, without having to access a remote database such as a remote IR protocol database in the cloud. This may be particularly useful when the wireless controller <NUM> does not currently have access to the cloud.

It is contemplated that the onboard controller <NUM> may be configured to control at least parts of the HVAC unit <NUM>, as described further herein. In some cases, the HVAC unit <NUM> may also include a local temperature sensor <NUM>. The onboard controller <NUM> may reference the temperature sensed by the local temperature sensor <NUM> and control whether the HVAC unit <NUM> is in a cooling mode, a heating mode, and/or whether the HVAC unit <NUM> is currently activated or not. More particularly, the onboard controller <NUM> may thermostatically control the temperature in the space <NUM> based on the temperature sensed by the local temperature sensor <NUM> and a programmable setpoint.

When the temperature sensor <NUM> of the HVAC unit <NUM> is housed in or around the indoor unit <NUM>, such as in some mini-split HVAC systems, the sensed temperature may not represent the temperature that is experienced by the user in the space <NUM>, especially when the mini-split HVAC system is mounted high in a room where the temperature of the air is generally warmer. In some cases, and as further detailed herein, the wireless controller <NUM> may include its own temperature sensor <NUM>, and the wireless controller <NUM> may use the temperature sensed its own temperature sensor <NUM> to adjust or alter the programmable temperature setpoint of the HVAC unit <NUM> in order to deliver improved comfort to the user.

<FIG> is a schematic block diagram of an illustrative wireless controller <NUM>, which may be the same or similar to the wireless controller <NUM> of <FIG>. The wireless controller <NUM> may include a controller <NUM> (e.g., microcontroller, microprocessor, etc.) operatively coupled to a memory <NUM>, a user interface <NUM>, transmitter <NUM> (sometimes a transceiver), a temperature sensor <NUM>, a humidity sensor <NUM>, and an I/O port <NUM>. The temperature sensor(s) (e.g., temperature sensor <NUM>), humidity sensor(s) (e.g., humidity sensor <NUM>), and/or occupancy sensor(s) may be located in the housing of the wireless controller <NUM> and/or located remotely from the wireless controller <NUM>.

The transmitter <NUM> may be configured to communicate using one or more wireless communication protocols, such as cellular communication, ZigBee, REDLINK™, Bluetooth, Wi-Fi, IrDA, infra-red (IR), dedicated short range communication (DSRC), EnOcean, and/or any other suitable common or proprietary wireless protocol, as desired. In some cases, the transmitter <NUM> may communicate commands from the wireless controller <NUM> to a remotely located HVAC unit <NUM> via an IR communication protocol that uses particular IR codes. The HVAC unit <NUM> may receive the IR codes from the transmitter <NUM>, and when appropriate, execute the received commands. Commands that may be sent to the HVAC unit <NUM> from the wireless controller <NUM> may include, for example, a command to change a setpoint temperature of the HVAC unit <NUM>, change a mode (heat, cool) of the HVAC unit <NUM>, etc..

In some instances, the controller <NUM> may include a pre-programmed chip, such as a very-large-scale integration (VLSI) chip and/or an application specific integrated circuit (ASIC). In such embodiments, the chip may be pre-programmed with control logic in order to control the operation of the wireless controller <NUM>. In some cases, the pre-programmed chip may implement a state machine that performs the desired functions. By using a pre-programmed chip, the controller <NUM> may use less power than other programmable circuits (e.g. general purpose programmable microprocessors) while still being able to maintain basic functionality. In other instances, the controller <NUM> may include a programmable microprocessor. Such a programmable microprocessor may allow a user to modify the control logic of the wireless controller <NUM> even after it is installed in the field (e.g. firmware update), which may allow for greater flexibility of the wireless controller <NUM> in the field over using a pre-programmed ASIC.

In some cases, the controller <NUM> may cause the wireless controller <NUM> to operate in accordance with programmable setpoints. In some cases, the programmable setpoints may correspond to comfort setpoint, such as a temperature setpoint, a humidity setpoint, etc. The programmable setpoints may be modified by a user to suit the user's particular comfort level and/or schedule.

In the example shown in <FIG>, the user interface <NUM> is operatively coupled to the controller <NUM>, and permits the wireless controller <NUM> to display and/or solicit information, such as operational parameters, as well as accept one or more user interactions with the wireless controller <NUM>. Through the user interface <NUM>, the user may, for example, view and manage the operation of one or more HVAC units (e.g., HVAC unit <NUM>, etc.) that service a space, such as a space within a building, house, or structure. In some cases, the user may be able to group one or more HVAC units to form an operating group to establish operating zones within the building, home, or structure. Alternatively, or in addition, the user may be able to set or modify programmable setpoints and/or set or modify an operating schedule for an HVAC unit and/or a group of HVAC units. Different programmable setpoints and/or operating schedules may be selected for different HVAC units and/or groups of HVAC units, if desired. When provided, the ability to view and manage multiple HVAC units servicing a space may facilitate improved management of a building, house, or structure.

In some cases, the user interface <NUM> may be a physical user interface that is accessible at the wireless controller <NUM> and may include a display <NUM> and/or a distinct keypad <NUM>. The display <NUM> may be any suitable display. In some instances, the display <NUM> may include or may be a liquid crystal display (LCD), an OLED, etc., and in some cases a fixed segment display, a dot matrix LCD display, a <NUM>-segment type display, and/or may include one or more LEDs. In some cases, the display <NUM> may include a touch screen LCD panel that functions as both the display <NUM> and keypad <NUM>. The user interface <NUM> may be adapted to solicit values for a number of operating parameters, programmable setpoints, and/or to receive such values, but this is not required. In some cases, the user interface <NUM> may be provided as a separate unit from the wireless controller <NUM>, and may facilitate a user's interactions with the wireless controller <NUM> located within the building, house, or structure. For example, the user interface <NUM> may be provided as part of a remote device (e.g., remote device <NUM>), such as a smart phone, a tablet computer, a laptop computer, or a desktop computer. In some cases, the user interface <NUM> may communicate with the wireless controller <NUM> via a network such as, for example, a network <NUM> (e.g. Internet, Wifi, etc.).

In some cases, the user interface <NUM> may be configured with a shortcut button. In some cases, the distinct keypad <NUM> may include the shortcut button. In other cases, the display <NUM> may be a touch screen display and may be programmed to include the shortcut button. In cases where the user interface <NUM> is provided by a remote device <NUM>, the remote device <NUM> may provide the shortcut button. When a shortcut button is provided, the wireless controller <NUM> may assign a function or a sequence of functions to the shortcut button. When so provided, a user may simply actuate the shortcut button from the keypad <NUM>, and in response the controller <NUM> may execute the assigned function(s).

The assigned functions may be functions that are otherwise available in the menu structure of the controller <NUM>, but the shortcut button may make the assigned function(s) more readily accessible to the user. In some cases, the controller <NUM> may present one or more menu screens that allow the user to select one or more functions from a plurality of available functions. The selected function(s) may then be assigned to the shortcut button. In some cases, the controller <NUM> may allow a user to select two or more functions, as well as an order of execution of the two or more functions. Once one or more functions are assigned, the user may use the keypad <NUM> to activate the shortcut button, and the wireless controller <NUM> may transmit command signals to an HVAC unit (e.g., HVAC unit <NUM>) to carry out the one or more function(s) assigned to the shortcut button. In some cases, two or more different shortcut buttons may be provided, where the user may assign different function or function combinations to each of the shortcut buttons.

The memory <NUM> of the wireless remote <NUM> may be operatively coupled to the controller <NUM> and may be used to store any desired information, such as the aforementioned control algorithm, setpoints, IR codes, an IR database, schedule times, zones and groupings of HVAC units, shortcut button functional assignments, and the like. The memory <NUM> may be any suitable type of storage device including, but not limited to, RAM, ROM, EPROM, flash memory (e.g., NAND flash memory), an external SPI flash memory, a hard drive, and/or the like. In some cases, the memory <NUM> may include two or more types of memory. For example, the memory <NUM> may include a RAM, a ROM and a flash memory module. During operation, the controller <NUM> may store information within the memory <NUM>, and may subsequently retrieve the stored information from the memory <NUM>.

In certain embodiments, the HVAC unit <NUM> or an onboard controller of the HVAC unit <NUM> may include an IR receiver, and the transmitter <NUM> may communicate with the HVAC unit through IR signals. In some cases, the memory <NUM> of the wireless controller <NUM> may include a NAND flash memory that stores an IR database. In some cases, the IR database may include a lookup table that identifies a plurality of HVAC units and corresponding IR protocols. For example, some HVAC units may use a first IR protocol that has a first set of IR codes, and some HVAC units may use a second IR protocol that has a second set of IR codes. The NAND flash memory may store IR protocols, including the corresponding IR codes, for many different HVAC units that are available on the market. This may allow the wireless remote <NUM> to communicate with many different HVAC unit once deployed in the field. During setup, the wireless controller <NUM> may receive a selection of a particular HVAC unit <NUM> (e.g. brand/model) from a user via the user interface <NUM>. The controller <NUM> may then identify the particular HVAC unit <NUM> in the IR database lookup table and identify the IR protocol that corresponds to the user's HVAC unit <NUM>. The wireless remote <NUM> may then subsequently communicate with the HVAC unit <NUM> using the identified IR protocol.

While IR communication is used as one example, it is contemplated that the wireless controller <NUM> may communicate with the HVAC unit <NUM> using any suitable communication modality. For example, it is contemplated that the transmitter <NUM> may transmit signals to the onboard controller of the HVAC unit <NUM> using any suitable wireless and/or wired communication protocol. In some cases, the transmitter <NUM> may use an ad-hoc wireless network. In other cases, the transmitter <NUM> may utilize a wireless mesh network and more particularly, a ZigBee wireless or other mesh network. If the transmitter <NUM> does utilize a mesh network, the onboard controller may serve as the end node(s). In some cases, the transmitter <NUM> may utilize one or more wireless communication protocols including, but not limited to, cellular communication, ZigBee, REDLINK™, Bluetooth, Wi-Fi, IrDA, infra-red (IR), dedicated short range communication (DSRC), EnOcean, and/or any other suitable common or proprietary wireless protocol, as desired.

Once the wireless controller <NUM> has established communication the HVAC unit <NUM>, the wireless controller <NUM> may send instructions via IR (or other) commands to the HVAC unit <NUM>. For example, as discussed herein, in some cases, the wireless controller <NUM> may be programmed with a control algorithm that uses programmable setpoints, such as setpoints temperatures and humidity setpoints, to help control the operation of the HVAC unit <NUM>. Accordingly, the wireless controller <NUM> may receive the programed setpoints (e.g., the setpoint temperature) and/or setpoint schedule from a user via the user interface <NUM>. The controller <NUM> may then instruct the transmitter <NUM> to send IR (or other) command signals in accordance with the identified IR protocol to the HVAC unit <NUM> that instruct the HVAC unit <NUM> to set the temperature in the space at the desired setpoint temperature.

In some cases, the HVAC unit <NUM> may include its own temperature sensor for determining the temperature in the space. The HVAC unit <NUM> may be configured to thermostatically control the temperature in a space based on the temperature sensed by its own temperature sensor. For some mini-split HVAC systems that are mounted high in a room and toward the ceiling, the temperature sensed by the temperature sensor of the HVAC unit <NUM> may not accurately reflect the temperature experienced by the user. Typically, it will measure a temperature that is warmer than what the user is experiencing, and thus the user may feel cold.

The temperature sensed by the temperature sensor <NUM> of the wireless controller <NUM> may be more representative of the temperature experienced by the user. Therefore, the control algorithm of the wireless controller may cause the wireless controller <NUM> to send IR command signals to the HVAC unit <NUM> to adjust the temperature setpoint used by the HVAC unit <NUM> so that the HVAC unit <NUM> thermostatically controls the temperature in the space, using its own temperature sensor, such that the temperature experienced by the user is more in line with the desired temperature setpoint.

In some instances, the I/O port <NUM> of the wireless controller <NUM> may permit the wireless controller <NUM> to communicate over one or more additional wired or wireless networks that may accommodate remote access and/or control of the wireless controller <NUM> via a remote device <NUM> such as, for example, a smart phone, tablet computer, laptop computer, personal computer, PDA, and/or the like. In some cases, the remote device <NUM> may provide a primary and/or a secondary user interface for the user to interact with the wireless controller <NUM>. In some cases, the wireless controller <NUM> may utilize a wireless protocol to communicate with the remote device <NUM> over a network <NUM>. In some cases, the network <NUM> may be a may be a Local Area Network (LAN) such as a Wi-Fi network or a Wide Area Network (WAN) such as the Internet. These are just some examples.

In some cases, the remote device <NUM> may execute an application program that facilitates communication and control of the wireless controller <NUM>. The application program may be provided by and downloaded from an external web service (e.g. Apple Inc. 's ITUNES®, Google Inc. 's Google Play, a proprietary server, etc.) for this purpose, but this is not required. In one example, the application program may cause the remote device <NUM> to receive and store data, such as programmable setpoints, operational parameters, operating schedules, etc. received from the wireless controller <NUM>. The application program may translate the data received from the wireless controller <NUM> and display the data to the user via the user interface of the remote device <NUM>. Additionally, the application program may be capable of accepting an input from a user through the user interface of the remote device <NUM> and transmitting accepted input to the wireless controller <NUM>. For example, if the user inputs include setpoint temperature changes, humidity setpoint changes, schedule changes, and/or other changes, the application program may transmit these changes to the remote device <NUM>.

<FIG> is a perspective view of an illustrative wireless controller <NUM> that may be an example of the wireless controller <NUM> of <FIG>. The wireless controller <NUM> may send commands (e.g. IR codes) to set, for example, programmable setpoints, operating mode changes and/or other parameters to an HVAC unit. In the example shown, the wireless controller <NUM> may include a housing <NUM> and an optional stand <NUM> or other standing feature to aid in placing the wireless controller <NUM> on a surface, such as on the surface of a table, desk, counter, etc. Additionally and/or alternatively, in some cases, the wireless controller <NUM> may have a mounting feature to aid in mounting the wireless controller <NUM> to a wall or ceiling of a room in a building, house, or structure. If battery powered, the housing <NUM> may include a battery compartment for holding a battery or battery pack (not explicitly shown). The housing <NUM> may have any shape or size suitable for housing the internal electronics of the wireless controller <NUM>.

The wireless controller <NUM> may include a user interface <NUM>. In some cases, the user interface <NUM> may include a display <NUM>. In some cases, the display <NUM> may include or may be an LCD, an OLED, etc., and in some cases a fixed segment display, a dot matrix LCD display, a <NUM>-segment type display, and/or may include one or more LEDs. In the example shown, the display <NUM> is a touch screen LCD panel that functions as both the display <NUM> and a keypad. In other cases, the user interface may have a physically distinct keypad. In addition, the housing <NUM> may include an opening or window <NUM> to aid in communicating with an HVAC unit. The opening or window <NUM> may extend at least partially around an outer perimeter of the housing <NUM>. In some cases, the window or opening <NUM> may be located along the top of the wireless controller <NUM>. In some cases, the window <NUM> may be transparent or semi-transparent to the Infrared (IR), and an IR transmitter and/or receiver may be positioned just behind the window <NUM>. The housing <NUM> may include a larger opening or window <NUM> than shown, or multiple windows <NUM>, if desired.

<FIG> is a schematic view of an exemplary building automation system <NUM> that may facilitate remote access and/or control using a wireless controller <NUM>, and that may be used to coordinate and control the HVAC unit <NUM> from <FIG>. While an HVAC unit <NUM> is used as an example, it is contemplated that the wireless controller <NUM> may be used to facilitate remote access and/or control over other building automation systems, such as a security system or a lighting system.

As stated herein, the HVAC unit <NUM> may be a mini-split HVAC unit, however, this is not necessary. A front-view of the wireless controller <NUM> is shown in <FIG>. As can be seen, the wireless controller <NUM> looks similar to the wireless controller <NUM> of <FIG>. The configuration of the components and the operation of the wireless controller <NUM> may be similar to the wireless controller <NUM> of <FIG>. As such, in the example of <FIG>, the wireless controller <NUM> may include a controller <NUM> (e.g., microprocessor, microcontroller, etc.), a memory <NUM> (e.g., a non-volatile memory, a flash memory, a NAND flash memory, etc.), a transmitter <NUM> (e.g., an IR transmitter, RF transmitter, Bluetooth transmitter, etc.) a user interface <NUM> (e.g., a display and in some cases a keypad), and a temperature sensor <NUM>.

According to various embodiments, the wireless controller <NUM> may be configured to set a programmable setpoint of the HVAC unit <NUM>. The HVAC unit <NUM> may then thermostatically control the temperature in a space based at least in part on: (<NUM>) the temperature sensed by the temperature sensor <NUM> of the HVAC unit <NUM>; and (<NUM>) the programmable setpoint received from the wireless controller <NUM>.

To configure communication between the wireless controller <NUM> and the HVAC unit <NUM>, the wireless controller <NUM> may allow a user to set an appropriate IR protocol to use during the communication. For instances, as shown in <FIG>, the wireless controller <NUM> may include a user interface <NUM> with a display <NUM>, and may display a main menu button <NUM> on the display <NUM> or may include a mechanical main menu button <NUM> adjacent to the display. As shown in <FIG>, after a user selects the main menu button <NUM>, the controller <NUM> of the wireless controller <NUM> may use the display <NUM> to present a main menu screen <NUM> to the user, including a set of options <NUM>. As can be seen, the set of options <NUM> may include a setup option <NUM>, a schedule option <NUM>, a shortcut button setup option <NUM>, etc. This is just one example of a suitable main menu screen <NUM>.

In some examples, to establish communication between the wireless controller <NUM> and HVAC unit <NUM>, the user may select the setup option <NUM>. After the setup option <NUM> is selected, and turning to <FIG>, the controller <NUM> may present a brand screen <NUM> to the user, including a set of HVAC brands <NUM>. As can be seen, the set of HVAC brands <NUM> may include Brand <NUM>, Brand <NUM>, Brand <NUM>, Brand <NUM>, Brand <NUM>, Brand <NUM>, Brand <NUM>, Brand <NUM>, etc. In this case, the HVAC unit <NUM> that is in the user's space may be of Brand <NUM>. As such, the user may select Brand <NUM> from the set of HVAC brands <NUM>. Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a set of models <NUM> of HVAC units made by Brand <NUM> on a models screen <NUM>. As can be seen, the set of Brand <NUM> models <NUM> may include Model <NUM>, Model <NUM>, Model <NUM>, Model <NUM>, Model <NUM>, Model <NUM>, Model <NUM>, Model <NUM>, etc. This is just one example.

Continuing with the example, the HVAC unit <NUM> that is in the user's space may be of Model <NUM>. As such, the user may select Model <NUM> from the set of Brand <NUM> models <NUM>. According to certain embodiments, once the user selects the appropriate model from the set of Brand <NUM> models <NUM>, the controller <NUM> may access the memory <NUM> (see <FIG>). As stated above, in some cases, the memory <NUM> may include a non-volatile memory, such as a NAND flash memory. Turning to <FIG>, in this example, the memory <NUM> may store an IR database <NUM>. As shown, the IR database <NUM> may include a two-level table structure, which may help improve query performance into the IR database <NUM>. In some cases, the IR database <NUM> may include a lookup table header <NUM> and flash pages <NUM>. In some cases, the lookup table header may include or contain a plurality of building automation systems, such as HVAC units, security systems, lighting systems, etc. In some cases, the building automation systems may be categorize according to a brand (e.g., a brand name) and a model (e.g., model number). In some cases, the flash pages <NUM> may include or contain a plurality of IR protocols that correspond to (i.e., are used to communicate with) the plurality of building automation systems included in the lookup table. In some cases, each flash page from the flash pages <NUM> may contain one IR protocol and the corresponding IR codes, however, this is not necessary. In some cases, the lookup table header <NUM> may contain an index or address for the flash page(s) that corresponds to each brand/model combination.

During use, the controller <NUM> may match the selected Brand from the set of HVAC brands <NUM> and the selected Model from the set of models <NUM> with the corresponding Brand/Model entry in the lookup table header <NUM>. The pointer or address <NUM> stored at that Brand/Model entry in the lookup table header <NUM> may point to the flash page <NUM> that contains the IR protocol and IR codes for that Brand/Model entry.

In some cases, the controller <NUM> may store the indication of correspondence between the HVAC unit <NUM> and the corresponding IR protocol in the memory <NUM>. In some cases, this correspondence may be stored in a different part of the memory <NUM> than the non-volatile portion (i.e. the NAND flash memory) that stores the IR protocols, such as in a separate non-volatile portion or a cache memory portion, but this is not required. In certain embodiments, for the wireless controller <NUM> to send IR command signals to the HVAC unit <NUM>, the controller <NUM> may access the memory <NUM>, identify the indication of correspondence, use the indication of correspondence to identify the IR protocol and IR codes to use, and instruct the transmitter <NUM> to send IR command signals to the IR receiver <NUM> of the HVAC unit <NUM> in accordance with the identified IR protocol and IR codes.

<FIG> is a flow diagram of an illustrative method <NUM> for programming a wireless controller to communicate with a selected HVAC unit. In some cases, the HVAC unit may be a mini-split HVAC unit. While an HVAC unit is used as an example, it is contemplated that the method may be used to communicate with a security system, lighting system, and/or any other suitable building automation system.

The method <NUM> may begin at step <NUM> where the wireless controller may receive a selection of a particular mini-split HVAC unit. The wireless controller may store the selection of the particular mini-split HVAC unit in memory. In some examples, the selection of the particular mini-split HVAC unit may be made by receiving a selection of a brand of the mini-split HVAC unit and receiving a selection of a model of the mini-split HVAC unit.

In some examples, a non-volatile memory may store an IR database. In some examples, the IR database may include a two-level table structure that includes a lookup table header and flash pages. In some examples, the lookup table header may include or contain a plurality of mini-split HVAC units categorized according to a brand and/or a model. In some examples, the flash pages may include or contain a plurality of IR protocols that correspond to the plurality of mini-split HVAC units in the lookup table header. In some cases, each flash page may contain one IR protocol and the corresponding IR codes, however, this is not necessary. In some cases, the lookup table header may contain an index or address for the flash page(s) that corresponds to each brand/model combination of the plurality of mini-split HVAC units. At step <NUM>, the wireless controller may store an indication of the correspondence between the selected mini-split HVAC unit and the corresponding IR protocol in the non-volatile memory or a separate volatile or non-volatile memory.

At step <NUM>, the wireless controller may access the non-volatile memory, and as step <NUM>, the wireless controller may identify the IR protocol for use in communicating with the particular mini-split HVAC unit selected by the user. At step <NUM>, the wireless controller may transmit IR commands (e.g. IR codes) to the particular mini-split HVAC unit in accordance with the identified IR protocol. In some examples, the wireless controller may transmit IR commands to set a programmable setpoint of the mini-split HVAC unit to a commanded setpoint temperature. In some examples, the commanded setpoint temperature may be based on a desired setpoint temperature set by a user and the temperature sensed by a temperature sensor of the wireless controller. At step <NUM>, the wireless controller may determine if the transmission was successful. If the transmission was not successful, the wireless controller may return to step <NUM> and retry the transmission. If the transmission was successful, the method <NUM> may end.

Referring back to <FIG>, once communication is established between the wireless controller <NUM> and the HVAC unit <NUM>, the wireless controller <NUM> may send commands to set a programmable setpoint of the HVAC unit <NUM>, and the HVAC unit <NUM> may then thermostatically control the temperature in the space based at least in part on: (<NUM>) the temperature sensed by a temperature sensor <NUM> of the HVAC unit <NUM>; and (<NUM>) the set programmable setpoint. According to various embodiments, the wireless controller <NUM> may be programmed with a control algorithm that uses programmable setpoints, such as setpoint temperatures, to control and/or influence the operation of the HVAC unit <NUM>. In some cases, the wireless controller <NUM> may receive a desired setpoint temperature from a user via the user interface <NUM> of the wireless controller <NUM>. In the example shown in <FIG>, the user may use increment/decrement buttons <NUM> of the user interface <NUM> to enter and/or change the desired setpoint temperature. As can be seen, the setpoint temperature is set to <NUM> (<NUM>°F) in <FIG>. Referring back to <FIG>, the controller <NUM> may then instruct the transmitter <NUM> to send appropriate IR command signals to the IR receiver <NUM> of the HVAC unit <NUM> to set the programmable setpoint of the HVAC unit <NUM> to the desired temperature setpoint. In this example, the IR command signals may instruct the HVAC unit <NUM> to set the temperature in the space at <NUM> (<NUM>°F).

<FIG> depicts an exemplary graph of the operation of the building automation system <NUM> in a heating mode after receiving the <NUM> (<NUM>°F) setpoint temperature from the wireless controller <NUM>. <FIG> shows a Wireless Controller Sensed (WCS) temperature <NUM> sensed by the temperature sensor <NUM> of the wireless controller <NUM>, an HVAC Unit Sensed (HUS) temperature <NUM> sensed by the temperature sensor <NUM> of the HVAC unit <NUM>, and a desired setpoint temperature <NUM>. In the example shown, the control algorithm of the controller <NUM> of the wireless controller <NUM> may sample the WCS temperature <NUM> every <NUM> minutes. In other cases, this sampling period may be every <NUM> minutes, <NUM> minutes, <NUM>, minutes, <NUM> minutes, <NUM> minutes, hour, <NUM> hours, <NUM> hours, <NUM> days, or any other suitable sample period. In some cases, this sample period may be dynamic, and may be based on, for example, the rate of change of the Wireless Controller Sensed. In any event, an offset temperature <NUM> may be calculated at each sampling period by finding a difference between the desired setpoint temperature <NUM> and the WCS temperature <NUM>. A change in the offset temperature may also be calculated at each sampling period by finding a difference in the offset temperature <NUM> of the current sampling period from the offset temperature <NUM> of the previous sampling period.

In the example shown in <FIG>, the WCS temperature <NUM> is initially at <NUM>,<NUM> (°<NUM>°F), the HUS temperature <NUM> is initially at <NUM>,<NUM> (<NUM>°F) (e.g. because the HVAC Unit <NUM> is mounted near the ceiling), and the offset temperature is <NUM>,<NUM> (<NUM>°F). In some cases, the HVAC Unit <NUM> may communicate the HUS temperature <NUM> to the wireless controller <NUM>. However, in other cases, the wireless controller <NUM> may not know the HUS temperature <NUM>, and as will be discussed below, the wireless controller <NUM> may determine a measure of the HUS temperature <NUM> using the WCS temperature <NUM>, the desired setpoint temperature <NUM>, and the offset temperature <NUM>.

Continuing with the example of <FIG>, after <NUM> minutes with the HVAC unit <NUM> in the heating mode, the WCS temperature <NUM> has increased to <NUM> (<NUM>,<NUM>°F) making the offset temperature <NUM><NUM>,<NUM> (<NUM>,<NUM>°F) and the change in the offset temperature <NUM><NUM>,<NUM> (<NUM>,<NUM>°F). After another ten minutes with the HVAC unit <NUM> in the heating mode, the WCS temperature <NUM> sensed by the wireless controller <NUM> has increased to <NUM>,<NUM> (<NUM>,<NUM>°F), making the offset temperature <NUM><NUM>,<NUM> (<NUM>,<NUM>°F), and the change in the offset temperature <NUM><NUM> (<NUM>°F). After another ten minutes with the HVAC unit <NUM> in the heating mode, the WCS temperature <NUM> has increased to <NUM> (<NUM>,<NUM>°F), making the offset temperature <NUM><NUM> (<NUM>,<NUM>°F), and the change in the offset temperature <NUM><NUM>,<NUM> (<NUM>,<NUM>°F). After yet another ten minutes with the HVAC unit <NUM> in the heating mode, the WCS temperature <NUM> has increased to <NUM>,<NUM> (<NUM>°F), making the offset temperature <NUM><NUM> (<NUM>,<NUM>°F), and the change in the offset temperature <NUM><NUM> (<NUM>°F). After another ten minutes with the HVAC unit <NUM> in the heating mode, the WCS temperature is still at <NUM> (<NUM>°F), making the offset temperature <NUM><NUM> (<NUM>,<NUM>°F), and the change in the offset temperature <NUM><NUM>,<NUM> (<NUM>,<NUM>°F). As can be seen, the WCS temperature <NUM> has stabilized at <NUM>,<NUM> (<NUM>°F).

In various embodiments, the control algorithm may provide instructions for the controller <NUM> of the wireless controller <NUM> to wait until the WCS temperature <NUM> has stabilized to determine whether additional commands need to be sent to adjust the temperature setpoint of the HVAC Unit <NUM>. In some cases, stabilization may be determined based on the change in the offset temperature <NUM>. For example, if the offset temperature <NUM> has not changed or has changed very little over a given time interval, it may be understood that the thermostatic control of the HVAC unit <NUM> is now cycling on and off to maintain the space temperature as measured by the HVAC unit <NUM> (e.g. the HUS temperature <NUM>), which in this example shown is different from the WCS temperature <NUM>. As such, the WCS temperature <NUM> (the temperature at the wireless controller) is not likely to change much further in response to the <NUM>°F setpoint temperature command that was sent to the HVAC unit <NUM>.

As noted above, stabilization may be determined based on the change in the offset temperature <NUM>. For instance, in the present case, the controller <NUM> may wait to receive two consecutive sample periods where the change in offset temperature <NUM> has a value that is less than or equal to a <NUM>°F threshold to determine that the WCS temperature <NUM> has stabilized. In other cases, the controller <NUM> may use a longer time interval (e.g., three, four, five, etc. consecutive sample periods) or a shorter interval (e.g., one sampling period of the change in offset temperature <NUM> having a <NUM>°F of less value) to determine whether the WCS temperature <NUM> has stabilized. In some cases, the controller <NUM> may use a larger change of rate threshold (e.g., <NUM>°F, <NUM>°F, <NUM>°F, <NUM>°F, etc.) or a smaller change of rate threshold (e.g., <NUM>°F, <NUM>°F, <NUM>°F, <NUM>°F, etc.), as desired. In some cases, the change of rate threshold may be dynamic, and may be dependent on, for example, the season, heating or cooling mode of the HVAC unit <NUM>, and/or any other suitable parameter.

Once the controller <NUM> determines that the WCS temperature <NUM> has stabilized, the controller <NUM> may use the offset temperature <NUM> between the desired temperature setpoint <NUM> and the WCS temperature <NUM> to determine whether additional commands need to be sent to the HVAC unit <NUM>. For example, in some cases, the control algorithm of the wireless controller <NUM> may use a threshold comfort offset to the controller <NUM>. In some cases, if the offset temperature <NUM> is greater than or equal to the threshold comfort offset, then the controller <NUM> may determine an updated control setpoint temperature <NUM>. The updated control setpoint temperature may be based on the offset temperature <NUM> and the previous setpoint temperature <NUM> (i.e., <NUM>°F). For instance, in the current example, the threshold comfort offset may be ±<NUM>°F. Accordingly, if the offset temperature <NUM> is within ±<NUM>°F of <NUM>°F, then the wireless controller <NUM> may allow the HVAC unit <NUM> to continue its operation of maintaining the current temperature in the space. However, as in the example shown, the offset temperature is <NUM>°F, which is greater than the threshold comfort offset of ±<NUM>°F. As such, the wireless controller <NUM> may determine that the HUS temperature <NUM> is currently at <NUM>°F (i.e., the temperature sensor <NUM> of the HVAC unit <NUM> is sensing a temperature of <NUM>°F in the space, and the temperature sensor <NUM> of the wireless controller <NUM> is sensing a temperature of <NUM>°F in the space). The controller <NUM> may determine an updated control setpoint temperature <NUM> by adding the stabilized offset temperature <NUM> (i.e., <NUM>°F) to the current setpoint temperature <NUM> (i.e., <NUM>°F). The controller <NUM> may then instruct the transmitter <NUM> of the wireless controller <NUM> to send IR command signals to the IR receiver <NUM> of the HVAC unit <NUM> (in accordance with the appropriate IR protocol) to change the setpoint temperature <NUM> of the HVAC unit <NUM> to the updated control setpoint temperature <NUM> (i.e., <NUM>°F).

In some cases, even though the wireless controller <NUM> has sent IR command signals to the HVAC unit <NUM> to update the setpoint temperature, the controller <NUM> may not display the updated control setpoint temperature on the display <NUM> of the user interface <NUM> of the wireless controller <NUM>. Rather, the controller <NUM> may continue to display the initial setpoint temperature or the desired setpoint temperature (i.e., <NUM>°F) on the display <NUM>. However, in other embodiments, the controller <NUM> may use the display <NUM> to indicate that it has updated the setpoint temperature.

Continuing with the example of <FIG>, the IR command signals may force the HVAC unit <NUM> to adjust its operation from maintaining the current temperature in the space to increasing the temperature in the space to the new updated control setpoint temperature <NUM> (i.e., <NUM>°F). After ten minutes, the controller <NUM> may sample the WCS temperature <NUM> and find that the WCS temperature has increased to <NUM>°F, making the offset temperature <NUM><NUM>°F, and the change in the offset temperature <NUM><NUM>°F. After another ten minutes, the WCS temperature <NUM> has increased to <NUM>°F, making the offset temperature <NUM><NUM>°F, and the change in the offset temperature <NUM><NUM>°F. After another ten minutes, the WCS temperature <NUM> has increased to <NUM>°F, making the offset temperature <NUM><NUM>°F, and the change in the offset temperature <NUM><NUM>°F. In some cases, once the HUS temperature reaches the setpoint temperature, whether it is the desired setpoint temperature or the updated control setpoint temperature, the HVAC unit <NUM> cycle on and off to maintain the HUS temperature at the updated control setpoint temperature <NUM> of <NUM>°F.

<FIG> depicts another exemplary graph of the operation of the building automation system <NUM> in a cooling mode after receiving a <NUM>°F setpoint temperature from the wireless controller <NUM>. In this example, the control algorithm of the wireless controller <NUM> may provide instructions to sample the WCS temperature <NUM> every <NUM> minutes (or any other suitable sample period). As shown, the WCS temperature <NUM> is initially at <NUM>°F, the HUS temperature <NUM> is initially at <NUM>°F, and the offset temperature is -<NUM>°F. After <NUM> minutes, the WCS temperature <NUM> has decreased to <NUM>°F, making the offset temperature <NUM> -<NUM>°F, and the change in the offset temperature <NUM><NUM>°F. After another <NUM> minutes, the WCS temperature <NUM> has now decreased to <NUM>°F, making the offset temperature <NUM><NUM>°F, and the change in the offset temperature <NUM><NUM>°F. After another <NUM> minutes, the WCS temperature <NUM> remains at <NUM>°F, keeping the offset temperature <NUM><NUM>°F, and the change in the offset temperature <NUM><NUM>°F.

In this example, the controller <NUM> may wait one sample period to determine if the change in offset temperature <NUM> has a value that is either less than or equal to a <NUM>°F change rate threshold (or other change rate threshold) to determine that the WCS temperature <NUM> has stabilized. Accordingly, since the change in offset temperature <NUM> is less than the change rate threshold at the current sampling period, the controller <NUM> may determine that HVAC unit <NUM> is not cycling on and off to maintain the temperature in the space and therefore, the WCS temperature <NUM> is unlikely to change further in response to the transmitted <NUM>°F setpoint temperature. Once the controller <NUM> determines that the WCS temperature <NUM> has stabilized, the controller <NUM> may determine if the offset temperature is greater than or equal to a ±<NUM>°F threshold offset (or any other suitable threshold offset). Since the offset temperature is <NUM>°F, the wireless controller <NUM> may determine that the HUS temperature <NUM> is currently at <NUM>°F. In response, the controller <NUM> may instruct the transmitter <NUM> to send IR command signals to the IR receiver <NUM> of the HVAC unit <NUM> in accordance with the appropriate IR protocol to change the setpoint temperature <NUM> of the HVAC unit <NUM> to an updated control setpoint temperature <NUM> (i.e., <NUM>°F). In some cases, the IR command signals may force the HVAC unit <NUM> to adjust its operation from maintaining the current temperature in the space to increasing the temperature in the space to the new updated control setpoint temperature <NUM> (i.e., <NUM>°F).

After <NUM> minutes, the controller <NUM> may sample the WCS temperature <NUM> once again and find that the WCS temperature has increased to <NUM>°F, making the offset temperature <NUM><NUM>°F, and the change in the offset temperature <NUM><NUM>°F. Once the HUS temperature <NUM> reaches the current setpoint temperature of the HVAC unit <NUM>, the HVAC unit <NUM> may cycle on and off to maintain that temperature. This will maintain the desired WCS temperature at the wireless controller <NUM>.

According to certain embodiments, the control algorithm may be stored in the memory <NUM>. In some cases, the control algorithm may reference a schedule, and the controller <NUM> may instruct the transmitter <NUM> to send IR command signals to the IR receiver <NUM> of the HVAC unit <NUM> to set desired setpoint temperatures at designated times. In various cases, when there is an initially determined offset temperature (e.g., the offset temperature <NUM>) between the setpoint temperature <NUM> and the stabilized WCS temperature <NUM>, the desired setpoint temperatures may be calculated by adding the offset temperature <NUM> to the desired setpoint temperatures from the schedule at each corresponding time. As such, the wireless controller <NUM> may automatically set a setpoint temperature (e.g., the setpoint temperature <NUM>) to an appropriate updated control setpoint temperature (e.g., the updated control setpoint temperature <NUM>) for a given space without having to reevaluate the offset temperature between the setpoint temperature and the stabilized controller temperature during each schedule time period. Instead, it is contemplated that once a stabilized offset temperature <NUM> is determined, that same stabilized offset temperature <NUM> may be used for a significant length of time. In some cases, the stabilized offset temperature <NUM> may only be updated every week, month, upon a change in season, or at any other interval or upon request by the user.

<FIG> shows an illustrative method <NUM> for a wireless controller <NUM> to remotely control a mini-split HVAC unit <NUM> configured to receive commands to set a programmable setpoint of the mini-split HVAC unit <NUM> such that the mini-split HVAC unit <NUM> may thermostatically control the temperature in a space based at least in part on the temperature sensed by a local temperature sensor <NUM> of the mini-split HVAC unit <NUM> and the programmable setpoint. The illustrative method <NUM> begins at step <NUM>, where the wireless controller <NUM> may send a command from a remote location to set the programmable setpoint of the mini-split HVAC unit <NUM> to a desired setpoint temperature. In some examples, the wireless controller <NUM> may receive the desired setpoint temperature from a user via a user interface of the wireless controller <NUM>. The wireless controller <NUM> may send a command to the mini-split HVAC unit <NUM> using IR signals, in accordance with an appropriate IR protocol, to set the temperature setpoint of the HVAC unit <NUM> to the desired setpoint temperature.

At step <NUM>, the wireless controller <NUM> may sense the temperature from the remote location. In some examples, the wireless controller <NUM> may sense the temperature at specific time intervals (e.g., every <NUM> minutes, every <NUM> minutes, every <NUM> minutes, every hour, etc.). After waiting and sensing the temperature at a time interval, at step <NUM>, the wireless controller <NUM> may determine whether the temperature sensed has stabilized. In some examples, stabilization may be determined based on the change in the sensed temperature over the specified time interval. For instance, if the sensed temperature has not changed or has changed very little over the specified time interval, it may be understood that the mini-split HVAC unit <NUM> is now cycling on and off to maintain the temperature in the space, and therefore the temperature sensed by the wireless controller <NUM> is unlikely to change significantly going forward. If the sensed temperature has not stabilized, the wireless controller <NUM> may wait till the next time interval and sense the temperature again at step <NUM>. This may continue until the sensed temperature has stabilized.

Once the sensed temperature has stabilized, at step <NUM>, the wireless controller <NUM> may determine a stabilized offset temperature by finding the difference between the desired setpoint temperature and the stabilized temperature. At step <NUM>, the wireless controller <NUM> may determine whether the difference between the desired setpoint temperature and the stabilized temperature is greater than or equal to a specified threshold. If the difference is less than the specified threshold, the wireless controller may allow the mini-split HVAC unit <NUM> to continue its operation without adjusting its temperature setpoint, and method <NUM> may end. If the difference is greater than or equal to the specified threshold, at step <NUM>, the wireless controller <NUM> may send a command to the mini-split HVAC unit <NUM> to set the programmable setpoint to an updated control setpoint temperature. In some examples, the wireless controller may determine the updated control setpoint temperature by adding the stabilized offset temperature to the desired setpoint temperature. In some examples, the wireless controller <NUM> may send a command to the mini-split HVAC unit <NUM> using IR signals, in accordance with an appropriate IR protocol, that changes the temperature setpoint of the HVAC unit <NUM> to the updated control setpoint temperature. Once the command has been sent, the wireless controller <NUM> may wait till the next time interval and sense the temperature again at step <NUM>. The wireless controller <NUM> may then proceed with method <NUM> in a similar fashion until the sensed temperature is at the desired setpoint temperature or the difference between the desired set pint temperature and the stabilized temperature is within a specified threshold.

According to various embodiments, the user interface <NUM> of the wireless controller <NUM> may be configured with a shortcut button. In some cases, the shortcut button may be a physical button (e.g., an electromechanical button) spaced from the display and potentially grouped with other physical buttons, such as on a keypad, for example. In other cases, such as when the display <NUM> is a touchscreen, the shortcut button may be on the display. In some cases, the shortcut button may be created and/or updated by the controller <NUM> by assigning a function or a plurality of functions to the shortcut button. For example, and referring back to <FIG>, the user may select the main menu button <NUM>. As shown in <FIG>, after the user selects the main menu button <NUM>, the controller <NUM> may use the display <NUM> to present the main menu screen <NUM> to the user, including a set of options <NUM>. As can be seen, the set of options <NUM> may include the setup option <NUM>, the schedule option <NUM>, the shortcut button setup option <NUM>, etc. In some examples, to create and/or update the shortcut button, the user may select the shortcut button setup option <NUM>.

Turning to <FIG>, and in the example shown, after the shortcut button setup option <NUM> is selected, the controller <NUM> may use the display <NUM> to present a shortcut button menu screen <NUM> that includes a create a new shortcut button option <NUM>, an update existing shortcut button option <NUM>, and a remove existing shortcut button option <NUM>. This is just one example of the shortcut button menu screen <NUM> and the various options that may be presented on the shortcut button menu screen <NUM>. In this case, the user may select create a new shortcut button option <NUM>. The controller <NUM> may then use the display <NUM> to present a shortcut button definition options screen <NUM>, as shown in <FIG>. In some cases, the shortcut button definition option screens <NUM> may include a schedule settings option <NUM>, a network settings option <NUM>, a display settings option <NUM>, an auto changeover (ACO) settings option <NUM>, an adaptive intelligent recovery (AIR) settings option <NUM>, a date/time settings option <NUM>, a temperature settings option <NUM>, an equipment status option <NUM>, and a device information option <NUM>. This is just one example of the shortcut button definition options screen <NUM> and the various options that may be presented on the shortcut button menu screen <NUM>. In the example shown, the user selects the schedule settings option <NUM>.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a schedule settings functions screen <NUM>. In some cases, the schedule settings functions screen <NUM> may include an hour scheduling option, an eight hour scheduling option, a day scheduling option, a week scheduling option, a month scheduling option, a year scheduling option, a weekdays scheduling option, a weekends scheduling option, and a custom scheduling option. This is just one example of the schedule settings functions screen <NUM> and the various schedule functions that may be presented on the schedule settings functions screen <NUM>. In this case, the user selects the weekdays scheduling option.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a weekday settings screen <NUM>. In some cases, the weekday settings screen <NUM> may include a temperature settings portion <NUM> and a time settings portion <NUM>. In some cases, the user may use increment/decrement temperature arrows <NUM> to increase or decrease a setpoint temperature <NUM>. In some cases, the user may also use increment/decrement time arrows 942A and 942B to change a time interval <NUM> for which the setpoint temperature <NUM> is set. In this example, the user may work during the weekdays. Accordingly, the user may not be home between the hours of <NUM>:<NUM> AM and <NUM>:<NUM> PM during weekdays. As such, the user may set the setpoint temperature <NUM> to <NUM>°F between the hours of <NUM>:<NUM> AM and <NUM>:<NUM> PM on the weekdays. In some cases, the weekday settings screen <NUM> may also include a back option for moving back to the previous screen (in this case, the schedule settings functions screen <NUM> of <FIG>), a next option for moving to the next screen, and a submit option for submitting the setpoint temperature <NUM> for the time interval <NUM>. This is just one example of the weekday settings screen <NUM> and the various features that may be presented on the weekday settings screen <NUM>. In this case, the user may select the next option.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a second weekday settings screen <NUM>. Similar to the weekday settings screen <NUM>, the weekday settings screen <NUM> may also include the increment/decrement temperature arrows <NUM> to increase or decrease the setpoint temperature <NUM> and the increment/decrement time arrows 942A and 942B to change the time interval <NUM> for which the setpoint temperature <NUM> is set. In this example, the user may be home and awake on the weekdays between the hours of <NUM>:<NUM> PM and <NUM>:<NUM> PM. As such, the user may turn the setpoint temperature <NUM> up to <NUM>°F between the hours of <NUM>:<NUM> PM and <NUM>:<NUM> PM. In this case, the user may then select the next option.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a third weekday settings screen <NUM>. Similar to the weekday settings screens <NUM> and <NUM>, the weekday settings screen <NUM> may also include the increment/decrement temperature arrows <NUM> to increase or decrease the setpoint temperature <NUM> and the increment/decrement time arrows 942A and 942B to change the time interval <NUM> for which the setpoint temperature <NUM> is set. In this example, the user may be home and asleep on the weekdays between the hours of <NUM>:<NUM> PM and <NUM>:<NUM> AM. As such, the user may turn the setpoint temperature <NUM> down to <NUM>°F between the hours of <NUM>:<NUM> PM and <NUM>:<NUM> AM. In this case, the user may then select the submit option.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a shortcut button label screen <NUM>. In some cases, the shortcut button label screen <NUM> may include an alphabet keypad <NUM> that the user can use to label the shortcut button. In some cases, the alphabet keypad <NUM> may include a numeric button option <NUM> that the user can select to bring up a numerical keypad (not shown). This is just one example of the shortcut button label screen <NUM> and the various features that may be presented on the shortcut button label screen <NUM>. In this case, once the user has selected a label for the shortcut button, the user may select the submit option and the controller <NUM> may assign the weekdays scheduling option functions and the label to the shortcut button.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a shortcut button <NUM> on the user interface <NUM>. As shown, in this example, the user has labeled the shortcut button <NUM> "WEEKDAY SETTINGS". In this case the label "WEEKDAY SETTINGS" appears on the shortcut button <NUM>. In other embodiments, the label may appear by or adjacent the shortcut button <NUM>. For example, in some cases, the shortcut button <NUM> may be an electromechanical button spaced from the display <NUM> and positioned immediately adjacent to the display <NUM>. The label may appear on the display <NUM> adjacent to the electromechanical shortcut button (e.g. soft key). In addition, in some cases, as shown by arrows 958A-958C, the controller <NUM> may be configured to allow the user to move the shortcut button <NUM> to different locations on the display <NUM>, if desired.

According to various embodiments, when the shortcut button <NUM> is subsequently activated, the controller <NUM> may instruct the transmitter <NUM> to send IR command signals to the IR receiver <NUM> of the HVAC unit <NUM> to set the desired setpoint temperatures at the designated times based on the assigned weekdays scheduling option functions. Furthermore, in this case, the controller <NUM> may automatically set the setpoint temperatures of <NUM>°F, <NUM>°F, and <NUM>°F to their updated control setpoint temperatures of <NUM>°F, <NUM>°F, and <NUM>°F. As such, the transmitter may send IR command signals, in accordance with an appropriate IR protocol, to the IR receiver <NUM> of the HVAC unit <NUM> to set the setpoint temperatures at <NUM>°F between the hours of <NUM>:<NUM> AM and <NUM>:<NUM> PM, <NUM>°F between the hours of <NUM>:<NUM> PM and <NUM>:<NUM> PM, and <NUM>°F between the hours of <NUM>:<NUM> PM and <NUM>:<NUM> AM.

In some cases, the user may once again select the main menu button <NUM>. As shown in <FIG>, after the user selects the main menu button <NUM>, the controller <NUM> may once again use the display <NUM> to present the main menu screen <NUM>. The user may then select the shortcut button setup option <NUM>. Referring tack to <FIG>, after the shortcut button setup option <NUM> is selected, the controller <NUM> may once again use the display <NUM> to present a shortcut button menu screen <NUM> and the user may select the create a new shortcut button option <NUM>. Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a shortcut button definition options screen <NUM> and the user may select the device information option <NUM>.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a device information functions screen <NUM>. In some cases, the device information functions screen <NUM> may include current schedules information <NUM>, current network settings information <NUM>, current display settings information <NUM>, and current temperature settings <NUM>. In some cases, the device information functions screen <NUM> may also include a priority table <NUM> that may be used to specify an order at which the selected functions are presented on the display <NUM>. As shown by arrows 972A-972D, the controller <NUM> may be configured to allow the user to move the functions <NUM> - <NUM> into the priority table <NUM>. This is just one example of the device information functions screen <NUM> and the various device information functions that may be presented on the device information functions screen <NUM>.

Turning to <FIG>, the current display settings information <NUM> has been placed in the first cell of the priority table <NUM>, the current schedules information <NUM> has been placed in the second cell of the priority table <NUM>, the current temperature settings <NUM> has been placed in the third cell of the priority table <NUM>, and the current display settings information <NUM> has been placed in the fourth cell of the priority table <NUM>. This is just one example of how the device information functions <NUM>-<NUM> may be prioritized. In other cases, there may not be a priority table and the controller <NUM> may be configured to prioritize functions in a different manner. In this case, the user may then select the submit option. Turning back to <FIG>, the controller <NUM> may once again use the display <NUM> to present a shortcut button label screen <NUM>. Once the user has selected a label for the shortcut button, the user may select the submit option and the controller <NUM> may assign the device information functions and the label to the shortcut button.

Turning to <FIG>, the controller <NUM> may then use the display <NUM> to present a shortcut button <NUM> on the user interface <NUM>. As shown, in this example, the user has labeled the shortcut button <NUM> "WIRELESS CONTROLLER STATUS". In this case the label "WIRELESS CONTROLLER STATUS" appears on the shortcut button <NUM>. In addition, in some cases, as shown by arrows 976A-976B, the controller <NUM> may be configured to allow the user to move the shortcut button <NUM> to different locations on the display <NUM>. This is just one example of how the controller <NUM> may use the display <NUM> to present the shortcut buttons <NUM> and <NUM>. In other embodiments, the shortcut buttons <NUM> and <NUM> may be presented in a different manner.

According to various embodiments, when the shortcut button <NUM> is subsequently activated, the controller <NUM> may use the display <NUM> to present the device information functions <NUM>-<NUM> based on the order specified by the priority table <NUM> (i.e., the cell of the priority table <NUM> that each of the device information functions <NUM>-<NUM> occupies). In this case, the current display settings information <NUM> may be displayed first, the current schedules information <NUM> may be displayed second, the current temperature settings information <NUM> may be displayed third, and the current display settings information <NUM> may be displayed fourth. Similarly, other functions that the controller <NUM> may control, such as operating functions of the HVAC unit <NUM> may be assigned an order or sequence of operation and the controller <NUM> may instruct the transmitter <NUM> to send IR command signals to the IR receiver <NUM> of the HVAC unit <NUM> to carry out the functions assigned to the shortcut button (e.g., shortcut buttons <NUM> and <NUM>) according to the specified order.

<FIG> shows an illustrative method <NUM> for operating a wireless controller <NUM> configured to send commands to a mini-split HVAC unit <NUM> that includes an IR receiver, and the mini-split HVAC unit <NUM> may be configured to thermostatically control the temperature in a space based at least in part on the temperature sensed by a temperature sensor associated with the mini-split HVAC unit <NUM> in conjunction with a programmable setpoint. The method <NUM> may begin at step <NUM>, where the wireless controller <NUM> may receive a selection of a shortcut button definition option. In some examples, the shortcut button may be a physical button (e.g., an electromechanical button) on a user interface of the wireless controller and the wireless controller receives selection of the shortcut button definition option by activation of the shortcut button. In some examples, a touchscreen display may be included on the user interface and the shortcut button may be created and/or updated and the wireless controller receives selection of the shortcut button definition option from an options menu presented by the display.

At step <NUM>, and after receiving selection of the shortcut button definition option, the wireless controller <NUM> may use the display to present menu screens that allow a user to select functions from predefined functions that can be assigned to the shortcut button. In some examples, the menu screens presented may also allow the user to specify an order of sequence that the selected functions should be executed. At step <NUM>, the wireless controller <NUM> may receive a selection of functions to assign to the shortcut button. At step <NUM>, the wireless controller <NUM> may determine whether the user would like to select more functions to assign to the shortcut button. In some examples, the wireless controller <NUM> may use the display to present a select more functions option or a next option to allow the user to select more functions, if desired. In some examples, the wireless controller <NUM> may use the display to present a submit option or a finished option to indicate that the user is done selecting functions.

If the wireless controller <NUM> determines that the user would like to select more functions to assign to the shortcut button, at step <NUM>, the wireless controller <NUM> may use the display to present more functions. If the wireless controller <NUM> determines that the user is done selecting functions, at step <NUM>, the wireless controller <NUM> may assign the selected functions to the shortcut button. The shortcut button is then active.

At step <NUM>, when the shortcut button is subsequently activated by a user, the wireless controller <NUM> may send or transmit commands to the mini-split HVAC unit <NUM>, and in response the mini-split HVAC unit <NUM> may carry out the selected and assigned functions. In some examples, the mini-split HVAC unit <NUM> may also carry out the selected and signed functions in an order or sequence specified by the user.

Claim 1:
A wireless controller (<NUM>,<NUM>) configured to send commands to a mini-split HVAC unit (<NUM>,<NUM>) that includes an infra-red (IR) receiver, wherein the mini-split HVAC unit is configured to thermostatically control a temperature in a space based at least in part on a temperature sensed by a temperature sensor associated with the mini-split HVAC unit in conjunction with a programmable set point, the wireless controller (<NUM>,<NUM>) comprising:
an IR transmitter (<NUM>);
a temperature sensor (<NUM>) for sensing a temperature at the wireless controller; a user interface including a display;
a non-volatile memory storing infrared (IR) protocol (<NUM>) for each of a plurality of different mini-split HVAC units;
a controller (<NUM>) operatively coupled to the user interface, the temperature sensor, the non-volatile memory and the IR transmitter, the controller configured to:
receive a selection of a particular one of the plurality of different mini- split HVAC units;
store an indication of a correspondence between the selected one of the plurality of different mini-split HVAC units and an IR protocol in a non-volatile memory; and
wirelessly transmit one or more commands to the selected one of the plurality of different mini-split HVAC units in accordance with the IR protocol.