Systems and Methods for Determining Water Pump Status Using Current Consumption

20250297753 ยท 2025-09-25

    Inventors

    Cpc classification

    International classification

    Abstract

    Systems and methods are provided for determining water pump status using current consumption. Within an HVAC system, water pumps may pump water from an indoor portion to an outdoor coil and/or an outdoor portion to an indoor coil to improve heat transfer within the HVAC system. To monitor the status of the water pumps (assessing whether the water pumps are properly pumping), the current consumption of the water pumps is measured and compared to pre-determined current value ranges. The HVAC system may determine whether the water pump is pumping only water, a combination of water and air, or no water, depending on the current value range that the measured current falls within. When the measured current lies within a particular current value range indicating that a water pump is not properly functioning, the HVAC system may take an action, such as issuing an alert or ceasing system operation.

    Claims

    1. A heating, ventilation, and air conditioning (HVAC) system comprising: an indoor unit including an indoor coil; an outdoor unit including an outdoor coil; one or more water pumps configured to, at least one of, pump water from the indoor unit to the outdoor coil or pump water from the outdoor unit to the indoor coil; and a controller configured to: receive an indication of an amount of current being used by the one or more water pumps; determine, based on the amount of current being used, an amount of water being pumped by the one or more water pumps; and perform an action based on the amount of water being pumped.

    2. The HVAC system of claim 1, wherein the action comprises at least one of: providing an alert or ceasing operation of the one or more water pumps.

    3. The HVAC system of claim 1, wherein determining the amount of water being pumped further comprises determining that the amount of current is within a first range of current values instead of a second range of current values.

    4. The HVAC system of claim 3, wherein the controller is further configured to: determine, based on the determination that the amount of current is within the first range of current values, that the one or more water pumps are blocked.

    5. The HVAC system of claim 3, wherein the controller is further configured to: determine, based on the determination that the amount of current is within the second range of current values, that the one or more water pumps are pumping both water and air.

    6. The HVAC system of claim 3, wherein the controller is further configured to: determine, based on the determination that the amount of current is within a third range of current values, that the one or more water pumps are pumping only air.

    7. The HVAC system of claim 1, wherein the controller is further configured to: determine a rate of change of the amount of current being used by the one or more water pumps, wherein performing the action is based on the rate of change.

    8. The HVAC system of claim 1, further comprising one or more sensors within the indoor unit, wherein the controller is further configured to: receive, from the one or more sensors, an indication that a water level within the indoor unit has reached a threshold water level.

    9. The HVAC system of claim 8, wherein the one or more sensors comprise at least one of: a float sensor, an optical sensor, or a precipitation sensor.

    10. A method comprising: receiving, by a controller of a heating, ventilation, and air conditioning (HVAC) system, an indication of an amount of current being used by one or more water pumps within the HVAC system; determining, by the controller and based on the amount of current being used, an amount of water being pumped by the one or more water pumps; and performing, by the controller, an action based on the amount of water being pumped.

    11. The method of claim 10, wherein the action comprises at least one of: providing an alert or ceasing operation of the one or more water pumps.

    12. The method of claim 10, wherein determining the amount of water being pumped further comprises determining that the amount of current is within a first range of current values instead of a second range of current values.

    13. The method of claim 12, further comprising: determining, by the controller and based on the determination that the amount of current is within the first range of current values, that the one or more water pumps are blocked.

    14. The method of claim 12, further comprising: determining, by the controller and based on the determination that the amount of current is within the second range of current values, that the one or more water pumps are pumping both water and air.

    15. The method of claim 12, further comprising: determining, by the controller and based on the determination that the amount of current is within a third range of current values, that the one or more water pumps are pumping only air.

    16. The method of claim 10, further comprising: determining, by the controller, a rate of change of the amount of current being used by the one or more water pumps, wherein performing the action is based on the rate of change.

    17. The method of claim 10, further comprising one or more sensors within an indoor unit of the HVAC system, wherein the method further comprises: receiving, by the controller and from the one or more sensors, an indication that a water level within the indoor unit has reached a threshold water level.

    18. The method of claim 17, wherein the one or more sensors comprise at least one of: a float sensor, an optical sensor, or a precipitation sensor.

    19. A non-transitory computer-readable medium storing computer-executable instructions, that when executed by one or more processors, cause the one or more processors to: receive an indication of an amount of current being used by one or more water pumps within an HVAC system; determine, based on the amount of current being used, an amount of water being pumped by the one or more water pumps; and perform an action based on the amount of water being pumped.

    20. The non-transitory computer-readable medium of claim 19, wherein the action comprises at least one of: providing an alert or ceasing operation of the one or more water pumps.

    21. A heating, ventilation, and air conditioning (HVAC) system comprising: an indoor unit including an indoor coil; an outdoor unit including an outdoor coil; one or more water pumps; and a controller configured to, at least one of, cause the one or more water pumps to pump water from the indoor unit to the outdoor coil or cause the one or more water pumps to pump water from the outdoor unit to the indoor coil.

    22. The HVAC system of claim 21, wherein the one or more water pumps comprise a first water pump configured to pump water from the indoor unit to the outdoor coil and a second water pump configured to pump water from the outdoor unit to the indoor coil.

    23. The HVAC system of claim 21, further comprising one or more sensors within the indoor unit, wherein the controller is further configured to: receive, from the one or more sensors, an indication that a water level within the indoor unit has reached a threshold water level, wherein cause the one or more water pumps to pump water from the indoor unit to the outdoor coil is based on the indication that the water level has reached the threshold water level.

    24. The HVAC system of claim 23, wherein the one or more sensors comprise at least one of: a float sensor, an optical sensor, or a precipitation sensor.

    25. The HVAC system of claim 21, further comprising one or more sensors within the outdoor unit, wherein the controller is further configured to: receive, from the one or more sensors, an indication that a water level within the outdoor unit has reached a threshold water level, wherein cause the one or more water pumps to pump water from the outdoor unit to the indoor coil is based on the indication that the water level has reached the threshold water level.

    26. The HVAC system of claim 21, wherein the water is pumped to one or more spray nozzles, and wherein the one or more spray nozzles expel the water onto the indoor coil or the outdoor coil.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0004] FIGS. 1A-1B illustrate an HVAC system, in accordance with one or more embodiments of the disclosure.

    [0005] FIG. 1C is a schematic of a circuit used to measure current of a pump, in accordance with one or more embodiments of the disclosure.

    [0006] FIG. 2A is a process flow diagram illustrating a cooling mode of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0007] FIG. 2B is a process flow diagram illustrating a defrost operation during a heating mode of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0008] FIG. 3A illustrates side view of an outdoor water drain pan of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0009] FIG. 3B illustrates a plan view of an indoor water drain pan of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0010] FIG. 4 illustrates a perspective, partially exploded view of an indoor water drain pan and some other components of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0011] FIG. 5 illustrates a side, partially exploded view of an indoor water drain pan of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0012] FIG. 6 illustrates a perspective, close-up view of a drain of an indoor water drain pan of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0013] FIGS. 7A-7B illustrate perspective views of operation of the water pumps of the HVAC system of FIGS. 1A-1B, in accordance with one or more embodiments of the disclosure.

    [0014] FIG. 8 illustrates a perspective view of another HVAC system, in accordance with one or more embodiments of the disclosure.

    [0015] FIG. 9A is a flow diagram for determining water pump status using current consumption, in accordance with one or more embodiments of the disclosure.

    [0016] FIGS. 9B-9C are flow diagrams for water pump operation, in accordance with one or more embodiments of the disclosure.

    [0017] FIG. 9D is a flow diagram for sensor operation, in accordance with one or more embodiments of the disclosure.

    [0018] FIG. 10 is a block flow diagram illustrating a method for determining water pump status using current consumption, in accordance with one or more embodiments of the disclosure.

    [0019] FIG. 11 illustrates a system for determining water pump status using current consumption, in accordance with one or more embodiments of the disclosure.

    [0020] FIG. 12 illustrates a computing device, in accordance with one or more embodiments of the disclosure.

    [0021] FIGS. 13A-13C illustrate a flow diagram for defrost management logic, in accordance with one or more embodiments of the disclosure.

    [0022] The detailed description is set forth with reference to the accompanying drawings. The drawings are provided for purposes of illustration only and merely depict example embodiments of the disclosure. The drawings are provided to facilitate understanding of the disclosure and shall not be deemed to limit the breadth, scope, or applicability of the disclosure. The use of the same reference numerals indicates similar but not necessarily the same or identical components; different reference numerals may be used to identify similar components as well. Various embodiments may utilize elements or components other than those illustrated in the drawings, and some elements and/or components may not be present in various embodiments. The use of singular terminology to describe a component or element may, depending on the context, encompass a plural number of such components or elements and vice versa.

    DETAILED DESCRIPTION

    [0023] This disclosure relates to, among other things, systems and methods for determining water pump status using current consumption. In some HVAC systems, one or more water pumps may be provided to transfer water produced, or collected, within indoor and/or outdoor portions of the HVAC system. For example, condensate may be produced by an indoor coil during a cooling operation of the HVAC system, which may lead to water buildup within the indoor portion. A water pump may be provided within the HVAC system that pumps the water from the indoor portion to an outdoor coil located in the outdoor portion. Likewise, water buildup may occur within the outdoor portion as part of a defrost operation during a heating mode during which frost buildup on the outdoor coil is melted. Another water pump may be used to transfer this water buildup from the outdoor portion to the indoor coil. The water pumps may therefore serve the dual purpose of removing water buildup from a portion of the HVAC system and repurposing such water to improve heat transfer of the coils within the HVAC system. Reference is made herein to window units (an example of which is illustrated in FIGS. 1A-1B), however, this is not intended to be limiting, and the systems and methods described herein may also be applicable to other types of HVAC systems, heat pumps, heat pump water heaters, and/or other types of systems that use water pumps to transfer water to one portion of the system to another portion of the system.

    [0024] Within such systems, it may be desirable for the HVAC system to automatically monitor the status of the one or more water pumps to determine if the one or more water pumps are properly pumping the water from the indoor portion to the outdoor coil and/or from the outdoor portion to the indoor coil. For example, in some instances, one of the water pumps (or both of the water pumps) may be pumping a mixture of air and water or may not be pumping any water at all. If the water pump is not properly operating, water buildup may occur within the indoor portion or the outdoor portion, which has the potential to damage or otherwise impact the operation of the components of the HVAC system.

    [0025] To monitor the status of the one or more water pumps, the system and methods described herein may, periodically or in real-time, measure the current consumption of the one or more water pumps. The current consumption of a water pump may provide an indication as to the amount of water that the water pump is currently pumping. In some embodiments, the system may store pre-determined ranges of current values and may compare the measured current consumption of the water pump with the pre-determined ranges to determine the amount of water that the water pump is pumping. For example, when a discharge side is not blocked, and a water pump is pumping only air, the current consumption may be within a range of 20 to 30 mA. When the water pump is pumping approximately 50% water and 50% air, the water pump may consume 40 to 60 mA. When the water pump is pumping only water, the water pump may consume 80 to 90 mA. On the discharge side, when the water pump outlet of the water pump is blocked, the current consumption may rise to over 180 mA.

    [0026] These ranges of current values are not intended to be limiting but are provided merely to illustrate exemplary ranges of values and any other ranges and number of ranges may also be used. These ranges may depend on the specific type of water pump, the configuration of the HVAC system, and/or any other number of factors. Additionally, in some instances, single current value thresholds may be used rather than ranges of values. For example, the system may determine that the water pump is pumping only air if the current consumption falls below 30 mA, rather than determining if the current consumption falls within a range of 20 mA to 30 mA.

    [0027] In some embodiments, data from other sensors may also be used in combination with the current consumption data. For example, one or more sensors may be provided in the indoor and/or outdoor portions of the HVAC system. The one or more sensors may capture data that is indicative of water levels within the indoor portion and/or the outdoor portion. For example, one or more float switches may be provided at the base pans of the indoor portion and/or outdoor portion. The one or more float switches may be provided at various heights within the indoor portion and/or the outdoor portion and may provide an indication of when the water level reaches these particular heights. This water level data may also provide information about the operation of the water pumps. For example, if a water pump is instructed to pump water from an indoor portion but the water level remains the same or continues to rise, then this may be an indication that the water pump is not properly functioning. The use of the sensors may also serve as a redundancy for the current consumption data. While reference is made to the use of float switches, any other types of sensors may also be used as well, such as optical sensors, etc. (additional examples of types of sensors are described below).

    [0028] Based on the current consumption data, the data obtained from the sensors, and/or any other types of data, the HVAC system may automatically take various appropriate actions. For example, if it is determined that a water pump is not operating properly, the HVAC system may automatically cease operation to prevent further water buildup, which may otherwise result in damage to components of the HVAC system and/or other undesirable impacts, such as leaks into indoor spaces. As another example, the HVAC system may produce an error code or other type of alert to indicate to a user that the water pump is not properly operating. The error code (or other types of alert) may be displayed via a user interface of the HVAC system and/or may be presented to a user device (for example, a smartphone, etc.) or other type of device (as a further non-limiting example, the device may be a thermostat). The error code may provide an indication to the user to check, clean, and/or replace components of the HVAC system, such as the water filter, water pump(s), pressure relief valve, the water lines, etc. The error code (or other types of alert) may also be provided (e.g., auditory, visual, etc.) in any other form and to any other type of system or device.

    [0029] These systems and methods described herein improve the efficiency of the HVAC systems by only using the water pumps when necessary to transfer water, which may minimize power consumption and may extend the operable life of the water pumps or other system components. The systems and methods also provide for the most efficient water pump operation by detecting if the pump is pumping only air, a mix of air and water, or only water using the current consumed by the pump. While some conventional systems may use sensors and timing intervals to monitor the operation the water pumps, the use of these sensors and timing intervals alone may still result in inefficient operation of the water pumps.

    [0030] Turning to the figures which illustrate non-limiting examples of the disclosed systems and methods, FIGS. 1A-1B illustrate an HVAC system 100. Particularly, FIG. 1A depicts a first perspective view of a first side of the HVAC system 100 and FIG. 1B depicts a second perspective view of a second side of the HVAC system 100. The HVAC system 100 may include an indoor portion 102, an outdoor portion 104, and a bridge 106 connecting the indoor portion 102 and the outdoor portion 104. The HVAC system 100 shown in FIGS. 1A-1B may specifically a system that is provided within a window of an environment to be heated and/or cooled, such as a residential home or a commercial building, for instance. For example, the bridge 106 may rest on a window sill, the indoor portion 102 may be located within an indoor environment (such as the residential home or commercial building, for example), and the outdoor portion 104 may be located within an outdoor environment. However, the systems and methods described herein may also be applicable to other types of HVAC system. Some of the components included within the indoor portion 102 and the outdoor portion 104 are described below; however, this is not intended to be a comprehensive description of all potential components that may be found within the HVAC system 100.

    [0031] In some embodiments, the indoor portion 102 may include an indoor coil 108, a network transceiver 110, a user interface 114, a water purifier 116, an outdoor water filter 118, one or more water pumps (e.g., a first water pump 120 and a second water pump 122), one or more sensors (such as sensor 124 and sensor 126), and a controller 152. Other components may also be provided in the indoor portion 102.

    [0032] The indoor coil 108 and the outdoor coil 128 function as heat exchangers. In a cooling mode of the HVAC system 100 (for example, when the HVAC system 100 is used to cool the environment in which the indoor portion 102 is provided), the indoor coil 108 of the HVAC system 100 may serve as an evaporator coil. The indoor coil 108 may hold refrigerant and remove both heat and humidity from the air in the indoor environment (for example, the environment in which the indoor portion 102 is located). The outdoor coil 128 may serve as a condensing coil. After the indoor coil 108 condenses humidity from the inside air, the heat is stored in the refrigerant located in the indoor coil 108. This refrigerant is transferred to the outdoor coil 128. When the outdoor coil 128 receives the refrigerant, the heat is released into the external environment (for example, the outdoor environment in which the outdoor portion 104 is provided).

    [0033] The network transceiver 110 may be used to transmit and/or receive data to any systems, devices, etc. located remotely from the HVAC system 100. For example, the network transceiver 110 may perform wireless or wired communications with a user device (for example, user device 1102, etc.), another HVAC system, a remote server (for example, remote server 1114, etc.), etc. For example, if an alert may be transmitted to a user device (or other type of device) when the controller 152 determines that a water pump is not properly functioning.

    [0034] The controller 152 (which may be the same as controller 1108 or any other controller described herein or otherwise) may perform any of the operations described herein with respect to the HVAC system 100 (or any other HVAC system), such as measuring the current consumption of a water pump, comparing the current consumption to one or more ranges of current values, causing an alert to be transmitting, causing operations of the HVAC system 100 to cease or be otherwise modified. Further details about the controller 152 are provided with respect to controller 1108 of FIG. 11.

    [0035] A schematic of a circuit 170 used to measure the current of a water pump (for example, first water pump 120 and second water pump 122) is shown in FIG. 1C. The circuit 170 includes a water pump (for example, the figure shows first water pump 120, however, any other water pump may be applicable) that is powered by a power source 172. In this specific example, the power source is a 24V DC power source, however, any other power source may be used. The circuit also includes a current sense amplifier 176, which is a differential amplifier that provides an output voltage proportional to the current flowing into a shunt resistor 174 connected to its input. This output voltage is used by the controller 152 to determine the current consumption of the water pump. This circuit 170 is not intended to be limiting and the current may be measured in any other manner as well.

    [0036] The user interface 114 may present information to a user. For example, the user interface 114 may present an alert when it is determined that a water pump is not properly functioning as described herein, other status information pertaining to the HVAC system 100, as well as any other types of information. The user interface 114 may also be configured to receive inputs from a user, such as a temperature setting and/or any other control instructions that may be provided by the user. For example, the user interface 114 may be a touchscreen display, but may also be provided in any other suitable form as well (for example, the user interface 114 may include physical buttons that a user may process to provide inputs to the HVAC system 100). The user interface 114 may be in communication with the controller 152 to provide information about inputs received from a user to the controller 152, display information received from the controller 152, etc.

    [0037] The one or more water pumps (for example, first water pump 120 and second water pump 122) may be used to transfer water produced within the indoor portion 102 and/or outdoor portion 104 of the HVAC system 100. For example, during a cooling mode of the HVAC system 100, condensate produced by the indoor coil 108 may accumulate in an indoor drain pan 107 of the indoor portion 102 (the indoor drain pan 107 is also shown in FIG. 3B as indoor drain pan 300). In a defrost operation during a heating mode of the HVAC system 100, the outdoor coil 128 may be defrosted to remove frost that forms on the outdoor coil 128 and the defrost water (melted) from the outdoor coil 128 may accumulate in an outdoor drain pan 127 (the outdoor drain pan 127 is also shown in FIG. 3B as outdoor drain pan 350). Water buildup may also occur within the indoor portion 102 and/or the outdoor portion 104 for other reasons.

    [0038] This accumulated water may be transferred from one portion of the HVAC system 100 to another portion of the HVAC system 100 to provide for improved heat transfer within the HVAC system 100. The improved heat transfer may result from evaporating the water onto the outdoor coil 128 and/or indoor coil 108. Improved heat transfer may also be accomplished by pumping the water to a sump loop. In some instances, the first water pump 120 may be dedicated to pumping water from the indoor portion 102 to the outdoor coil 128 and the second water pump 122 may be dedicated to pumping water from the outdoor portion 104 to the indoor coil 108. Particularly, the water pumped from the indoor portion 102 may be the condensate produced by the indoor coil 108 within the indoor portion 102 and the water pumped from the outdoor portion 104 may be the melted defrost water from the outdoor coil 128. However, other configurations, including any other number of water pumps, are possible.

    [0039] Additional data about the amount of water accumulation may also be obtained from the one or more sensors (such as sensor 124 and sensor 126). For example, the first sensor 124 and the second sensor 126 may be float switches that are provided at, or in, the base pans of the indoor portion 102 and/or outdoor portion 104. The first sensor 124 and the second sensor 126 may be provided at various heights within the indoor portion 102 and/or the outdoor portion 104 and may provide an indication of when the water level reaches these particular heights. Further details about the sensors are provided with respect to at least FIGS. 6 and 11.

    [0040] The water filter 118 may be used to filter the water to be substantially free of particulates or other materials such that the water pump(s) are protected. The water purifier 118 may be used to purify the water to remove any contaminants. For example, the water purifier 118 may be an ultraviolet (UV)-C light emitting diode (LED) or any other type of purifier. In scenarios where microbial films form on stagnant water, the water purifier 118, water pumps, and water filter 116 may be used to reduce or eliminate microorganisms and prevent clogging of the water transfer elements of the HVAC system 100.

    [0041] In some embodiments, the outdoor portion 104 may include an outdoor coil 128, an outdoor motor 130, and an outdoor fan 132 (which may include a slinger ring 133), a high pressure switch 140, a low pressure switch 141, a reversing valve 142, a compressor 143, and an electronic expansion valve (EEV) 146.

    [0042] The outdoor motor 130 may drive the outdoor fan 132. The outdoor fan 132 is used to facilitate heat exchange between surrounding air and refrigerant flowing through the outdoor coil 128. That is, as refrigerant flows through the outdoor coil 128, the outdoor motor 130 drives the outdoor fan 132, which blows air over the outdoor coil 128 to exchange heat (e.g., heat or cool) with the external environment. The outdoor fan 132 may also include a slinger ring 133. When the outdoor motor 130 drives the outdoor fan 132 and the outdoor fan 132 begins rotating, the outdoor fan 132 may come into contact with water that is accumulated within a base pan of the outdoor portion 104 of the HVAC system 100. As the outdoor fan 132 rotates, the slinger ring 133 may cause the accumulated water to be thrown from the base pan and against the outdoor coil 128. The flow of refrigerant may be controlled by the reversing valve 142 and the EEV 146.

    [0043] The high pressure switch 140 monitors pressure on a discharge side of the compressor 143. If the pressure surpasses a first threshold pressure value, the high pressure switch 140 opens to prevent the compressor 143 from being powered. The low pressure switch 141 provides the opposite functionality of the high pressure switch 140 and opens to prevent the compressor 143 from being powered if the pressure falls below a second threshold pressure value. If the pressure is too low, then there may be insufficient lubricant return to protect the components of the compressor 143.

    [0044] FIGS. 2A-2B are block diagrams illustrating the operation of the one or more water pumps to transfer water from the indoor portion 102 to the outdoor coil 128 and/or from the outdoor portion 104 to the indoor coil 108. The block diagrams represent top-down views of the HVAC system 100 of FIGS. 1A-1B.

    [0045] Beginning with FIG. 2A, a block diagram 200 is shown illustrating a cooling mode of the HVAC system 100 of FIGS. 1A-1B. Indoor water 202 (for example, in the form of condensate) is produced by the indoor coil 108 as a byproduct of the operation of the HVAC system 100. The indoor water 202 that is collected within the indoor portion 102 (for example, in the indoor base pan 107) is pumped to the outdoor coil 128 by the first water pump 120. The indoor water 202 may be pumped to the outdoor coil 128 through a first water line 204 and/or a second water line 206, as well as any other number of water lines. In some instances, the number of water lines that are used (or the specific water lines that are used) may depend on the back pressure within the system. The water lines may be made from any suitable material, such as insulated plastic tubes, metal tubes, etc. In some embodiments, the indoor water 202 is pumped to fine spray nozzles 208 that expel the cool water onto the outdoor coil 128 to cool the outdoor coil 128 and provide for more effective heat transfer. Any water that does not evaporate after being expelled onto the outdoor coil 128 may be slung back onto the outdoor coil 128 via the slinger ring 133 of the fan 132. A pressure relief valve may open if the back pressure increases beyond a threshold value to send water to a drip channel.

    [0046] Turning to FIG. 2B, a block diagram 250 is shown illustrating a defrost operation during a heating mode of the HVAC system 100 of FIGS. 1A-1B. In the defrost operation, frost that has formed on the outdoor coil 128 may be melted into water to prevent frost accumulation within the HVAC system 100. Gravity may cause the defrost water 252 to flow to a low point in a base pan of the outdoor portion 104 (for example, the outdoor base pan 127). The defrost water 252 may then be pumped from the outdoor portion 104, through a second water line 254, and into the indoor portion 102 using the second water pump 122. The defrost water 252 may also be pumped to the indoor portion 102 through any other number of water lines.

    [0047] In some embodiments, a coarse filter 256 provided at the outdoor portion 104 may be used to catch larger debris and prevent such debris from being transported through the water lines (which may cause blockage in the water lines). Additionally, a fine filter 258 may be provided at the indoor portion 102, which may be used to protect components within the indoor portion 102, such as the second water pump 122, the purifier 116, etc. The water received at the indoor portion 102 may then be pumped back to the outdoor portion 104 using the first water pump 120. Compressor heat and insulated tubing may be used to prevent water from freezing and to ensure that warm water is expelled from the fine spray nozzles 208 onto the outdoor coil 128 in this defrost operation.

    [0048] FIG. 4 illustrates a perspective view of an indoor drain pan 300 of the HVAC system 100 of FIGS. 1A-1B. Particularly, FIG. 4 shows indoor water 402 (which may be condensate) traveling across the indoor drain pan 300 towards one or more indoor water drains 302. That is, the indoor drain pan 300 may be angled such that indoor water 402 flows away from the electronics provided in the HVAC system, to a low point in the indoor drain pan 300 where the one or more indoor water drains 302 are located. This is also depicted in the side view of the indoor drain pan 300 in FIG. 5.

    [0049] FIG. 6 illustrates a perspective view of an indoor drain pan 300 of the HVAC system 100 of FIGS. 1A-1B. Particularly, FIG. 6 shows a close-up view of one or more sensors (for example, sensor 124 and sensor 126) that may be used by the HVAC system 100 to determine a water level within the indoor drain pan 300. FIG. 6 shows a first sensor 604, which may be a first float switch. The first sensor 604 may be provided at a greater height from the indoor drain pan 300 than a second sensor 606. When the first sensor 604 indicates that the water in the indoor drain pan 300 is at the height associated with the first sensor 604, the HVAC system may signal for the compressor to turn off (to prevent any further generation of water). Additionally, an alert and/or instructions may be presented via the user interface 114 of the HVAC system 100 and/or may be transmitted to any other device. For example, the alert and/or instructions may be generated by the controller 152 (or any other controller described herein or otherwise).

    [0050] When the second sensor 606 indicates that the water in the indoor drain pan 300 is at the height associated with the second sensor 606, the HVAC system 100 may signal the indoor condensate pump to turn on and pump water onto the top of the outdoor coil. If the float switch does not drop (e.g., open) or the current consumption of the water pump is low, an alert and/or instructions may be presented via the user interface 114 of the HVAC system 100 and/or may be transmitted to any other device.

    [0051] FIG. 6 also illustrates that the indoor drain pan 300 may include spill-over notches 602. These spill-over notches 602 may be located slightly above the height of the first sensor 604 to prevent water from entering an area of the HVAC system 100 that includes electrical control components, to prevent damage to such components.

    [0052] In some embodiments, the first sensor 604 may be provided 3/16 below the height of the spill-over notches 602 to reduce the likelihood that the water builds up to the height of the spill-over notches 602 and serves as another layer of protection against water overflow and damage to electronic components. In embodiments, the second sensor 606 may be provided at a height that is 3/16 to lower than the first sensor 604. However, these sensors may be provided at any other height. Additionally, any other number of sensors may be used. Finally, while reference is made to the use of float switches, any other types of sensors may also be used (further examples are described with respect to FIG. 11).

    [0053] FIGS. 7A-7B illustrate operation of the water pumps of the HVAC system 100 of FIGS. 1A-1B. Beginning with FIG. 7A, operation of the first water pump 120 that is used to pump water from the indoor portion 102 of the HVAC system 100 to the outdoor coil 128 is shown. Particularly, indoor water 702 is shown as flowing across the indoor drain pan 300. The indoor water 702 is pumped by the first water pump 120 through a water line 703 towards the outdoor spray nozzles. A pressure relief valve 706 may also be provided that may be used to divert some or all of the indoor water 702 directly to a top of the outdoor coil 128 if the pressure surpasses a threshold value.

    [0054] Turning to FIG. 7B, operation of the second water pump 122 that is used to pump defrost water 710 from the indoor portion 102 of the HVAC system 100 to the indoor coil 108 is shown. A fine filter 258 may be provided at the indoor portion 102, which may be used to protect components within the indoor portion 102, such as the second water pump 122, the purifier 116, etc. The defrost water 710 is pumped from the outdoor portion 104, through water lines 712, and into the indoor portion 102. Filtered and purified defrost water 710 may reside in the indoor drain pan 300 until the first water pump 120 turns on and pumps the defrost water 710 into the outdoor portion 106 to be sprayed onto the outdoor coil 128.

    [0055] FIG. 8 illustrates another example HVAC system 800. Particularly, FIG. 8 illustrates another type of window unit that does not include the bridge 106 shown in the HVAC system 100 of FIGS. 1A-1B. Similar to the HVAC system 100, the HVAC system 800 includes an indoor portion 802 including an indoor coil 804 and an outdoor portion 808 including an outdoor coil 810. However, the HVAC system 800 uses only a single water pump 810.

    [0056] Water that is produced, or collected, within the indoor portion 802 and/or the outdoor portion 808 may naturally transition to a low point within the HVAC system 800 by operation of gravity (for example, into a base pan 814 of the HVAC system 800, which may be the same as, for example, indoor base pan 300). The single water pump 810 and filter 812 may be used to transfer the cool water onto the top of the hot outdoor coil 810 in the cooling mode and transfer warm water onto the top of the frosted outdoor coil 810 during the defrost operation in the heating mode.

    [0057] FIG. 9A illustrates a flow diagram 900. The flow diagram 900 presents logic that may be used by the controller (for example, controller 152, controller 1108, etc.) of the HVAC system to monitor the status of water pumps within the HVAC system (and perform operations based on the determined information). Some or all of this logic may also be implemented on any other device or system (such as a remote server, a thermostat, a user device, etc.).

    [0058] The flow diagram 900 begins with operation 902, which involves measuring the current consumption of a water pump. For example, the controller may be in electrical communication with the water pump. As the water pump draws current from an energy source (such as a utility energy source to which the HVAC system is connected, a battery, etc.), the current draw may be determined by the controller (for example, using the circuit 170 shown in FIG. 1C).

    [0059] Once the current consumption of the water pump is determined, the determined current value may be compared to various pre-determined ranges or values of current values. That is, a particular type of water pump may normally exhibit current consumption values that fall within specific ranges of current values depending on the operation of the water pump. For example, the water pump may typically consume a first amount of current when the water pump is pumping at or close to 100% water, a second amount of current when the water pump is experiencing a blockage and is not pumping any water or is pumping less than a threshold amount of water, a third amount of current when the water pump is pumping a mixture of air and water (e.g., 50% air, 50% water), and a fourth amount of current when the water pump is pumping at or close to 100% air. These pre-determined ranges of current values may vary depending on the specific type or model of water pump.

    [0060] Additionally, while the flow diagram 900 illustrates a specific number of current value ranges including specific current values, these ranges and specific values included within the ranges are not intended to be limiting and are merely presented for illustrative purposes. For example, in some instances, only two or three (or any other number) ranges of current values may be used.

    [0061] At condition 904, the measured current value may be compared to a first range of current values. In the particular example shown in FIG. 9A, the first range of current values may include current values ranging from 80 mA to 90 mA. In some water pumps, a current consumption value falling within this range may indicate that the water pump is pumping at or close to 100% water and is functioning as intended. If condition 904 is met, then the operation of the water pump continues, and the flow diagram 900 loops back to operation 902 to periodically (or in real-time) perform further current consumption measurements.

    [0062] However, if condition 904 is not met, then the flow diagram 900 may continue to condition 906 and the measured current value may be compared to a second range of current values. In the particular example shown in FIG. 9A, the second range of current values may include current values ranging from 40 mA to 60 mA. In some water pumps, a current consumption value falling within this range may indicate that the water pump is pumping less than 100% water (that is, the water pump is pumping both water and air). In this case, the water pump may continue to function, however, a notification may be provided to a user at operation 907 to provide an indication that the water pump may not be functioning entirely as intended. This notification may be presented via a display of the HVAC system (for example, HVAC system 1106 and/or any other HVAC system), a user device (for example, user device 1102 and/or any other user device), etc.

    [0063] If condition 906 is also not met, then the flow diagram 900 may continue to condition 908 and the measured current value may be compared to a third range of current values. In the particular example shown in FIG. 9A, the third range of current values may include current values ranging from 20 mA to 30 mA. In some water pumps, a current consumption value falling within this range may indicate that the water pump is pumping substantially only air and no water, which may indicate that the water pump is not functioning as intended. For example, if water is present within the HVAC system that is intended to be pumped by the water pump and the current consumption value falls within this third range, then the water pump may not be functioning properly since it is not pumping any water. In this case, the flow diagram may proceed to operation 912 in which an alert is issued and/or operation of the water pump and/or the operation of the water pump(s) and/or the HVAC system as a whole may be ceased. This alert may be presented via a display of the HVAC system (for example, HVAC system 1106 and/or any other HVAC system), a user device (for example, user device 1102 and/or any other user device), etc. In some instances, data from the float switches (or other types of sensors described herein) may also be used to verify whether water is present in the HVAC system.

    [0064] If condition 908 is also not met, then the flow diagram 900 may continue to condition 910 and the measured current value may be compared to a third range of current values. In the particular example shown in FIG. 9A, the fourth range of current values may include current values that are above 180 mA. In some water pumps, a current consumption value falling within this range may indicate that the water pump is experiencing a blockage and not functioning properly. In this case, the flow diagram may also proceed to operation 912 in which an alert is issued and/or operation of the water pump and/or the HVAC system as a whole is ceased. This alert may be presented via a display of the HVAC system (for example, HVAC system 1106 and/or any other HVAC system), a user device (for example, user device 1102 and/or any other user device), etc.

    [0065] While the flow diagram 900 only illustrates that the current consumption of a water pump is compared to ranges of current values to determine actions to take with respect to the HVAC system, the controller may also consider other factors, such as a rate of change of the current consumption of a water pump. For example, a water pump may currently only be consuming 60 mA of current; however, the current consumption may be increasing at such a rate that the current consumption may rise above 180 mA within a given period of time. Thus, in some instances, even if the current consumption does not currently fall within a particular range of current values, the controller may predict that the current may eventually reach the range of current values based on the rate of change of the current. In this manner, the controller may cause an action to be taken that is otherwise normally associated with the current consumption being within a particular range of current values even if the current consumption is not currently within that particular range.

    [0066] Further, the operations shown in flow diagram 900 are merely intended to illustrate examples of actions that may be taken based on the comparison of a current measurement of a water pump to one or more ranges of current values. These specific actions are not intended to be limiting and any other actions may also be taken. As one example, a notification may not necessarily be provided if the current measurement falls within the second range of values.

    [0067] FIGS. 9B-9C are flow diagrams for water pump operation. Beginning with FIG. 9B, a flow diagram 920 is shown including control logic for a water pump (for example, water pump 120, water pump 122, or any other water pump described herein). The control logic may be implemented on a controller, such as controller 152 or controller 1108, for example.

    [0068] The flow diagram 920 begins with condition 922, which involves determining if there is a demand for operation of a water pump (for example, if the controller determines that the water pump should be used to pump water from an indoor portion of the HVAC system to the outdoor coil or from the outdoor portion of the HVAC system to the indoor coil). If condition 922 is met, then the flow diagram 920 proceeds to operation 924 and the pump is activated to begin pumping water. Operation 926 involves determining the amount of current that is being consumed by the water pump (for example, in accordance with the logic shown in FIG. 9A).

    [0069] Following operation 926, condition 928 involves determining, based on the current consumption, if the pump is causing water flow (that is, the pump is causing water to be pumped). Condition 928 may also involve determining if the pump has been activated for less than a threshold period of time (the figure shows 30 seconds, however, this is merely exemplary). If condition 928 is not met, then the flow diagram proceeds to condition 934. Condition 934 involves determining if a plugged outlet is detected (that is, if it is determined that the outlet on the discharge side of the water pump is blocked). If condition 934 is not met, then the flow diagram 920 proceeds back to operation 924 and the pump is run. If condition 934 is met, then the flow diagram 920 proceeds to operation 936 and a pump impeded error is flagged (which may indicate that there is a blockage impeding operation of the pump). That is, during the pump operation, if the current sensing circuit detects that the discharge side of the pump is blocked, the controller disengages operation of the pump and an error is flagged to a user. Operation 936 is followed by operation 938, which involves waiting a period of time. Once this period of time has elapsed, operation 940 involves activating the pump.

    [0070] If condition 928 is met, then the flow diagram 920 proceeds to condition 930, which involves determining if the pump has been running for more than a threshold period of time. If condition 930 is met, then operation 932 involves flagging an error that the pump has exceeded the threshold amount of time. Operation 932 is then follows by operation 938. If condition 930 is not met, the flow diagram 920 again proceeds to condition 934.

    [0071] Turning to FIG. 9C, flow diagram 950 illustrates further logic for demand for operation of a water pump. Flow diagram 950 begins with condition 952, which involves determining if a sensor is detecting that water has reached a particular threshold height within the HVAC system. For example, if sensor 124 or sensor 126 detects water (or any other sensor described herein). If condition 952 is met, then the flow diagram 950 proceeds to operation 956 and operation of the water pump is performed to pump the water. Following operation 956, the flow diagram 950 proceeds to operation 958, which involves the HVAC system waiting a period of time. If condition 952 is not met, then the flow diagram 950 proceeds to condition 952, which involves determining if the HVAC system has been performing cooling for a threshold period of time. If condition 954 is met, then the flow diagram 950 again proceeds to operation 956. If condition 954 is not met, the flow diagram 950 ends.

    [0072] FIG. 9D is a flow diagram 960 for sensor operation. Reference is made in FIG. 9D to float switch 1 and float switch 2, which may correspond to first sensor 604 and second sensor 606, however, any other types of sensors may also be used.

    [0073] Flow diagram 960 begins with condition 962, which involves determining if float switch 2 has been engaged for a threshold period of time (the figure shows 10 seconds, however, this is merely exemplary). If condition 962 is met, then the flow diagram 960 proceeds to operation 964 and an error is flagged by the HVAC system. Following operation 946, operation 966 involves disabling the compressor of the HVAC system to prevent cooling operation.

    [0074] If condition 962 is not met, then the flow diagram 960 proceeds to condition 968, which involves determining if an error has been flagged. If condition 968 is met, the flow diagram 960 proceeds to condition 970. If condition 968 is not met, the flow diagram 960 ends. Condition 970 involves determining if float switch 1 is engaged. If condition 970 is met, then the flow diagram 960 ends. If condition 970 is not met, then at operation 970 the error is cleared. At operation 974, the compressor is again enabled to enable a cooling operation by the HVAC system.

    [0075] FIGS. 13A-13C illustrate a flow diagram 1300 for defrost management logic. For example, the logic may be implemented in a controller associated with an HVAC system as described herein, such as controller 152, controller 1108, etc. Generally, within the flow diagram 1300, the first water pump filters dirty sump water and pumps the water to the indoor reservoir. The second water pump pumps water from the indoor reservoir to spray nozzles for the condenser coil. For example, the first and second water pumps may be water pumps 120 and 122 or any other water pumps described herein).

    [0076] The flow diagram 1300 begins with condition 1302 which involves determining that the temperature of the outdoor coil (for example, outdoor coil 128 or any other outdoor coil described herein) fails to satisfy a first temperature threshold. Failing to satisfy a temperature threshold may either refer to the temperature being less than or less than or equal to the threshold (based on the configuration of the system). For example, the first temperature threshold may be 28 degrees Fahrenheit (however, other temperature values may also be used for the first temperature threshold). If condition 1302 is met, then operation 1304 involves initiating a defrost mode. In one or more embodiments, the defrost mode may involve performing one or more actions, such as disabling the outdoor fan (for example, outdoor fan 132 or any other outdoor fan described herein), turning on a crankcase heater, turning on the reversing valve (for example, reversing valve 142 or any other reversing valve described herein), and/or turning on the indoor fan (for example, at 400 rpm, however, other fan speeds may also be used). The crank case heater may be a clamp electrical resistance heater installed around the bottom of the compressor. The crank case heater may provide heat to the compressor lubricant, before turning the compressor on when cold outside to ensure proper lubrication of the compressor internal moving parts. These operations shown as being performed as a part of the defrost mode of operation 1304 are merely exemplary and not intended to be limiting in any way. The defrost mode may also involve other actions being performed using any other components.

    [0077] Once the defrost mode is initiated, at operation 1306 the system may wait a period of time (FIGS. 13A-13C shows 1 minute as an example, however, other periods of time may also be used). After the period of time has elapsed, then the flow diagram 1300 may proceed to condition 1308, which involves checking the temperature of the outdoor coil (temperature values may be determined via one or more temperature sensors or any other suitable approach). If the temperature of the outdoor coil satisfies a second temperature threshold, then the flow diagram 1300 proceeds to operation 1310. Satisfying the temperature threshold may either refer to the temperature being greater than or greater than or equal to the threshold (depending on the configuration of the system). For example, the second temperature threshold may be 34 degrees Fahrenheit (however, other thresholds may be used). Otherwise, the flow diagram 1300 loops back to operation 1308 and waits another period of time during the defrost mode.

    [0078] Continuing with operation 1310, the first water pump (e.g., a pump that pumps defrost water from an outdoor section into an indoor section of a unit, such as second water pump 122 described above, for example) is activated. After the first water pump is activated, operation 1312 involves waiting for a period of time (for example, FIGS. 13A-13C shows this period of time as 15 seconds, however, other periods of time may also be used). Once the period of time has elapsed, condition 1314 involves checking the current and determining if air or water is being pumped. For example, as described elsewhere herein, the current consumption of a water pump may provide an indication as to the amount of water that the water pump is currently pumping. In some embodiments, the system may store pre-determined ranges of current values and may compare the measured current consumption of the water pump with the pre-determined ranges to determine the amount of water that the water pump is pumping. For example, when a discharge side is not blocked, and a water pump is pumping only air, the current consumption may be within a range of 20 to 30 mA. When the water pump is pumping approximately 50% water and 50% air, the water pump may consume 40 to 60 mA. When the water pump is pumping only water, the water pump may consume 80 to 90 mA. On the discharge side, when the water pump outlet of the water pump is blocked, the current consumption may rise to over 180 mA. Any other suitable techniques described herein or otherwise may also be used.

    [0079] If it is determined in condition 1314 that air is being pumped, then an alarm is produced at operation 1316 and the first water pump is turned off at operation 1318. The system waits another period of time (FIGS. 13A-13C shows 30 seconds, however, any other period of time may be used). Once the period of time has elapsed, the flow diagram 1300 returns to operation 1310 and the first water pump is again activated. If at condition 1314 if it is determined that the first water pump is blocked (or partially blocked), then at operation 1320 an alarm is produced.

    [0080] If, however, at condition 1314 it is determined that water is being pumped, then operation 1322 involves waiting a period of time for the clean reservoir to fill (FIGS. 13A-13C shows this period of time as 15 seconds, however, any other period of time may be used). After the period of time has elapsed, operation 1324 involves activating the second water pump (e.g., the pump that takes indoor water and sprays the water on the outdoor coil, such as the first water pump 120, for example). After the second water pump is activated, operation 1326 involves waiting for a period of time (for example, FIGS. 13A-13C shows this period of time as 15 seconds, however, other periods of time may also be used). Once the period of time has elapsed, condition 1328 involves checking the current and determining if air or water is being pumped (for example, using any technique described herein). If it is determined in condition 1328 that air is being pumped, then the first water pump is turned off at operation 1330. The system waits another period of time (FIGS. 13A-13C shows 30 seconds, however, any other period of time may be used). Once the period of time has elapsed, the flow diagram 1300 returns to operation 1324 and the first water pump is again activated. If at condition 1328 if it is determined that the first water pump is blocked (or partially blocked), then at operation 1332 an alarm is produced.

    [0081] If, however, at condition 1328 that water is being pumped, then operation 1334 involves starting a timing defrost cycle. Following operation 1334, condition 1336 involves determining if the low refrigerant pressure switch (for example, low pressure switch 141 or any other low pressure switch described herein) is active. If condition 1336 is met, then at operation 1338, an alarm is produced. At operation 1340, the EEV (for example, EEV 146 or any other EEV described herein) is slowly opened to increase the pressure. At condition 1342 it is again determined if the low pressure switch is active. If condition 1342 is met, then the flow diagram 1300 loops back to operation 1340. If condition 1342 is not met, then the flow diagram 1300 proceeds to condition 1344. The flow diagram 1300 also proceeds to condition 1344 if condition 1336 is not met.

    [0082] At condition 1344, it is determined if the temperature of the outdoor coil satisfies a third threshold temperature. In the example shown in FIGS. 13A-13C, the third temperature threshold is 95 degrees Fahrenheit, however, other thresholds may also be used. If condition 1344 is met, then operation 1346 involves exiting the defrost mode. When exiting the defrost mode, one or more actions may be taken, such as the outdoor fan may be enabled, the indoor fan may be disabled, the crankcase heat may be disabled, and/or the reversing valve may be disabled. However, these actions are merely exemplary and other actions may be taken. Operation 1348 may involve verifying exit conditions. The exit conditions may include, for example, opening the EEV by a certain amount (such as 50 steps or less, for example), delaying compressor shut down for a period of time (such as 90 second or any other period of time), determining if the total defrost time was greater than a threshold amount of time (FIGS. 13A-13C provides the example of five minutes, however, any other period of time may be used). However, any other exit conditions may also be used. An alarm may be produced if the temperature failed to raise significantly (as an example, failed to raise over a specified temperature, such as 95 degrees Fahrenheit, as one non-limiting example).

    [0083] If condition 1344 is not met, then condition 1350 involves determining if the total defrost time satisfies a threshold period of time. If condition 1350 is met, then the flow diagram 1300 proceeds to operation 1346 and exits the defrost mode. If condition 1350 is not met, then the flow diagram 1300 proceeds to condition 1352 which involves determining if the second water pump is still pumping water. If condition 1352 is met, then operation 1354 involves waiting for a period of time (FIGS. 13A-13C shows the period of time being one minute, however, any other period of time may be used). After the period of time has elapsed, the flow diagram 1300 proceeds to condition 1342. If condition 1352 is not met, then operation 1356 involves turning of the first and second water pumps and waiting a period of time (FIGS. 13A-13C shows the period of time as 15-30 seconds, however, any other period of time may be used). The flow diagram 1300 then proceeds to operation 1310.

    [0084] The defrost mode logic shown in FIG. 13 is merely one exemplary defrost approach and is not intended to be limiting. Another exemplary defrost approach may involve a method of estimating potential frost buildup without a relative humidity sensor. That is, the outdoor ambient air temperature and outdoor coil temperature and dwell times may be used to determine when to enter a defrost when operating in heating mode. The goal of this approach is to minimize the number of unnecessary defrosts, while at the same time maintaining good heating performance. This reduces power consumption, improves the comfort level by maintaining a more consistent set point temperature, and reduces the number of somewhat noisy switching cycles for the reversing valve. As with FIG. 13, this alternative defrost mode may be controlled using a controller as described herein.

    [0085] In this approach, the system may monitor the outdoor air temperature range and the time the unit dwells within said range and compare to the outdoor coil temperature. Based on bin hour data for different geographic regions, the dew point can be estimated from the typical dry bulb and corresponding wet bulb temperatures. The closer the wet bulb is to the dry bulb, the more humid the air will be and vice versa. Generally, dry-bulb temperature is the standard air temperature measured by a regular thermometer, while wet-bulb temperature is measured using a thermometer with a wet cloth around its bulb. At higher air temperatures, the air can hold more moisture and at colder air temperatures the air holds less moisture. For instance, at an outdoor air temperature of 47 F., the air has the potential to contain more water vapor than at 25 F., and much more water vapor than at 5 F., and so on. At 47 F., even if the coil temperature is below the dewpoint, the coil is not likely to frost because the coil is above freezing (32 F.). At 25 F., if the coil temperature is below the dewpoint, the coil may frost since the coil is below freezing (32 F.). The same would be the case at 5 F., however, because the number of grains of water per pound of air is much less, frost formation and accumulation will take substantially longer.

    [0086] In one or more embodiments, logic (for example, implemented by the controller, as mentioned above) can determine at what temperature delta between the outdoor air and outdoor coil the system is likely below the dew point and below freezing to begin generating frost. The system can estimate the amount of moisture in the air based on the outdoor temperature and estimate the number of grains per pound mass of air. At commanded fan speeds, the system can estimate the cubic feet per minute that the air is moving through the outdoor coil. The volume of water can be estimated and compared to the open-air volume of the coil. Once a designated volume of the coil is likely frosted, the defrost may be activated. If no defrost occurs when the coil is below a designated outdoor coil temp for designated amount of time, a defrost may be activated to ensure the coil does not frost to the point that heating performance is substantially decreased.

    [0087] FIG. 10 illustrates a method 1000, in accordance with one or more embodiments of the disclosure. The method 1000 may be performed by any of the systems or devices described herein (for example, controller 1108, user device 1102, remote server 1114, computing device 1200, and/or any other device and/or system described herein or otherwise).

    [0088] At block 1002, the method 1000 may include receiving, by a controller (for example, controller 1108, etc.) of a heating, ventilation, and air conditioning (HVAC) system (for example, HVAC system 100, HVAC system 800, HVAC system 1106, etc.), an indication of an amount of current being used by one or more water pumps (for example, water pump 120, water pump 122, water pump 1110, etc.) within the HVAC system.

    [0089] At block 1004, the method 1000 may include determining, by the controller and based on the amount of current being used, an amount of water being pumped by the one or more water pumps. The current consumption of a water pump may provide an indication as to the amount of water that the water pump is currently pumping. In embodiments, the system may store pre-determined ranges of current values and may compare the measured current consumption of the water pump with the pre-determined ranges to determine the amount of water that the water pump is pumping. For example when a discharge side is not blocked, and a water pump is pumping only air, the current consumption may be within a range of 20 to 30 mA. When the water pump is pumping roughly 50% water and 50% air, the water pump may consume 40 to 60 mA. When the water pump is pumping only, the water pump may consume 80 to 90 mA. On the discharge side, when the water pump outlet of the water pump is blocked, the current consumption may rise to over 180 mA. These ranges of current values are not intended to be limiting but are provided merely to illustrate exemplary ranges of values, any other ranges may also be used.

    [0090] At block 1006, the method 1000 may include performing, by the controller, an action based on the amount of water being pumped. For example, if it is determined that a water pump is not operating properly, the HVAC system may automatically cease operation to prevent damage and/or other undesirable impacts. The HVAC system may also control operation of other various types of HVAC components in any manner. As another example, the HVAC system may produce an error code or other type of alert to indicate to a user that the water pump is not properly operating. Any other types of suitable actions may also be taken.

    [0091] FIG. 11 illustrates a system 1100 including an HVAC system as described herein. In one or more embodiments, the system 1100 may include one or more user device(s) 1102, which may be associated with one or more user(s) 1103, one or more HVAC system(s) 1106 including one or more controller(s) 1108, one or more water pump(s) 1110, and/or one or more sensor(s) 1112, and/or one or more remote server(s) 1114. However, these components of the system 1100 are merely exemplary and are not intended to be limiting in any way. For simplicity, reference may be made hereinafter to a mobile user 1102, HVAC system 1106, controller 1108, water pump 1110, sensor 1112, remote server 1114, etc., however, this is not intended to be limiting and may still refer to any number of such elements.

    [0092] The HVAC system 1106 may include any number of different types of HVAC system that may be included within an environment (for example, an air conditioner, furnace, etc.). As one non-limiting example, the HVAC system 1106 may be the HVAC system 100 shown in FIGS. 1A-1B (which may be an HVAC system configured to be provided in a window of a residential home or a commercial building that includes an indoor unit and an outdoor unit), the HVAC system 800 shown in FIG. 8, and/or any other type of HVAC system. While reference is made to an HVAC system herein, this is not intended to be limiting and the systems and methods described herein may also be more generally applicable to any other type of system that uses water pump(s) to transfer water to one portion of the system to another portion of the system.

    [0093] The HVAC system 1106 may include a controller 1108 that is configured to perform any of the operations described herein. For example, the controller 1108 may receive and process data, such as current consumption data for the water pump(s) 1110, data received from the sensors 1110. The controller 1108 may also transmit instructions to various components of the HVAC system 1106 (or other elements of the system 1100 or otherwise) to control operation of such components, such as instructing a water pump 1110 to turn on or off, etc. The controller 1108 may also automatically take one or more actions based on any of the data that is received. For example, the controller 11100 may cease operation of one or more components of the HVAC system 1106, such as the water pump(s) 1110 and/or any other components. The controller 1110 may also generate an alert to present to the user 1103. Any reference to an HVAC system providing an instruction for a component to perform an action or perform any other functionality may refer to the controller 1108 performing such actions.

    [0094] The HVAC system 1106 may also include water pump(s) 1110 (which may be the same as water pump 120, water pump 122, and/or any other water pump described herein or otherwise) That is, one water pump 1110 may be used to pump water from an indoor portion of the HVAC system 1106 to an outdoor coil of the HVAC system 1106. Another water pump 1110 may be used to pump water from an outdoor portion of the HVAC system 1106 to an indoor coil of the HVAC system 1106. However, any other number of water pumps may also be used.

    [0095] The sensor(s) 1112 may include any type of sensor that may be used to provide an indication of a water level within the HVAC system 1106 at any given time. For example, the sensors 1112 may include the sensor 124 and/or the sensor 126 shown in FIGS. 1A-1B, as well as any other sensors described herein. As aforementioned, the sensor(s) 1112 may, in embodiments, include float switches. However, any other types of sensors and/or combinations of sensors may also be used. Further non-limiting types of sensors may include optical sensors (such as a camera, for example), proximity sensors, precipitation sensors, etc.

    [0096] Data received from the sensor(s) 1112 may be used in combination with the current readings received from the water pump(s) 810 to determine information about the operation of the water pump(s) 810. That is, the sensor(s) 1112 may also be used as redundancies to verify the determinations made by the controller(s) 808 based on the current readings from the water pump(s) 810. In some instances, only current consumption data or only data from the sensor(s) 1112 may be used by the HVAC system 1106 to take action (that is, the HVAC system 1106 does not necessarily require both sources of data to take a corresponding action). The water level data from the sensor(s) 1112 is beneficial because it may be desired to maintain the water in the HVAC system 1106 to below a particular threshold water level to mitigate or prevent damage to components within the HVAC system 1106 (or for other purposes).

    [0097] Additionally, in some instances, multiple of such sensor(s) 1112 may be provided at various heights within the HVAC system 1106 to indicate when the water level reaches various threshold heights. For example, as shown in FIG. 6, a first sensor 604 is provided at a greater height from the indoor drain pan 300 than a second sensor 606. Different actions may be taken by the HVAC system 1106 based on the detected water level. For example, also as described with respect to FIG. 6, when the first sensor 604 indicates that the water level is at the height of the first sensor 604, the HVAC system 1106 may instruct a compressor to turn off (to prevent any further generation of water). When the second sensor 606 indicates that the water in the indoor drain pan 300 is at the height associated with the second sensor 606, the HVAC system 100 may signal the indoor condensate pump to turn on and pump water onto the top of the outdoor coil.

    [0098] The user device 1102 may be any type of device, such as a smartphone, desktop computer, laptop computer, tablet, smart television (for example, a television with Internet connectivity, the capability to install applications, etc.), thermostat, and/or any other type of device. The user device 1102 may allow a user 1103 to interact with any of the other elements of the system 1100, such as the HVAC system 1106, for example. To facilitate these interactions, the user device 1102 may include an application 1104. The application 1104 may display a user interface to the user 1103 through the user device 1102. The application 1104 may allow the user 1103 to view information about the status of the HVAC system 1106. For example, the application 1104 may indicate whether the HVAC system 1106 is currently on or off, a temperature setting of the HVAC system 1106, a status of the water pump(s) 1110 or other components of the HVAC system 1106 (including any alerts generated based on the status of the water pump(s) 1110), and/or any other types of information. The application 1104 may also allow the user 1103 control functions of the HVAC system 1106, such as turning on and/or off the HVAC system 1106, adjusting a temperature setting associated with the HVAC system 1106, and/or any other functionality.

    [0099] In some embodiments, the remote server 1114 may be used to perform some of the processing described herein. For example, the remote server 1114 may be configured to analyze current readings from the water pump(s) 1110 and/or information from the sensor(s) 1112 to determine if an action needs to be taken). However, some or all of this processing may also be performed locally at the HVAC system 1106 and/or the user device 1102 as well. That is, the remoter server 1114 may be optional and may not be used in all instances.

    [0100] Any of the elements of the system 1100, such as the one or more mobile device(s) 1102, the one or more HVAC system(s) 1106 (including one or more controller(s) 1108, one or more water pump(s) 1110, and/or one or more sensor(s) 1112), and/or the one or more remote server(s) 1114, may communicate via a communications network 1120. The communications network 1120 may include, but are not limited to, any one of a combination of different types of suitable communications networks such as, for example, broadcasting networks, cable networks, public networks (e.g., the Internet), private networks, wireless networks, cellular networks, or any other suitable private and/or public networks. Additional details about example communications networks may be described with respect to FIG. 12 as well.

    [0101] Further, any of the elements of the system 1100, such as the one or more mobile device(s) 1102, the one or more HVAC system(s) 1106 (including one or more controller(s) 1108, one or more water pump(s) 1110, and/or one or more sensor(s) 1112), and/or the one or more remote server(s) 1114 may include any of the components of the computing device(s) 1200 described with respect to FIG. 12. That is, as illustrated in the figure, these elements of the system 1100 may include one or more processor(s), memory, and/or module(s), as well as at least any other elements described as being included in the computing device(s) 900. That is, although the figure may only depict a particular element of system 1100 as having one or more processors, memory, and one or more modules, this may not be intended to be limiting in any way.

    [0102] FIG. 12 is a schematic block diagram of one or more illustrative computing device(s) 1200 in accordance with one or more example embodiments of the disclosure. The computing device(s) 1200 may include any suitable computing device including, but not limited to, a server system, a mobile device such as a smartphone, a tablet, an e-reader, a wearable device, or the like; a desktop computer; a laptop computer; a content streaming device; a set-top box; or the like. The computing device(s) 1200 may correspond to an illustrative device configuration for any of the computing systems described herein and/or any other system and/or device.

    [0103] The computing device(s) 1200 may be configured to communicate via one or more networks. Such network(s) may include, but are not limited to, any one or more different types of communications networks such as, for example, cable networks, public networks (e.g., the Internet), private networks (e.g., frame-relay networks), wireless networks, cellular networks, telephone networks (e.g., a public switched telephone network), or any other suitable private or public packet-switched or circuit-switched networks. Further, such network(s) may have any suitable communication range associated therewith and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs). In addition, such network(s) may include communication links and associated networking devices (e.g., link-layer switches, routers, etc.) for transmitting network traffic over any suitable type of medium including, but not limited to, coaxial cable, twisted-pair wire (e.g., twisted-pair copper wire), optical fiber, a hybrid fiber-coaxial (HFC) medium, a microwave medium, a radio frequency communication medium, a satellite communication medium, or any combination thereof.

    [0104] In an illustrative configuration, the computing device(s) 1200 may include one or more processors (processor(s)) 1202, one or more memory devices 1204 (generically referred to herein as memory 1204), one or more input/output (I/O) interfaces 1206, one or more network interfaces 1208, one or more sensors or sensor interfaces 1210, one or more transceivers 1212, one or more optional speakers 1214, one or more optional microphones 1216, and data storage 1220. The computing device(s) 1200 may further include one or more buses 1218 that functionally couple various components of the computing device(s) 1200. The computing device(s) 1200 may further include one or more antenna (e) 1234 that may include, without limitation, a cellular antenna for transmitting or receiving signals to/from a cellular network infrastructure, an antenna for transmitting or receiving Wi-Fi signals to/from an access point (AP), a Global Navigation Satellite System (GNSS) antenna for receiving GNSS signals from a GNSS satellite, a Bluetooth antenna for transmitting or receiving Bluetooth signals, a Near Field Communication (NFC) antenna for transmitting or receiving NFC signals, and so forth. These various components will be described in more detail hereinafter.

    [0105] The bus(es) 1218 may include at least one of a system bus, a memory bus, an address bus, or a message bus, and may permit the exchange of information (e.g., data (including computer-executable code), signaling, etc.) between various components of the computing device(s) 1200. The bus(es) 1218 may include, without limitation, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, and so forth. The bus(es) 1218 may be associated with any suitable bus architecture including, without limitation, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnect (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, and so forth.

    [0106] The memory 1204 of the computing device(s) 1200 may include volatile memory (memory that maintains its state when supplied with power) such as random access memory (RAM) and/or non-volatile memory (memory that maintains its state even when not supplied with power) such as read-only memory (ROM), flash memory, ferroelectric RAM (FRAM), and so forth. Persistent data storage, as that term is used herein, may include non-volatile memory. In certain example embodiments, volatile memory may enable faster read/write access than non-volatile memory. However, in certain other example embodiments, certain types of non-volatile memory (e.g., FRAM) may enable faster read/write access than certain types of volatile memory.

    [0107] In various implementations, the memory 1204 may include multiple different types of memory such as various types of static random access memory (SRAM), various types of dynamic random access memory (DRAM), various types of unalterable ROM, and/or writeable variants of ROM such as electrically erasable programmable read-only memory (EEPROM), flash memory, and so forth. The memory 1204 may include main memory as well as various forms of cache memory such as instruction cache(s), data cache(s), translation lookaside buffer(s) (TLBs), and so forth. Further, cache memory such as a data cache may be a multi-level cache organized as a hierarchy of one or more cache levels (L1, L2, etc.).

    [0108] The data storage 1220 may include removable storage and/or non-removable storage, including, but not limited to, magnetic storage, optical disk storage, and/or tape storage. The data storage 1220 may provide non-volatile storage of computer-executable instructions and other data. The memory 1204 and the data storage 1220, removable and/or non-removable, are examples of computer-readable storage media (CRSM) as that term is used herein.

    [0109] The data storage 1220 may store computer-executable code, instructions, or the like that may be loadable into the memory 1204 and executable by the processor(s) 1202 to cause the processor(s) 1202 to perform or initiate various operations. The data storage 1220 may additionally store data that may be copied to the memory 1204 for use by the processor(s) 1202 during the execution of the computer-executable instructions. Moreover, output data generated as a result of execution of the computer-executable instructions by the processor(s) 1202 may be stored initially in the memory 1204, and may ultimately be copied to the data storage 1220 for non-volatile storage.

    [0110] More specifically, the data storage 1220 may store one or more operating systems (O/S) 1222; one or more database management systems (DBMSs) 1224; and one or more program module(s), applications, engines, computer-executable code, scripts, or the like such as, for example, one or more module(s) 1226. Some or all of these module(s) may be sub-module(s). Any of the components depicted as being stored in the data storage 1220 may include any combination of software, firmware, and/or hardware. The software and/or firmware may include computer-executable code, instructions, or the like that may be loaded into the memory 1204 for execution by one or more of the processor(s) 1202. Any of the components depicted as being stored in the data storage 1220 may support functionality described in reference to corresponding components named earlier in this disclosure.

    [0111] The data storage 1220 may further store various types of data utilized by the components of the computing device(s) 1200. Any data stored in the data storage 1220 may be loaded into the memory 1204 for use by the processor(s) 1202 in executing computer-executable code. In addition, any data depicted as being stored in the data storage 1220 may potentially be stored in one or more datastore(s) and may be accessed via the DBMS 1224 and loaded in the memory 1204 for use by the processor(s) 1202 in executing computer-executable code. The datastore(s) may include, but are not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like.

    [0112] The processor(s) 1202 may be configured to access the memory 1204 and execute the computer-executable instructions loaded therein. For example, the processor(s) 1202 may be configured to execute the computer-executable instructions of the various program module(s), applications, engines, or the like of the computing device(s) 1200 to cause or facilitate various operations to be performed in accordance with one or more embodiments of the disclosure. The processor(s) 1202 may include any suitable processing unit capable of accepting data as input, processing the input data in accordance with stored computer-executable instructions, and generating output data. The processor(s) 1202 may include any type of suitable processing unit including, but not limited to, a central processing unit, a microprocessor, a reduced instruction set computer (RISC) microprocessor, a complex instruction set computer (CISC) microprocessor, a microcontroller, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a system-on-a-chip (SoC), a digital signal processor (DSP), and so forth. Further, the processor(s) 1202 may have any suitable microarchitecture design that includes any number of constituent components such as, for example, registers, multiplexers, arithmetic logic units, cache controllers for controlling read/write operations to cache memory, branch predictors, or the like. The microarchitecture design of the processor(s) 1202 may be capable of supporting any of a variety of instruction sets.

    [0113] Referring now to functionality supported by the various program module(s) depicted in FIG. 12, the flash tank control module(s) 1226 may include computer-executable instructions, code, or the like that responsive to execution by one or more of the processor(s) 1202 may perform functions including, but not limited to, performing current measurements, comparing current values with varying pre-determined ranges of current values, determining status information for a water pump, producing an alert, ceasing operation of an HVAC system, etc.

    [0114] Referring now to other illustrative components depicted as being stored in the data storage 1220, the O/S 1222 may be loaded from the data storage 1220 into the memory 1204 and may provide an interface between other application software executing on the computing device(s) 1200 and the hardware resources of the computing device(s) 1200. More specifically, the O/S 1222 may include a set of computer-executable instructions for managing hardware resources of the computing device(s) 1200 and for providing common services to other application programs (e.g., managing memory allocation among various application programs). The O/S 1222 may include any operating system now known or which may be developed in the future, including, but not limited to, any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.

    [0115] The DBMS 1224 may be loaded into the memory 1204 and may support functionality for accessing, retrieving, storing, and/or manipulating data stored in the memory 1204 and/or data stored in the data storage 1220. The DBMS 1224 may use any of a variety of database models (e.g., relational model, object model, etc.) and may support any of a variety of query languages. The DBMS 1224 may access data represented in one or more data schemas and stored in any suitable data repository including, but not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like. In those example embodiments in which the computing device(s) 1200 is a mobile device, the DBMS 1224 may be any suitable lightweight DBMS optimized for performance on a mobile device.

    [0116] Referring now to other illustrative components of the computing device(s) 1200, the I/O interface(s) 1206 may facilitate the receipt of input information by the computing device(s) 1200 from one or more I/O devices as well as the output of information from the computing device(s) 1200 to one or more I/O devices. The I/O devices may include any of a variety of components such as a display or display screen having a touch surface or touchscreen; an audio output device for producing sound, such as a speaker; an audio capture device, such as a microphone; an image and/or video capture device, such as a camera; a haptic unit; and so forth. Any of these components may be integrated into the computing device(s) 1200 or may be separate. The I/O devices may further include, for example, any number of peripheral devices such as data storage devices, printing devices, and so forth.

    [0117] The I/O interface(s) 1206 may also include an interface for an external peripheral device connection such as a USB, FireWire, Thunderbolt, Ethernet port or other connection protocol that may connect to one or more networks. The I/O interface(s) 1206 may also include a connection to one or more of the antenna(e) 1234 to connect to one or more networks via a wireless local area network (WLAN) (such as Wi-Fi) radio, Bluetooth, ZigBee, and/or a wireless network radio, such as a radio capable of communication with a wireless communication network such as a Long Term Evolution (LTE) network, WiMAX network, 3G network, etc. I

    [0118] The computing device(s) 1200 may further include one or more network interface(s) 1208 via which the computing device(s) 1200 may communicate with any of a variety of other systems, platforms, networks, devices, and so forth. The network interface(s) 1208 may enable communication, for example, with one or more wireless routers, one or more host servers, one or more web servers, and the like via one or more networks.

    [0119] The antenna(e) 1234 may include any suitable type of antenna depending, for example, on the communications protocols used to transmit or receive signals via the antenna(e) 1234. Non-limiting examples of suitable antennae may include directional antennae, non-directional antennae, dipole antennae, folded dipole antennae, patch antennae, multiple-input multiple-output (MIMO) antennae, or the like. The antenna(e) 1234 may be communicatively coupled to one or more transceivers 1212 or radio components to which or from which signals may be transmitted or received.

    [0120] The sensor(s)/sensor interface(s) 1210 may include or may be capable of interfacing with any suitable type of sensing device such as, for example, pressure sensors, cameras, etc.

    [0121] It should be appreciated that the program module(s), applications, computer-executable instructions, code, or the like depicted in FIG. 12 as being stored in the data storage 1220 are merely illustrative and not exhaustive and that processing described as being supported by any particular module may alternatively be distributed across multiple module(s) or performed by a different module. In addition, various program module(s), script(s), plug-in(s), application programming interface(s) (API(s)), or any other suitable computer-executable code hosted locally on the computing device(s) 1200, and/or hosted on other computing device(s) accessible via one or more networks, may be provided to support functionality provided by the program module(s), applications, or computer-executable code depicted in FIG. 12 and/or additional or alternate functionality. Further, functionality may be modularized differently such that processing described as being supported collectively by the collection of program module(s) depicted in FIG. 12 may be performed by a fewer or greater number of module(s), or functionality described as being supported by any particular module may be supported, at least in part, by another module. In addition, program module(s) that support the functionality described herein may form part of one or more applications executable across any number of systems or devices in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth. In addition, any of the functionality described as being supported by any of the program module(s) depicted in FIG. 12 may be implemented, at least partially, in hardware and/or firmware across any number of devices.

    [0122] It should further be appreciated that the computing device(s) 1200 may include alternate and/or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the computing device(s) 1200 are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative program module(s) have been depicted and described as software module(s) stored in the data storage 1220, it should be appreciated that functionality described as being supported by the program module(s) may be enabled by any combination of hardware, software, and/or firmware. It should further be appreciated that each of the above-mentioned module(s) may, in various embodiments, represent a logical partitioning of supported functionality. This logical partitioning is depicted for ease of explanation of the functionality and may not be representative of the structure of software, hardware, and/or firmware for implementing the functionality. Accordingly, it should be appreciated that functionality described as being provided by a particular module may, in various embodiments, be provided at least in part by one or more other module(s). Further, one or more depicted module(s) may not be present in certain embodiments, while in other embodiments, additional module(s) not depicted may be present and may support at least a portion of the described functionality and/or additional functionality. Moreover, while certain module(s) may be depicted and described as sub-module(s) of another module, in certain embodiments, such module(s) may be provided as independent module(s) or as sub-module(s) of other module(s).

    [0123] One or more operations of the methods, process flows, and use cases of FIGS. 1-11 may be performed by a device having the illustrative configuration depicted in FIG. 12, or more specifically, by one or more engines, program module(s), applications, or the like executable on such a device. It should be appreciated, however, that such operations may be implemented in connection with numerous other device configurations.

    [0124] Although specific embodiments of the disclosure have been described, one of ordinary skill in the art will recognize that numerous other modifications and alternative embodiments are within the scope of the disclosure. For example, any of the functionality and/or processing capabilities described with respect to a particular device or component may be performed by any other device or component. Further, while various illustrative implementations and architectures have been described in accordance with embodiments of the disclosure, one of ordinary skill in the art will appreciate that numerous other modifications to the illustrative implementations and architectures described herein are also within the scope of this disclosure.

    [0125] Certain aspects of the disclosure are described above with reference to block and flow diagrams of systems, methods, apparatuses, and/or computer program products according to example embodiments. It will be understood that one or more blocks of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and the flow diagrams, respectively, may be implemented by execution of computer-executable program instructions. Likewise, some blocks of the block diagrams and flow diagrams may not necessarily need to be performed in the order presented, or may not necessarily need to be performed at all, according to some embodiments. Further, additional components and/or operations beyond those depicted in blocks of the block and/or flow diagrams may be present in certain embodiments.

    [0126] Accordingly, blocks of the block diagrams and flow diagrams support combinations of means for performing the specified functions, combinations of elements or steps for performing the specified functions, and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and flow diagrams, may be implemented by special-purpose, hardware-based computer systems that perform the specified functions, elements or steps, or combinations of special-purpose hardware and computer instructions.

    [0127] Program module(s), applications, or the like disclosed herein may include one or more software components, including, for example, software objects, methods, data structures, or the like. Each such software component may include computer-executable instructions that, responsive to execution, cause at least a portion of the functionality described herein (e.g., one or more operations of the illustrative methods described herein) to be performed.

    [0128] A software component may be coded in any of a variety of programming languages. An illustrative programming language may be a lower-level programming language such as an assembly language associated with a particular hardware architecture and/or operating system platform. A software component comprising assembly language instructions may require conversion into executable machine code by an assembler prior to execution by the hardware architecture and/or platform.

    [0129] Another example programming language may be a higher-level programming language that may be portable across multiple architectures. A software component comprising higher-level programming language instructions may require conversion to an intermediate representation by an interpreter or a compiler prior to execution.

    [0130] Other examples of programming languages include, but are not limited to, a macro language, a shell or command language, a job control language, a script language, a database query or search language, or a report writing language. In one or more example embodiments, a software component comprising instructions in one of the foregoing examples of programming languages may be executed directly by an operating system or other software component without having to be first transformed into another form.

    [0131] A software component may be stored as a file or other data storage construct. Software components of a similar type or functionally related may be stored together such as, for example, in a particular directory, folder, or library. Software components may be static (e.g., pre-established or fixed) or dynamic (e.g., created or modified at the time of execution).

    [0132] Software components may invoke or be invoked by other software components through any of a wide variety of mechanisms. Invoked or invoking software components may comprise other custom-developed application software, operating system functionality (e.g., device drivers, data storage (e.g., file management) routines, other common routines, and services, etc.), or third-party software components (e.g., middleware, encryption, or other security software, database management software, file transfer or other network communication software, mathematical or statistical software, image processing software, and format translation software).

    [0133] Software components associated with a particular solution or system may reside and be executed on a single platform or may be distributed across multiple platforms. The multiple platforms may be associated with more than one hardware vendor, underlying chip technology, or operating system. Furthermore, software components associated with a particular solution or system may be initially written in one or more programming languages, but may invoke software components written in another programming language.

    [0134] Computer-executable program instructions may be loaded onto a special-purpose computer or other particular machine, a processor, or other programmable data processing apparatus to produce a particular machine, such that execution of the instructions on the computer, processor, or other programmable data processing apparatus causes one or more functions or operations specified in the flow diagrams to be performed. These computer program instructions may also be stored in a CRSM that upon execution may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means that implement one or more functions or operations specified in the flow diagrams. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational elements or steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process.

    [0135] Additional types of CRSM that may be present in any of the devices described herein may include, but are not limited to, programmable random access memory (PRAM), SRAM, DRAM, RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the information and which can be accessed. Combinations of any of the above are also included within the scope of CRSM. Alternatively, computer-readable communication media (CRCM) may include computer-readable instructions, program module(s), or other data transmitted within a data signal, such as a carrier wave, or other transmission. However, as used herein, CRSM does not include CRCM.

    [0136] Although embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the disclosure is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the embodiments. Conditional language, such as, among others, can, could, might, or may, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments could include, while other embodiments do not include, certain features, elements, and/or steps. Thus, such conditional language is not generally intended to imply that features, elements, and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements, and/or steps are included or are to be performed in any particular embodiment.