# Patent

## Title
System recovery in a heating, ventilation and air conditioning network

## Abstract

The disclosure provides various embodiments of systems and methods of generating a heartbeat in an HVAC system and networks. In an embodiment, a method includes a heartbeat message being sent by a first subnet controller upon the first subnet controller taking active control of a subnet of the HVAC network. The active heartbeat message timer is reset. Another heartbeat message is sent if a specified amount of time has elapsed since a previous heartbeat message was sent by said heartbeat generator.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application Ser. No. 61/167,135, filed by Grohman, et al., on Apr. 6, 2009, entitled “Comprehensive HVAC Control System”, and is a continuation-in-part application of application Ser. No. 12/258,659, filed by Grohman on Oct. 27, 2008, entitled “Apparatus and Method for Controlling an Environmental Conditioning Unit,” both of which are commonly assigned with this application and incorporated herein by reference. This application is also related to the following U.S. patent applications, which are filed on even date herewith, commonly assigned with this application and incorporated herein by reference:












Ser. No.
Inventors
Title







12/603,464
Grohman,
“Alarm and Diagnostics System and Method



et al.
for a Distributed-Architecture Heating,




Ventilation and Air Conditioning




Network”


12/603,534
Wallaert,
“Flush Wall Mount Control Unit and In-



et al.
Set Mounting Plate for a Heating,




Ventilation and Air Conditioning System”


12/603,449
Thorson,
“System and Method of Use for a User



et al.
Interface Dashboard of a Heating,




Ventilation and Air Conditioning




Network”


12/603,382
Grohman
“Device Abstraction System and Method




for a Distributed-Architecture Heating,




Ventilation and Air Conditioning




Network”


12/603,526
Grohman,
“Communication Protocol System and



et al.
Method for a Distributed-Architecture




Heating, Ventilation and Air




Conditioning Network”


12/603,527
Hadzidedic
“Memory Recovery Scheme and Data




Structure in a Heating, Ventilation and




Air Conditioning Network”


12/603,473
Grohman,
“System and Method for Zoning a



et al.
Distributed-Architecture Heating,




Ventilation and Air Conditioning




Network”


12/603,525
Grohman,
“Method of Controlling Equipment in a



et al.
Heating, Ventilation and Air




Conditioning Network”


12/603,512
Grohman,
“Programming and Configuration in a



et al.
Heating, Ventilation and Air




Conditioning Network”


12/603,431
Mirza,
“General Control Techniques in a



et al.
Heating, Ventilation and Air




Conditioning Network”











TECHNICAL FIELD
This application is directed, in general, to distributed-architecture heating, ventilation and air conditioning (HVAC) networks and, more specifically, to system recovery in HVAC networks.
BACKGROUND
Climate control systems, also referred to as HVAC systems (the two terms will be used herein interchangeably), are employed to regulate the temperature, humidity and air quality of premises, such as a residence, office, store, warehouse, vehicle, trailer, or commercial or entertainment venue. The most basic climate control systems either move air (typically by means of an air handler or, or more colloquially, a fan or blower), heat air (typically by means of a furnace) or cool air (typically by means of a compressor-driven refrigerant loop). A thermostat is typically included in the climate control systems to provide some level of automatic temperature control. In its simplest form, a thermostat turns the climate control system on or off as a function of a detected temperature. In a more complex form, a thermostat may take other factors, such as humidity or time, into consideration. Still, however, the operation of a thermostat remains turning the climate control system on or off in an attempt to maintain the temperature of the premises as close as possible to a desired setpoint temperature. Climate control systems as described above have been in wide use since the middle of the twentieth century.
SUMMARY
A first aspect provides a method of generating a heartbeat message in an HVAC network. In an embodiment, the method includes sending a heartbeat message by a first subnet controller upon the first subnet controller taking active control of a subnet of the HVAC network. An active heartbeat message timer is reset. Another heartbeat message is sent if the first subnet controller has detected a subnet controller message from a second subnet controller on the subnet. Another heartbeat message is still also sent if a specified amount of time has elapsed since a previous heartbeat message has been generated by the first subnet controller.
A second aspect provides a first subnet controller. In an embodiment, the first subnet controller generates a heartbeat message in an HVAC system. The first subnet controller includes a heartbeat message timer. The first subnet controller also includes a heartbeat generator that: a) generates a heartbeat message by the first subnet controller upon the first subnet controller taking active control of a subnet of the HVAC network. The heartbeat generator further: b) sends another heartbeat message if the first subnet controller has detected a subnet controller message on its subnet from a second subnet controller. The heartbeat generator still further: c) sends another heartbeat message if the first subnet controller has detected a device start-up message on its subnet. The heartbeat generator still yet further: d) sends another heartbeat message if a specified amount of time has elapsed since a previous heartbeat message has been generated by the heartbeat generator.
Still another aspect provides a method of detecting a heartbeat message in an HVAC network. In an embodiment, the method includes determining if a first subnet controller on a subnet of a HVAC has provided a heartbeat message within a first specified time frame. If the first subnet controller has provided the heartbeat message, a second, inactive controller on the subnet stays in an inactive state. If the first subnet controller has not provided the heartbeat message, the second, inactive controller starts an arbitration process with other inactive controllers on the subnet that leads to its transition into an active state for the subnet.



BRIEF DESCRIPTION
Reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a high-level block diagram of an HVAC system within which a device abstraction system and method may be contained or carried out;
FIG. 2 is a high-level block diagram of one embodiment of an HVAC data processing and communication network 200;
FIG. 3A is a diagram of a series of steps in an event sequence that depicts a device commissioning in an HVAC network having an active subnet controller;
FIG. 3B is a diagram of a series of steps that occur in relation to a commissioning of a subnet including an addressable unit;
FIG. 3C is a diagram of the above series of steps of FIG. 3B to be followed by a subnet controller to synchronize with a device of the HVAC system;
FIG. 3D illustrates an exemplary flow diagram of a method that allows a user to modify a parameter that is conveyed from a device coupled to a subnet to a subnet controller;
FIG. 3E illustrates a high-level diagram of an embodiment for storing parameters and for generating a heartbeat in a subnet of an HVAC system;
FIG. 4A illustrates an exemplary flow diagram of a method for generating an active heartbeat message by an active subnet controller of an HVAC network;
FIG. 4B illustrates an exemplary flow diagram of a method for monitoring for a presence or an absence of an active heartbeat message by an inactive subnet controller in an HVAC network;
FIG. 4C illustrates an exemplary flow diagram of a method for monitoring for a presence or an absence of an active heartbeat message by a device coupled to a subnet of an HVAC network;
FIG. 4D illustrates one embodiment of a high-level block diagram of an active subnet controller coupled to an inactive subnet controller and devices in an HVAC network;
FIG. 4E illustrates an exemplary state machine of a startup to activate a subnet controller of a subnet of an HVAC network;
FIG. 5A illustrates an exemplary flow diagram of a method of a request for information by an active subnet controller upon a determination of a memory error in an HVAC network;
FIG. 5B illustrates an exemplary flow diagram of a method of a request by an active subnet controller for information from a coupled network device after a memory failure;
FIG. 6A illustrates an exemplary flow method of a replacement part configuration in a communicating HVAC network;
FIG. 6B illustrates an exemplary flow of active subnet controller behavior for identifying a replacement device and also for commissioning the replacement unit;
FIG. 7A illustrates an exemplary flow of a configuration of a field device that employs field pins in an HVAC network; and
FIG. 7B illustrates a high-level block diagram of an exemplary device for use in an HVAC system that employs field pins.



DETAILED DESCRIPTION
As stated above, conventional climate control systems have been in wide use since the middle of the twentieth century and have, to date, generally provided adequate temperature management. However, it has been realized that more sophisticated control and data acquisition and processing techniques may be developed and employed to improve the installation, operation and maintenance of climate control systems.
Described herein are various embodiments of an improved climate control, or HVAC, system in which at least multiple components thereof communicate with one another via a data bus. The communication allows identity, capability, status and operational data to be shared among the components. In some embodiments, the communication also allows commands to be given. As a result, the climate control system may be more flexible in terms of the number of different premises in which it may be installed, may be easier for an installer to install and configure, may be easier for a user to operate, may provide superior temperature and/or relative humidity (RH) control, may be more energy efficient, may be easier to diagnose and perhaps able to repair itself, may require fewer, simpler repairs and may have a longer service life.
FIG. 1 is a high-level block diagram of an HVAC system, generally designated 100. The HVAC system may be referred to herein simply as “system 100” for brevity. In one embodiment, the system 100 is configured to provide ventilation and therefore includes one or more air handlers 110. In an alternative embodiment, the ventilation includes one or more dampers 115 to control air flow through air ducts (not shown.) Such control may be used in various embodiments in which the system 100 is a zoned system. In the context of a zoned system 100, the one or more dampers 115 may be referred to as zone controllers 115. In an alternative embodiment, the system 100 is configured to provide heating and therefore includes one or more furnaces 120, typically associated with the one or more air handlers 110. In an alternative embodiment, the system 100 is configured to provide cooling and therefore includes one or more refrigerant evaporator coils 130, typically associated with the one or more air handlers 110. Such embodiment of the system 100 also includes one or more compressors 140 and associated condenser coils 142, which are typically associated in one or more so-called “outdoor units” 144. The one or more compressors 140 and associated condenser coils 142 are typically connected to an associated evaporator coil 130 by a refrigerant line 146. In an alternative embodiment, the system 100 is configured to provide ventilation, heating and cooling, in which case the one or more air handlers 110, furnaces 120 and evaporator coils 130 are associated with one or more “indoor units” 148, e.g., basement or attic units.
For convenience in the following discussion, a demand unit 155 is representative of the various units exemplified by the air handler 110, furnace 120, and compressor 140, and more generally includes an HVAC component that provides a service in response to control by the control unit 150. The service may be, e.g., heating, cooling, or air circulation. The demand unit 155 may provide more than one service, and if so, one service may be a primary service, and another service may be an ancillary service. For example, for a cooling unit that also circulates air, the primary service may be cooling, and the ancillary service may be air circulation (e.g. by a blower).
The demand unit 155 may have a maximum service capacity associated therewith. For example, the furnace 120 may have a maximum heat output (often expressed in terms of British Thermal Units, or BTU), or a blower may have a maximum airflow capacity (often expressed in terms of cubic feet per minute, or CFM). In some cases, the addressable unit 155 may be configured to provide a primary or ancillary service in staged portions. For example, blower may have two or more motor speeds, with a CFM value associated with each motor speed.
One or more control units 150 control one or more of the one or more air handlers 110, the one or more furnaces 120 and/or the one or more compressors 140 to regulate the temperature of the premises, at least approximately. In various embodiments to be described, the one or more displays 170 provide additional functions such as operational, diagnostic and status message display and an attractive, visual interface that allows an installer, user or repairman to perform actions with respect to the system 100 more intuitively. Herein, the term “operator” will be used to refer collectively to any of the installer, the user and the repairman unless clarity is served by greater specificity.
One or more separate comfort sensors 160 may be associated with the one or more control units 150 and may also optionally be associated with one or more displays 170. The one or more comfort sensors 160 provide environmental data, e.g. temperature and/or humidity, to the one or more control units 150. An individual comfort sensor 160 may be physically located within a same enclosure or housing as the control unit 150. In such cases, the commonly housed comfort sensor 160 may be addressed independently. However, the one or more comfort sensors 160 may be located separately and physically remote from the one or more control units 150. Also, an individual control unit 150 may be physically located within a same enclosure or housing as a display 170. In such embodiments, the commonly housed control unit 150 and display 170 may each be addressed independently. However, one or more of the displays 170 may be located within the system 100 separately from and/or physically remote to the control units 150. The one or more displays 170 may include a screen such as a liquid crystal display (not shown).
Although not shown in FIG. 1, the HVAC system 100 may include one or more heat pumps in lieu of or in addition to the one or more furnaces 120, and one or more compressors 140. One or more humidifiers or dehumidifiers may be employed to increase or decrease humidity. One or more dampers may be used to modulate air flow through ducts (not shown). Air cleaners and lights may be used to reduce air pollution. Air quality sensors may be used to determine overall air quality.
Finally, a data bus 180, which in the illustrated embodiment is a serial bus, couples the one or more air handlers 110, the one or more furnaces 120, the one or more evaporator coils 130, the one or more condenser coils 142 and compressors 140, the one or more control units 150, the one or more remote comfort sensors 160 and the one or more displays 170 such that data may be communicated therebetween or thereamong. As will be understood, the data bus 180 may be advantageously employed to convey one or more alarm messages or one or more diagnostic messages.
FIG. 2 is a high-level block diagram of one embodiment of an HVAC data processing and communication network 200 that may be employed in the HVAC system 100 of FIG. 1. One or more air handler controllers (“AHCs”) 210 may be associated with the one or more air handlers 110 of FIG. 1. One or more integrated furnace controllers (“IFCs”) 220 may be associated with the one or more furnaces 120. One or more damper controller modules 215, also referred to as a zone controller module 215, may be associated with the one or more dampers 114 the interface the one or more dampers to the data bus 180. One or more AC controllers 225 may be associated with one or more evaporator coils 130 and one or more condenser coils 142 and compressors 140 of FIG. 1. The network 200 includes an active subnet controller (“aSC”) 230a and an inactive subnet controller (“iSC”) 230i. The aSC 230a is responsible for configuring and monitoring the system 100 and for implementation of heating, cooling, air quality, ventilation or any other functional algorithms therein. Two or more aSCs 230a may also be employed to divide the network 200 into subnetworks, or subnets, simplifying network configuration, communication and control. The iSC 230i is a subnet controller that does not actively control the network 200. In some embodiments, the iSC 230i listens to all messages passed over the data bus 180, and updates its internal memory to match that of the aSC 230a. In this manner, the iSC 230i may backup parameters stored by the aSC 230a, and may be used as an active subnet controller if the aSC 230a malfunctions. Typically there is only one aSC 230a in a subnet, but there may be multiple iSCs therein, or no iSC at all. Herein, where the distinction between an active or a passive SC is not germane the subnet controller is referred to generally as an SC 230.
A user interface (UI) 240 provides a means by which an operator may communicate with the remainder of the network 200. In an alternative embodiment, a user interface/gateway (UI/G) 250 provides a means by which a remote operator or remote equipment may communicate with the remainder of the network 200. Such a remote operator or equipment is referred to generally as a remote entity. A comfort sensor interface 260 may provide an interface between the data bus 180 and each of the one or more comfort sensors 160.
Each of the components 210, 220, 225, 230a, 230i, 240, 250, 260 may include a general interface device configured to interface to the bus 180, as described below. (For ease of description any of the networked components, e.g., the components 210, 220, 225, 230a, 230i, 240, 250, 260, may be referred to generally herein as a device 290. In other words, the device 290 of FIG. 2 is a proxy for any of a furnace, a heat pump, a subnet controller, etc, and that device's associated interface means.) The data bus 180 in some embodiments is implemented using the Bosch CAN (Controller Area Network) specification, revision 2, and may be synonymously referred to herein as a residential serial bus (RSBus) 180. The data bus 180 provides communication between or among the aforementioned elements of the network 200. It should be understood that the use of the term “residential” is nonlimiting; the network 200 may be employed in any premises whatsoever, fixed or mobile. In wireless embodiments, the data bus 180 may be implemented, e.g., using BluetoothTM or a similar wireless standard.
Turning now to FIG. 3A, illustrated is a diagram 300 of a series of steps that occur in relation to a commissioning of the unit 155. The diagram 300 includes an enter state 301, a device commissioning state 303, and an exit state 305. The HVAC system 100 can be described as being partitioned into a plurality of subnets, each subnet controlled by its own active subnet controller 230a. 
Device commissioning can generally be defined as setting operational parameters for a device in the network of the HVAC system, including its installation parameters. Generally, device commissioning 300 is used by the subnet controller 230 when it is active to: a) set operating “Installer Parameters” for a networked device, such as air handlers 110, (henceforth to be referred to collectively, for the sake of convenience, as the unit 155, although other devices are also contemplated), b) to load UI/Gs 240, 250 with names and settings of “Installer Parameters and Features” of the units 155, c) to configure replacement parts for the units 155, and d) to restore values of “Installer Parameters and Features” in units 155 if those “Parameters and Features” were lost due to memory corruption or any other event. Device commissioning is a process used in the HVAC system 100, either in a “configuration” mode or in a “verification” mode.
In the “configuration” mode, the unit 155 shares its information with the subnet controller 230a in an anticipation of being employable in the HVAC system 100, and an appropriate subnet. Generally, the commissioning process 300 provides a convenient way to change or restore functional parameters, both for the subnet controller 230a and the unit 155.
In both the “verification” mode and the “configuration” mode, the unit 155 is checked for memory errors or other configuration or programming errors. There are differences in device 260 behavior between the “configuration” mode and in the “verification” mode, to be detailed below.
The “subnet startup” mode programs the subnet controller 230 to be active. The “subnet startup” mode enables subnet communications, (i.e., communication within a subnet), and also deactivates a “link” sub-mode. A “link” mode may be generally defined as a mode that allows a number of subnets to work together on the same HVAC network 100, and that assigns subnet numbers for each subnet to allow this communication.
The “installer test” mode is employed when an installer installs and tests aspects and units 155 of the HVAC system 100. The “normal operations” mode is an ongoing operation of the units 155 of the HVAC system 100 in a normal use.
More specifically, the device commissioning state machine 300 can be employed with: a) the “configuration” mode, which is invoked when transitioning to the commissioning state from the “subnet startup mode” or “installer test” mode, or the “normal mode”, or b) a “verification” mode. The “verification” mode is invoked when transitioning to the commissioning state from the “subnet startup” mode.
The following describes an illustrative embodiment of a process of commissioning 300 the HVAC unit 155, first for a “configuration” mode, and then for a “verification” mode. The process of commissioning differs from a “subnet startup,” in that commissioning requires that the network configuration, including configuration and activation of subnet controllers 230, has already been completed before the commissioning 300 of the device 260 can start. Please note that there can be more than one subnet controller 230 on a subnet, but only subnet controller 230a is active at any one time.
In one embodiment, in order to enter into the state 320 of the process 300 in the “configuration” mode, the unit 155 receives either: a) an “aSC” (‘active subnet controller’) Device Assignment message”, having “Assigned State” bits set to “Commissioning”; or b) a receipt of an “aSC Change State” message, with “New aSC State” bits set to “Commissioning,” from the active subnet controller 230. For both “configuration” and “verification” modes, an “aSC Device Assignment” message can be generally regarded as a message that assigns the unit 155 to a particular active subnet controller 230a. For both “configuration” and “verification” modes, an “aSC Change State” message can be generally regarded as a message that starts and ends employment of the commissioning state diagram 300 for the units 155 and all other devices on the subnet.
In the state 320 in the configuration mode, all units 155 respond to the “aSC Device Assignment” message with their respective “Device Status” messages, indicating that the units 155 are now in commissioning process 300 due to their response to this previous message. For both “configuration” and “verification” modes, the “Device Status” message can be generally defined as message that informs the active subnet controller 230a of what actions are being taken by the unit 155 at a given time.
However, alternatively, in other embodiments, in the state 320 in the “configuration” mode, if the units 155 are instead busy, as indicated by “aSC Acknowledge” bits of the “Device Status” message sent to the subnet controller 230a set as a “Control Busy,” the active subnet controller 230a will wait for the busy units 155 to clear their “aSC Acknowledge” bits before proceeding with further elements of the Commissioning 320 process. The units 155 then resend their “Device Status” messages as soon as they are no longer busy.
From this point on, all units 155 send their “Device Status” messages periodically and on any status change, both during and after the commissioning 300. If the unit 155 does not clear its “aSC Acknowledge” bits within a minute (indicating its control is no longer “busy”), the active subnet controller 230a sends an “Unresponsive Device2” alarm for each such unit 155. If in “configuration” mode, the active subnet controller 230a remains in the waiting mode indefinitely, until the unit 155 responds correctly, or the subnet is reset manually or after a timeout is reached. In “verification” mode the active subnet controller 230a proceeds further to exit the state.
In the “configuration” mode, each unit 155 remembers all of its optional sensors that are currently attached to it. Furthermore, each unit 155 may store a local copy in its non-volatile memory (“NVM”) of all of any other unit features that it is dependent on. A unit 155 feature can be generally defined as any datum that is fixed and cannot be changed by the installer, serviceman or the home owner. Changing of a “Feature” value normally involves reprogramming of the units 155 firmware.
In at least some embodiments, a feature is something that is fixed value, that is hard-wired into a device. In other words, no installer or home owner can change it. Features are programmed into the unit 155 during a manufacturing or an assembly process. Features can be recovered in a home, during a Data non-volatile memory (“NVM”) recovery substate of Commissioning state only—the recovery substate happens automatically and without installer or user intervention. In a further embodiment, parameters can be changed by the installers only. In a yet further embodiment, the HVAC system 100 employs “variables”—those can be changed by the installers and also the home owners.
In some embodiments, a “Parameter List” is normally a Feature that contains a special list of specific parameters included in the unit 155. Parameter values can be changed, and their state can be changed also (from enabled to disabled and vice-versa), but their presence is set once and for all in a given firmware version. Therefore, a list of Parameters (not their values) is also fixed, and is thus treated as a “Feature.”
However, although elements of the “configuration” mode commissioning and “verification” mode commissioning are similar, when the active subnet controller 230 is in “verification” mode instead of in “configuration” mode, the active subnet controller 230a can exit commissioning 300 regardless of the value of the alarms of the units 155. However, alternatively, if the active subnet controller 230a is in “configuration” mode, the active subnet controller 230a will not exit from its commissioning state 300 for as long as at least one unit's 155 “aSC Acknowledge” flags are set to “Control Busy.” In one embodiment of the “verification” mode, the active subnet controller 230a timeouts the installation and resets the subnet to default parameters.
In the “verification” mode, assuming the unit 155 operates with a non-corrupted (original or restored copy) NVM, each unit 155 checks any of its attached sensors to see if they match with the parameters that were present in a most recent configuration of the unit 155. In some embodiments, alarms are generated by the unit 155 for missing or malfunctioning sensors as soon as the faulty condition is detected, to be employed by the user interfaces and gateways present on the subnet to notify the installer or homeowner of the encountered problem. The unexpected absence of certain sensors may inhibit the operation of the unit 155 or the subnet. This is normally manifested by the signaling of the appropriate Service Bits in the Device Status message used by the active subnet controller 230a, to determine the operational viability or health of the subnet's systems.
In some embodiments, the device commissioning process 300 then transitions into a state 330, and then ends, upon either: a) the last unit 155 receiving all of unit 155 parameters that it is dependent on, when in “verification” mode; or b) upon a request by a user, when in “configuration” mode. The active subnet controller 230a then proceeds to ensure that no subnet unit 155 has its “aSC Acknowledge” flag set to a “Control Busy” state. The “aSC Acknowledge” flag not being set indicates that all of a non-volatile memory of a given unit 155 had been written to with the necessary parameters. If no “Control Busy” state is detected, the active subnet controller 230a then issues the “aSC Change State” message, which forces the unit 155 from a commissioning state to a non-commissioning state, in either a “configuration” or a “verification” mode. Then, after a period of time, for example for up to one minute, the active subnet controller 230 may begin with other functionality, continuing to send out an active system heartbeat, to be described below.
In some embodiments, when the unit 155 in the process 300 fails its NVM data integrity check in an “NVM Check State,” and the active subnet controller is unable to perform NVM Recovery, the unit 155 instead employs its default data stored in its non-volatile (Flash) memory and/or uses default calculations to initialize the data dependent on other devices in the system. The other device data to be used for commissioning could have been obtained in either the “verification” or “configuration” mode. For data or other parameters that were not transferred or generated as part of that commissioning 300 session, default values are used.
In one embodiment, upon a detection of a system configuration error, such as a missing device whose features or parameters the unit 155 depends upon, it uses the locally stored copy of the other device's features that it depends upon, and ignores any potential feature value conflicts. In another embodiment, the unit 155 uses the locally stored copy of other parameters of the unit 155 that it depends on and ignores any potential dependent parameter value conflicts. In other words, the unit 155 employs a first installed parameter as a template for a second installed parameter on a second device. In a third embodiment, the unit 155 will change its parameter or feature values only if explicitly instructed by the active subnet controller 230 or the UI/G 240, 250.
Turning now to FIG. 3B, illustrated is an HVAC device state machine 310 illustrated for a subnet, including the unit 155, in more detail. Solid lines indicate normal state transitions when the subnet is transitioning from one state to another state, green lines indicate a subroutine call and red lines, alternating dotted and dashed lines indicate unexpected yet valid transitions. All states other than state 326 represent device states, and the state 326 represents a message handling routine.
As is illustrated in the present embodiment, a reset state 312 of a subnet advances to a NVM CRC check 316 for a given device (such as unit 155). If the device fails the test, the device advances to a NVM programming 318. If the device passes, however, then in subnet startup 320, the device is assigned an address (Equipment Type number) and some features and parameters of the unit 155 may be shared with the subnet. Then, in substate 324, device commissioning as described in FIG. 3A occurs. This then leads to an installer test state 328. This, in turn, then leads to a link mode startup 330, as described above. Finally, then in a step 334, normal system operation occurs, although system can reset to state 312 or be brought to states 314 or 332 via diagnostic messages handled in a state 326.
In a further embodiment, during the NVM CRC check 316, the state machine 310 can advance to a NVM programming state 318. This can occur due to such factors as a failure of a non-volatile memory, or an initial programming of the NVM. In a yet further embodiment, each of these units 155 is programmed to deal with one form of a diagnostic message regarding system errors in a state 326, and from there to testing the device 160 itself in an OEM test mode 332.
Turning now to FIG. 3C, illustrated is a state flow diagram 340 for the active subnet controller 230 in relation to the unit 155. Generally, is the responsibility of the active subnet controller 230a to implement proper state transitions. The other units 155 follow the explicit direction of the aSC 230a for all valid transactions. These state diagrams are included to help ensure that a state of the unit 155 is the same as the subnet controller. The SC 230a is responsible for device synchronization. If the unit 155 is detected out of synch with the rest of the system, the aSC 230a, in some embodiments, immediately tries to bring the unit 155 to the current system state, if possible.
If an addressable unit 155 is detected in subnet startup 342, the subnet controller 230a applies asynchronous startup rules, which generally pertain to how many parameters are to be passed between device 290 of the addressable unit 155 and the active subnet controller 230a. 
If an addressable unit 155 is detected in commissioning 345, installer test 346, link mode 347 or normal operation 348 substates, the unit 155, in some embodiments, is brought to the current state via a resend of an “aSC Change State” message, which involves transitioning from a first current aSC state to a second current aSC state.
In some embodiments, if a unit 155 is detected in OEM Test or Soft Disabled state, the unit 155 shall be reset by the active subnet controller 230a in a step 342. If a unit 155 is detected in “Hard Disabled” or “NVM Programming” state, the active subnet controller 230a assumes that it is not available on the subnet.
In a further embodiment, inactive subnet controllers 230i are required to keep the most up to date subnet and HVAC system configuration information. Inactive subnet controllers 230i listen to all UI/G and aSC messages and continuously update their non-volatile memory to be attempt to be as consistent as possible with the settings stored in active subnet controller 230a. 
Various Aspects of System Recovery in an HVAC Network
Turning now to FIG. 3D, illustrated is an exemplary flow of a method 350 that allows for a user to modify parameters of various networked units 155 (henceforth also to be referred to interchangeably as “devices”), in the HVAC network 200 of the HVAC system 100. This method 350 can occur, for example in the commissioning state 324 of the flow 310.
After a start step 355, in a step 360, a fixed parameter is conveyed from a first networked device to a first subnet controller, such as to the active subnet controller 230a. In a step 365, a variable parameter is retrieved from the first networked devices to a subnet controller, such as to the active subnet controller 230a. In a step 370, a user is given an option to modify a variable parameter. The user can also be an installer. In a further embodiment, the modification occurs through employment of the user interface 240 or gateway 250. In this case, the aSC 230a relays the current parameter values retrieved during steps 360 and 365 to the user interface 240 or gateway 250. The user interface 240 or gateway 250 have the option to interrogate the device for additional parameter information, such as its definition, limits, default value, text strings associated with it, etc. In a yet further embodiment, the active subnet controller 230 has these modified values stored within itself, and then conveys copies of these modified values back to the units 155.
In a still further embodiment, all variable parameters from all networked devices in a HVAC subnet, correlated to the subnet controller, are also stored in the subnet controller. In a yet further embodiment, copies of the fixed and variable parameters are also stored in a second subnet controller, wherein: a first subnet controller is active, and the second subnet controller is inactive.
Turning now to FIG. 3E, illustrated is a high-level block diagram of one embodiment of a subnet 380 including a subnet controller 382 and coupled networked devices 396, 397, a user interface 398, and a gateway 399 for use in the HVAC system 100. The controller 382 has a start-up message detector 383, a device comparator 384, a list requestor 386, a fixed parameters from devices memory 388, a variable parameters from devices memory 390, an other memory 391, a heartbeat generator 392, a heartbeat timer 393, and a parameter retriever 394.
In FIG. 3E, parameters to be stored within the fixed parameters from devices memory 388 and the variable parameters from devices memory 390 are conveyed between the networked devices 396, 397, and the interface 398 and gateway 399, such as described in method 350, above. Other components of the subnet controller 382, mentioned above, will be described in greater detail below.
Turning now to FIG. 4A, illustrated is an exemplary flow for a method 400 for a generation of a heartbeat message by an active subnet controller, such as the active subnet controller 230a. Generally, the active subnet controller 230a generates an “aSC Heartbeat” message, such as is illustrated in the method 400, which can be used to identify and re-identify the active subnet controller 230a for a given network subnet, and indicates to various units 155 on that subnet that at least some subnet communication is occurring. This can occur, for example, in the normal system operation state 334 of the flow 310 of FIG. 3B.
The “aSC Heartbeat” message can be sent out by the active subnet controller 230a immediately after it takes control of a subnet, and is also sent out after periodically after a given period of time has elapsed, such as once a minute, as well as immediately after seeing any “SC Startup” or “Device Startup” messages on its own subnet. An “SC Startup” message can be generally regarded as a message sent by a subnet controller when it initiates its own subnet controller startup, such as discussed regarded the subnet controller startup state machine 460, to be discussed regarding FIG. 4E, below. The one-minute elapsed time period is counted from the previous heartbeat message send time.
In one embodiment, if the active subnet controller 230a does not provide its “aSC Heartbeat” message after more than a selected period of time has elapsed, perhaps three minutes, any other existing inactive subnet controller 230i on the same subnet restarts and causes the subnet to go to a “Subnet Startup” state, such as illustrated in the subnet controller startup state machine 460, below, and also issue the “SC Startup” message. In a further embodiment, if the unit 155 does not see an “aSC Heartbeat” message for more than three minutes, it issues an “aSC Missing” alarm to indicate the active subnet controller 230 is missing and ceases any equipment operation, but keeps sending its “Device Status” messages.
In the method 400, after a start step 402, in a step 404, an “aSC heartbeat” message is sent by the heartbeat generator 392 of the subnet controller 380, which is an active subnet controller 230a upon taking active control of a subnet of the HVAC system 100. In a step 406, the active subnet controller 230a resets the heartbeat timer 393 of the subnet controller 380.
In a step 408, it is determined whether the start-up message detector 383 has detected a startup message from another active subnet controller 230a. If yes, the flow increments to a step 416. If no, the flow increments to a step 410.
In the step 410, it is determined whether the start-up message detector 383 has detected a startup message from a unit 155. If yes, the flow increments to a step 416. If no, the flow increments to a step 412.
In the step 412, it is determined, such as by the heartbeat timer 393, whether a specified time has elapsed since a last heartbeat. If the specified time has elapsed, then the method advances to step 416. If the specified time has not elapsed, the method advances to step 414.
In step 414, the heartbeat timer 393 is incremented, and the method 400 begins again with the step 408. In step 416, the heartbeat generator 392 generates an active subnet controller heartbeat pulse, and advances to the step 406, upon which the heartbeat timer 393 is reset, and the method 400 again advances to the step 408.
Turning now to FIG. 4B, illustrated is a method 420 that illustrates an exemplary behavior of an inactive subnet controller 230i regarding heartbeat messages that can also occur within state 334 of the flow 310. After a start step 422, a second, inactive, subnet controller 230i determines whether a first, purportedly active, subnet controller of a subnet has provided a heartbeat message within a selected length of time, such as within three minutes. If the active heartbeat has been provided, the method 420 advances to step 426, and the second, inactive, subnet controller 230i stays inactive. However, if the second inactive subnet controller 230i has not detected a heartbeat message within the selected length of time, the second inactive subnet controller 230i transitions into an active subnet startup state, with itself possibly becoming the active subnet controller.
Turning now to FIG. 4C, illustrated is an exemplary method 430 that illustrates behavior of a coupled unit 155 regarding heartbeat messages that can also occur within state 334 of the flow 310. After a start step 432, the unit 155 determines whether a subnet controller 230, a purported active controller, has provided a heartbeat message within a specified time period, such as within one minute. If the subnet controller 230 has provided such a heartbeat message, the flow 430 advances to a step 436, and the coupled unit 155 continues to act in its prior mode. However, if the unit 155 has not detected a heartbeat message within the selected length of time, the unit 155 advances to a step 438, and issues an “aSC heartbeat missing” alarm. In a step 440, the devices ceases to operate in a communication/normal operation mode, and in a step 442, the unit 155 continues to send devices status messages.
Turning briefly to FIG. 4D, illustrated is an embodiment of a high-level system diagram for a subnet 450 with multiple subnet controllers 452, 458 for conveying heartbeat messages, devices statuses, and so on. In the subnet 450, the active subnet controller 452 is coupled by a heartbeat message path 453 to the inactive subnet controller 458 in the HVAC system 100. A first networked device 454 and a second networked device 456 are both coupled via pathways 455 to the active subnet controller 452. These pathways 455 can carry alarm messages, device status messages, and so on.
Turning now to FIG. 4E, illustrated is an exemplary subnet controller state machine 460 that transitions through subnet startup states. Generally, during the initial startup routines (i.e., states 462-472), the subnet controllers 230 do not queue inbound or outbound messages. The message times, discussed below, depend on this. If a message is to be sent out at exactly one specified time, it means that only one attempt should be made to send it, without an automatic retry, until a new specified time allotted allows for it.
After a reset state 462, in a state 464, the “pre_startup” state, the subnet controller startup sequence 460 begins with the subnet controller 230 issuing its own “Subnet Controller Startup” message. This can happen, in one embodiment, after a time lapse of 3000 milliseconds after entering the sequence 460, plus a Device Designator (“DD”) derived delay time (following a norm for startup messages,) of the subnet controller 230 after coming out of reset. DD can be a unique 32-bit number that represents a media access control (MAC) layer address of the unit 155.
In a state 464, immediately upon “power up” and completion of a “NVM Check,” each subnet controller 230 then starts to monitor its own subnet on the bus 180 for startup messages from other units 155 and other subnet controllers 230. Generally, the subnet controller 230, after start-up, keeps track of all DDs, equipment types, and serial numbers for all units 155 that send their startup messages on the subnet. The subnet controller 230 can be hard-disabled 466 due to significant diagnostic messages.
During subnet controller “pre_startup” in the state 464, in one embodiment, each subnet controller 230 attempts to send out at least two messages: first, 3000 milliseconds after coming out of the reset 462, the subnet controller 230 sends out a “Subnet Controller Startup” message. Then, in a post startup state 468, 1000 milliseconds after sending the first message, the subnet controller 230 attempts to send a “SC Coordinator” message. This means that, even in the most favorable case with no other traffic on the network, the “SC Coordinator” message actually starts appearing on the bus 180 at 1000 ms plus the time used to send the “SC Startup” message on the bus 180.
If the subnet controller 230 succeeds in sending out the “SC Coordinator” message, it becomes the active coordinator and proceeds to coordinate the system configuration for its subnet in an active coordinator state 472. If it fails or sees another subnet controller become or already existing as an active coordinator, it goes into a “passive_coordinator” state 474 and becomes a passive_coordinator. A “passive_coordinator” state involves the “passive_coordinator” not sending out any messages on the network, except for when directly queried by the active coordinator.
From the “passive_coordinator” state 474, the subnet controller 230 can transition to an “inactive” state 478, and exits as an inactive controller 482. Alternatively, the passive coordinator subnet controller 230 can transition into a soft-disabled state 466, and from there back into the “pre_startup” state 464.
In the “active_coordinator” state 472, the subnet controller 230 can ensure that it is the most qualified subnet controller 230 by querying all other subnet controllers 230 on the subnet. Qualified can be evaluated by such factors as having a most recent software updates, the fastest reaction time, being especially designated as being a most qualified subnet by an installer, for example.
If it is the most qualified SC 230 on the subnet, it can proceed to take over the control of the subnet by issuing, first, an “SC Ready To Take Over” message and then, 1000 milliseconds later the “aSC Heartbeat” message in a state 476, such as discussed in step 404 of flow 400. Otherwise, the subnet controller 230, employing the state machine 460, will pass a token to the most qualified subnet controller, and instead become a passive coordinator in state 474. A successful generation of the heartbeat message means that the subnet controller 230 has become an active subnet controller 230a and has taken control of its subnet.
In one embodiment, even in a most favorable case with no other traffic on the network, the “aSC Heartbeat” message actually starts appearing on the bus 180 first at 1000 milliseconds after transitioning to state 476 plus the time interval needed to send the “SC Ready to Take Over” message on the bus 180. At that time, the active subnet controller 230 determines if the subnet is in “configuration” or in “verification” mode and proceeds to program the subnet and its various components accordingly.
In one embodiment, if the subnet is in “verification” mode, the active subnet controller 230a issues alarms for all missing and new units 155. New units 155 will be excluded from the subnet and placed in the soft-disabled state 470. It is also at this time that the active subnet controller 230 checks a validity of the subnet's configuration and issues appropriate alarms if needed. If the subnet is configured correctly, the active subnet controller 230 concludes the subnet startup by issuing the “aSC Change State” message, to start the commissioning state diagram 300 for the unit or units 155, and then exits the state diagram 460, as an active subnet controller 230.
Turning now generally to FIGS. 5A-5B, generally are illustrated exemplary flow diagrams of methods 500, 520, respectively, that are generally directed to corrupted memory handling in a subnet or subnet controller of the HVAC 100 system. The method 500 is directed towards determining whether the active subnet controller 230a contains a valid, previously backed-up version of the unit's 155 data, and the method 520 is directed towards a particular series of steps in a transfer of data between the active subnet controller 230 and the unit 155.
In one embodiment, the methods 500, 520 can be generally designed to check integrity of software in a flash memory, and to check integrity of data in an Electrically Erasable Programmable Read-Only Memory (“EEPROM”), Magnetoresistive Random Access Memory (“MRAM”), or equivalent, for both the units 155 and the subnet controllers 230. Generally, all units 155 have rewritable non-volatile memory to support various protocols. All protocol-related device settings stored in its EEPROM are also backed up by all subnet controllers 230 on the subnet of the HVAC system 100 in their own internal memories. Additionally, units 155 can back-up some application specific data in the subnet controllers 230. This happens in form of special feature numbers that are part of the “Feature Manifest” in commissioning.
In a further embodiment, if the unit 155 has internal copy of its EEPROM settings to facilitate its recovery, the recovery is transparent to the unit's 155 behavior in the system 100 and it is determined that the unit 155 is able to work correctly (using the backed up correct values) before sending out its “DEVICE Startup” message.
Turning again to FIG. 5A, illustrated is an exemplary method flow 500 for restoring corrupted memory data for the unit 155. Generally, these steps 502-520 are undertaken by the active subnet controller 230a in conjunction with one or more units 155.
Four memory failure scenarios are described:
a. The unit 155 loses its data but is able to recover it from an internal backup.
b. The unit 155 is unable to retrieve the memory values on its own, and the active subnet controller 230a has stored within itself the correct values for the device, wherein the active subnet controller 230a can relay the backed-up data to the device.
c. The active subnet controller 230a has corrupted data and it recovers data from the unit 155.
d. In a further embodiment, if both the active subnet controller 230a and the unit 155 are unable to retrieve previous data, the unit 155 shall revert to the default settings, and update the active subnet controller 230a. 
Generally, the method 500 employs retrieval of data between the unit 155 and the active subnet controller 230a, which can be in conjunction with the above points (a)-(d). After a start step 502, it is determined if an entire memory parameters of all the units 155 stored within a memory of the active subnet controller 230a has been corrupted in a step 504. Typically, the active subnet controller 230a keeps a separate CRC for each the unit 155.
If the entire memory for multiple devices has been corrupted, then the method 500 advances to a step 514, and all units 155 undertake a full feature manifest and full parameter scans.
In a further embodiment, in a step 514, if the units 155 are unable to retrieve their various parameters, the unit 155 shall revert to the default settings and update the active subnet controller 230a. However, if the entire memory of the active subnet controller 230a regarding the unit 155 in its subnet is not corrupted, the method 500 advances to a step 506.
In a step 506, it is determined whether stored parameters for a particular device have been corrupted in the active subnet controller 230a. If they have for a particular device, then the method 500 advances to a step 512, and the selected the unit 155 that is to have its corrupted memory corrected undertakes a full feature manifest and full parameter scans, and forwards this to the active subnet controller 230a. In one further embodiment of step 512, if the unit 155 is unable to retrieve these parameters, the unit 155 reverts to its default settings and updates the active subnet controller 230a with these default values in a step 518, and stops at a step 520.
However, if the memory of the active subnet controller 230a regarding units 155 in its subnet is not corrupted, the method 500 advances to a step 508. In step 508, it is determined whether the stored memory on the unit 155 has been corrupted. If it has, the active subnet controller 230a forces the unit 155 to perform a full feature manifest and a full parameter scan in a step 512, and then to convey this information to the active subnet controller 230 in a step 518. The method 500 steps in a step 520. The method 500 also stops in a step 520 if no memory corruption is detected.
In a further embodiment, the actions undertaken by the device and the active subnet controller 230a in the above scenarios (a)-(d) given above, are as follows, in more detail:
a. In this case, in one embodiment, the unit 155 should first try to recover the data from an internal backup in a manner invisible to other units 155 of the same subnet of the HVAC network 200 of the HVAC system 100. No indication of this occurrence is given. For example, if the active subnet controller 230a is in the “verification” mode, the active subnet controller 230a performs as described above—i.e., there is no need to perform full “Feature Manifest,” “Non-Communicating Check” and “Parameter Scan” in Commissioning, as this occurs only during the “configuration” mode.
b. In this case, in one embodiment, the unit 155 starts with its “Device Startup” message sent on a Subnet 0 channel, using a “default” equipment type, with a CF6 flag cleared. For the unit 155, “CF6=0” if the Data CRC check performed by the device 110 has failed. Therefore, all data within the device 110 is invalidated and are returned to default values by the active subnet controller 230a. Generally, when set to “0,” this flag is set back to “1” when all data values are fully recovered from either the internal default values or over the bus 180 from the active subnet controller 230a, but only after the unit 155 has successfully completed commissioning.
For b., the unit 155 responds to all “SC Coordinator” messages using the same message, the “Device Startup” message, until a new equipment type and Subnet ID are assigned to the unit 155. As long as the NVM data is not recovered, the CF6 flag remains reset. Once an active subnet controller 230a takes over due to this error condition, the active subnet controller 230a proceeds to assign the equipment type to and Subnet ID to the unit 155, which the device 230 stores internally. The active subnet controller 230a recognizes the unit 155 using its Device Designator, and assigns the same equipment type and subnet ID to the unit 155 as it had before.
Furthermore in b., immediately after recognizing that it cannot retrieve its NVM data, the unit 155 starts to recover all of its lost data to their default values stored in its device flash. The active subnet controller 230a, upon entering commissioning 300, reprograms the device 110 with the data from its backup. If so attempted, the unit/device has to accept the active subnet controller 230a data in place of its default values.
For c., in one embodiment, this scenario only matters in “verification” mode, as in “configuration” mode the active subnet controller 230 updates its internal backup data from all units 155 anyway. Thus, in “verification,” the active subnet controller 230 forces full “Feature Manifest, Non-Communicating Check Scan and Parameter Scan” on the particular units 155 that it lost data from, in place of the abbreviated version that normally happens during Verification.
For d., in this case, in one embodiment, the unit 155 retrieves its default values, and when in “verification,” the active subnet controller 230 shall proceed with the full “Feature Manifest, Non-Communicating Check Scan and Parameter Scan” on the particular units 155 that it lost data from, in place of the abbreviated version that normally happens during verification mode.
Turning now to FIG. 5B, illustrated is an exemplary flow of a method 520 for both a “configuration” mode and a “verification” mode of a request of the active subnet controller 230a for information from a coupled network device of the HVAC system 100 after a memory failure. The method 520 can occur as a result of the action in the combination of states 316 and 318 of the flow 310.
After a start step 522, in a step 524, the addressable unit 155 reports loss of internal memory settings, such as NVM settings, to the active subnet controller 230a. In a step 526, the unit 155 is recognized by the active subnet controller 230a. This occurs because the active subnet controller 230a recognizes both the DD, as it matches exactly for its stored backup data for the unit 155, and a received equipment type is of a same type as an equipment type stored for that device in the active subnet controller 230a. In one embodiment, this information can be stored in the other memory 391 of the subnet controller 380.
In a step 528, the active subnet controller 230a requests a full feature parameters list from the unit 155, and in step 530, the active subnet controller 230a requests non-communicating scan parameters list and a parameters scan parameters list in a step 532. A full feature parameter list is a list of the types of feature (“fixed”) parameters hardwired into the unit 155, a non-communicating scan list is a list of parameters that are employed by a communicating device to configure another device, physically attached to unit 155 (such as by the means of another communicating bus, or simple switch or power lines) that does not communicate directly with a subnet controller during commissioning, and a parameters scan parameters list is a list of variable parameters used by the unit 155.
In a step 534, the method 520 employs an order of presentation of these lists. The method 520 does not enquire about the actual values conveyed from the unit 155. Instead, the method 520 uses an order of these parameters to index information and then to send information that was previously stored in the active subnet controller 230a back to the unit 155, as determined by the received order. The order transmitted can be the exact order as received. The method 520 ends on a stop step 536.
In a further embodiment of the method 520, the fixed parameters listed in step 528 are provided to the device immediately, before step 530 is executed. In yet further embodiment of the same method, the non-communicating parameters listed in step 530 are provided to the device immediately, before step 532 is executed.
Turning now to FIG. 6A, illustrated is an exemplary method flow 600 for configuration of replacement parts in a communicating HVAC network 200. A goal of this flow is to automatically commission replacement devices in a customer home. Generally, control settings are restored from a backup copy existing in a master controller, such as an active subnet controller 230a. This can be advantageous, in that an installer does not have to manually configure a part, and factory default calibration values are preserved as well. The method 600 can occur in combination with state 324 of flow 310 or 332 of flow 310.
In method 600, after a start step 605, a DD is installed into a subnet controller of a device, such as unit 155. In a state 615, an equipment serial number and part number are installed in a subnet controller of the device. In a state 620, the subnet controller reads a select indicia of a start-up message of a device/unit, which may or not be the same device of whose the DD and part numbers where stored in steps 610 and 615. In a step 625, the subnet controller reads the DD and equipment number of the device. In step 630, it is determined whether the indicia is set (e.g., it equals “1”), and a new device designator is found.
If this is true, then this is indicative of a replacement part scenario, and the method then advances to a step 637, wherein it is determined if the device is in verification or configuration mode. If it is in verification mode, the device is soft-disabled in a step 639. If it is in configuration mode, then a replacement scenario is triggered in a step 641.
However, if step 630 is not true, the method 600 advances to a step 635. In step 635, it is determined whether an indicia is reset that is received from the device, and whether a new device designator is found. If this condition is true, then a new device scenario occurs. Then in step 643 it is determined whether the system is in verification mode or configuration mode. If configuration, then in step 645, a replacement mode is disabled, as this device that has been added is a new device. If in verification, the new device itself is disabled in a state 647. Otherwise, the method stops in a step 649.
In one embodiment of the method 600, when in configuration mode and the aSC 230a determines that a device is missing and that a physically different, yet compatible device/unit was put into the subnet with a CF5 flag set, it prompts the user, via the active UI/G 250 to decide whether the new device should have the parameters of the missing device copied into it. If affirmed by the user, the aSC 230a proceeds to also store in it, the relevant equipment-related features such as Equipment Serial Number, Equipment Part Number and its capacity as well as previously set Parameter values.
In one embodiment, the ASC 230a checks the device compatibility by requesting the “Compatible Devices List” feature of the unit 155 and checking the part numbers contained within it against the “Control Part Number” of the missing device. If there are any problems with programming any specific features or parameters, the subnet controller 230a shall prompt the user and still attempt to program the remaining information.
Each subnet controller 230, both active and inactive, can store the DD and equipment serial and part number for a given unit 155. DDs are programmed at a supplier's plant, and the Equipment and Part numbers are programmed an installer's plant. Replacement control memories have supplier-programmed device designators, but have blank values for equipment and serial and part numbers. This fact, together with the bit CF5 from the DEVICE startup message, as will be discussed below, lets them be distinguished in the system when they are installed, and facilitates automatic configuration of these controls from backed-up information stored in the active subnet controller 230a. 
Generally, the aSC 230a categorizes the control based on its DD as compared to the DD stored in the aSCs 230a backup memory, and also based on the value of the CF5 flag, to be discussed below. When the CF5 flag is set, the new DD value and the lack of corresponding device, such as unit 155, on the subnet (device is missing) is indicative of a replacement part scenario. When in verification, the new device is soft disabled. When in configuration, the replacement part mechanism is triggered during commissioning.
When the CF5 flag is zero and the DD does not match, new equipment has been added to the subnet and it should not be reprogrammed, hence no replacement scenario is triggered in commissioning. In “Verification,” the new device is disabled. To summarize, the only scenario when the as 230a triggers the “Replacement Part Check in Commissioning” is when an old device is missing, and a new device with the same equipment type is introduced on the subnet and has its CF5 flag set. Consequently, each replacement part check is accompanied by the Missing Device2 alarm triggered by the aSC 230a to inform the user that the old device is missing.
During the replacement part check in commissioning, the ASC 230a can verify that the new device 290 is compatible with the missing one and prompts the user to automatically configure the control by listing two sets of serial and part numbers—one from the old device 290 originally installed in the unit 155 and the other one from the replacement device 290 that was just introduced to the subnet. The user is asked if s/he wants to copy the back up setting from the old control into the new one. If the copy is requested, the configuration data backed up in the ASC is copied into the control. This includes the equipment serial part and number. If the copy option is declined, the user configures the system manually.
Turning now to FIG. 6B, illustrated is an exemplary flow 650 of active subnet controller 230a behavior for identifying a replacement device 290 and also for re-commissioning the unit 155. This flow 650 can be used in conjunction with method 600 of FIG. 6A.
In a step 651, the active subnet controller receives a new DD. In a step 653, the active subnet controller 230a determines whether the system is entering a configuration state. If no, a step 655 is entered, and the new device 290 is soft-disabled, and the flow ends.
However, if the system is entering into a configuration state, it is then determined by the active subnet controller 230a if there are at least two of the same type units 155 present. This is done by comparing the equipment types of their controls 290. If not, the flow 650 advances to a step 663. However, if two devices are present, the flow 650 advances to a step 659. In a step 659, it is determined if enough equipment types are available. In other words, it is determined whether the active subnet controller 230a can support this many types of devices. If not, the flow advances to step 661, and a too many devices of same type alarm is set off, and the flow ends. However, if a plurality of units 155 can be supported, then in step 663, the devices are accepted into the subnet.
Next, in step 665, it is determined whether a HVAC devices equipment type is in a same range as a missing device. If it is, then in a step 667, the new unit 155 is assigned with the missing devices equipment type, and the flow advances to a step 671. However, if not in the same range, then the new device is assigned with the next lowest (or highest if the device is a gateway) equipment type number, and advances to a step 669, and then advances to a state 681.
In steps 671-685, the commissioning stage of the unit 155 can occur. In step 671, it is determined whether the CF5 flag of the unit 155 is set. When the CF5 flag is zero, and the DD does not match, this means that new equipment is added to the subnet and it should not be reprogrammed, hence no replacement scenario is triggered in “commissioning.” If the “CF5” flag is not set, the flow advances again to step 681, otherwise the flow advances into a step 673.
In step 673, it is determined whether the new part is a compatible replacement for the old part. If not, the flow 650 again advances to step 681. If yes, the flow 650 advances to a step 675. In step 675, a choice is displayed to a user, that shows the both the active subnet controller 230a old back-up copy and the new device's 290 control serial and part numbers. In a step 677, it is determined whether the user selects the old control serial and part numbers from the old back-up copy provided by the active subnet controllers 230, or the new numbers. If the user does not employ the old values provided by the active subnet controller 230a, the flow 650 advances to step 681. If yes, the flow advances to step 679. In step 681, the newly found parts 290, residing in unit 155 or units 155, are treated as a new device or new devices.
However, in a step 679, the active subnet controller 230a copies the back-up equipment serial and part numbers into the device 290, as well as other pertinent information. In a step 683, the active subnet controller 230a keeps the old unit 155 settings until an active subnet controller 230a “Change State” is invoked into an “Installer Test” mode. Both step 681 and 683 advance to step 685, wherein the replacement check ends.
Turning to FIG. 7A, illustrated is an exemplary flow of a method 700, which can be viewed and employed in conjunction with FIG. 7B which illustrates a high-level block diagram of device 750 with field pins 755, 760. In the method 700, after a start step 705, power on is applied. In one embodiment, the pins 765, 760 are already shorted upon start-up in a step 715; in another embodiment, the pins 765, 760 are shorted after start-up in a step 715. Indicia of this short can be conveyed to the microprocessor 765 of device 750. In a step 720, a dependent field system feature can be selected. For example, a dependent field feature can be, a “unit capacity” or “unit model number.” This selection can be obtained through employment of a field system selector 780 of the device 750, although other approaches, such as through employment of other field pins, can also be employed. This selection can also be conveyed to the microprocessor 765.
In a step 725, the short, such as a jumper interposed between the field pins 755 and 760, is removed after a passage of first period of time, such as 5-10 seconds. In a step 730, the short is again introduced after a second time period of no shorting occurring, such as a “no shorting” time lapse of 1-3 seconds. Then, after the step 730, which re-shorts the field pins 755, 760, a light emitting diode (“LED”) 770 outputs various values to be selected correlated to a field system feature in a step 735 while the field pins are shorted for a second time. In a step 740, a user removes a short, such between the field pins 755 and 760, and that value can be selected and is used to program the device 750.
For example, in one embodiment, in heat pump control, a dependent feature can be programmed by using a plurality of field pins. In a heat pump control device, in the step 715, the power is turned on with field pins shorted. In the step 720, unit capacity is chosen. In a step 730, the LED 770 will start blinking the “unit” capacity code, followed by blinks which allow for a selection of 1-6 tons of unit capacity value, with the interval of 3 seconds between weight selections. For example, there is a long blink for three seconds, (1 ton per duration of blink), and a short blink to indicate half a ton, with 0.5 second intervals between the blinks. For example, 2.5 ton is indicated by 2 long blinks and 1 short blink.
In the above example, in step 740, when the desired capacity value is displayed on the LED 770, a shorting jumper is removed from the field pins 755, 760. In one embodiment, the microprocessor 765 will continue to display the selected programmed capacity code until the first of one of two conditions occur: a) two minutes have elapsed; or b) until power within the dive 750 is reset. In a still further embodiment, all supported capacity codes will be displayed twice in a row, as an ease in selection.
Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.

## Claims

1. A method of using a heartbeat in an HVAC network that includes a first subnet controller and a second subnet controller on a subnet, comprising:
said first subnet controller providing a heartbeat message via said network;
said second subnet controller in an inactive state determining if said first subnet controller has provided said heartbeat message within a first specified time period;
said second subnet controller remaining in said inactive state in the event that said first subnet controller provides said heartbeat message within said first specified time period;
said second subnet controller switching to an active state in the event that said first subnet controller does not provide said heartbeat message within said first specified time period; and
a device on said subnet determining the presence or absence of said heartbeat within a second specified time period; wherein:
in the event that said device detects said heartbeat message within said second specified time period, said device continues to operate in a prior mode; and
in the event that said device fails to detect said heartbeat message within said second specified time period, said device
a) issues a heartbeat-message-missing alarm;
b) ceases to operate in a communication mode; and
c) continues to generate device status messages via said subnet.

2. The method of claim 1, wherein said first specified time period is about three minutes.

3. The method of claim 1, wherein said second specified time period is shorter than said first specified time period.

4. The method of claim 1, wherein said first or said second subnet controller is collocated with a furnace controller, a heat pump controller, a compressor controller, a fan controller or a damper controller.

5. An HVAC network, comprising:
a first subnet controller on a subnet of said HVAC network, said first subnet controller being configured to periodically send a heartbeat message over said network; and
a second subnet controller on said subnet, said second subnet controller being configured to determine if said first subnet controller has provided said heartbeat message within a first specified time period;
a device on said subnet configured to determine the presence or absence of said heartbeat within a second specified time period; wherein:
in the event that said device detects said heartbeat message within said second specified time period, said device continues to operate in a prior mode; and
in the event that said device fails to detect said heartbeat message within said second specified time period, said device
a) issues a heartbeat-message-missing alarm;
b) ceases to operate in a communication mode; and
c) continues to generate device status messages via said subnet.

6. The network of claim 5, wherein said first specified time period is about three minutes.

7. The network of claim 5, further comprising:
a heartbeat message timer; and
a heartbeat generator configured to:
a) generate said heartbeat message by said first subnet controller upon said first subnet controller taking active control of a subnet of said HVAC network;
b) send another heartbeat message if said first subnet controller detects a subnet controller message on said subnet from said second subnet controller;
c) send another heartbeat message if said first subnet controller detects a device message on said subnet; and
d) send another heartbeat message if said heartbeat message timer determines a specified time period has elapsed since a previous heartbeat message has been generated by said heartbeat generator.

8. The network of claim 7, wherein said heartbeat message timer is reset by any step of sending another heartbeat message.

9. The network of claim 7, wherein said specified time period is about one minute.

10. The network of claim 5, further comprising a field-programmable device to be used in said HVAC network, comprising:
at least two field pins configured to be shorted together;
a field system feature selector;
a processor coupled to said field system feature selector and to said at least two pins, wherein said processor can read a plurality of shorts between two of said pins and an output of said field system feature selector, to generate a value; and
an LED coupled to said processor configured to display said value.

11. The network of claim 10, wherein said processor can further configured to:
read a duration of a first selected time period of a short between said two field pins to enable a presentation of an instance of said value for a selected dependent feature; and
present an increment of said instance when said first and second field pins are shorted together for a second selected time period.

12. The network of claim 11, wherein a feature selected by said feature selection is selected from the group consisting of:
a) a unit capacity, and
b) a model number.

13. The network of claim 10, wherein said value is presented to a user with said LED.

14. The system of claim 5, wherein said second subnet controller is configured to:
in the event that said first subnet controller provides said heartbeat message within said specified time period, remain in an inactive state,
in the event that said first subnet controller fails to provide said heartbeat message within said specified time period, initiate an arbitration process with any other inactive subnet controllers on said subnet; and
in response to said arbitration process, switch to an active state and initiate an active subnet startup state for said subnet.