Patent Description:
The present disclosure pertains to building control systems such as Heating, Ventilation, and/or Air Conditioning (HVAC) systems, security systems, lighting systems and the like. More particularly, the present disclosure pertains to transferring settings and/or data from a non-connected building controller to another building controller.

Building control systems are used to control conditions within a building or other structure. Example building control systems include HVAC systems, security systems, and lighting systems. HVAC systems, for example, are often used to control the comfort level within a building or other structure. HVAC systems typically include an HVAC controller that controls various HVAC components of the HVAC system in order to affect and/or control one or more environmental conditions within the building. In many cases, an HVAC controller provides control signals to various HVAC components of the HVAC system, sometimes via a number of control wires that extend through the wall. Some HVAC controller have a wired or wireless connection to a network, while other HVAC controllers are non-connected and do not have a wired or wireless connection to a network. Improvements in the hardware, user experience, and functionality of such HVAC controllers would be desirable.

<CIT> discloses an approach for configuration of a second controller in a building automation system (BAS) by sharing a code that may be generated by a first controller in a BAS, but the sharing occurs without a network work connection.

<CIT> discloses network and device configuration systems and methods. A first user interface configured to receive from a user configuration information regarding a first network is provided. Program code stored in computer accessible memory is configured to generate a barcode that includes information related to the first network configuration information, wherein the barcode can be scanned by a device having a barcode scanner and a network inerface to configure the network interface to access the first network.

<CIT> discloses systems and methods for provisioning a component of an HVAC system. A provisioning device, such as a smartphone, is used to scan HVAC component information obtained from a tag on each component and wirelessly transfers the information to a thermostat or HVAC system controller. The thermostat or system controller automatically configures itself to control the equipment based on the details in the tag which are transmitted to the thermostat. The label may include barcode or textual information, which is decoded by software executing in the provisioning device, the thermostat, or a server computer in communication with the provisioning device or the thermostat.

<CIT> represents prior art relevant with regard to what is disclosed herewith.

The present invention in its various aspects is as set out in the appended claims. The present disclosure relates generally to building control systems, and more specifically, to transferring of settings and/or data from a non-connected building controller to another building controller.

In a particular example of the present disclosure, an HVAC controller may be configured to control at least part of an HVAC system of a building, where the HVAC controller may reference settings that may be customizable by a user for a particular installation. While an HVAC controller is used here as an example, it is contemplated that the present disclosure can be applied to any suitable building controller, as desired. The illustrative HVAC controller may include a user interface and a controller operably coupled to the user interface. The controller may be configured to at least partially control the HVAC system of the building based, at least in part, on settings customizable by a user. In some cases, in response to a selection by a user via the user interface, the controller may be configured to assemble and present via the user interface an output that encodes two or more of the settings and/or other data in a machine readable form.

In another example of the present disclosure, a computer readable medium may be provided that may include a program code stored thereon in a non-transitory state. The program code may be used by a computing device connectable to a network, where the program code may cause the computing device to execute a method for obtaining settings from a non-network connected building controller. The method may include receiving a request from a user for obtaining settings from a building control device. In some cases, in response to receiving the request, the program code may initiate a camera operation of a camera in communication with the computing device to capture an image of an output displayed by the building control device. The output displayed by the building control device may provide two or more of the settings encoded in a machine readable form, which may or may not be in a human readable form. The method in the program code may further include capturing an image of the output displayed by the building control device with the camera. In some cases, the image and/or the two or more of the settings may be transmitted from the computing device to a remote device via a network.

In some examples, a method may allow for exporting settings of a non-network connected HVAC controller. The method may include assembling and/or displaying via a user interface of the HVAC controller an output that provides two or more of the settings of the HVAC controller encoded in a machine readable form. In this example method, an image of the output displayed by the HVAC controller may be captured. In some cases, the captured image may be processed to decode the two or more of the settings of the HVAC controller to produce the two or more settings encoded in the output. These settings may then be transferred to another HVAC controller, such as when the non-connected HVAC controller is being replaced or upgraded with another HVAC controller.

The preceding summary is provided to facilitate an understanding of some of the features of the present disclosure and is not intended to be a full description. A full appreciation of the disclosure can be gained by taking the entire specification, claims, drawings, and abstract as a whole.

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

It should be understood, however, that the intention is not to limit aspects of the disclosure to the particular illustrative embodiments described.

The following description should be read with reference to the drawings wherein like reference numerals indicate like elements. The drawings, which are not necessarily to scale, are not intended to limit the scope of the disclosure. In some of the figures, elements not believed necessary to an understanding of relationships among illustrated components may have been omitted for clarity.

It is noted that references in the specification to "an embodiment", "some embodiments", "other embodiments", etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is contemplated that the feature, structure, or characteristic may be applied to other embodiments whether or not explicitly described unless clearly stated to the contrary.

The present disclosure is directed generally at building automation systems. Building automation systems are systems that control one or more operations of a building. Building automation systems can include HVAC systems, security systems, fire suppression systems, energy management systems and other systems. While HVAC systems with HVAC controllers are used as an example below, it should be recognized that the concepts disclosed herein can be applied to building automation systems more generally.

<FIG> is a schematic view of a building <NUM> having an illustrative heating, ventilation, and air conditioning (HVAC) system <NUM>. While <FIG> shows a typical forced air type HVAC system, other types of HVAC systems are contemplated including, but not limited to, boiler systems, radiant heating systems, electric heating systems, cooling systems, heat pump systems, and/or any other suitable type of HVAC system, as desired. The illustrative HVAC system <NUM> of <FIG> includes one or more HVAC components <NUM>, a system of ductwork and air vents including a supply air duct <NUM> and a return air duct <NUM>, and one or more HVAC controllers <NUM>. The one or more HVAC components <NUM> may include, but are not limited to, a furnace, a heat pump, an electric heat pump, a geothermal heat pump, an electric heating unit, an air conditioning unit, a humidifier, a dehumidifier, an air exchanger, an air cleaner, a damper, a valve, and/or the like.

It is contemplated that the HVAC controller(s) <NUM> may be configured to control the comfort level in the building or structure by activating and deactivating the HVAC component(s) <NUM> in a controlled manner. The HVAC controller(s) <NUM> may be configured to control the HVAC component(s) <NUM> via a wired or wireless communication link <NUM>. In some cases, the HVAC controller(s) <NUM> may be a thermostat, such as, for example, a wall mountable thermostat, but this is not required in all embodiments. Such a thermostat may include (e.g. within the thermostat housing) or have access to one or more temperature sensor(s) for sensing ambient temperature at or near the thermostat. In some instances, the HVAC controller(s) <NUM> may be a zone controller, or may include multiple zone controllers each monitoring and/or controlling the comfort level within a particular zone in the building or other structure.

In the illustrative HVAC system <NUM> shown in <FIG>, the HVAC component(s) <NUM> may provide heated air (and/or cooled air) via the ductwork throughout the building <NUM>. As illustrated, the HVAC component(s) <NUM> may be in fluid communication with every room and/or zone in the building <NUM> via the ductwork <NUM> and <NUM>, but this is not required. In operation, when a heat call signal is provided by the HVAC controller(s) <NUM>, an HVAC component <NUM> (e.g. forced warm air furnace) may be activated to supply heated air to one or more rooms and/or zones within the building <NUM> via supply air ducts <NUM>. The heated air may be forced through supply air duct <NUM> by a blower or fan <NUM>. In this example, the cooler air from each zone may be returned to the HVAC component <NUM> (e.g. forced warm air furnace) for heating via return air ducts <NUM>. Similarly, when a cool call signal is provided by the HVAC controller(s) <NUM>, an HVAC component <NUM> (e.g. air conditioning unit) may be activated to supply cooled air to one or more rooms and/or zones within the building or other structure via supply air ducts <NUM>. The cooled air may be forced through supply air duct <NUM> by the blower or fan <NUM>. In this example, the warmer air from each zone may be returned to the HVAC component <NUM> (e.g. air conditioning unit) for cooling via return air ducts <NUM>. In some cases, the HVAC system <NUM> may include an internet gateway or other device <NUM> that may allow one or more of the HVAC components, as described herein, to communicate over a wide area network (WAN) such as, for example, the Internet.

In some cases, the system of vents or ductwork <NUM> and/or <NUM> can include one or more dampers <NUM> to regulate the flow of air, but this is not required. For example, one or more dampers <NUM> may be coupled to one or more HVAC controller(s) <NUM>, and can be coordinated with the operation of one or more HVAC components <NUM>. The one or more HVAC controller(s) <NUM> may actuate dampers <NUM> to an open position, a closed position, and/or a partially open position to modulate the flow of air from the one or more HVAC components <NUM> to an appropriate room and/or zone in the building or other structure. The dampers <NUM> may be particularly useful in zoned HVAC systems, and may be used to control which zone(s) receives conditioned air from the HVAC component(s) <NUM>.

In many instances, one or more air filters <NUM> may be used to remove dust and other pollutants from the air inside the building <NUM>. In the illustrative example shown in <FIG>, the air filter(s) <NUM> is installed in the return air duct <NUM>, and may filter the air prior to the air entering the HVAC component <NUM>, but it is contemplated that any other suitable location for the air filter(s) <NUM> may be used. The presence of the air filter(s) <NUM> may not only improve the indoor air quality, but may also protect the HVAC components <NUM> from dust and other particulate matter that would otherwise be permitted to enter the HVAC component.

In some cases, and as shown in <FIG>, the illustrative HVAC system <NUM> may include an equipment interface module (EIM) <NUM>. When provided, the equipment interface module <NUM> may, in addition to controlling the HVAC components <NUM> under the direction of the thermostat, be configured to measure or detect a change in a given parameter between the return air side and the discharge air side of the HVAC system <NUM>. For example, the equipment interface module <NUM> may measure a difference in temperature, flow rate, pressure, or a combination of any one of these parameters between the return air side and the discharge air side of the HVAC system <NUM>. In some cases, the equipment interface module <NUM> may be adapted to measure the difference or change in temperature (delta T) between a return air side and discharge air side of the HVAC system <NUM> for the heating and/or cooling mode. The delta T for the heating and cooling modes may be calculated by subtracting the return air temperature from the discharge air temperature (e.g. delta T = discharge air temperature - return air temperature).

In some cases, the equipment interface module <NUM> may include a first temperature sensor 38a located in the return (incoming) air duct <NUM>, and a second temperature sensor 38b located in the discharge (outgoing or supply) air duct <NUM>. Alternatively, or in addition, the equipment interface module <NUM> may include a differential pressure sensor including a first pressure tap 39a located in the return (incoming) air duct <NUM>, and a second pressure tap 39b located downstream of the air filter <NUM> to measure a change in a parameter related to the amount of flow restriction through the air filter <NUM>. In some cases, the equipment interface module <NUM>, when provided, may include at least one flow sensor that is capable of providing a measure that is related to the amount of air flow restriction through the air filter <NUM>. In some cases, the equipment interface module <NUM> may include an air filter monitor. These are just some examples.

When provided, the equipment interface module <NUM> may be configured to communicate with the HVAC controller <NUM> via, for example, a wired or wireless communication link <NUM>. In other cases, the equipment interface module <NUM> may be incorporated or combined with the HVAC controller <NUM>. In some instances, the equipment interface module <NUM> may communicate, relay or otherwise transmit data regarding the selected parameter (e.g. temperature, pressure, flow rate, etc.) to the HVAC controller <NUM>. In some cases, the HVAC controller <NUM> may use the data from the equipment interface module <NUM> to evaluate the system's operation and/or performance. For example, the HVAC controller <NUM> may compare data related to the difference in temperature (delta T) between the return air side and the discharge air side of the HVAC system <NUM> to a previously determined delta T limit stored in the HVAC controller <NUM> to determine a current operating performance of the HVAC system <NUM>.

<FIG> is a schematic view of an illustrative HVAC controller <NUM> (e.g., a thermostat) that may facilitate accessing and/or controlling the HVAC system <NUM> of <FIG>. As discussed above, the HVAC controller <NUM> may communicate with the one or more HVAC components <NUM> of the HVAC system <NUM> via a wired or wireless link <NUM>. The HVAC controller <NUM> in <FIG> may be a connected HVAC controller <NUM> that is connectable to a network, or may be an non-connected HVAC controller <NUM> that may not be capable of connecting to a network (other than the wired or wireless link <NUM> to one or more HVAC components <NUM> of the HVAC system <NUM>).

<FIG> is a schematic view of an illustrative HVAC control system <NUM> that may facilitate remote access and/or control of the illustrative HVAC system <NUM> shown in <FIG>. The HVAC control system <NUM> may be considered a building automation system or part of a building automation system. The illustrative HVAC control system <NUM> may include an HVAC controller, as for example HVAC controller <NUM> (see <FIG> or <FIG>), that is configured to communicate with and control one or more HVAC components <NUM> of the HVAC system <NUM>. As discussed above, the HVAC controller <NUM> may communicate with the one or more HVAC components <NUM> of the HVAC system <NUM> via a wired or wireless link <NUM>. Additionally, the HVAC controller <NUM> may communicate over one or more wired or wireless networks that may accommodate remote access and/or control of the HVAC controller <NUM> via another device such as a smart phone, tablet, e-reader, laptop computer, personal computer, key fob, or the like. As shown in <FIG>, the HVAC controller <NUM> may include a first communications port <NUM> for communicating over a first network <NUM>, and in some cases, a second communications port <NUM> for communicating over a second network <NUM>. In some cases, the first network <NUM> may be a wireless local area network (LAN), and the second network <NUM> (when provided) may be a wide area network or global network (WAN) including, for example, the Internet. In some cases, the wireless local area network <NUM> may provide a wireless access point and/or a network host device that is separate from the HVAC controller <NUM>. In other cases, the wireless local area network <NUM> may provide a wireless access point and/or a network host device that is part of the HVAC controller <NUM>. In some cases, the wireless local area network <NUM> may include a local domain name server (DNS), but this is not required for all embodiments. In some cases, the wireless local area network <NUM> may be an ad-hoc wireless network, but this is not required.

In some cases, the HVAC controller <NUM> may be programmed to communicate over the second network <NUM> with an external web service hosted by one or more external web server(s) <NUM>. A non-limiting example of such an external web service is Honeywell's TOTAL CONNECT COMFORT™ web service. The HVAC controller <NUM> may be configured to upload selected data via the second network <NUM> to the external web service where it may be collected and stored on the external web server <NUM>. In some cases, the data may be indicative of the performance of the HVAC system <NUM>. Additionally, the HVAC controller <NUM> may be configured to receive and/or download selected data, settings and/or services sometimes including software updates from the external web service over the second network <NUM>. The data, settings and/or services may be received automatically from the web service, downloaded periodically in accordance with a control algorithm, and/or downloaded in response to a user request. In some cases, for example, the HVAC controller <NUM> may be configured to receive and/or download an HVAC operating schedule and operating parameter settings such as, for example, temperature set points, humidity set points, start times, end times, schedules, window frost protection settings, and/or the like from the web server <NUM> over the second network <NUM>. In some instances, the HVAC controller <NUM> may be configured to receive one or more user profiles having at least one operational parameter setting that is selected by and reflective of a user's preferences. In still other instances, the HVAC controller <NUM> may be configured to receive and/or download firmware and/or hardware updates such as, for example, device drivers from the web server <NUM> over the second network <NUM>. Additionally, the HVAC controller <NUM> may be configured to receive local weather data, weather alerts and/or warnings, major stock index ticker data, traffic data, and/or news headlines over the second network <NUM>. These are just some examples.

Depending upon the application and/or where the HVAC user is located, remote access and/or control of the HVAC controller <NUM> may be provided over the first network <NUM> and/or the second network <NUM>. A variety of remote wireless devices <NUM> may be used to access and/or control the HVAC controller <NUM> from a remote location (e.g. remote from the HVAC Controller <NUM>) over the first network <NUM> and/or second network <NUM> including, but not limited to, mobile phones including smart phones, tablet computers, laptop or personal computers, wireless network-enabled key fobs, e-readers, and/or the like. In many cases, the remote wireless devices <NUM> are configured to communicate wirelessly over the first network <NUM> and/or second network <NUM> with the HVAC controller <NUM> via one or more wireless communication protocols including, but not limited to, cellular communication, ZigBee, REDLINK™, Bluetooth, WiFi, IrDA, dedicated short range communication (DSRC), EnOcean, and/or any other suitable common or proprietary wireless protocol, as desired.

In some cases, an application program code (i.e. app) stored in the memory of the remote device <NUM> may be used to remotely access and/or control the HVAC controller <NUM>. The application program code (app) may be downloaded from an external web service, such as the web service hosted by the external web server <NUM> (e.g. Honeywell's TOTAL CONNECT COMFORT™ web service) or another external web service (e.g. ITUNES® or Google Play). In some cases, the app may provide a remote user interface for interacting with the HVAC controller <NUM> at the user's remote device <NUM>. For example, through the user interface provided by the app, a user may be able to change operating parameter settings such as, for example, temperature set points, humidity set points, start times, end times, schedules, window frost protection settings, accept software updates, take pictures of thermostat screens, encode/decode data, transfer data to/from thermostats, and/or the like. Communications may be routed from the user's remote device <NUM> to the web server <NUM> and then, from the web server <NUM> to the HVAC controller <NUM> connected to the second network. In some cases, communications may flow in the opposite direction such as, for example, when a user interacts directly with the HVAC controller <NUM> to change an operating parameter setting such as, for example, a schedule change or a set point change. The change made at the HVAC controller <NUM> may be routed to the web server <NUM> and then from the web server <NUM> to the remote device <NUM> where it may be reflected by the application program executed by the remote device <NUM>.

In some cases, a user may be able to interact with the HVAC controller <NUM> via a user interface provided by one or more web pages served up by the web server <NUM>. The user may interact with the one or more web pages using a variety of internet capable devices to effect a setting or other change at the HVAC controller <NUM>, and in some cases view usage data and energy consumption data related to the usage of the HVAC system <NUM>. In some cases, communication may occur between the user's remote device <NUM> and the HVAC controller <NUM> without being relayed through a server such as external server <NUM>, for example, through a camera, a listening device, a data link, etc. These are just some examples.

<FIG> is a perspective view of an illustrative thermostat assembly <NUM>. In some instances, the thermostat assembly <NUM> may be considered as an example of the HVAC controller <NUM> referenced in <FIG> and <FIG>. In some instances, and with particular reference to <FIG>, the thermostat assembly <NUM> may include a thermostat <NUM> having a display <NUM> with a touch sensitive screen <NUM>, and a wall mountable connector <NUM>. As will be illustrated, the wall mountable connector <NUM> may be configured to accommodate field wires that enter from a rear of the wall mountable connector <NUM>. When so provided, the wall mountable connector <NUM> may provide an electrical connection between terminals (not shown) of the thermostat <NUM> and field wires (not illustrated) of the HVAC system <NUM> (<FIG> and <FIG>).

In the example shown, the wall mountable connector <NUM> may also provide a mechanical connection to the thermostat <NUM> and thus may be used to secure the thermostat <NUM> in place relative to a vertical surface such as a wall. In some cases, the wall mountable connector <NUM> may provide electrical and mechanical connections to the thermostat <NUM> in a compact design, and may be configured to accommodate a variety of different thermostats models. An example of different thermostats that may be accommodated by the wall mountable connector <NUM> may include a non-connected thermostat that is not configured to connect to a network such as network <NUM> or network <NUM>, and a connected thermostat that is configured to be connect to a network such as network <NUM> or network <NUM>.

<FIG> is a schematic block diagram of an illustrative HVAC controller <NUM>. As discussed above with reference to <FIG>, the HVAC controller <NUM> may be a non-connected HVAC controller that can only connect to and control HVAC components but cannot connect to a network such as network <NUM> or network <NUM>. Alternatively as discussed above with respect to <FIG>, the HVAC controller <NUM> may be a connected HVAC controller that can connect to a network such as network <NUM> or network <NUM> through which the HVAC controller may be accessed and/or controlled from a remote location over the first network <NUM> and/or the second network <NUM> using a remote wireless device <NUM> such as, for example, a smart phone, a tablet computer, a laptop or personal computer, a wireless network-enabled key fob, an e-reader, and/or the like. In some instances, the HVAC controller <NUM> may be a thermostat, but this is not required in all instances.

When the HVAC controller <NUM> is connected HVAC controller, the HVAC controller <NUM> may include a communications block <NUM> having a first communications port <NUM> for communicating over a first network (e.g. wireless LAN) and/or a second communications port <NUM> for communicating over a second network (e.g. WAN or the Internet). When the HVAC controller <NUM> is a non-connected HVAC controller, the HVAC controller <NUM> may not include the communications block <NUM>.

The first communications port <NUM>, when provided, may be a wireless communications port including a wireless transceiver for wirelessly sending and/or receiving signals over a first wireless network <NUM>. Similarly, the second communications port <NUM> may be a wireless communications port including a wireless transceiver for sending and/or receiving signals over a second wireless network <NUM>. In some cases, the second communications port <NUM> may be in communication with a wired or wireless router or gateway for connecting to the second network, but this is not required. In some cases, the router or gateway may be integral to the HVAC controller <NUM> or may be provided as a separate device.

Additionally, the illustrative HVAC controller <NUM> may include a processor or controller (e.g. microprocessor, microcontroller, etc.) <NUM> and a memory <NUM> operatively coupled to the processor or controller <NUM>. The HVAC controller <NUM> may also include a user interface <NUM> operatively coupled to the processor or controller <NUM>, but this is not required, where the user interface <NUM> may include the display <NUM> and/or a touch sensitive screen <NUM>. In some cases, HVAC controller <NUM> may include a timer (not shown). The timer may be integral to the processor <NUM> or may be provided as a separate component.

The memory <NUM> of the illustrative HVAC controller <NUM> may be in communication with the processor or controller <NUM>. The memory <NUM> may be used to store any desired information, such as the aforementioned control algorithm, set points, schedule times, diagnostic limits such as, for example, differential pressure limits, delta T limits, configuration settings such as, for example, cycles per hour, number of heating stages, number of cooling stages, humidifier present, and the like. The memory <NUM> may be any suitable type of storage device including, but not limited to, RAM, ROM, EPROM, flash memory, a hard drive, and/or the like. In some cases, the processor <NUM> may store information within the memory <NUM>, and may subsequently retrieve the stored information from the memory <NUM>.

In many cases, the HVAC controller <NUM> may include an input/output block (I/O block) <NUM> for providing one or more control signals to the HVAC system <NUM>. For example, the I/O block <NUM> may communicate with one or more HVAC components <NUM> of the HVAC system <NUM>. The HVAC controller <NUM> may have any number of wire terminals for receiving control wires for one or more HVAC components <NUM> of the HVAC system <NUM>. Different HVAC systems <NUM> may have different HVAC components and/or type of HVAC components <NUM>, which may result in different wiring configurations. In some cases, the I/O block <NUM> may communicate with another controller, which is in communication with one or more HVAC components <NUM> of the HVAC system <NUM>, such as a zone control panel in a zoned HVAC system, equipment interface module (EIM) (e.g. EIM <NUM> shown in <FIG>) or any other suitable building control device.

The HVAC controller <NUM> may also include one or more sensors <NUM> such as for example, a temperature sensor, a humidity sensor, an occupancy sensor, a proximity sensor, and/or the like. In some cases, the sensor(s) <NUM> of the HVAC controller <NUM> may include an internal temperature sensor, but this is not required. Alternatively, or in addition, the HVAC controller <NUM> may communicate with one or more remote temperature sensors, humidity sensors, occupancy sensors, and/or other sensors located throughout the building or structure. Additionally, the HVAC controller may communicate with a temperature sensor, humidity sensor, and/or other sensors located outside of the building or structure for sensing an outdoor temperature and/or humidity if desired.

The user interface <NUM>, when provided, may be any suitable user interface that permits the HVAC controller <NUM> to display and/or solicit information, as well as accept one or more user interactions with the HVAC controller <NUM>. For example, the user interface <NUM> may permit a user to locally enter data such as temperature set points, humidity set points, fan set points, starting times, ending times, schedule times, diagnostic limits, configuration settings, responses to alerts, and the like. In one embodiment, the user interface <NUM> may be a physical user interface that is accessible at the HVAC controller <NUM>, and may include a display <NUM> and/or a distinct keypad. In some instances out of the scope of the invention, a display may include or may be a liquid crystal display (LCD), and in some cases an e-ink display, fixed segment display, a light emitting diode (LED) display, or a dot matrix LCD display. According to the present invention, where the display <NUM> is a fixed segment display, the fixed segment display includes a plurality of fixed segments at fixed locations that form characters, icons, and/or menu items to interact with a user of the HVAC controller <NUM> and/or provide information to a user of the HVAC controller <NUM>. Alternatively or in addition, the user interface <NUM> may be a touch screen LCD panel or other touch sensitive screen that functions as both display and keypad. The touch screen LCD panel may be adapted to solicit values for a number of operating parameters and/or to receive such values, but this is not required. In still other cases, the user interface <NUM> may be a dynamic graphical user interface.

As discussed above, some HVAC controllers <NUM> may be non-connected HVAC controllers while others may be connected HVAC controllers. In some cases, it may be desirable to replace or upgrade a non-connected HVAC controller <NUM> to another HVAC controller such as a connected HVAC controller <NUM>. In such scenarios, an installer must typically manually determine and then re-enter the settings of the non-connected HVAC controller <NUM> into the replacement HVAC controller. This can be time consuming, tedious and error prone.

A technique is described herein for transferring settings and/or data (e.g., ISU settings, user preferences, schedules, set points, HVAC configuration settings) from a non-connected HVAC controller <NUM> to another HVAC controller <NUM> is disclosed herein. Additionally or alternatively, the technique may be used for assisting in remote trouble shooting and/or diagnostics of a non-connected HVAC controller <NUM> by transferring settings and/or data to from the non-connected HVAC controller <NUM> to a connected device, and then uploading the settings and/or data to a remote site for review and/or analysis sometimes by a contractor or the like.

<FIG> depicts a schematic of an illustrative flow for transferring settings and/or data from a non-connected HVAC controller 18a to a connected HVAC controller 18b. As shown in <FIG>, the non-connected HVAC controller 18a is configured to encode the settings and/or data and display the encoded settings and/or data on its user interface <NUM>. A remote device <NUM> may be used to capture in image of the user interface <NUM> of the non-connected HVAC controller 18a, and thus an image of the encoded settings and/or data. The image may be processed to decode the encoded settings and/or data. The decoded settings and/or data may then be uploaded to the connected HVAC controller 18b. In some cases, the remote device <NUM> may perform the image processing to decode the encoded settings and/or data. In other cases, the remote device <NUM> may simply transfer the captured image to another device, such as a server in the cloud <NUM>, which then performs the image processing. In some cases, the connected HVAC controller 18b may be connected to the server in the cloud <NUM>, and the server may upload the decoded settings and/or data to the connected HVAC controller 18b.

The remote device <NUM> may include memory (e.g., a computer readable medium) that includes program code for use and/or execution by the remote device <NUM>. In response to receiving a request, such as a request received via the user interface of the remote device <NUM>, the program code may initiate a camera operation of a camera of the remote device to capture the encoded information that is displayed on the user interface <NUM> of the non-connected HVAC controller 18a. A user may use the remote device <NUM> to capture a photo of the encoded information displayed on the user interface <NUM> of the non-connected HVAC controller 18a. In some cases, the program code may cause the remote device <NUM> to display a button <NUM> that may be selectable once the remote device <NUM> or a program running thereon is ready to capture the encoded information displayed on the non-connected HVAC controller 18a. Once the encoded information has been captured by the remote device <NUM>, a button <NUM> may become selectable on the remote device <NUM> to send or transmit the captured image to a user account on a server in the cloud <NUM>, where the user account may be associated with an owner of the non-connected HVAC controller <NUM>. Alternatively, the program code or other program code on the remote device <NUM> may processes the image or a portion of the image using, for example, optical character recognition (OCR) or other image processing techniques, to decode the coded information in the image. The remote device <NUM> may then send or transmit the captured image to the user account on a server in the cloud <NUM>, where the user account may be associated with an owner of the non-connected HVAC controller <NUM>.

A connected HVAC controller 18b, which has been associated with the server and the user account, may then receive the settings and/or data of the non-connected HVAC controller 18a automatically or in response to a selection via the user interface <NUM> of the connected HVAC controller 18b.

Alternatively or in addition to using a server in the cloud <NUM>, the remote device <NUM> may send the captured image and/or decoded information directly a contractor and/or a directly to a connected HVAC controller 18b. In some cases, if some image processing and decoding occurs in the cloud <NUM> (e.g., at a remote server <NUM>), the decoded information may be send to the remote device <NUM> for viewing by the user.

As noted above, the settings and/or data of an HVAC controller <NUM> (e.g. a non-connected HVAC controller 18a) are displayed in an encoded manner on the display <NUM>. According to the invention, the encoded settings and/or data are displayed using fixed segments of a fixed segment display, where at least some of the fixed segments on the display are activated/deactivated to encode the particular settings and/or data of the HVAC controller. In some cases, there may be more encoded information than can be displayed using the fixed segments on a single screen. When this occurs, the encoded information may be displayed on a series of screens, where the number of screens in the series of screens may be dependent on an amount of encoded information that is to be displayed. The remote device <NUM> may then take an image of each screen, resulting in a series of images that each include encoded information. In some cases, a marker screen may be presented between each screen that includes encoded settings and/or data. The marker screen may be a screen that is easily identifiable to the image processor, such as a checkerboard pattern, a large "X", a blank screen, or any other suitable pattern. In some cases, the remote device <NUM> may capture a video of the series of screens, and the video may be processed to decode the encoded information presented in the series of screens.

In examples not forming part of the present invention, the encoded information may be provided in one or more other ways. For example, the encoded information may be provided as encoded static and/or moving alphanumeric characters on the display <NUM>, encoded static and/or changing bar codes on the display <NUM>, encoded static and/or changing Quick Response (QR) codes on the display <NUM>, encoded static or changing pictures on the display <NUM>, encoded video on the display, encoded sound sequences (e.g., a pulsed sound or other sound sequence), encoded light sequences (e.g., a pulsed light or other light sequence via the display <NUM> and/or an LED or the like), and/or any other suitable encoded signal that can be perceived and captured by the remote device <NUM>.

Although a camera (e.g., a camera of a remote device <NUM>) is primarily discussed herein as being used to capture encoded information presented by an HVAC controller <NUM>, other devices may be used to capture the encoded information. For example, a video camera, a microphone, a bar code reader, a QR code reader, and/or any other suitable capture device may be used to capture encoded information provided by an HVAC controller.

<FIG> depict an example set of three screens displayed on a display <NUM> that encode settings of an HVAC controller <NUM>. In the example of <FIG>, three screens 116a-116c are used to display the encoded settings. In the examples of <FIG>, the screen number may be indicated by a screen number indicator <NUM>, where the fixed segments utilized for the screen number indicator <NUM> may not be representative of encoded data from the HVAC controller <NUM> other than to indicate what set of encoded data is currently being displayed on the display of the HVAC controller 18a. <FIG> depicts encoded data on a first encoded screen 116a of a series of three screens, as indicated by screen number indicator <NUM> showing "SET <NUM>". <FIG> depicts encoded data on a second screen 116b of the series of three screens as indicated by screen number indicator <NUM> showing "SET <NUM>". <FIG> depicts encoded data on a third screen 116c of the series of three screens as indicated by screen number indicator <NUM> showing "SET <NUM>".

A data encoding module of an HVAC controller <NUM> may encode information (e.g. settings and/or data) of the HVAC controller <NUM> (e.g. non-connected HVAC controller 18a) into a machine readable form. In some cases, to activate the data encoding module, a user may need to navigate through a menu structure of the HVAC controller to a data encoding activation screen. <FIG> depict an example flow for activating the data encoding module, but it is contemplated other buttons, screens, and/or flows for activating the data encoding module may be used.

In <FIG>, HVAC controller <NUM> may display a home screen <NUM> on the display <NUM>, which shows the time <NUM>, current temperature <NUM>, a fan status <NUM>, an HVAC system status <NUM>, a back button <NUM> represented by "-", a Mode button <NUM>, a Menu button <NUM>, a Fan button <NUM>, and a forward button <NUM> represented by "+". From the home screen <NUM>, a user may begin by selecting the Menu button <NUM> at the same time as the forward button <NUM> in order enter an installer setup screen <NUM> (see <FIG>). In some cases, requiring selection of two or more buttons simultaneously may help prevent a homeowner from inadvertently entering the installer setup screen.

An example installer setup screen <NUM> is depicted in <FIG>, which shows a menu item indicator <NUM> that, in this case depicts Installer Set Up (ISU), a back button <NUM>, a forward button <NUM>, a select button <NUM>, and a home button <NUM>. One may scroll to menu items other than "ISU" by selecting the forward button <NUM>. Once a desired menu item is displayed (e.g., the installer Set Up (ISU) in this case) at the menu item indicator <NUM>, the user may select the designed menu by selecting the forward button <NUM> simultaneously with the select button <NUM>, or in some cases, just the select button <NUM>.

An example ISU menu screen <NUM> is depicted in <FIG>, which shows an ISU option indicator <NUM>, a back button <NUM>, a forward button <NUM>, a select button <NUM>, and a home button <NUM>. One may scroll to ISU options other than "UPGD" by selecting the forward button <NUM>. Once a desired ISU option is display at the ISU option indicator <NUM>, a user may activate the selected IDS option by selecting the select button <NUM>. In <FIG>, the "UPGD" option corresponds to an "Upgrade" option for use in aiding the installer upgrade the non-connected HVAC controller 18a to another HVAC controller 18b.

In some cases, in response to selecting the UPGD option, the HVAC controller <NUM> may prompt a user to activate an application program code on a remote device <NUM> that may be used to capture encoded screens, but this is not required.

In any event, the HVAC controller <NUM> may then activate the data encoding module to encode information (e.g. settings and/or data) of the HVAC controller <NUM> (e.g. non-connected HVAC controller) into a machine readable form on the display <NUM>. An example first encoded information screen 116a is depicted in <FIG>, which depicts encoded information <NUM>, a screen number indicator <NUM>, a back button <NUM>, and a forward button <NUM>. As discussed above, the encoded information <NUM> may take the form of a pattern of activated/deactivated fixed segments on the display <NUM>. Once the first encoded information screen 116a is provided on the display <NUM>, a user may photograph it with a remote device <NUM>. In some cases, an application program code on the remote device <NUM> may cause a camera of the remote device <NUM> to take a photograph of the first encoded information screen 116a. Illustratively, the HVAC controller <NUM> may flash a light, flash certain characters, or provide any other trigger to provide an indication to the application program code of the remote device <NUM> that the encoded information is ready to be captured, but this is not required. In some cases, once the image of the encoded information has been captured by the remote device <NUM> and processed by the remote device <NUM> and/or remote server <NUM>, the application program code on the remote device <NUM> may prompt the user to advance to the next screen on the HVAC controller <NUM>, which may be a second encoded information screen 116b, by selecting the forward button <NUM>.

An example second encoded information screen 116b is depicted in <FIG>, which depicts encoded information <NUM>, a screen number indicator <NUM>, a back button <NUM>, and a forward button <NUM>. In the example shown, although "Home" and "Menu Unlock" are depicted adjacent buttons on the user interface <NUM>, these labels are used to indicate encoded information rather than the actual function of the adjacent button. Once the second encoded data screen 116b has been depicted on the display <NUM>, a user may photograph the screen encoded 116b with the remote device <NUM> in a manner similar to that described above with respect to the first encoded information screen 116a. In some cases, once the image of the encoded information has been captured by the remote device <NUM> and processed by the remote device <NUM> and/or remote server <NUM>, the application program code on the remote device <NUM> may prompt the user to advance to the next screen on the HVAC controller <NUM>, which may be a third encoded information screen 116c, by selecting the forward button <NUM>.

An example of a third encoded information screen 116c is depicted in <FIG>, which depicts encoded information <NUM>, a screen number indicator <NUM>, a back button <NUM>, and a forward button <NUM>. Although "Fan Cancel" is depicted adjacent a button on the user interface <NUM>, this label is used to indicate encoded information rather than the function of the adjacent button. Once the third encoded information screen 116c is depicted on the display <NUM>, a user may photograph the encoded screen 116c with the remote device <NUM> in a manner similar to that described above with respect to the first and second encoded information screens 116a-116b. In some cases, once the image of the encoded information has been captured by the remote device <NUM> and processed by the remote device <NUM> and/or remote server <NUM>, the application program code on the remote device <NUM> may prompt the user to advance to the next screen, if any, on the HVAC controller <NUM> by selecting the forward button <NUM>. Alternatively, if all of the encoded information screens have been displayed by the HVAC controller <NUM>, the application program code on the remote device <NUM> may prompt a user to exit the UPGD option by selecting the forward button <NUM> and a further button (e.g., a button adjacent the forward button as seen in <FIG>) simultaneously. Exiting the UPGD option may return the display <NUM> of the HVAC controller <NUM> to the home screen <NUM>, as shown in <FIG>, a menu screen, or other screen.

The information (e.g., settings and/or other data) of the HVAC controller <NUM> may be encoded through any suitable technique. The present invention, as referred to above, includes encoding data using fixed segments of a fixed segment display. <FIG> depicts an example flow diagram illustrating how information of an HVAC controller <NUM> may be encoded using fixed segments of a fixed segment display. As shown in <FIG>, information (e.g., settings and/or data <NUM>) of an HVAC controller <NUM> is converted to binary bits (<NUM> and <NUM>) of an information word <NUM>. The information word <NUM> may have predefined fields, wherein each field may correspond to a setting or data field to be communicated. Each field may have a sufficient number of bits to accommodate all valid values for the corresponding setting or data field. Each bit may then be assigned to a corresponding fixed segment on the fixed segment display. A value of "<NUM>" for that bit may be represented by the corresponding fixed segment being activated, while a value of "<NUM>" for that bit may be represented by the corresponding fixed segment being deactivated.

In some cases, the information word <NUM> may be split into one or more partitions <NUM>, such as a first partition 158a and a second partition 158b, as shown in <FIG>. Although two partitions are shown in <FIG>, one partition or more than two partitions may be utilized depending on an amount of information to be encoded. In the examples of <FIG> and <FIG>, one partition may be created for each screen 116a-116c. In one example, each partition may hold <NUM> bits, where <NUM> bits are available for encoded data and <NUM> bits may be used for error correction bits. However, this is not required and it is contemplated any number of bits may be utilized per partition and the number of bits may be allocated between encoded information bits and error correction bits, as desired. The error correction bits may be set in accordance with a cyclic redundancy check (CRC) or one or more other error correction techniques, as desired.

Once the bits have been partitioned, a set of error correction bits <NUM> may be appended to each partition <NUM>. In one example, a first set of error correction bits 160a may be associated with a first set of bits 156a, and a second set of error correction bits 160b may be associated with a second set of bits 156b. After the information from the HVAC controller <NUM> has been encoded into bits and in some cases partitioned, the partitions <NUM> (e.g., first partition 158a and second partition 158b) is converted to a corresponding set of fixed segments for display on encoded data screens 116a and 116b. In some case, and as noted above, if a bit has a value of <NUM>, the corresponding fixed segment on the fixed segment display may be activated, while if the bit has a value of <NUM>, the corresponding fixed segment on the fixed segment display may be deactivated.

Not all fixed segments on a fixed segment display may be utilized for displaying encoded information. For example, as discussed above, the display <NUM> may include a screen number indicator <NUM>. Additionally or alternatively, the display may include one or more alignment markers <NUM> that may or may not include at least a portion of the screen number indicator <NUM>. Alignment markers <NUM> may be used to help ensure a proper amount of the display <NUM> of the HVAC controller <NUM> is captured in an image by the remote device <NUM> and/or to ensure proper alignment of an image of the display <NUM> by the remote device <NUM> for decoding of the encoded information screen. In one example of alignment markers <NUM>, <FIG> depicts fixed segments (e.g., a warning symbol with an "!" inside a triangle, and forward and back arrows) used as alignment markers <NUM>. Other fixed segments may be used as alignment markers <NUM>, as desired.

<FIG> is a schematic diagram of an HVAC controller screen depicting encoded information. <FIG> is a schematic diagram of an HVAC controller screen depicting the same information encoded in <FIG> with a one bit change. In <FIG>, the highlighted fixed segment locations <NUM> may be used for error correction bits <NUM>, and the boxed fixed segment <NUM> may be used to indicate which fixed segment is displayed in response to an associated bit changing from a value of "<NUM>" in <FIG> to value of "<NUM>" in <FIG>.

Although other settings of an HVAC controller <NUM> may change and/or be modified, <FIG> may depict a change of operating the HVAC controller <NUM> in Fahrenheit, which has a bit value of "<NUM>", to operating the HVAC controller <NUM> in Celsius, which has a bit value of "<NUM>". This change is apparent from <FIG>, as there is an empty box <NUM> in <FIG> and the box <NUM> in <FIG> is shown to be activated. The fixed segments depicted in the highlighted fixed segment location <NUM> also change from the screen depicted in <FIG> to the screen depicted in <FIG>. This is because the fixed segments in the highlighted fixed segment location <NUM> represent error correction bits, which were updated when the one bit Fahrenheit versus Celsius change occurred.

Once encoded information is displayed on the display and captured by the remote device <NUM>, the encoded information may be extracted and decoded by the remote device <NUM> and/or a server in the cloud or the like. In some cases, encoded information may be captured in an image, the image may be processed to extract and decode the encoded information. In one example of processing an image, an Optical Character Recognition (OCR) program may be utilized to convert the image(s) to characters that can be recognized and/or analyzed by a computer (e.g., a computer readable data set). Once the image has been processed into a machine readable format through the OCR program or other tool, the image may be analyzed to detect and decode the encoded data.

<FIG> depicts another example decoding process. In this example, a captured first encoded screen 116a may be segmented to identify where fixed segments are located. In <FIG>, for simplicity purposes, only a portion of the fixed segment locations have been segmented showing seven blocks representative of the days of the week. In this example, where a day of the week is present, a bit associated with that box may be considered to have a value of "<NUM>" and where a day of the week is not present, a bit associated with that box may be considered to have a value of "<NUM>". As a result, the fixed segments of the seven boxes depicted in <FIG> have an associated bit sequence of "<NUM>". These bits are then converted into HVAC controller information (e.g., settings), and in some cases may be saved in a user account in the cloud <NUM>, sent to an Internet connected HVAC controller <NUM>, and/or stored at the remote device <NUM>. Although decoding only seven fixed segment locations in the first encoded data screen 116a is shown in <FIG>, other fixed segment locations may be decoded in a similar manner to determine further encoded HVAC controller information.

<FIG> is a flow diagram of an illustrative decoding process, which on a general level may include the steps depicted in <FIG>, among others, but in reverse order. For example, the captured encoded information screens (e.g., first encoded data screen 116a and second encoded data screen 116b) may be analyzed with a processing program to place the screens in a machine readable format. Once the processing of the encoded information screens has occurred, the fixed segment locations on the respective encoded information screens may be converted to bit values and organized according to partitions <NUM> (e.g., a first partition 158a and a second partition 158b). Once it is confirmed that the error correction bits are converted as expected, the first partition 158a and the second partition 158b may be combined to form the information word <NUM> associated with information of the HVAC controller. The information word <NUM> may then be decoded into settings and/or data <NUM> (e.g., HVAC controller settings) and stored for later use and/or sent for analysis.

As discussed, any desired technique may be utilized to decode the encoded data from an image of a screen depicting the encoded information. <FIG> and <FIG> depict a schematic flow diagram of an illustrative decoding method <NUM>. At step <NUM>, inputs may be received, where the inputs may be one or more images of one or more screens (e.g., encoded data screens 116a, 116b, 116c). At step <NUM>, an application program stored on the remote device <NUM> or at a remote server <NUM> may detect and/or filter lines and cluster and/or average lines identified in an image. For example, if a plurality of lines adjacent one another and running the same direction are identified, the application program code may combine and/or average those lines into a single line. At step <NUM>, the application program code may identify a left (L), a right (R), a top, (T), and a bottom (B) line for defining the screen (e.g., one of encoded screens 116a, 116b, 116c) in the captured image. Then, at step <NUM> a decision may be made as to whether too many, too few, or the right number of lines have been identified in the image. If too few or too many lines have been identified, the application program code may return to step <NUM> to detect and average lines again. If the application program retries to identify lines more than a pre-set number of times, the application program code may request a user to re-take a photograph of the screen of the HVAC controller <NUM>. If the correct number of lines (e.g., a number of lines within a range of a number of lines or an exact number of lines) have been identified, the application program may proceed to step <NUM>.

At step <NUM>, the application program code may form rectangles from the identified lines, where the rectangles are used to identify the screen. The formed rectangles may be formed according to parameters (e.g., a minimum size, etc.). The rectangles may be identified at step <NUM> and sorted at step <NUM> according to an aspect ratio of an expected image of a screen. At step <NUM> the sorted rectangles may be identified and at step <NUM> the rectangles may be further sorted according to detection of alignment markers <NUM> and a best rectangle defining the capture screen image may be identified at step <NUM>.

Turning to <FIG>, which is a continuation of the flow diagram of <FIG>, at step <NUM> a screen as defined by the identified best rectangle may be cropped and converted to grayscale to provide the screen in a standard shape and/or format at step <NUM>. At step <NUM>, fixed segments may be classified as being on or off by comparing and/or matching the standardized screen image to a template.

<FIG> depicts an illustrative example of template matching. For each fixed segment location (e.g., as identified by box <NUM> in <FIG> for the fixed segment HEAT) template matching either expects to identify the fixed segment is displayed or is not displayed. To ensure a fixed segment is properly identified as being displayed or not, the template matching system may determine multiple times whether the fixed segment is present in the fixed segment location. For example, on a first try, the template matching may determine if the fixed segment is present by looking at the entire box <NUM> as one, then it may determine if the fixed segment is present by looking at each half of the box <NUM>, then it may determine if the fixed segment is present by looking at each third of the box <NUM>, and then it may determine if the fixed segment is present by look at each fourth of the box <NUM>. Although four iterations are described, more or fewer iterations may be utilized. Once the iterations have been completed, the template matching may combine its findings and determine whether it can indicate a fixed segment is displayed or is not displayed.

Returning to <FIG> at step <NUM>, the application program code may determine whether the template matching was unsure about whether a fixed segment was on or off in the image. If it is determined the template matching was unsure about whether a fixed segment was on or off, uncertain fixed segments or fixed segment locations may be analyzed with an edge classifier at step <NUM>. In some cases, an edge classifier may utilize a Sobel filter and/or Otsu thresholding, but this is not required and other techniques may be used.

Illustrative photographs that have had an illustrative edge classifier applied thereto are depicted in <FIG>. When an edge classifier has been applied to a photographed screen, the edge classifier may determine a fixed segment is displayed if many edges are found at a fixed segment location and may determine a fixed segment is not displayed if only a few edges or no edges are found at a fixed segment location. As seen in <FIG>, the edge identifier may indicate the fixed segment at the fixed segment location of box 172a is displayed and may indicate the fixed segment at the fixed segment location of box 172b is not displayed. Although it is not required, edge classifying may be used as a secondary classifier relative to a primary classifier of template matching.

Returning to <FIG>, once the segments have been classified with an edge classifier to determine if fixed segments are on or off, the application program code proceeds to step <NUM> and identifies all fixed segments as either being on or off. Similarly, if the template matching is sure it has identified all of the fixed segments in the image as being on or off, the application program proceeds to step <NUM> and identifies all fixed segments as either being on or off.

Once the fixed segments of a screen have been identified as being on or off in step <NUM>, the application program may compute the bits used for error detection and determine at step <NUM> if the bits for error detection match an expected sequence. If an error is detected at step <NUM>, the application program code may ask a user to re-take the photo at step <NUM>. If no error is detected (e.g., the error detection bits match the expected bit sequence), the encoded data bits from the screen may be identified at step <NUM> and this may occur on the remote device <NUM> or at the remote server. Once the encoded data bits from the screen have been identified, the application program code at step <NUM> may determine whether the screen is the last in a sequence of screens (e.g., screens 116a-116c or other sequence of screens). The application program code may make this determination automatically or it may prompt a user for an indication. If there is one or more subsequent screens to capture, the application program code at step <NUM> may ask a user to capture a next screen with the remote wireless device <NUM> and repeat the previous steps of method <NUM>.

Once the encoded data bits from the last screen have been obtained, all of the bits may be decoded from binary code (e.g., <NUM> and <NUM>) to HVAC controller data values (e.g., ISU settings) at step <NUM>. Alternatively, encoded data bits may be decoded from binary to HVAC controller data values directly after receiving the encoded data bits from a screen without waiting for the encoded data bits from all screens associated with an HVAC device <NUM>. Although it is not depicted in the flows of <FIG> and <FIG>, the application program code may perform a check of key settings of the HVAC controller <NUM> to determine if the encoding and decoding process was successful and to help ensure the obtained data values are accurate and complete. Then, the HVAC controller data values may be outputted at step <NUM> to a further HVAC controller <NUM> (e.g., an internet connected device), to a contractor, to a user account associated with the HVAC controller <NUM> from which the screens were obtained, and/or to one or more other location. In some cases, the decoded HVAC controller data values may be outputted from the remote device <NUM> via text message, email, social media message/post, and/or other communication.

Claim 1:
A method of exporting settings of a non-network connected Heating, Ventilation, and/or Air Conditioning HVAC controller, the method comprising:
assembling and displaying an output via a user interface of the HVAC controller, the output comprising a first output being displayed on a first encoded information screen (116a) in a binary information word and a second output being displayed on a second encoded information screen (116b) in the binary information word, wherein each of the first output and second output providing two or more of the settings of the HVAC controller encoded in the binary information word, wherein the user interface comprises a fixed segment display, the fixed segment display comprising a plurality of fixed segments at least some of which define a line on the display, the plurality of fixed segments configured to be selectively activated to define the screens for interacting with the user of the HVAC controller, and
wherein the binary information word has a plurality of fields, wherein each field of the plurality of fields corresponds to a particular setting of the two or more settings, and wherein each bit of the information word is represented by an activated or deactivated segment of the fixed segment display;
capturing a first image of the first output displayed by the HVAC controller and capturing a second image of the second output displayed by the HVAC controller;
processing the captured first image and the captured second image to decode the settings of the HVAC controller to produce the settings encoded in the output; and
combining information in the first image of the first output with information in the second image of the second output during the processing of the images to decode the settings of the HVAC controller.