US20190314243A1 - Systems and Methods for Controlling Pool/Spa Devices - Google Patents
Systems and Methods for Controlling Pool/Spa Devices Download PDFInfo
- Publication number
- US20190314243A1 US20190314243A1 US16/387,396 US201916387396A US2019314243A1 US 20190314243 A1 US20190314243 A1 US 20190314243A1 US 201916387396 A US201916387396 A US 201916387396A US 2019314243 A1 US2019314243 A1 US 2019314243A1
- Authority
- US
- United States
- Prior art keywords
- pool
- processor
- spa
- circuits
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000006854 communication Effects 0.000 claims abstract description 73
- 238000004891 communication Methods 0.000 claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 56
- 230000006870 function Effects 0.000 claims abstract description 53
- 230000003213 activating effect Effects 0.000 claims abstract description 20
- 230000003993 interaction Effects 0.000 claims description 18
- 238000012544 monitoring process Methods 0.000 claims description 13
- 239000003086 colorant Substances 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 abstract description 9
- 230000001795 light effect Effects 0.000 abstract 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 40
- 239000000126 substance Substances 0.000 description 24
- ZAMOUSCENKQFHK-UHFFFAOYSA-N Chlorine atom Chemical compound [Cl] ZAMOUSCENKQFHK-UHFFFAOYSA-N 0.000 description 11
- 239000000460 chlorine Substances 0.000 description 11
- 229910052801 chlorine Inorganic materials 0.000 description 11
- 230000004913 activation Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 150000003839 salts Chemical class 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 5
- 238000001816 cooling Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000000422 nocturnal effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000002253 acid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005660 chlorination reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 238000007710 freezing Methods 0.000 description 2
- 230000008014 freezing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000009182 swimming Effects 0.000 description 2
- 102100029272 5-demethoxyubiquinone hydroxylase, mitochondrial Human genes 0.000 description 1
- OYPRJOBELJOOCE-UHFFFAOYSA-N Calcium Chemical compound [Ca] OYPRJOBELJOOCE-UHFFFAOYSA-N 0.000 description 1
- 101000770593 Homo sapiens 5-demethoxyubiquinone hydroxylase, mitochondrial Proteins 0.000 description 1
- VEXZGXHMUGYJMC-UHFFFAOYSA-N Hydrochloric acid Chemical compound Cl VEXZGXHMUGYJMC-UHFFFAOYSA-N 0.000 description 1
- 230000002378 acidificating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 239000011575 calcium Substances 0.000 description 1
- 229910052791 calcium Inorganic materials 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 235000011167 hydrochloric acid Nutrition 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- ZFSLODLOARCGLH-UHFFFAOYSA-N isocyanuric acid Chemical compound OC1=NC(O)=NC(O)=N1 ZFSLODLOARCGLH-UHFFFAOYSA-N 0.000 description 1
- 230000033116 oxidation-reduction process Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000011012 sanitization Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H1/00—Apparatus for passive exercising; Vibrating apparatus ; Chiropractic devices, e.g. body impacting devices, external devices for briefly extending or aligning unbroken bones
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H33/00—Bathing devices for special therapeutic or hygienic purposes
- A61H33/005—Electrical circuits therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/2809—Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/281—Exchanging configuration information on appliance services in a home automation network indicating a format for calling an appliance service function in a home automation network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H33/00—Bathing devices for special therapeutic or hygienic purposes
- A61H33/005—Electrical circuits therefor
- A61H2033/0058—Electrical circuits therefor controlled by the user
- A61H2033/0079—Electrical circuits therefor controlled by the user using remote control signal transmission devices, e.g. ultrasonic, infrared
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H33/00—Bathing devices for special therapeutic or hygienic purposes
- A61H33/005—Electrical circuits therefor
- A61H2033/0083—Illumination
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H2201/00—Characteristics of apparatus not provided for in the preceding codes
- A61H2201/50—Control means thereof
- A61H2201/5007—Control means thereof computer controlled
- A61H2201/501—Control means thereof computer controlled connected to external computer devices or networks
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H2201/00—Characteristics of apparatus not provided for in the preceding codes
- A61H2201/50—Control means thereof
- A61H2201/5023—Interfaces to the user
- A61H2201/5043—Displays
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H2201/00—Characteristics of apparatus not provided for in the preceding codes
- A61H2201/50—Control means thereof
- A61H2201/5058—Sensors or detectors
- A61H2201/5082—Temperature sensors
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H2201/00—Characteristics of apparatus not provided for in the preceding codes
- A61H2201/50—Control means thereof
- A61H2201/5097—Control means thereof wireless
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2642—Domotique, domestic, home control, automation, smart house
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
- H04L12/282—Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L2012/284—Home automation networks characterised by the type of medium used
- H04L2012/2841—Wireless
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L2012/2847—Home automation networks characterised by the type of home appliance used
- H04L2012/285—Generic home appliances, e.g. refrigerators
Definitions
- a system may include a plurality of pool or spa devices, a wireless transceiver, a control system coupled to a remote device via an electronic communication network and the wireless transceiver, the control system being configured to selectively control a plurality of circuits of the plurality of pool or spa devices.
- the control system may include a memory device configured to store definitions of a first feature circuit and a first logic function, the first feature circuit corresponding to a first subset of the plurality of circuits and being associated with the first logic function, the first logic function defining how the first subset of the plurality of circuits is to be controlled when the first feature circuit is activated, a plurality of communication ports comprising at least one local area network communication port and a plurality of serial communication ports, the at least one local area communication network port being coupled to the wireless transceiver, and the plurality of serial communication ports being coupled to at least one of the plurality of pool or spa devices, a processor coupled to the plurality of communication ports and the memory device, the processor being configured to execute computer-readable instructions.
- the computer-readable instructions may cause the processor to receive command data from the remote device via the electronic communication network, and, in response to a first command of the command data, activate the first feature circuit to selectively control the first subset of the plurality of circuits according to the first logic function.
- a method may include steps for establishing a connection over a computer network between a controller of a pool control system and one or more servers of the pool control system, the controller comprising a processor, a memory electronically accessible by the processor, a wireless transceiver in electronic communication with the processor and configured to connect to the computer network, and a plurality of communication ports electrically connecting the controller to at least one pool or spa device, the one or more servers being geographically remote from the controller, receiving first command data on the one or more servers from a client device configured to display a user interface and to generate the first command data in response to a detected interaction with the user interface, with the one or more servers, sending the first command data to the controller, in response to the first command data, storing, by the processor in the memory of the controller, definitions of a first feature circuit and a first logic function associated with the first feature circuit, the first feature circuit corresponding to a first plurality of circuits corresponding to the at least one pool or spa device, the first logic function defining how the first plurality of
- a system may include a first web server communicatively coupled an electronic communication network, a first web application programming interface (API) server coupled to the first web server, a database server comprising at least one database, the database server being coupled to the first web API server, and a control system configured to control and collect system data from a plurality of pool and spa devices.
- the control system may include a memory device configured to store computer-readable instructions and to store the system data, a processor configured to execute the computer-readable instructions.
- the computer-readable instructions when executed, may cause the processor to periodically upload the system data to the at least one database via the first web server, the first web API server, and the database server, receive command data from a remote client device via the first web API server and the first web server, store, in response to a first command of the command data, definitions of a first feature circuit and a first logic function in a memory device of the control system, the first feature circuit corresponding to a first set of circuits of the plurality of pool or spa devices, the first logic function defining how the one or more circuits are to be controlled when the first feature circuit is activated, and, in response to a second command of the command data, determine that the second command includes a request to activate the first feature circuit, obtain the definitions from the memory device, identify the first set of circuits based on the definitions, and control the first set of circuits according to the first logic function.
- FIG. 1A is a diagram of a computing environment for deploying a network enabled control system in accordance with an embodiment.
- FIG. 1B is a block diagram of an example embodiment of various Internet of Things (IoT) pool and spa devices that may be connected to the load center and expansion panels of the network enabled control system, in accordance with an embodiment.
- IoT Internet of Things
- FIG. 2 is an illustrative home screen of a user interface that may be shown via an electronic display of a local or remote user device or control panel, which may facilitate the monitoring and control of connected devices in and around a pool/spa, in accordance with an embodiment.
- FIG. 3A is an illustrative usage screen showing a summary view of various usage data parameters and sensor data parameters over two consecutive periods, in accordance with an embodiment.
- FIG. 3B is an illustrative usage screen showing a graphical view of pH level compared to ORP level for a pool or spa over a two day period, in accordance with an embodiment.
- FIG. 4 is an illustrative light group control screen of a user interface that may be shown via an electronic display of a local or remote user device or control panel, through which groups of connected light circuits may be selected and controlled to perform various user defined and/or predefined functions, in accordance with an embodiment.
- FIG. 5 is a flow chart of an example embodiment of a method by which all light circuits of a selected light group may be synchronized and rotated in response to a sync command.
- FIG. 6 is a flow chart of an example embodiment of a method by which all light circuits of a selected light group may be synchronized and rotated in a predefined sequence, with delays being applied between the rotations of consecutive lights in the light group in response to a swim command.
- FIG. 7 is a flow chart of an example embodiment of a method by which all light circuits of a selected light group may be set to the same color in response to a set command.
- FIG. 8 is a flow chart of an example embodiment of a method by which all circuits that are assigned freeze protection may be activated in response to detecting a sufficiently low ambient temperature when a freeze protection setting is active.
- FIG. 9 is a flow chart of an example embodiment of a method by which predefined rules associated with the operation or prevention of operation of a pool cleaner pump may be implemented.
- FIG. 10 is a flow chart of an example embodiment of a method by which a firmware update for a device connected to the control system may be retrieved and distributed via the control system load center.
- FIG. 11A is a block diagram of an example embodiment of an illustrative system architecture by which communication between back-end servers and front-end devices may be facilitated.
- FIG. 11B is a block diagram of an example embodiment showing a portion of the system architecture of FIG. 11A , in which a pool/spa computer system is connected to a first server and a user device client is connected to a second server.
- FIGS. 1A and 1B illustrate an example computing environment 100 for wired and/or wireless monitoring and control of electronic and mechanical devices 110 (e.g., pool/spa devices 110 ) that are deployed in a physical environment, such as a pool/spa environment that includes at least one pool and/or spa 112 , via a control system load center 102 and, optionally, expansion panels 108 that may be electrically coupled to the control system load center 102 .
- the control system load center 102 may include one or more LAN communication ports 104 , one or more serial communication ports 106 , and a processor 103 (sometimes referred to herein as a control system processor) that is coupled to the LAN ports 104 and the serial ports 106 .
- the control system load center 102 may additionally include one or more computer memory devices (not shown).
- one or more expansion panels 108 may be connected to the control system load center 102 (e.g., via one or more serial ports 106 of the control system load center 102 ), which may allow the number of control connections and/or relays used to control the pool/spa devices 110 to be expanded beyond the number that would be available in the control system load center 102 alone.
- the pool/spa devices 110 may be coupled to, integrated with, in fluid communication with, and/or disposed proximal to the pool and/or spa 112 . As shown in FIG.
- the pool/spa devices 110 may include one or more of a chemical controller 140 , smart valves 142 , pumps 144 , heaters 146 , lights 148 , sensors 150 , an automatic pool cover 152 , jets 154 , and/or an automatic cleaner 156 .
- the chemical controller 140 may be part of a water chemistry system in fluid communication with the pool and/or spa 112 .
- the chemical controller 140 may cause the water chemistry system to sanitize (e.g., via the application of chlorine and/or other applicable chemicals to the water of the pool and/or spa 112 ) and/or pH balance (e.g., via the application of acidic or basic chemicals to the pool and/or spa 112 , which may be performed in based on a pH level of the water of the pool and/or spa 112 detected via one or more pH sensors of the water chemistry system) the water of the pool and/or spa 112 .
- sanitize e.g., via the application of chlorine and/or other applicable chemicals to the water of the pool and/or spa 112
- pH balance e.g., via the application of acidic or basic chemicals to the pool and/or spa 112 , which may be performed in based on a pH level of the water of the pool and/or spa 112 detected via one or
- the chemical controller 140 may be configured to supply a predetermined amount (e.g., user-defined or service-professional-defined via interaction with the control system load center 102 ) of chlorine or other sanitization chemical to the water of the pool and/or spa 112 at programmed (e.g., user-defined or service-professional-defined via interaction with the control system load center 102 ), regularly scheduled intervals.
- the chemical controller 140 may be configured to perform a “super chlorination” function, in which currently set chlorine output levels are overridden, and a higher, “super chlorination” output level (e.g., 100% output) is set for a selectable period of time (e.g., 24 hours).
- One or more smart valves 142 may be included in the pool/spa devices 110 and coupled to and controlled by the control system load center 102 and/or the expansion panels 108 .
- a given smart valve 142 may include a motorized valve actuator and a valve controlled by the valve actuator having at least an inlet and an outlet through which water may be selectively allowed or disallowed to flow, based on commands received by the valve actuator from the control system load center 102 and/or expansion panels 108 .
- a valve actuator of a given smart valve 142 may control the flow of water through the corresponding valve according to a defined water flow percentage.
- a user may set (e.g., via interaction with a user interface displayed on an electronic screen of one of control panels 116 , 126 or user devices 127 , 128 , 130 , 134 , as will be described) a water flow percentage of 75% for a given smart valve 142 and, in response, the valve actuator of the smart valve 142 may cause the corresponding valve to be opened to 75% of its maximum.
- smart valves 142 may be included as one or more of an intake valve (e.g., coupled between the outlet of a pool/spa pump, which may be included in pumps 144 , and the pool and/or spa 112 ), a return valve (e.g., coupled between the inlet of the pool/spa pump and the pool and/or spa 112 ), a water-feature valve, a solar heater valve, a valve for an in-floor cleaner (e.g., automatic cleaner 156 ), and/or other applicable valves that may be included in the pool and/or spa environment.
- one or more of the smart valves 142 may be included in one or more programmable feature circuits (e.g., defined in memory of the control system load center 102 ), as will be described.
- One or more pumps 144 may be included in the pool/spa devices 110 .
- the pumps 144 may include one or more of: a pool filter pump, a spa filter pump, a combined pool/spa filter pump and/or an automatic cleaner pump.
- the filter pump may be a variable speed pump, having two or more selectable pump speeds.
- the control system load center may control the speed at which the filter pump operates.
- a user and/or service technician may define the speed at which the filter pump operates via interaction with a user interface displayed on an electronic screen of one of control panels 116 , 126 or user devices 127 , 128 , 130 , 134 .
- a schedule may be created via the user interface, which may define one or more pump speeds at which the filter pump is to be commanded to operate at different times of day and/or on different days of the week, and may define one or more time periods at which the filter pump is to be turned off.
- a user or service technician may define programmable “feature circuits,” (i.e., programmed switching circuits), as will be described. These feature circuits may be defined in a memory device of the control system load center 102 , for example.
- the heaters 146 may include one or more of a solar heater, a gas heater, an electric heater (e.g., an electric heat pump), and/or a hybrid heater (e.g., which may combine a solar heater with a gas and/or electric heater).
- the heaters 146 may be activated in response to selection by a user via a user interface (e.g., displayed on an electronic screen of one of control panels 116 , 126 or user devices 127 , 128 , 130 , 134 ) or may automatically activate at a predefined time according to a user-created schedule. For systems with multiple heaters 146 , a user may select the type or types of heater to activate during a particular time period via the user interface.
- a nocturnal cooling feature may be selectively enabled, which provides automatic cooling of pool water during nighttime hours, which may be beneficial for pools that overheat in hot climates.
- the nocturnal cooling feature may be activated in response to selection by a user via a user interface (e.g., displayed on an electronic screen of one of control panels 116 , 126 or user devices 127 , 128 , 130 , 134 ) or may automatically activate at a predefined time according to a user-created schedule.
- the nocturnal cooling feature may operate by circulating warm pool water through the solar collector panels at night (e.g., when the collector panels may be cooler than the pool water), which may lower the temperature of the pool water over time.
- the lights 148 may include one or more lights that may be any applicable combination of: color changing, submersible, multi-light assemblies, single-light assemblies, light emitting diodes (LEDs), and/or incandescent. As will be described, the lights 148 may be organized into light groups, such that particular functions (e.g., color changing, strobing, pulsing, “swimming”, etc.) of the lights in a given light group may be activated in a synchronized way and/or according to a predefined configuration. In some embodiments, a “light group” may be defined group to which one or more light circuits of the lights 148 have been assigned. For example, light groups may be defined in a memory device of the control system load center 102 .
- the sensors 150 may include flow sensors, temperature sensors, chemical sensors (e.g., chlorine/pH sensors), splash sensors, and/or any other applicable sensor that may be coupled to the pool and/or spa 112 and/or coupled to or integrated with one or more of the pool/spa devices 110 .
- Each of the sensors 150 may produce respective sensor data, which may differ in format and the property being sensed, depending on the type of sensor being used.
- flow sensors generate and output flow data corresponding to a detected flow rate of water passing through or proximal to the flow sensors; temperature sensors generate and output temperature data corresponding to detected temperature; chlorine sensors generate and output chlorine level data corresponding to detected chlorine levels in water; pH sensors generate and output pH level data corresponding to detected pH levels in water; splash sensors generate and output motion data, which may be a binary representation that goes high when motion is detected over a predefined threshold and low otherwise, or which may be a more complex representation that logs the magnitudes of detected motion over time.
- Sensor data generated by the sensors 150 may be transmitted to one or more of the servers 136 , 137 (e.g., via the control system load center) and stored in one or more databases stored on one or more memory devices thereof.
- the sensor data may be collected and stored locally before being sent to the servers 136 , 137 .
- the sensor data may be accessed from the servers 136 , 137 by any of user devices 127 , 128 , 130 , 134 , for example.
- the sensor data may be displayed on a user interface on an electronic screen of such user devices in the form of raw data and/or graphs. Sensor data may be displayed in this way for a selected (e.g., selected by the user via interaction with the user interface) time period, such as over the course of hours, days, weeks, months, or years, for example.
- the pool cover 152 may be may include a pool cover sensor switch (e.g., in the form of an electric/mechanical switch, which may be a “dry contact”) that may be open or close a circuit (e.g., a circuit coupled to the control system load center 102 or the expansion panels 108 ) based on whether the pool cover 152 is in an open position or a closed position. .
- the control system load center 102 may identify whether the pool cover is open or closed (e.g., with open referring to a state in which the pool cover does not cover the pool, and closed referring to a state in which the pool cover does cover the pool).
- the operation of various pool/spa circuits and/or feature circuits may be controlled based on whether the pool cover is open or closed (e.g., determined based on whether the pool cover sensor switch is opened or closed).
- a pool cover interface screen of the user interface may allow a user to define which pool/spa circuits of the pool/spa device 110 , which feature circuits/groups, and which light circuits/groups are activated or deactivated when the pool cover switch is opened and, separately, when the pool cover switch is closed.
- the chlorine output of the chemical controller may be decreased (e.g., to 20% of max), laminar flow features may be disabled, and/or a speed of the filter pump may be reduced.
- the jets 154 may be disposed at the floor, walls, or other structures of the pool and/or spa 112 , and designed to output pressurized water.
- the jets 154 may be turned on or off based on commands received from the control system load center 102 or the expansion panels 108 .
- the jets 154 may be controlled by sending commands one or more actuators of the smart valves 142 and/or one or more of the pumps 144 , rather than controlling the jets themselves.
- the pressure output by the jets 154 may be selectively controllable (e.g., based on user input to a user interface displayed on an electronic screen of one of control panels 116 , 126 or user devices 127 , 128 , 130 , 134 ).
- the jets 154 may be configured to operate according to a user-defined schedule.
- the automatic cleaner 156 may, for example, be a floor-based automatic cleaner, robotic automatic cleaner, pressure-side automatic cleaner, and/or suction-side automatic cleaner.
- the automatic cleaner 156 may be turned on or off based on commands received from the control system load center 102 or the expansion panels 108 .
- the automatic cleaner 156 may be configured to operate according to a user-defined schedule.
- the automatic cleaner 156 may include an automatic cleaner pump, the operation of which may be limited based on whether other pool/spa devices (e.g., a solar heater of the heaters 146 , a spa pump, etc.) are active, as will be described later in connection with FIG. 9 .
- control system load panel 102 and the expansion panels 108 may be connected to one or more of the pool/spa devices 110 through various wired connections.
- the control system load panel 102 may include multiple high voltage relays (e.g., 120 V and/or 240 V) in addition to the serial communication ports 106 and LAN ports 104 , through which the pumps 144 , and lights 148 of the pool/spa devices 110 may be selectively powered.
- the control system load panel 102 and/or the expansion panels 108 may include one or more low voltage control ports and relays (e.g., capable of outputting and/or controlling low voltage control signals, which may be 12V, 24V, or another applicable voltage).
- expansion boards may be installed in the system load panel 102 and/or the expansion panels 108 , which may provide additional high or low power relays and/or control ports (e.g., for controlling the smart valves 142 ).
- control system load center 102 may be natively or retroactively enabled to connect to the internet or another wide-area network (WAN) cloud 132 via a base station/gateway/router 124 to send and receive electronic data.
- WAN wide-area network
- some or all of the pool/spa devices may be Internet of Things (IoT) devices.
- IoT devices may be embedded with electronics, software, sensors, actuators, and network connectivity, either within the device itself or in cooperation with one or more connected servers 136 , which enable the IoT devices and their embedded software to collect and exchange data.
- the IoT devices of the pool/spa devices 110 may communicate with the servers 136 and/or remote user devices 134 via electronic communication between the control system load center 102 and the pool/spa devices 110 (e.g., via serial ports 106 of the control system load center 102 , and/or a wireless transceiver, such as wireless transceiver 114 ), via communication between the control system load center 102 and the base station/gateway/router 124 (e.g., via LAN ports 104 of the control system load center 102 and/or via the wireless transceiver 122 ), and via communication between the base station/gateway/router 124 and the remote user devices 134 and/or servers 136 via the WAN 132 .
- a wireless transceiver such as wireless transceiver 114
- pool/spa devices 110 may include serial communications capabilities and may be connected to the control system load center 102 via serial ports 106 , some or all of the pool/spa devices 110 may include wireless communication capabilities.
- wireless enabled devices of the pool/spa devices 110 may connect to and communicate with the control system load center 102 via the wireless transceiver 114 or through the wireless transceiver 122 via a wireless connection to the base station/gateway/router 124 .
- control system load center 102 may include a wireless access point to which these wireless enabled devices may connect.
- communication between the control system load center 102 and these wireless enabled devices may be performed, such that data is wirelessly transmitted from a wireless enabled device to the base station/gateway/router 124 or another base station/gateway/router that is part of a separate LAN, then the data is passed through the internet/WAN network 132 to servers 136 / 137 , the servers then passing the data back through the internet/WAN network 132 , through the base station/gateway/router 124 , through the wireless transceiver 122 and/or the LAN ports 104 to the control system load center 102 .
- This latter example may allow a single control system load center 102 to communicate with and control multiple sets of wireless enabled pool/spa devices that may be communicatively coupled to multiple LANs, thereby allowing for the control and monitoring of multiple pools and/or spas at different locations with a single control system load center 102 .
- one or more of the expansion panels 108 may also be wireless enabled (e.g., containing or being coupled to a wireless network interface circuit/module), and may utilize wireless communication to send and receive data to/from the control system load center 102 using data paths similar to those examples described above in connection with the wireless enabled pool/spa devices.
- wireless enabled e.g., containing or being coupled to a wireless network interface circuit/module
- local user devices 127 which may include smartphones and client computers, such as a mobile computing device 128 and a client computing device 130 , respectively, may communicate with the pool/spa devices 110 via the base station/gateway/router 124 , the control system load center 102 , and/or the expansion panels 108 .
- the wireless transceivers 122 and 114 may be auxiliary devices (e.g., such as wireless dongles) that are connected to the control system load center 102 via connections to LAN ports 104 and serial ports 106 of the control system load center 102 , respectively.
- the wireless transceivers 122 and 114 may be internal components of the control system load center 102 (e.g., as part of one or more printed circuit boards, network interface cards, and/or other applicable substrates).
- the wireless transceiver 122 may communicate with the base station/gateway/router 124 via a wireless communication protocol, which may be, for example, a communication protocol corresponding to one or more of the IEEE 802.11 standards, such as Wi-FiTM (e.g., operating in the 2.4 and/or 5 GHz bands).
- one or more of the LAN ports 104 of the control system load center may alternatively or additionally be electrically coupled to the base station/gateway/router 124 via a physical, wired connection (e.g., via an Ethernet cable, such as CAT5/CAT5e/CAT6).
- a physical, wired connection e.g., via an Ethernet cable, such as CAT5/CAT5e/CAT6.
- various IoT devices of the pool/spa devices 110 in an environment 100 may send and/or receive data transmissions over the WAN 132 , a local area network (LAN) (e.g., consisting of local devices connected to the base station/gateway router 124 ), and/or another communication network using any suitable communication protocol.
- the IoT devices may communicate over the LAN (e.g., via the base station/gateway router 124 ) with the local client computing device 130 , such as in a private network where transmitted data to/from the IoT devices is isolated from the internet or another WAN 132 , at least until the data is processed by the local client computing device 130 .
- Local user devices 127 may also be connected to the base station/gateway router 124 in order to access the data generated by the IoT devices as described below.
- IP connectivity may be used, connecting the LAN corresponding to the base station/gateway/router 124 to the Internet or another WAN 132 , so that remote user devices 134 (e.g., remote smart phones, computers, and other applicable network-enabled client devices) and servers 136 may communicate with the control system load center 102 and/or the pool/spa devices 110 .
- IoT devices of the pool and spa devices 110 and/or the control system load center 102 may communicate with and directly use the resources of one or more physical, remote server computing devices of the servers 136 , which may be deployed in one or more data centers (for example) in a particular geographic location or dispersed throughout several geographic locations.
- the servers 136 may cooperate to provide virtualized computing resources that can be allocated for use by, for example, an authorized user of a computing resource service provider.
- a user that controls, or provides services for, the IoT devices of the pool/spa devices 110 and/or the control system load center 102 may configure and deploy one or more virtual servers 137 that are allocated the use of certain physical computing resources, such as processor cycles, memory, data storage, etc., of the physical servers 136 ; the IoT devices of the pool/spa devices 110 and/or the control system load center 102 may, in turn, be configured to connect to the virtual servers 137 .
- an IoT device may be programmed to connect to an IP address associated with an endpoint that connects a virtual network adapter of the servers 137 to a physical network adapter of the physical servers 136 .
- the virtual servers 137 or the computing resource service provider's computing environment in which the virtual servers 137 are deployed, may provide other computing resource services for implementing an IoT platform.
- a user may operate one or more local user devices 127 , which may include client computing devices 130 , such as a desktop or laptop computer, or a mobile computing device 128 such as a phone or tablet, running client software that enables the devices 127 , 128 , 130 to access an interface to the IoT platform provided by a server 136 , 137 .
- client computing devices 130 such as a desktop or laptop computer
- mobile computing device 128 such as a phone or tablet
- client software that enables the devices 127 , 128 , 130 to access an interface to the IoT platform provided by a server 136 , 137 .
- Each of these client computing devices 127 , 128 , 130 may include at least one processor executing specific computer-executable instructions (i.e., the running software) stored in a memory coupled to the client computing device.
- the user may access and run a client-based software such as a web browser or web application, in order to request access to the system level software and/or the GUI (e.g., by entering a Uniform Resource Locator (URL) for a web page including the GUI).
- This request may identify the IP address for the server(s), as well as instructions to generate and render the GUI and/or web page for the system level software.
- the server(s) may execute one or more software instructions to generate and render the GUI, and transmit it to the client computing device 127 , 128 , 130 for display.
- the server(s) 136 , 137 may include components and data processing capabilities used to host and run software applications that allow for bi-directional communication between each IoT device of the pool/spa devices 110 and/or the control system load center 120 and the server(s).
- the server(s) may host the customizable software that is deployed to, and installed on, each IoT device and/or the control system load center 102 .
- the server(s) may also run the software and protocols for other services used by the IoT platform, as well as for the interface to the client computing devices 127 , 128 , 130 .
- Example uses of the user interface to the IoT platform include configuring and deploying server resources, configuring and deploying software and settings for IoT devices, obtaining and/or reviewing data collected by the server(s) from the IoT devices of the pool/spa devices (e.g., viewing current status and/or historical data collected over time), performing and/or reviewing data analysis, accessing particular IoT devices, etc.
- the computing devices 127 , 128 , 130 and/or the control panels 116 , 126 may act as “control devices” for the control system load center 102 , and may send commands to the control system load center 102 in the form of one or a series of control signals (sometimes referred to as “command data”).
- control system load center 102 may selectively activate, deactivate, or otherwise control one or more pool/spa devices 110 , one or more feature circuits, feature circuit groups, and/or light groups and corresponding logic functions may be defined (e.g., programmed) for circuits of the pool/spa devices 110 , and/or settings of the control system load center 102 may be customized.
- a given feature circuit may be defined in memory (e.g., in response to corresponding command data received from a client device) along with a logic function that causes all circuits assigned to the feature circuit to be turned off, a logic function that causes all circuits assigned to the feature circuit to be turned on, a logic function that causes a first subset of the circuits assigned to the feature circuit to be turned off any time a second subset of the circuits assigned to the feature circuit are turned on, a logic function that defines time-based rules for the activation and/or deactivation of at least a first circuit assigned to the feature circuit in relation to the activation and/or deactivation of at least a second circuit assigned to the feature circuit (e.g., the first circuit must be turned on for at least five minutes before the second circuit is turned on; the first circuit must be turned off for at least ten minutes if the second circuit is turned on while the first circuit is on, etc.), or other applicable logic functions.
- the logic function associated with a feature circuit defines how pool/spa device circuit
- a client device may send a first command to the control system load center 102 (e.g., or a processor thereof), the first command defining a feature circuit according to circuits (e.g., pool/spa device circuits) assigned to the feature circuit (e.g., in response to user input provided at a user interface of the client device), and the first command further defining a corresponding logic function that is to be performed in connection with the circuits assigned to the feature circuit when the feature circuit is activated.
- the control system load center 102 e.g., or a processor thereof
- the first command defining a feature circuit according to circuits (e.g., pool/spa device circuits) assigned to the feature circuit (e.g., in response to user input provided at a user interface of the client device), and the first command further defining a corresponding logic function that is to be performed in connection with the circuits assigned to the feature circuit when the feature circuit is activated.
- the control system load center 102 may cause definitions of the feature circuit and the logic function to be stored in a memory device of the control system load center 102 .
- the client device may later send a second command to the control system load center 102 , the second command requesting the activation of the feature circuit that was defined based on the first command.
- a processor of the control system load center 102 may retrieve the definitions of the feature circuit and the logic function from the memory device in response to the second command.
- the processor of the control system load center 102 may identify the pool/spa device circuits assigned to the feature circuit based on the definition of the feature circuit.
- the processor of the control system load center 102 may then selectively control the circuits assigned to the feature circuit according to the logic function.
- Various dedicated devices such as a “QuickTouch” remote 120 , a wireless control panel 116 , and/or an indoor control panel 126 , may be configured to interact with (e.g., control and/or retrieve data from or related to—via wired or wireless electronic communication) the control system load center 102 and/or the pool/spa devices 110 .
- the indoor control panel 126 may be electrically coupled to and in electronic communication with the control system load center 102 (e.g., via a serial connection, such as a RS 485 connection).
- the indoor control panel 126 may include an electronic screen that may display a user interface through which a user may interact with the control system load center 102 and the pool/spa devices 110 .
- the electronic screen of the indoor control panel 126 may be a capacitive touch screen.
- the wireless control panel 116 may be wirelessly connected to the control system load center 102 via a wireless transceiver 114 that may be connected to (e.g., via a serial connection, such as RS 485 , between the wireless transceiver 114 and the serial ports 106 ) or integrated with the control system load center 102 .
- wireless communication between the wireless control panel 116 and the wireless transceiver 114 may be performed according to a predefined wireless communication protocol, which may be, for example, a personal area network (PAN) communication protocol such as Bluetooth®.
- PAN personal area network
- the wireless control panel 116 may be a portable device (e.g., battery powered).
- the battery of the wireless control panel 116 may be recharged by placing the wireless control panel 116 in a docking station (e.g., sometimes referred to as a “cradle”), which may interface with contacts of the wireless control panel 116 through which the docking station supplies power to recharge the battery of the wireless control panel 116 .
- the wireless control panel 116 may be water resistant, so that handling the wireless control panel 116 with wet hands or incidental splashing of the wireless control panel 116 will not substantially damage the device.
- the wireless control panel 116 may include an electronic screen that may display a user interface through which a user may interact with the control system load center 102 and the pool/spa devices 110 .
- the electronic screen of the wireless control panel 116 may be a capacitive touch screen.
- the QuickTouch remote 120 may be similarly wirelessly coupled to the wireless transceiver 114 according to a similar or the same protocol as used by the wireless control panel 116 .
- the QuikTouch remote 120 may communicate with the wireless transceiver 114 via a default or user-defined “remote channel”, which may correspond to a particular radio frequency (RF) communication frequency or frequency band.
- the QuickTouch remote may include a finite number of buttons, rather than a screen with a user interface.
- Each button of the QuickTouch remote may be programmed (e.g., via the user interface accessible via the wireless control panel 116 , the indoor control panel 126 , and/or or local or remote user devices 127 , 128 , 130 , 134 ) to, in response to being pressed, cause a defined operation of one or more of the pool/spa devices 110 to be performed.
- a given button of the QuickTouch remote may be configured to increase or decrease a temperature of a spa via control of one or more of the heaters 146 , to activate, deactivate, or otherwise control the pool or spa lights 148 (e.g., initiating, in some embodiments, the performance predefined “light shows” by groups of lights of the pool/spa devices 110 , as will be described), to activate or de-activate the pool and/or spa jets 154 , and/or to cause any other applicable function of the pool/spa devices 110 to be performed.
- FIG. 2 shows an illustrative home screen 200 of a user interface which may be displayed on an electronic screen of a computing device (e.g., the wireless control panel 116 , the indoor control panel 126 , and/or or local or remote user devices 127 , 128 , 130 , 134 of FIG. 1A ).
- the home screen 200 may include a number of icons 202 , 204 , 206 , 208 , 210 , 212 , 214 , 216 , 218 , 220 , 222 , 224 , 226 .
- Icon 202 shown as a pool in the present example, may be selected by a user to access a pool screen of the user interface.
- operation of the pool filter pump e.g., of pumps 144 of FIG. 1B
- operation of one or more heaters e.g., of heaters 146 of FIG. 1B
- the temperature of the pool may be set to a defined temperature (e.g., a setpoint temperature)
- restrictions on the pool pump may be overridden while a freeze protection mode is active (as will be described).
- Icon 204 shown as a spa in the present example, may be selected by a user to access a spa screen of the user interface.
- operation of the spa pump e.g., of pumps 144 of FIG. 1B
- operation of one or more heaters e.g., of heaters 146 of FIG. 1B
- a spa water temperature setpoint may be defined and/or restrictions on the pool pump may be overridden while the freeze protection mode is active (as will be described).
- Icon 206 shown as a waterfall feature in the present example, may be selected by a user to access a feature screen of the user interface.
- individual feature circuits or groups of feature circuits may be controlled (e.g., turned on and off).
- a user or service technician may define one or more feature circuits via the user interface (e.g., of wireless control panel 116 , the indoor control panel 126 , and/or or local or remote user devices 127 , 128 , 130 , 134 of FIG. 1A ).
- These feature circuits may allow advanced functions to be selectively performed without wasting valuable relay outputs or auxiliary (AUX) circuits.
- AUX auxiliary
- feature circuits provide flexibility in that they may be added or deleted via interaction with the user interface, which may not be possible for auxiliary circuits (e.g., without adding or removing a physical expansion panel/card).
- a feature circuit may be assigned for controlling multiple valve actuators (e.g., smart valves 142 of FIG. 1A ) in a system.
- a feature circuit may be assigned (i.e., programmed) as a way to select the speed of a 2 -speed or other variable speed filter pump (e.g., pumps 144 of FIG. 1A ).
- a feature circuit may also be assigned to activate a spa spillway effect, where in a pool/spa combination (e.g., pool and/or spa 112 of FIG. 1A ), the pool water can be diverted to the spa and then spill back to the pool.
- multiple circuits corresponding to one or more pool/spa devices e.g. pool/spa devices 110 of FIG.
- a “pool/spa device circuit” may refer to an electric circuit that controls whether one or more corresponding pool/spa devices are turned on or off, may refer to an electric circuit that controls the speed of a variable speed pump, and/or may refer to an electric circuit that controls a characteristic (e.g., light color, level of valve actuation) of a pool/spa device.
- each circuit assigned to the feature circuit may be defined as “on,” “off,” or “undefined” (e.g., “don't care”), such that, when a given feature circuit is activated, all circuits of the feature circuit defined as “on” may be turned on, all circuits of the feature circuit defined as “off” may be turned off, and all circuits of the feature circuit that are “undefined” may be left unchanged.
- a feature circuit group may be defined for a number of feature circuits.
- the feature circuit group may allow multiple feature circuits to be turned on and/or off with a single button press at the user interface, by activating or deactivating the feature circuit group via the single button press.
- valve actuators screen can be provided in the user interface for configuring valve actuators to be controlled by one or more feature circuits.
- the system e.g., the control system load center 102 of FIG. 1A and 1B
- Icon 208 shown as a pool light in the present example, may be selected by a user to access a light screen of the user interface.
- individual lights or defined groups of lights may be selectively controlled.
- An example of the light screen is described below (e.g., in connection with FIG. 3 ).
- individual or groups of color lights may be turned on or off, color set, color sync, and color swim features may be selectively activated, and preset light shows may be activated. Color set, color sync, and color swim features are described below (e.g., in connection with FIGS. 5-7 ).
- Icon 210 may be selected by a user to access a schedule screen of the user interface.
- daily pool/spa operations e.g., operations of the pool/spa devices 110 of FIGS. 1A, 1B
- a separate “vacation mode” daily pool/spa operational schedule may be defined by the user via the schedule screen, or a sub-screen thereof.
- This vacation mode schedule may be active only when a user initiates vacation mode (e.g., via selection of a vacation mode button displayed on the schedule screen of the user interface).
- Icon 212 shown as a bar chart in the present example, may be selected by a user to access a usage screen of the user interface.
- usage data e.g., for one or more of the pool/spa devices 110 of FIG. 1A, 1B
- a sensor data may be displayed.
- the displayed sensor data may be include data collected from sensors (e.g., sensors 150 of FIG. 1B ) that are coupled to pool/spa devices and/or that are disposed in the general area of the pool and/or spa (e.g., ambient temperature sensors) over time.
- the usage data and the sensor data may be stored locally on one or more memory devices of one or more local computer systems and/or remotely on one or more memory devices of one or more remote computer systems (e.g., local user devices 127 and/or servers 136 , 137 of FIG. 1A ).
- the usage data may include heater usage (e.g., gas heater usage, heat pump usage, hybrid heater usage), pump usage (e.g., pool pump usage, spa pump usage, automatic cleaner pump usage), chemical feed time (e.g., pH feed time, oxidation-reduction potential (ORP) feed time), and/or pump speed (e.g., for variable speed pumps).
- the sensor data may include air temperature (e.g., measured by an ambient temperature sensor of the sensors 150 of FIG.
- pool water temperature e.g., measured by a water temperature sensor of the sensors 150 of FIG. 1B
- spa water temperature e.g., measured by a water temperature sensor of the sensors 150 of FIG. 1B
- solar temperature e.g., measured by a temperature sensor of the sensors 150 of FIG. 1B that is in thermal communication with a solar panel of a solar heater coupled to the pool and/or spa
- pH level data e.g., measured by a pH sensor of the sensors 150 of FIG. 1B , which may be coupled to or integrated with a chemical controller, such as chemical controller 140 of FIG. 1B
- ORP level data e.g., measured by a ORP sensor of the sensors 150 of FIG.
- usage data and sensor data are intended to be illustrative and not limiting. If desired, other applicable usage and/or sensor data may be collected, stored, and displayed on the usage screen.
- the displayed usage data and sensor data may be displayed as a graph, group of graphs, and/or as a list, and may correspond to a selected time period (e.g., with only usage and sensor data corresponding to the selected time period being displayed).
- the user may be provided with multiple options via the usage screen that allow the selection of a type of usage data or sensor data to view and a time period over which to view the selected data (e.g., which may be defined in days, weeks, months, or years).
- the options may include an option for the display of two or more selected types of usage data and/or sensor data to display on a single graph (e.g., which may be used to compare the data of the selected types).
- a user may select average daily air temperature and daily gas heater usage to be displayed on a single graph of the usage screen over a period of one month.
- the options may include an option for the display of a single type of usage data or sensor data for two selected time periods (e.g., the two most recent, consecutive time periods) overlaid on a single graph.
- multiple individual graphs, each corresponding to a different type of usage data or sensor data and a selected time period, may be shown together on the usage screen.
- FIG. 3A An example of a usage screen 300 that includes a summary view of usage and sensor data, (e.g., which may be accessed via selection of the icon 212 of FIG. 2 ) is shown in FIG. 3A .
- the usage screen 300 provides a comparative listing of air temperature, pool water temperature, spa water temperature, gas heater usage, pool pump usage, and spa pump usage for a current 30 day period and for a preceding 30 day period.
- the usage screen 300 includes a graph icon 302 which, when selected, causes a graph of a user-selected usage data type or sensor data type to be displayed over a defined time period., and a comparative graph icon 304 which, when selected, causes a comparative graph of two or more user-selected usage data types and/or sensor data types to be displayed over a defined time period.
- FIG. 3B shows an example of a usage screen 306 (e.g., which may be accessed via selection of a comparative graph icon 304 on the usage screen 300 of FIG. 3 ) that includes a comparative graph view of detected ORP values (e.g., on a scale of 0 to 1 volts) to detected pH values (e.g., on a scale of 0 - 10 ) over a two day period.
- a usage screen 306 e.g., which may be accessed via selection of a comparative graph icon 304 on the usage screen 300 of FIG. 3
- a comparative graph view of detected ORP values e.g., on a scale of 0 to 1 volts
- detected pH values e.g., on a scale of 0 - 10
- icon 214 shown as a droplet and test tube in the present example, may be selected by a user to access a chemistry screen of the user interface.
- a chemistry screen At the chemistry screen, the current pH, ORP, water balance, and salt content of the water are displayed.
- a tank indicator may be shown, representing the level of acid (e.g., muriatic acid) present in the chemical controller system of the pool/spa.
- a user may adjust a pH setpoint, adjust water balance settings (e.g., salt level, calcium hardness, alkalinity, and cyanuric acid level), adjust chlorine output to one or more bodies of water (e.g., pools/spas), and/or adjust an ORP level set point, and adjust the level of the tank indicator to match the actual level of the corresponding acid tank.
- water balance settings e.g., salt level, calcium hardness, alkalinity, and cyanuric acid level
- alerts may be shown on the chemistry screen, which may include chlorine tank salt level alerts (e.g., corresponding to low detected salt level in the chlorine tank of the chemical control system, below a predefined threshold), water salt level alerts (e.g., corresponding to low detected salt level in parts per million in the water of the pool and/or spa), pH level alerts (e.g., that occur when detected pH level is outside of a predefined range, such as 7.2 to 7.8) , and/or ORP level alerts (e.g., that occur when detected ORP level is outside of a predefined range, such as 400 mV to 800 mV).
- chlorine tank salt level alerts e.g., corresponding to low detected salt level in the chlorine tank of the chemical control system, below a predefined threshold
- water salt level alerts e.g., corresponding to low detected salt level in parts per million in the water of the pool and/or spa
- pH level alerts e.g., that occur when detected pH level is outside of a pre
- Icon 216 shown as a letter “i” in the present example, may be selected by a user to access a status/alerts screen of the user interface.
- the status/alerts screen may display the current system status, warnings, and alerts.
- a color coded system may be employed, where warnings (e.g., low voltage conditions, system power loss, device communication loss, pool/spa chemical imbalances, and the like) are shown with a red indicator, caution alerts (e.g., chemical feeder errors, low chemical tank levels, and the like) are shown with an orange indicator, system status conditions (e.g., heater cool-down delays, informational pump speed and/or power usage, and the like) are shown with a blue indicator, and a green indicator is shown when no warnings/alerts/errors have been detected.
- the particular types of alerts and status information generated by the system and shown at the status/alerts screen may be selectively enabled via the user interface.
- the user may be provided with a list of alert types and status information types via the user interface, and may selectively enable or disable each alert type and status information type.
- Icon 218 shown as a gear in the present example, may be selected by a user to access a settings screen of the user interface.
- the settings screen may provide a user with a number of options for viewing and potentially changing settings of the control system.
- the settings screen may include options for the initiation of a vacation mode, the initiation of a service mode, accessing and viewing of support information, altering general settings such as touchscreen settings, location, date/time, units, features, lights list order, backlight setting, temperature sensor calibration, day/night themes, manual operation priority, and chemistry readings, accessing the alerts and notifications screen, defining security settings such enabling passcode protection for the control system and establishing administrator and guest passcodes, creating or logging into a user account of a web portal, viewing and/or editing light groups/feature circuits/feature circuit groups, rebooting the system (e.g., rebooting the control system load center 102 of FIGS.
- rebooting the system e.g., rebooting the control system load center 102 of FIGS.
- the system e.g., the control system load center 102 of FIGS. 1A, 1B
- a communications network e.g., in communication with the control system load center 102 of FIG. 1A, 1B
- delay settings e.g., for valves, heater cool down, override delays, etc.
- viewing system information importing and/or exporting system configurations and status logs, restoring factory default settings of the system, and/or initiating a setup “wizard” to configure the system with a step-by-step digital assistant.
- Icon 220 shown partially overlapping the icon 202 , may show the temperature of a corresponding pool, and a temperature setpoint. When a heater of the pool is turned off, the temperature setpoint may be omitted from the icon 220 . While not shown in the present example, an icon that is similar to icon 220 may be displayed overlapping the icon 204 , which may show the temperature of a corresponding spa and a temperature setpoint.
- Icon 222 shown partially overlapping the icon 206 , may show a number representing the number of connected features that are presently active (e.g., that have been manually switched on).
- Icon 224 shown partially overlapping the icon 208 , may show a number representing the number of connected lights that are presently active (e.g., that have been manually switched on).
- Icon 226 shown partially overlapping the icon 216 , may show a number representing the number of unresolved alerts/warnings (sometimes referred to herein as alert data) that have been generated for the control system.
- FIG. 4 shows an illustrative light screen 400 (e.g., which may be accessed via the selection of the icon 208 of FIG. 2 ) of a user interface which may be displayed on an electronic screen of a computing device (e.g., the wireless control panel 116 , the indoor control panel 126 , and/or or local or remote user devices 127 , 128 , 130 , 134 of FIG. 1A ).
- the light screen 400 may include light group selection buttons 402 , 404 , 406 , 408 , light group edit buttons 410 for each light group, sync buttons 412 , set buttons 414 , and swim buttons 416 .
- the light group selection button 404 may be defined to correspond to a group of lights located in and around the landscape in the general area of a pool and/or spa.
- the light group selection button 408 may be defined to correspond to all lights located on and/or around a waterfall feature of the pool/spa.
- the corresponding lights of that light group will activate or deactivate according to a preset function defined for that light group (e.g., turning all lights in the group on or off, switching colors of all lights in the group, starting a light show with the lights in the group in which the lights may be turned on and off and/or may change color according to a predefined sequence, etc.).
- a preset function defined for that light group e.g., turning all lights in the group on or off, switching colors of all lights in the group, starting a light show with the lights in the group in which the lights may be turned on and off and/or may change color according to a predefined sequence, etc.
- the light group edit button 410 when selected, may bring up a light group settings screen in which the colors of one or more individual lights in the corresponding light group may be selected, and in which lighting mode may be changed (e.g., from fixed color mode to light show mode in which a light show may be performed by the lights of the light group).
- the light group sync button 412 when selected, may activate a sync function in which all lights in the group are synchronized to a common color at the beginning of a predefined color rotation, and a light color rotation (e.g., in a predefined sequence defined by color wheels of the lights) begins after a delay (e.g., a delay of 21 seconds).
- a delay e.g., a delay of 21 seconds
- FIG. 5 shows an illustrative process flow for a method 500 by which a sync function may be performed by a light group in response to a “sync” command.
- a light screen e.g., light screen 400 of FIG. 4
- a local or remote control device e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A
- the sync function may set all lights in the light group to the same color and may cause these lights to begin rotating at the same rate at the same time.
- the lights of the light group may each include a color wheel (e.g., a rotating wheel having different sections corresponding to color filters of different colors, such that when a given color filter is aligned with the light source of a particular light, the light color output by that light will correspond to the color of the given color filter) that, when rotated, causes the lights to change color according to a predefined sequence.
- a color wheel e.g., a rotating wheel having different sections corresponding to color filters of different colors, such that when a given color filter is aligned with the light source of a particular light, the light color output by that light will correspond to the color of the given color filter
- a control system processor may detect/determine that a sync command has been selected (e.g., in response to selection of the light group sync button 412 of FIG. 4 ), corresponding to a selected light group.
- the control system processor may cause all lights in the selected light groups to be set (i.e., synchronized) to the same color.
- This color may correspond to the beginning of a predefined color rotation (e.g., a defined “beginning color” of the light wheel), in some embodiments.
- control system processor may cause the colors of all lights in the selected light group to begin rotating according to a predefined sequence (e.g., of the light wheel).
- the method 500 may be executed, at least in part, using a local device communicating with the control system via one or more local wireless connections or networks, or may be executed using a remote device communicating with the control system via a WAN and/or the internet. Additionally, in some embodiments in which a remote device is used in the execution of the method 500 , one or more physical and/or virtual servers may facilitate communication between the remote device and the control system.
- the light group swim button 416 when selected, may activate a sync function in which all lights in the group are synchronized to a common color at the beginning of a predefined color rotation, and a light color rotation (e.g., in a predefined sequence according to a color wheel) begins after a delay (e.g., a delay of 21 seconds).
- a sync function in which all lights in the group are synchronized to a common color at the beginning of a predefined color rotation, and a light color rotation (e.g., in a predefined sequence according to a color wheel) begins after a delay (e.g., a delay of 21 seconds).
- FIG. 6 shows an illustrative process flow for a method 600 by which a swim function may be performed for a light group in response to a “swim” command.
- a light screen e.g., light screen 400 of FIG. 4
- a local or remote control device e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A
- a pool/spa control system e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A
- a control system processor may detect/determine that a swim command has been selected (e.g., in response to selection of the light group swim button 416 of FIG. 4 ), corresponding to a selected light group.
- control system processor may cause all lights in the selected light group to be set (i.e., synchronized) to the same color.
- This color may correspond to the beginning of a predefined color rotation, in some embodiments.
- control system processor may cause (e.g., via electronic communication) a first light of the light group to begin rotating according to a predefined sequence.
- the predefined sequence may correspond to the predefined color rotation of a color wheel.
- the control system processor may determine whether there are lights remaining in the light group that have not begun rotating. If are all lights in the light group are determined to have begun rotating, the method 600 ends. The lights of the light group may continue to rotate according to the predefined sequence after the method 600 ends. If at least one light of the light group is determined to have not begun rotating, then the method 600 proceeds to step 612 .
- the control system processor may cause (e.g., via electronic communication) a new light in the light group to begin rotating according to the predefined sequence.
- the “new light” refers to a light of the light group that has not begun rotating immediately prior to the execution of step 612 .
- the light group may be organized as an ordered list (e.g., in a memory device of the control system load center 102 of FIG. 1 ), where the order in which new lights begin rotating corresponds to the order of lights provided in the ordered list.
- a “swim” effect may be created in which different colors of light appear to be “swimming” across the water of the pool or spa as the lights in the light group rotate colors.
- the method 600 may be executed, at least in part, using a local device communicating with the control system via one or more local wireless connections or networks, or may be executed using a remote device communicating with the control system via a WAN and/or the internet. Additionally, in some embodiments in which a remote device is used in the execution of the method 600 , one or more physical and/or virtual servers may facilitate communication between the remote device and the control system.
- the light group set button 414 when selected, may activate a set function in which all lights in the group are synchronized to a default color or a set of default colors.
- FIG. 7 shows an illustrative process flow for a method 700 by which a set function may be performed for a light group in response to a “set” command.
- a light screen e.g., light screen 400 of FIG. 4
- a local or remote control device e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A
- a pool/spa control system e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A
- a control system processor e.g., control system processor 103 of control system load center 102 of FIGS. 1A, 1B ) of a pool/spa control system may detect/determine that a set command has been selected (e.g., in response to selection of the light group set button 414 of FIG. 4 ), corresponding to a selected light group.
- the control system processor may cause (e.g., via electronic communication) all lights in the selected light group to be set to a default color.
- the user may define (e.g., via a settings screen accessed via icon 218 of FIG. 2 ) a single default color or to which the lights in the selected light group are to be set in response to the set command.
- the lights of the light group may cause all lights in the light group to be set to a single predefined color in response to a single user command (e.g., a single press of the light group set button 414 ).
- the method 700 may be executed, at least in part, using a local device communicating with the control system via one or more local wireless connections or networks, or may be executed using a remote device communicating with the control system via a WAN and/or the internet. Additionally, in some embodiments in which a remote device is used in the execution of the method 700 , one or more physical and/or virtual servers may facilitate communication between the remote device and the control system.
- a user may define one or more feature circuits via the user interface associated with the control system.
- the feature circuits may assign programmed logic functions to one or more circuits of pool/spa devices (e.g., pool/spa devices 110 of FIGS. 1A, 1B ), as described above.
- a “freeze protection” feature may be enabled for one or more pool/spa device circuits and/or feature circuits, such that corresponding freeze protect logic may protect the associated pool/spa devices when temperatures drop to or below freezing and a freeze protection mode is activated.
- the system e.g., a processor thereof
- the system may cause one or more pumps (e.g., of pumps 144 of FIG. 1B ) to run and for one or more valves actuators to open their corresponding valves when a temperature sensor (e.g., of sensors 150 of FIG.
- freeze protection mode may continue to be active until the freeze condition is determined to have ended (e.g., (e.g., ambient temperature >36° F.).
- Freeze protection may be enabled or disabled (e.g., by turning freeze protection “ON” or “OFF”) by a user via a corresponding settings screen (e.g., accessible via selection of icon 218 of FIG.
- freeze protection for a given pool/spa device may be overridden in response to a user interaction with the user interface of a control device (e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A ).
- FIG. 8 shows an illustrative process flow chart for a method 800 by which a freeze protection mode (e.g., control system state) may be automatically activated and deactivated based on detected ambient temperatures.
- a control system processor e.g., control system processor 103 of control system load center 102 of FIGS. 1A, 1B
- the control system processor may compare the ambient temperature threshold to ambient temperature data received from an ambient temperature sensor (e.g., of sensors 150 of FIG. 1B ) coupled to the control system.
- the control system processor may determine whether freeze protection is “ON” (e.g., whether a freeze protection setting is enabled). If freeze protection is “OFF” (e.g., disabled), the method 800 ends. Otherwise, if freeze protection is “ON”, the method 800 proceeds to step 806 .
- the control system processor identifies circuits (e.g., pool/spa device circuits) that have been assigned freeze protection (e.g., as defined in a memory of the control system load center 102 of FIG. 1A ). For example, circuits corresponding to the control of various pumps (e.g., pumps 144 of FIG. 1B ) and valve actuators (e.g., of smart valves 142 of FIG. 1B ) may be assigned freeze protection. Some circuits may be assigned freeze protection by default, while other circuits may need to be assigned freeze protection via user interaction with the user interface.
- circuits e.g., pool/spa device circuits
- freeze protection e.g., as defined in a memory of the control system load center 102 of FIG. 1A .
- circuits corresponding to the control of various pumps e.g., pumps 144 of FIG. 1B
- valve actuators e.g., of smart valves 142 of FIG. 1B
- Some circuits may be assigned freeze protection by default, while other circuit
- the control system processor activates (e.g., via electronic communication) the identified circuits.
- the corresponding pumps may be activated and the corresponding valve actuators may be opened to cause water to flow through the pool/spa, thereby decreasing the likelihood that pipes of the pool/spa system will freeze and/or burst and potentially preventing such incidents entirely.
- activating the identified circuits may correspond to the activation of a freeze protection mode.
- the control system processor may prevent heaters (e.g., heaters 146 of FIG. 1B ) from automatically activating while the freeze protection mode is active. For example, if a heater is scheduled to activate at a time that the freeze protection mode happens to be active, the control system processor may prevent the heater from activating despite its activation being scheduled. In some embodiments, a user may override this prevention by manually activating the heater via a local or remote control device (e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A ).
- a local or remote control device e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A .
- the control system processor may periodically check to determine whether the freeze condition has ended. For example, the control system processor may periodically compare the predetermined ambient temperature threshold to the ambient temperature data generated by the ambient temperature sensor to determine whether the ambient temperature has risen above the ambient temperature threshold, in which case the freeze condition may be considered to have ended. If the control system processor determines that the freeze condition has not ended, the method 800 may return to step 810 , continuing to prevent the heater(s) from automatically activating. Otherwise, the method 800 may proceed to step 814 .
- control system processor may deactivate the identified circuits, effectively ending/deactivating the freeze protection mode.
- the method 800 may then end and normal operation of the control system may resume.
- a “master cleaner” feature may be defined for one or more pool/spa device circuits, which may define rules for the operation of an automatic cleaner and associated pool/spa devices.
- the master cleaner feature may prevent an automatic cleaner pump (e.g., of the pumps 144 of FIG. 1B ) from running without a corresponding filter pump (e.g., of the pumps 144 of FIG. 1B ) first being activated.
- the master cleaner feature may force the filter pump to turn on for a predetermined amount of time prior to a scheduled activation of the automatic cleaner pump, and remain on during the operation of the automatic cleaner pump.
- the master cleaner feature may automatically shut off the automatic cleaner pump and/or prevent the automatic cleaner pump from running whenever a spa pump (e.g., of the pumps 144 of FIG. 1B ) is switched on.
- the master cleaner feature may automatically shut off the automatic cleaner pump when a solar heater (e.g. of heaters 146 of FIG. 1B ) is activated and may prevent the automatic cleaner pump from being activated until either the solar heater is turned off or until a predetermined time period has elapsed.
- FIG. 9 shows an illustrative process flow chart for a method 900 by which functions of a master cleaner feature (e.g., control system state) may be performed.
- a control system processor e.g., control system processor 103 of control system load center 102 of FIGS. 1A, 1B
- the master cleaner feature may be activated in response to a corresponding interaction between a user and a corresponding screen of user interface of a local or remote control device (e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A ), or may be activated as a default setting of the control system.
- a local or remote control device e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A
- the control system processor periodically monitors status of pool/spa devices (e.g., pool/spa devices 110 of FIG. 1B ) assigned to the master cleaner feature. For example, the control system processor may monitor when an automatic pool cleaner pump (e.g., of pumps 144 of FIG. 1B ) corresponding to an automatic pool cleaner (e.g., automatic cleaner 156 of FIG. 1B ) is scheduled to activate, may monitor the status of a spa pump (e.g., of pumps 144 of FIG. 1B ), and may monitor the status of a solar heater (e.g., of heaters 146 of FIG. 1B ).
- an automatic pool cleaner pump e.g., of pumps 144 of FIG. 1B
- an automatic pool cleaner e.g., automatic cleaner 156 of FIG. 1B
- a spa pump e.g., of pumps 144 of FIG. 1B
- a solar heater e.g., of heaters 146 of FIG. 1B
- the control system processor determines, based on a pre-defined and/or user-defined schedule, whether the automatic pool cleaner pump is scheduled to activate sooner than a predetermined amount of time t TH (e.g., 5 minutes). If not, the method proceeds to step 912 . If so, the method proceeds to step 908 .
- a predetermined amount of time t TH e.g., 5 minutes
- the control system processor forces a filter pump (e.g., of pumps 144 of FIG. 1B ) of the pool to activate.
- a filter pump e.g., of pumps 144 of FIG. 1B
- the control system processor activates the automatic pool cleaner pump at the scheduled time.
- the filter pump may be forced to run for the predetermined amount of time t TH (e.g., around 5 minutes) prior to the activation of the automatic pool cleaner pump. This may provide a priming delay for the automatic pool cleaner pump.
- the control system processor determines whether the spa pump is on. If the spa pump is on, the method 900 proceeds to step 914 . If the spa pump is off, the method 900 proceeds to step 918 .
- control system processor prevents the automatic pool cleaner pump from running.
- the control system processor determines whether the spa pump is off. If the spa pump is not off, the method 900 returns to step 914 and the control system processor continues to prevent the automatic pool cleaner from running. If the spa pump is off, then the method 900 returns to step 904 , and monitoring of the pool/spa devices associated with the master cleaner feature continues.
- step 918 the control system processor determines whether the solar heater is on. If the solar heater is on, the method 900 proceeds to step 920 . If the spa pump is off, the method 900 returns to step 904 , and monitoring of the pool/spa devices associated with the master cleaner feature continues. Step 918 may be skipped if the solar heater has been running uninterrupted for longer than the predetermined time period defined in step 922 .
- control system processor prevents the automatic pool cleaner pump from running.
- the control system processor determines whether the solar heater is off or if a predetermined time period (e.g., five minutes) has elapsed since the solar heater was turned on. If either both conditions are false, the method 900 returns to step 920 and the control system processor continues to prevent the automatic pool cleaner pump from running. If either condition is true, the method 900 returns to step 904 and monitoring of the pool/spa devices associated with the master cleaner feature continues.
- a predetermined time period e.g., five minutes
- steps 906 , 908 , and 910 may be performed in parallel with steps 912 , 14 , and 916 , and with steps 918 , 920 , and 922 , in some embodiments.
- One or more pool/spa devices may include on-board processing hardware that operates according to firmware stored on an associated memory device. Updated versions of this firmware may be released from time to time by device manufacturers. Conventionally, these firmware updates would need to be installed on the corresponding pool/spa device via a direct connection between a user's computer (on which the firmware update in question had previously been downloaded) and the pool/spa device itself. Depending on the location of the pool/spa device, such conventional methods may be inconvenient or impractical.
- firmware updates may be automatically retrieved via a connection to a firmware update server via a WAN or the internet, and the control system may distribute the firmware update to the pool/spa device being updated.
- These automatic firmware updates may be performed with little or no input from a user, which may allow pool/spa devices to be easily maintained with the most up-to-date firmware.
- FIG. 10 shows an illustrative process flow chart for a method 1000 by which a control system (e.g., control system load center 102 of FIGS. 1A and 1B ) may identify the availability of, retrieve, and distribute, one or more firmware updates for pool/spa devices (e.g., pool/spa devices 110 of FIGS. 1A and 1B ) coupled to the control system.
- a control system processor e.g., control system processor 103 of FIG. 1A
- the control system processor may determine that a firmware update is available for a connected device (e.g., a pool/spa device).
- the control system processor may periodically receive notifications of available firmware updates from a firmware server (e.g., one of servers 136 , 137 of FIG.
- a firmware server e.g., one of servers 136 , 137 of FIG.
- a connection to the internet e.g., internet/WAN cloud 132 of FIG. 1A
- a base station/gateway router e.g., base station/gateway/router 124 of FIG. 1A
- a wireless transceiver e.g., wireless transceiver 122 of FIG. 1A
- the control system processor may determine whether a firmware update mode of the control system is enabled.
- the firmware update mode may be enabled via selection of a corresponding setting by a user via a corresponding setting screen (e.g., accessible via selection of icon 218 of FIG. 2 ) of a user interface of a local or remote control device (e.g., control panels 116 , 126 or user devices 127 , 128 , 130 , 134 of FIG. 1A ). If the firmware update mode is enabled, the method 1000 proceeds to step 1006 . If the firmware update mode is not enabled, the method 1000 ends.
- the control system processor automatically retrieves the firmware update that was determined to be available at step 1002 from the firmware server (e.g., via the internet).
- the control system processor sends the firmware update to a connected device (e.g., of pool/spa devices 110 ) to which the firmware update corresponds.
- a connected device e.g., of pool/spa devices 110
- the control system processor may “push” the firmware update to the connected device.
- FIG. 11A shows an illustrative backend architecture 1100 that may facilitate the collection and storage of sensor data, usage data, and/or device status information from a pool/spa control system (e.g., corresponding to pool/spa devices 110 ; via control system load panel 102 , wireless transceiver 122 , base station/gateway/router 124 , and internet/WAN cloud 132 of FIGS. 1A, 1B ), the distribution of sensor data, usage data, and/or device status information to one or more client computer devices (e.g., user devices 127 , 128 , 130 , 134 of FIG.
- a pool/spa control system e.g., corresponding to pool/spa devices 110 ; via control system load panel 102 , wireless transceiver 122 , base station/gateway/router 124 , and internet/WAN cloud 132 of FIGS. 1A, 1B
- client computer devices e.g., user devices 127 , 128 , 130 , 134 of FIG.
- FIG. 1A for display on one or more user interface screens thereof (e.g., as part of a usage screen such as usage screens 300 , 306 of FIGS. 3A and 3B ), and/or the routing of commands received from client computer devices operating in a remote mode (e.g., user devices 127 , 128 , 130 , 134 , FIG. 1A ) to the pool/spa control system.
- client computer devices operating in a remote mode e.g., user devices 127 , 128 , 130 , 134 , FIG. 1A
- the backend architecture 1100 may include a load balancer 1110 , a first server or server cluster 1112 , a second server or server cluster 1118 , a communication bus/platform 1124 , a database server 1126 , a web gateway 1132 , and a remote monitoring server or server cluster 1134 .
- the first server or server cluster 1112 may include a web server 1114 , which may be an Internet Information Services (IIS), and a web application programming interface (API) server 1116 .
- the web server 1114 may be connected to the web API block 1116 . In some embodiments, the functions of the web server 1114 and the web API server 1116 may be combined into a single server.
- the second server or server cluster 1118 may include a web server 1120 and a web API server 1122 .
- the web server block 1120 may be connected to the web API server 1122 .
- the functions of the web server 1120 and the web API server 1122 may be combined into a single server.
- the database server 1126 may be a structured query language (SQL) server, and/or may include one or more databases 1128 .
- the remote monitoring server or server cluster 1134 may include a remote pool/spa API server 1136 and a remote client API server 1138 .
- the first and second servers or server clusters 1112 and 1118 may be coupled, through the load balancer 1110 , to one or more pool/spa control systems 1102 (e.g., corresponding to the control system load center 1102 of FIGS. 1A and 1B ), and/or clients 1104 ,.
- the pool/spa control systems 1102 and the clients 1104 may each connect to the first server or server cluster 1112 or the second server or server cluster 1118 via the load balancer 1110 .
- a given pool/spa control system 1102 may maintain a persistent connection to the web API server 1116 or the web API server 1122 via a “heartbeat” signal.
- the heartbeat signal may be periodically sent to the web API server 1116 or 1118 , which may generate a heartbeat acknowledgment that is sent back to the given pool/spa control system 1102 .
- the web API server may expect to receive a predetermined number of heartbeat signals from the given pool/spa control system 1102 in a given time period.
- the given pool/spa control system 1102 may expect to receive a heartbeat acknowledgement for each heartbeat signal sent by the given pool/spa control system 1102 .
- the connection between the pool/spa control system 1102 and the server or server cluster 1112 may be terminated (either by the given pool/spa control system 1102 or by the web API) and, in some embodiments, automatically reestablished (e.g., by the given pool/spa control system 1102 ).
- the given pool/spa control system 1102 may initiate the connection to the server or server cluster 1112 , which may allow for the connection to be established without the need to reconfigure a firewall of the local network to which the given pool/spa control system 1102 is connected.
- the load balancer 1110 may be implemented via software (e.g., as part of the web gateway 1132 ) or stand-alone hardware, and may route network traffic (e.g., received from the pool/spa control systems 1102 or the clients 1104 ) to either the first server or server cluster 1112 , the second server or server cluster 1118 , or another connected server or server cluster, according a scheduling algorithm.
- the scheduling algorithm may identify which of the servers or server clusters 1112 or 1118 are the least busy (e.g., determined based on the number of established connections of each server/server cluster, average available bandwidth of each server/server cluster, how much traffic has recently been assigned to each server/server cluster, geographic location, capabilities, up/down status, least response times, reported load, etc.).
- a given client of the clients 1104 may connect to a web gateway 1132 via an initially unsecure connection 1106 (e.g., corresponding to the hyper-text transfer protocol (HTTP)), which may authenticate the given client (e.g., using a username/password combination or a pre-shared key or token). If a given client 1104 fails to properly authenticate via the web gateway 1132 , the web gateway 1132 may disallow the given client 1104 from connecting to the servers/server clusters 1112 , 1118 , 1126 .
- HTTP hyper-text transfer protocol
- the given client 1104 may communicate with the server/server clusters 1112 or 1118 assigned via the load balancer 1110 using a secure connection 1105 (e.g., corresponding to a Web Socket communication protocol that provides full-duplex communication channels between devices over a single TCP connection), which may bypass the web gateway 1132 .
- the clients 1104 may include mobile user devices (e.g., mobile devices 128 of FIG. 1A ), web browsers or dedicated applications running on personal computer devices (e.g., computing devices 130 of FIG. 1A ), voice assistant clients, or other applicable clients.
- the remote monitoring server or server cluster 1134 may be connected to the pool/spa control systems 1102 , one or more remote viewer clients 1108 (e.g., mobile user devices, web browsers, dedicated applications running on personal computer devices, voice assistant clients, or other applicable clients), and the database server 1126 .
- the remote pool/spa API server 1136 may be coupled to the pool/spa control systems 1102 via respective TCP protocol connections, and may be communicatively connected to the database server 1126 .
- the remote client API server 1138 may be connected to the remote viewer clients 1108 via respective HTTPS protocol connections, and may be connected to the database server 1126 .
- the remote viewer clients 1108 may correspond to a computer system that is executing remote viewer software.
- the remote viewer software may display sensor data, usage data, pool/spa device state data, and/or alerts/alert data corresponding to one or more of the pool/spa control systems 1102 via a user interface (e.g., a “remote monitoring dashboard”) shown on a given remote viewer client 1108 , without allowing the given remote viewer client 1108 to issue commands to the one or more pool/spa control systems 1102 (although in some embodiments remote viewer clients may be assigned limited permissions to issue commands to the one or more pool/spa control systems 1102 , such as to change chemical or temperature set points of the one or more pool/spa control systems 1102 ).
- a user interface e.g., a “remote monitoring dashboard”
- the remote monitoring server 1134 may provide a producer-consumer system.
- the remote viewer clients 1108 may retrieve system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc.) corresponding to one or more pool/spa control systems 1102 from the databases 1128 via the remote client API server 1138 (e.g., which retrieves the system data and pushes it to one or more of the remote viewer clients 1108 ).
- the pool/spa control systems 1102 may upload (e.g., push) system data to the databases 1128 via the remote pol/spa API 1136 .
- the web API server 1116 of the server or server cluster 1112 may be coupled to the database 1128 of the database server 1126 .
- the web API server 1122 of the server or server cluster 1118 may also be coupled to the database 1128 of the database server 1126 .
- the web servers 1114 and 1120 may be configured to host the web applications displayed via a user interface of a given client 1104 .
- the web API servers 1116 and 1122 may host server-side programmatic interfaces accessible via the web servers 1114 and 1120 , respectively.
- the web API implemented by one of the web API servers 1116 or 1122 handles requests and responses associated with the uploading of data to the databases 1128 , the retrieval of data from the databases 1128 , and the routing of data between the server or server cluster 1112 and the server or server cluster 1118 .
- a given pool/spa control system 1102 may periodically provide system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc. related to the pool and/or spa devices to which it is connected) to the database(s) 1128 via one or more data paths that may include i) the load balancer 1110 , the web server 1114 , the web API server 1116 , and the database server 1126 ; ii) the load balancer 1110 , the web server 1120 , the web API server 1122 , and the database server 1126 ; and/or iii) the remote pool/spa API server 1136 .
- system data e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc. related to the pool and/or spa devices to which it is connected
- system data e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc. related to the pool and/or spa devices to
- the given pool/spa control system 1102 may store all system data locally, and may periodically upload some or all of the locally stored system data to the databases 1128 .
- a given client 1104 if connected to a local network to which a given pool/spa control system 1102 is connected, may instead be operated in a “local” mode, in which, rather than retrieving system data from the databases 1128 , the given client 1104 retrieves system data directly from the memory of the given pool/spa control system 1102 via the local network.
- a given client 1104 may retrieve system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc.) from the database(s) 1128 in order to display that data on a corresponding screen of the user interface of the given client 1104 .
- the data path by which the database(s) 1128 may route the requested data to the given client 1104 may include i) the database server 1126 , the web API server 1116 , the web server 1114 , and the load balancer 1110 ; and/or ii) the database server 1128 , the web API server 1122 , the web server 1120 .
- a given remote viewer client 1108 may retrieve system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc.) from the database(s) 1128 in order to display that data on a corresponding screen of the user interface of the given remote viewer client 1108 .
- system data e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc.
- the data path by which the database(s) 1128 may route the requested data to the given remote viewer client 1108 may include the database server 1126 and the remote client API server 1138 .
- the given pool/spa control system 1102 when an alert is triggered at a given pool/spa control system 1102 , the given pool/spa control system 1102 sends alert data to the web API (web API 1116 or 1122 ) of the server or server cluster (server or server cluster 1112 or 1118 ) to which it has been assigned by the load balancer 1110 .
- the web API may then distribute an alert to one or more user devices of the clients 1104 (e.g., which may depend on the types of alert notifications that have been enabled for the given pool/spa control system 1102 ).
- the web API may cause an e-mail, text (short message service (SMS)) message, and/or push notification to be sent to a given client 1104 and/or may activate an alert icon shown on the user interface of the given client 1104 , in response to alert data received from the given pool/spa control system 1102 .
- SMS short message service
- the web API 1116 of the first server 1112 may be communicatively coupled to the web API 1122 of the second server 1118 via the communication bus/platform 1124 (e.g., which may be an Enterprise Serial Bus (ESB) or other applicable communication bus/platform).
- the communication bus/platform 1124 may manage communication between the server or server cluster 1112 and the server or server cluster 1118 .
- a client 1104 - 1 is connected to the server or server cluster 1118 (e.g., based on assignment by the load balancer 1110 ) and a pool/spa control system 1102 - 1 is connected to the server or server cluster 1112 (e.g., based on assignment by the load balancer 1110 ). It should be noted that FIG.
- the client 1104 - 1 may issue commands (e.g., in response to interaction with one or more icons/buttons of the user interface displayed at the client 1104 - 1 ) to the pool/spa control system 1102 - 1 .
- the client 1104 - 1 may transmit command data to the web server 1120 , which may route the command data to the web API 1122 , which may route the command data to the web API 1116 via the communication bus/platform 1124 , which may route the command data to the web server 1114 , which may router the command data to the pool/spa control system 1102 - 1 .
- the pool/spa control system 1102 - 1 may perform one or more actions (e.g., opening/closing valves, changing pump speeds, turning a pump on or off, adjusting a temperature setpoint of a heater, activating/deactivating a heater, adjusting jet pressure, adjusting a chemical setpoint of a chemical controller, activating/deactivating an automatic cleaner, turning lights on/off, initiating light shows, changing light colors, and/or scheduling actions to be performed during a time period defined in the command data) in response to the command data.
- the communication bus/platform 1124 may connect the server or server cluster 1112 to the server or server cluster 1118 , such that the command data may be passed from the web API server 1122 to the web API server 1116 .
Abstract
Description
- Residential and commercial pools and spas today are generally associated with a wide variety of electronic devices, such as pumps, chemical controllers, cleaners, lights, and sensors—just to name a few. In order to control such pool and spa devices in a centralized manner, conventional control systems have been developed and implemented. Such conventional control systems tend to rely on direct, physical electrical connection to the devices they control and the devices from which they receive commands from users.
- In light of the deficiencies described above, new systems and methods for providing individuals with the ability to monitor and control the status of water systems and related devices inside and outside of a home or business and to optimize the performance of these systems and devices and overall water use within the home or business are desirable.
- In an example embodiment, a system may include a plurality of pool or spa devices, a wireless transceiver, a control system coupled to a remote device via an electronic communication network and the wireless transceiver, the control system being configured to selectively control a plurality of circuits of the plurality of pool or spa devices. The control system may include a memory device configured to store definitions of a first feature circuit and a first logic function, the first feature circuit corresponding to a first subset of the plurality of circuits and being associated with the first logic function, the first logic function defining how the first subset of the plurality of circuits is to be controlled when the first feature circuit is activated, a plurality of communication ports comprising at least one local area network communication port and a plurality of serial communication ports, the at least one local area communication network port being coupled to the wireless transceiver, and the plurality of serial communication ports being coupled to at least one of the plurality of pool or spa devices, a processor coupled to the plurality of communication ports and the memory device, the processor being configured to execute computer-readable instructions. When executed, the computer-readable instructions may cause the processor to receive command data from the remote device via the electronic communication network, and, in response to a first command of the command data, activate the first feature circuit to selectively control the first subset of the plurality of circuits according to the first logic function.
- In an example embodiment, a method may include steps for establishing a connection over a computer network between a controller of a pool control system and one or more servers of the pool control system, the controller comprising a processor, a memory electronically accessible by the processor, a wireless transceiver in electronic communication with the processor and configured to connect to the computer network, and a plurality of communication ports electrically connecting the controller to at least one pool or spa device, the one or more servers being geographically remote from the controller, receiving first command data on the one or more servers from a client device configured to display a user interface and to generate the first command data in response to a detected interaction with the user interface, with the one or more servers, sending the first command data to the controller, in response to the first command data, storing, by the processor in the memory of the controller, definitions of a first feature circuit and a first logic function associated with the first feature circuit, the first feature circuit corresponding to a first plurality of circuits corresponding to the at least one pool or spa device, the first logic function defining how the first plurality of circuits is to be controlled when the first feature circuit is activated, receiving second command data on the one or more servers from the client device, the client device being configured to generate the second command data in response to a second detected interaction with the user interface, receiving, by the processor, the second command data from the one or more servers, and, in response to the second command data, determining, by the processor, that the second command data comprises a command to activate the first feature circuit, obtaining, by the processor, the definitions from the memory, identifying, by the processor, the first plurality of circuits based on the definition of the first feature circuit, and selectively controlling, by the processor, the first plurality of circuits according to the first logic function.
- In an example embodiment, a system may include a first web server communicatively coupled an electronic communication network, a first web application programming interface (API) server coupled to the first web server, a database server comprising at least one database, the database server being coupled to the first web API server, and a control system configured to control and collect system data from a plurality of pool and spa devices. The control system may include a memory device configured to store computer-readable instructions and to store the system data, a processor configured to execute the computer-readable instructions. The computer-readable instructions, when executed, may cause the processor to periodically upload the system data to the at least one database via the first web server, the first web API server, and the database server, receive command data from a remote client device via the first web API server and the first web server, store, in response to a first command of the command data, definitions of a first feature circuit and a first logic function in a memory device of the control system, the first feature circuit corresponding to a first set of circuits of the plurality of pool or spa devices, the first logic function defining how the one or more circuits are to be controlled when the first feature circuit is activated, and, in response to a second command of the command data, determine that the second command includes a request to activate the first feature circuit, obtain the definitions from the memory device, identify the first set of circuits based on the definitions, and control the first set of circuits according to the first logic function.
- The invention will be better understood and features, aspects and advantages other than those set forth above will become apparent when consideration is given to the following detailed description. Such detailed description makes reference to the following drawings.
-
FIG. 1A is a diagram of a computing environment for deploying a network enabled control system in accordance with an embodiment. -
FIG. 1B is a block diagram of an example embodiment of various Internet of Things (IoT) pool and spa devices that may be connected to the load center and expansion panels of the network enabled control system, in accordance with an embodiment. -
FIG. 2 is an illustrative home screen of a user interface that may be shown via an electronic display of a local or remote user device or control panel, which may facilitate the monitoring and control of connected devices in and around a pool/spa, in accordance with an embodiment. -
FIG. 3A is an illustrative usage screen showing a summary view of various usage data parameters and sensor data parameters over two consecutive periods, in accordance with an embodiment. -
FIG. 3B is an illustrative usage screen showing a graphical view of pH level compared to ORP level for a pool or spa over a two day period, in accordance with an embodiment. -
FIG. 4 is an illustrative light group control screen of a user interface that may be shown via an electronic display of a local or remote user device or control panel, through which groups of connected light circuits may be selected and controlled to perform various user defined and/or predefined functions, in accordance with an embodiment. -
FIG. 5 is a flow chart of an example embodiment of a method by which all light circuits of a selected light group may be synchronized and rotated in response to a sync command. -
FIG. 6 is a flow chart of an example embodiment of a method by which all light circuits of a selected light group may be synchronized and rotated in a predefined sequence, with delays being applied between the rotations of consecutive lights in the light group in response to a swim command. -
FIG. 7 is a flow chart of an example embodiment of a method by which all light circuits of a selected light group may be set to the same color in response to a set command. -
FIG. 8 is a flow chart of an example embodiment of a method by which all circuits that are assigned freeze protection may be activated in response to detecting a sufficiently low ambient temperature when a freeze protection setting is active. -
FIG. 9 is a flow chart of an example embodiment of a method by which predefined rules associated with the operation or prevention of operation of a pool cleaner pump may be implemented. -
FIG. 10 is a flow chart of an example embodiment of a method by which a firmware update for a device connected to the control system may be retrieved and distributed via the control system load center. -
FIG. 11A is a block diagram of an example embodiment of an illustrative system architecture by which communication between back-end servers and front-end devices may be facilitated. -
FIG. 11B is a block diagram of an example embodiment showing a portion of the system architecture ofFIG. 11A , in which a pool/spa computer system is connected to a first server and a user device client is connected to a second server. - Before any embodiments are described in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings, which is limited only by the claims that follow the present disclosure. The invention is capable of other embodiments, and of being practiced, or of being carried out, in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless specified or limited otherwise, the terms “mounted,” “connected,” “supported,” and “coupled” and variations thereof are used broadly and encompass both direct and indirect mountings, connections, supports, and couplings. Further, “connected” and “coupled” are not restricted to physical or mechanical connections or couplings.
- The following description is presented to enable a person skilled in the art to make and use embodiments of the invention. Various modifications to the illustrated embodiments will be readily apparent to those skilled in the art, and the generic principles herein can be applied to other embodiments and applications without departing from embodiments of the invention. Thus, embodiments of the invention are not intended to be limited to embodiments shown, but are to be accorded the widest scope consistent with the principles and features disclosed herein. The following detailed description is to be read with reference to the figures, in which like elements in different figures have like reference numerals. Skilled artisans will recognize the examples provided herein have many useful alternatives and fall within the scope of embodiments of the invention.
- Additionally, while the following discussion may describe features associated with specific devices, it is understood that additional devices and or features can be used with the described systems and methods, and that the discussed devices and features are used to provide examples of possible embodiments, without being limited.
- Configuring or otherwise modifying the operation of conventional pool/spa control systems generally requires a user to be physically present at a control panel. Additionally, conventional pool/spa control systems may not be scalable (i.e., the ability to connect new devices to the control system may be limited by the number of connections/relays available at a main control panel of the control system).
- Thus, there is a need for scalable, remotely accessible control systems for pool and spa applications.
-
FIGS. 1A and 1B illustrate anexample computing environment 100 for wired and/or wireless monitoring and control of electronic and mechanical devices 110 (e.g., pool/spa devices 110) that are deployed in a physical environment, such as a pool/spa environment that includes at least one pool and/orspa 112, via a controlsystem load center 102 and, optionally,expansion panels 108 that may be electrically coupled to the controlsystem load center 102. The controlsystem load center 102 may include one or moreLAN communication ports 104, one or moreserial communication ports 106, and a processor 103 (sometimes referred to herein as a control system processor) that is coupled to theLAN ports 104 and theserial ports 106. The controlsystem load center 102 may additionally include one or more computer memory devices (not shown). In some embodiments, one ormore expansion panels 108 may be connected to the control system load center 102 (e.g., via one or moreserial ports 106 of the control system load center 102), which may allow the number of control connections and/or relays used to control the pool/spa devices 110 to be expanded beyond the number that would be available in the controlsystem load center 102 alone. As will be described, the pool/spa devices 110 may be coupled to, integrated with, in fluid communication with, and/or disposed proximal to the pool and/orspa 112. As shown inFIG. 1B , the pool/spa devices 110 may include one or more of achemical controller 140,smart valves 142,pumps 144,heaters 146,lights 148,sensors 150, anautomatic pool cover 152,jets 154, and/or anautomatic cleaner 156. - The
chemical controller 140 may be part of a water chemistry system in fluid communication with the pool and/orspa 112. Thechemical controller 140 may cause the water chemistry system to sanitize (e.g., via the application of chlorine and/or other applicable chemicals to the water of the pool and/or spa 112) and/or pH balance (e.g., via the application of acidic or basic chemicals to the pool and/orspa 112, which may be performed in based on a pH level of the water of the pool and/orspa 112 detected via one or more pH sensors of the water chemistry system) the water of the pool and/orspa 112. Thechemical controller 140 may be configured to supply a predetermined amount (e.g., user-defined or service-professional-defined via interaction with the control system load center 102) of chlorine or other sanitization chemical to the water of the pool and/orspa 112 at programmed (e.g., user-defined or service-professional-defined via interaction with the control system load center 102), regularly scheduled intervals. In some embodiments, thechemical controller 140 may be configured to perform a “super chlorination” function, in which currently set chlorine output levels are overridden, and a higher, “super chlorination” output level (e.g., 100% output) is set for a selectable period of time (e.g., 24 hours). - One or more
smart valves 142 may be included in the pool/spa devices 110 and coupled to and controlled by the controlsystem load center 102 and/or theexpansion panels 108. For example, a givensmart valve 142 may include a motorized valve actuator and a valve controlled by the valve actuator having at least an inlet and an outlet through which water may be selectively allowed or disallowed to flow, based on commands received by the valve actuator from the controlsystem load center 102 and/orexpansion panels 108. In some embodiments, a valve actuator of a givensmart valve 142 may control the flow of water through the corresponding valve according to a defined water flow percentage. For example, a user may set (e.g., via interaction with a user interface displayed on an electronic screen of one ofcontrol panels user devices smart valve 142 and, in response, the valve actuator of thesmart valve 142 may cause the corresponding valve to be opened to 75% of its maximum. In some embodiments,smart valves 142 may be included as one or more of an intake valve (e.g., coupled between the outlet of a pool/spa pump, which may be included inpumps 144, and the pool and/or spa 112), a return valve (e.g., coupled between the inlet of the pool/spa pump and the pool and/or spa 112), a water-feature valve, a solar heater valve, a valve for an in-floor cleaner (e.g., automatic cleaner 156), and/or other applicable valves that may be included in the pool and/or spa environment. In some embodiments, one or more of thesmart valves 142 may be included in one or more programmable feature circuits (e.g., defined in memory of the control system load center 102), as will be described. - One or
more pumps 144 may be included in the pool/spa devices 110. For example, thepumps 144 may include one or more of: a pool filter pump, a spa filter pump, a combined pool/spa filter pump and/or an automatic cleaner pump. In some embodiments, the filter pump may be a variable speed pump, having two or more selectable pump speeds. The control system load center may control the speed at which the filter pump operates. For example, a user and/or service technician may define the speed at which the filter pump operates via interaction with a user interface displayed on an electronic screen of one ofcontrol panels user devices system load center 102, for example. - The
heaters 146 may include one or more of a solar heater, a gas heater, an electric heater (e.g., an electric heat pump), and/or a hybrid heater (e.g., which may combine a solar heater with a gas and/or electric heater). Theheaters 146 may be activated in response to selection by a user via a user interface (e.g., displayed on an electronic screen of one ofcontrol panels user devices multiple heaters 146, a user may select the type or types of heater to activate during a particular time period via the user interface. - For embodiments in which the
heaters 146 include a solar heater, a nocturnal cooling feature may be selectively enabled, which provides automatic cooling of pool water during nighttime hours, which may be beneficial for pools that overheat in hot climates. The nocturnal cooling feature may be activated in response to selection by a user via a user interface (e.g., displayed on an electronic screen of one ofcontrol panels user devices - The
lights 148 may include one or more lights that may be any applicable combination of: color changing, submersible, multi-light assemblies, single-light assemblies, light emitting diodes (LEDs), and/or incandescent. As will be described, thelights 148 may be organized into light groups, such that particular functions (e.g., color changing, strobing, pulsing, “swimming”, etc.) of the lights in a given light group may be activated in a synchronized way and/or according to a predefined configuration. In some embodiments, a “light group” may be defined group to which one or more light circuits of thelights 148 have been assigned. For example, light groups may be defined in a memory device of the controlsystem load center 102. - The
sensors 150 may include flow sensors, temperature sensors, chemical sensors (e.g., chlorine/pH sensors), splash sensors, and/or any other applicable sensor that may be coupled to the pool and/orspa 112 and/or coupled to or integrated with one or more of the pool/spa devices 110. Each of thesensors 150 may produce respective sensor data, which may differ in format and the property being sensed, depending on the type of sensor being used. For example, flow sensors generate and output flow data corresponding to a detected flow rate of water passing through or proximal to the flow sensors; temperature sensors generate and output temperature data corresponding to detected temperature; chlorine sensors generate and output chlorine level data corresponding to detected chlorine levels in water; pH sensors generate and output pH level data corresponding to detected pH levels in water; splash sensors generate and output motion data, which may be a binary representation that goes high when motion is detected over a predefined threshold and low otherwise, or which may be a more complex representation that logs the magnitudes of detected motion over time. Sensor data generated by thesensors 150 may be transmitted to one or more of theservers 136, 137 (e.g., via the control system load center) and stored in one or more databases stored on one or more memory devices thereof. In some embodiments, the sensor data may be collected and stored locally before being sent to theservers servers user devices - The
pool cover 152 may be may include a pool cover sensor switch (e.g., in the form of an electric/mechanical switch, which may be a “dry contact”) that may be open or close a circuit (e.g., a circuit coupled to the controlsystem load center 102 or the expansion panels 108) based on whether thepool cover 152 is in an open position or a closed position. . In this way, the controlsystem load center 102 may identify whether the pool cover is open or closed (e.g., with open referring to a state in which the pool cover does not cover the pool, and closed referring to a state in which the pool cover does cover the pool). In some embodiments, the operation of various pool/spa circuits and/or feature circuits may be controlled based on whether the pool cover is open or closed (e.g., determined based on whether the pool cover sensor switch is opened or closed). A pool cover interface screen of the user interface may allow a user to define which pool/spa circuits of the pool/spa device 110, which feature circuits/groups, and which light circuits/groups are activated or deactivated when the pool cover switch is opened and, separately, when the pool cover switch is closed. For example, in an embodiment where the pool cover switch being closed corresponds to the pool cover being closed, when the pool cover switch is closed, the chlorine output of the chemical controller may be decreased (e.g., to 20% of max), laminar flow features may be disabled, and/or a speed of the filter pump may be reduced. - The
jets 154 may be disposed at the floor, walls, or other structures of the pool and/orspa 112, and designed to output pressurized water. Thejets 154 may be turned on or off based on commands received from the controlsystem load center 102 or theexpansion panels 108. In some embodiments, thejets 154 may be controlled by sending commands one or more actuators of thesmart valves 142 and/or one or more of thepumps 144, rather than controlling the jets themselves. In some embodiments, the pressure output by thejets 154 may be selectively controllable (e.g., based on user input to a user interface displayed on an electronic screen of one ofcontrol panels user devices jets 154 may be configured to operate according to a user-defined schedule. - The
automatic cleaner 156 may, for example, be a floor-based automatic cleaner, robotic automatic cleaner, pressure-side automatic cleaner, and/or suction-side automatic cleaner. Theautomatic cleaner 156 may be turned on or off based on commands received from the controlsystem load center 102 or theexpansion panels 108. In some embodiments, theautomatic cleaner 156 may be configured to operate according to a user-defined schedule. Theautomatic cleaner 156 may include an automatic cleaner pump, the operation of which may be limited based on whether other pool/spa devices (e.g., a solar heater of theheaters 146, a spa pump, etc.) are active, as will be described later in connection withFIG. 9 . - Returning to
FIG. 1A , the controlsystem load panel 102 and theexpansion panels 108 may be connected to one or more of the pool/spa devices 110 through various wired connections. For example, the controlsystem load panel 102 may include multiple high voltage relays (e.g., 120 V and/or 240 V) in addition to theserial communication ports 106 andLAN ports 104, through which thepumps 144, andlights 148 of the pool/spa devices 110 may be selectively powered. In some embodiments, the controlsystem load panel 102 and/or theexpansion panels 108 may include one or more low voltage control ports and relays (e.g., capable of outputting and/or controlling low voltage control signals, which may be 12V, 24V, or another applicable voltage). In some embodiments, expansion boards may be installed in thesystem load panel 102 and/or theexpansion panels 108, which may provide additional high or low power relays and/or control ports (e.g., for controlling the smart valves 142). - Some or all of the control
system load center 102, theexpansion panels 108, and/or the pool/spa devices 110 may be natively or retroactively enabled to connect to the internet or another wide-area network (WAN)cloud 132 via a base station/gateway/router 124 to send and receive electronic data. In some embodiments, some or all of the pool/spa devices may be Internet of Things (IoT) devices. Each of the IoT devices may be embedded with electronics, software, sensors, actuators, and network connectivity, either within the device itself or in cooperation with one or moreconnected servers 136, which enable the IoT devices and their embedded software to collect and exchange data. In some embodiments, the IoT devices of the pool/spa devices 110 may communicate with theservers 136 and/orremote user devices 134 via electronic communication between the controlsystem load center 102 and the pool/spa devices 110 (e.g., viaserial ports 106 of the controlsystem load center 102, and/or a wireless transceiver, such as wireless transceiver 114), via communication between the controlsystem load center 102 and the base station/gateway/router 124 (e.g., viaLAN ports 104 of the controlsystem load center 102 and/or via the wireless transceiver 122), and via communication between the base station/gateway/router 124 and theremote user devices 134 and/orservers 136 via theWAN 132. It should be understood that, while the pool/spa devices 110 may include serial communications capabilities and may be connected to the controlsystem load center 102 viaserial ports 106, some or all of the pool/spa devices 110 may include wireless communication capabilities. In such embodiments, wireless enabled devices of the pool/spa devices 110 may connect to and communicate with the controlsystem load center 102 via thewireless transceiver 114 or through thewireless transceiver 122 via a wireless connection to the base station/gateway/router 124. - In some embodiments, the control
system load center 102 may include a wireless access point to which these wireless enabled devices may connect. In some embodiments, communication between the controlsystem load center 102 and these wireless enabled devices may be performed, such that data is wirelessly transmitted from a wireless enabled device to the base station/gateway/router 124 or another base station/gateway/router that is part of a separate LAN, then the data is passed through the internet/WAN network 132 toservers 136/137, the servers then passing the data back through the internet/WAN network 132, through the base station/gateway/router 124, through thewireless transceiver 122 and/or theLAN ports 104 to the controlsystem load center 102. Communication of data from the controlsystem load center 102 to the wireless enabled device would reverse this data path. This latter example may allow a single controlsystem load center 102 to communicate with and control multiple sets of wireless enabled pool/spa devices that may be communicatively coupled to multiple LANs, thereby allowing for the control and monitoring of multiple pools and/or spas at different locations with a single controlsystem load center 102. - In some embodiments, one or more of the
expansion panels 108 may also be wireless enabled (e.g., containing or being coupled to a wireless network interface circuit/module), and may utilize wireless communication to send and receive data to/from the controlsystem load center 102 using data paths similar to those examples described above in connection with the wireless enabled pool/spa devices. - Additionally,
local user devices 127, which may include smartphones and client computers, such as amobile computing device 128 and aclient computing device 130, respectively, may communicate with the pool/spa devices 110 via the base station/gateway/router 124, the controlsystem load center 102, and/or theexpansion panels 108. As shown, in some embodiments thewireless transceivers system load center 102 via connections toLAN ports 104 andserial ports 106 of the controlsystem load center 102, respectively. However, in other embodiments, one or both of thewireless transceivers wireless transceiver 122 may communicate with the base station/gateway/router 124 via a wireless communication protocol, which may be, for example, a communication protocol corresponding to one or more of the IEEE 802.11 standards, such as Wi-Fi™ (e.g., operating in the 2.4 and/or 5 GHz bands). As shown, in some embodiments, one or more of theLAN ports 104 of the control system load center may alternatively or additionally be electrically coupled to the base station/gateway/router 124 via a physical, wired connection (e.g., via an Ethernet cable, such as CAT5/CAT5e/CAT6). - In some embodiments, various IoT devices of the pool/
spa devices 110 in anenvironment 100 may send and/or receive data transmissions over theWAN 132, a local area network (LAN) (e.g., consisting of local devices connected to the base station/gateway router 124), and/or another communication network using any suitable communication protocol. For example, the IoT devices may communicate over the LAN (e.g., via the base station/gateway router 124) with the localclient computing device 130, such as in a private network where transmitted data to/from the IoT devices is isolated from the internet or anotherWAN 132, at least until the data is processed by the localclient computing device 130.Local user devices 127 may also be connected to the base station/gateway router 124 in order to access the data generated by the IoT devices as described below. In some embodiments, IP connectivity may be used, connecting the LAN corresponding to the base station/gateway/router 124 to the Internet or anotherWAN 132, so that remote user devices 134 (e.g., remote smart phones, computers, and other applicable network-enabled client devices) andservers 136 may communicate with the controlsystem load center 102 and/or the pool/spa devices 110. - In some embodiments, IoT devices of the pool and
spa devices 110 and/or the controlsystem load center 102 may communicate with and directly use the resources of one or more physical, remote server computing devices of theservers 136, which may be deployed in one or more data centers (for example) in a particular geographic location or dispersed throughout several geographic locations. In other embodiments, theservers 136 may cooperate to provide virtualized computing resources that can be allocated for use by, for example, an authorized user of a computing resource service provider. Thus, a user that controls, or provides services for, the IoT devices of the pool/spa devices 110 and/or the controlsystem load center 102 may configure and deploy one or morevirtual servers 137 that are allocated the use of certain physical computing resources, such as processor cycles, memory, data storage, etc., of thephysical servers 136; the IoT devices of the pool/spa devices 110 and/or the controlsystem load center 102 may, in turn, be configured to connect to thevirtual servers 137. For example, an IoT device may be programmed to connect to an IP address associated with an endpoint that connects a virtual network adapter of theservers 137 to a physical network adapter of thephysical servers 136. Thevirtual servers 137, or the computing resource service provider's computing environment in which thevirtual servers 137 are deployed, may provide other computing resource services for implementing an IoT platform. - A user may operate one or more
local user devices 127, which may includeclient computing devices 130, such as a desktop or laptop computer, or amobile computing device 128 such as a phone or tablet, running client software that enables thedevices server client computing devices client computing device spa devices 110 and/or the controlsystem load center 120 and the server(s). For example, the server(s) may host the customizable software that is deployed to, and installed on, each IoT device and/or the controlsystem load center 102. The server(s) may also run the software and protocols for other services used by the IoT platform, as well as for the interface to theclient computing devices computing devices control panels system load center 102, and may send commands to the controlsystem load center 102 in the form of one or a series of control signals (sometimes referred to as “command data”). For example, in response to commands received from the control devices, the controlsystem load center 102 may selectively activate, deactivate, or otherwise control one or more pool/spa devices 110, one or more feature circuits, feature circuit groups, and/or light groups and corresponding logic functions may be defined (e.g., programmed) for circuits of the pool/spa devices 110, and/or settings of the controlsystem load center 102 may be customized. For example, a given feature circuit may be defined in memory (e.g., in response to corresponding command data received from a client device) along with a logic function that causes all circuits assigned to the feature circuit to be turned off, a logic function that causes all circuits assigned to the feature circuit to be turned on, a logic function that causes a first subset of the circuits assigned to the feature circuit to be turned off any time a second subset of the circuits assigned to the feature circuit are turned on, a logic function that defines time-based rules for the activation and/or deactivation of at least a first circuit assigned to the feature circuit in relation to the activation and/or deactivation of at least a second circuit assigned to the feature circuit (e.g., the first circuit must be turned on for at least five minutes before the second circuit is turned on; the first circuit must be turned off for at least ten minutes if the second circuit is turned on while the first circuit is on, etc.), or other applicable logic functions. Generally, the logic function associated with a feature circuit defines how pool/spa device circuits assigned to the feature circuit are to be controlled (individually or with respect to other pool/spa device circuits assigned to the feature circuit) when the feature circuit is activated. - As another example, a client device (e.g., the
wireless control panel 116, theindoor control panel 126, and/or or local orremote user devices system load center 102 may cause definitions of the feature circuit and the logic function to be stored in a memory device of the controlsystem load center 102. The client device may later send a second command to the controlsystem load center 102, the second command requesting the activation of the feature circuit that was defined based on the first command. A processor of the controlsystem load center 102 may retrieve the definitions of the feature circuit and the logic function from the memory device in response to the second command. The processor of the controlsystem load center 102 may identify the pool/spa device circuits assigned to the feature circuit based on the definition of the feature circuit. The processor of the controlsystem load center 102 may then selectively control the circuits assigned to the feature circuit according to the logic function. - Various dedicated devices, such as a “QuickTouch” remote 120, a
wireless control panel 116, and/or anindoor control panel 126, may be configured to interact with (e.g., control and/or retrieve data from or related to—via wired or wireless electronic communication) the controlsystem load center 102 and/or the pool/spa devices 110. - For example, the
indoor control panel 126 may be electrically coupled to and in electronic communication with the control system load center 102 (e.g., via a serial connection, such as a RS485 connection). Theindoor control panel 126 may include an electronic screen that may display a user interface through which a user may interact with the controlsystem load center 102 and the pool/spa devices 110. For example, the electronic screen of theindoor control panel 126 may be a capacitive touch screen. - For example, the
wireless control panel 116 may be wirelessly connected to the controlsystem load center 102 via awireless transceiver 114 that may be connected to (e.g., via a serial connection, such as RS485, between thewireless transceiver 114 and the serial ports 106) or integrated with the controlsystem load center 102. In some embodiments, wireless communication between thewireless control panel 116 and thewireless transceiver 114 may be performed according to a predefined wireless communication protocol, which may be, for example, a personal area network (PAN) communication protocol such as Bluetooth®. Thewireless control panel 116 may be a portable device (e.g., battery powered). The battery of thewireless control panel 116 may be recharged by placing thewireless control panel 116 in a docking station (e.g., sometimes referred to as a “cradle”), which may interface with contacts of thewireless control panel 116 through which the docking station supplies power to recharge the battery of thewireless control panel 116. Thewireless control panel 116 may be water resistant, so that handling thewireless control panel 116 with wet hands or incidental splashing of thewireless control panel 116 will not substantially damage the device. Thewireless control panel 116 may include an electronic screen that may display a user interface through which a user may interact with the controlsystem load center 102 and the pool/spa devices 110. For example, the electronic screen of thewireless control panel 116 may be a capacitive touch screen. - The QuickTouch remote 120 may be similarly wirelessly coupled to the
wireless transceiver 114 according to a similar or the same protocol as used by thewireless control panel 116. In some embodiments, the QuikTouch remote 120 may communicate with thewireless transceiver 114 via a default or user-defined “remote channel”, which may correspond to a particular radio frequency (RF) communication frequency or frequency band. The QuickTouch remote may include a finite number of buttons, rather than a screen with a user interface. Each button of the QuickTouch remote may be programmed (e.g., via the user interface accessible via thewireless control panel 116, theindoor control panel 126, and/or or local orremote user devices spa devices 110 to be performed. For example, a given button of the QuickTouch remote may be configured to increase or decrease a temperature of a spa via control of one or more of theheaters 146, to activate, deactivate, or otherwise control the pool or spa lights 148 (e.g., initiating, in some embodiments, the performance predefined “light shows” by groups of lights of the pool/spa devices 110, as will be described), to activate or de-activate the pool and/orspa jets 154, and/or to cause any other applicable function of the pool/spa devices 110 to be performed. -
FIG. 2 shows anillustrative home screen 200 of a user interface which may be displayed on an electronic screen of a computing device (e.g., thewireless control panel 116, theindoor control panel 126, and/or or local orremote user devices FIG. 1A ). As shown, thehome screen 200 may include a number oficons -
Icon 202, shown as a pool in the present example, may be selected by a user to access a pool screen of the user interface. At the pool screen, for example, operation of the pool filter pump (e.g., ofpumps 144 ofFIG. 1B ) may be controlled, operation of one or more heaters (e.g., ofheaters 146 ofFIG. 1B ) may be turned on/off, the temperature of the pool may be set to a defined temperature (e.g., a setpoint temperature), and/or restrictions on the pool pump may be overridden while a freeze protection mode is active (as will be described). -
Icon 204, shown as a spa in the present example, may be selected by a user to access a spa screen of the user interface. At the spa screen, for example, operation of the spa pump (e.g., ofpumps 144 ofFIG. 1B ) may be controlled, operation of one or more heaters (e.g., ofheaters 146 ofFIG. 1B ) may be turned on/off, a spa water temperature setpoint may be defined and/or restrictions on the pool pump may be overridden while the freeze protection mode is active (as will be described). -
Icon 206, shown as a waterfall feature in the present example, may be selected by a user to access a feature screen of the user interface. At the feature screen, individual feature circuits or groups of feature circuits may be controlled (e.g., turned on and off). - As described above, a user or service technician may define one or more feature circuits via the user interface (e.g., of
wireless control panel 116, theindoor control panel 126, and/or or local orremote user devices FIG. 1A ). These feature circuits may allow advanced functions to be selectively performed without wasting valuable relay outputs or auxiliary (AUX) circuits. Additionally, feature circuits provide flexibility in that they may be added or deleted via interaction with the user interface, which may not be possible for auxiliary circuits (e.g., without adding or removing a physical expansion panel/card). - For example, a feature circuit may be assigned for controlling multiple valve actuators (e.g.,
smart valves 142 ofFIG. 1A ) in a system. A feature circuit may be assigned (i.e., programmed) as a way to select the speed of a 2-speed or other variable speed filter pump (e.g., pumps 144 ofFIG. 1A ). A feature circuit may also be assigned to activate a spa spillway effect, where in a pool/spa combination (e.g., pool and/orspa 112 ofFIG. 1A ), the pool water can be diverted to the spa and then spill back to the pool. For example, multiple circuits corresponding to one or more pool/spa devices (e.g. pool/spa devices 110 ofFIG. 1A ) may be assigned to a given feature circuit, with logic associated with (e.g., programmed for) the feature circuit defining the operation of pool/spa device circuits assigned to the feature circuit (e.g., at defined times, under defined conditions, etc.). Here, a “pool/spa device circuit” may refer to an electric circuit that controls whether one or more corresponding pool/spa devices are turned on or off, may refer to an electric circuit that controls the speed of a variable speed pump, and/or may refer to an electric circuit that controls a characteristic (e.g., light color, level of valve actuation) of a pool/spa device. - When defining a feature circuit, each circuit assigned to the feature circuit may be defined as “on,” “off,” or “undefined” (e.g., “don't care”), such that, when a given feature circuit is activated, all circuits of the feature circuit defined as “on” may be turned on, all circuits of the feature circuit defined as “off” may be turned off, and all circuits of the feature circuit that are “undefined” may be left unchanged.
- In some embodiments, a feature circuit group may be defined for a number of feature circuits. The feature circuit group may allow multiple feature circuits to be turned on and/or off with a single button press at the user interface, by activating or deactivating the feature circuit group via the single button press.
- A “valve actuators” screen can be provided in the user interface for configuring valve actuators to be controlled by one or more feature circuits. The system (e.g., the control
system load center 102 ofFIG. 1A and 1B ) can drive one or more auxiliary valve actuators for applications such as solar heating and water features. -
Icon 208, shown as a pool light in the present example, may be selected by a user to access a light screen of the user interface. At the light screen, individual lights or defined groups of lights may be selectively controlled. An example of the light screen is described below (e.g., in connection withFIG. 3 ). For example, individual or groups of color lights may be turned on or off, color set, color sync, and color swim features may be selectively activated, and preset light shows may be activated. Color set, color sync, and color swim features are described below (e.g., in connection withFIGS. 5-7 ). -
Icon 210, shown as a clock in the present example, may be selected by a user to access a schedule screen of the user interface. At the schedule screen, daily pool/spa operations (e.g., operations of the pool/spa devices 110 ofFIGS. 1A, 1B ) may be schedule to occur during time periods that may be defined by the user. In addition to a “normal” daily pool/spa operational schedule, a separate “vacation mode” daily pool/spa operational schedule may be defined by the user via the schedule screen, or a sub-screen thereof. This vacation mode schedule may be active only when a user initiates vacation mode (e.g., via selection of a vacation mode button displayed on the schedule screen of the user interface). -
Icon 212, shown as a bar chart in the present example, may be selected by a user to access a usage screen of the user interface. At the usage screen, usage data (e.g., for one or more of the pool/spa devices 110 ofFIG. 1A, 1B ), and/or a sensor data may be displayed. The displayed sensor data may be include data collected from sensors (e.g.,sensors 150 ofFIG. 1B ) that are coupled to pool/spa devices and/or that are disposed in the general area of the pool and/or spa (e.g., ambient temperature sensors) over time. The usage data and the sensor data may be stored locally on one or more memory devices of one or more local computer systems and/or remotely on one or more memory devices of one or more remote computer systems (e.g.,local user devices 127 and/orservers FIG. 1A ). For example, the usage data may include heater usage (e.g., gas heater usage, heat pump usage, hybrid heater usage), pump usage (e.g., pool pump usage, spa pump usage, automatic cleaner pump usage), chemical feed time (e.g., pH feed time, oxidation-reduction potential (ORP) feed time), and/or pump speed (e.g., for variable speed pumps). For example, the sensor data may include air temperature (e.g., measured by an ambient temperature sensor of thesensors 150 ofFIG. 1B ), pool water temperature (e.g., measured by a water temperature sensor of thesensors 150 ofFIG. 1B ), spa water temperature (e.g., measured by a water temperature sensor of thesensors 150 ofFIG. 1B ), solar temperature (e.g., measured by a temperature sensor of thesensors 150 ofFIG. 1B that is in thermal communication with a solar panel of a solar heater coupled to the pool and/or spa), pH level data (e.g., measured by a pH sensor of thesensors 150 ofFIG. 1B , which may be coupled to or integrated with a chemical controller, such aschemical controller 140 ofFIG. 1B ), and/or ORP level data (e.g., measured by a ORP sensor of thesensors 150 ofFIG. 1B , which may be coupled to or integrated with a chemical controller, such aschemical controller 140 ofFIG. 1B ). These examples of usage data and sensor data are intended to be illustrative and not limiting. If desired, other applicable usage and/or sensor data may be collected, stored, and displayed on the usage screen. - The displayed usage data and sensor data may be displayed as a graph, group of graphs, and/or as a list, and may correspond to a selected time period (e.g., with only usage and sensor data corresponding to the selected time period being displayed). The user may be provided with multiple options via the usage screen that allow the selection of a type of usage data or sensor data to view and a time period over which to view the selected data (e.g., which may be defined in days, weeks, months, or years). In some embodiments, the options may include an option for the display of two or more selected types of usage data and/or sensor data to display on a single graph (e.g., which may be used to compare the data of the selected types). As an example, a user may select average daily air temperature and daily gas heater usage to be displayed on a single graph of the usage screen over a period of one month. In some embodiments, the options may include an option for the display of a single type of usage data or sensor data for two selected time periods (e.g., the two most recent, consecutive time periods) overlaid on a single graph. In some embodiments, multiple individual graphs, each corresponding to a different type of usage data or sensor data and a selected time period, may be shown together on the usage screen.
- An example of a
usage screen 300 that includes a summary view of usage and sensor data, (e.g., which may be accessed via selection of theicon 212 ofFIG. 2 ) is shown inFIG. 3A . As shown, theusage screen 300 provides a comparative listing of air temperature, pool water temperature, spa water temperature, gas heater usage, pool pump usage, and spa pump usage for a current 30 day period and for a preceding 30 day period. Theusage screen 300 includes agraph icon 302 which, when selected, causes a graph of a user-selected usage data type or sensor data type to be displayed over a defined time period., and acomparative graph icon 304 which, when selected, causes a comparative graph of two or more user-selected usage data types and/or sensor data types to be displayed over a defined time period. -
FIG. 3B shows an example of a usage screen 306 (e.g., which may be accessed via selection of acomparative graph icon 304 on theusage screen 300 ofFIG. 3 ) that includes a comparative graph view of detected ORP values (e.g., on a scale of 0 to 1 volts) to detected pH values (e.g., on a scale of 0-10) over a two day period. - Returning to
FIG. 2 ,icon 214, shown as a droplet and test tube in the present example, may be selected by a user to access a chemistry screen of the user interface. At the chemistry screen, the current pH, ORP, water balance, and salt content of the water are displayed. In some embodiments, a tank indicator may be shown, representing the level of acid (e.g., muriatic acid) present in the chemical controller system of the pool/spa. From the chemistry screen, a user may adjust a pH setpoint, adjust water balance settings (e.g., salt level, calcium hardness, alkalinity, and cyanuric acid level), adjust chlorine output to one or more bodies of water (e.g., pools/spas), and/or adjust an ORP level set point, and adjust the level of the tank indicator to match the actual level of the corresponding acid tank. In some embodiments, alerts may be shown on the chemistry screen, which may include chlorine tank salt level alerts (e.g., corresponding to low detected salt level in the chlorine tank of the chemical control system, below a predefined threshold), water salt level alerts (e.g., corresponding to low detected salt level in parts per million in the water of the pool and/or spa), pH level alerts (e.g., that occur when detected pH level is outside of a predefined range, such as 7.2 to 7.8) , and/or ORP level alerts (e.g., that occur when detected ORP level is outside of a predefined range, such as 400 mV to 800 mV). -
Icon 216, shown as a letter “i” in the present example, may be selected by a user to access a status/alerts screen of the user interface. The status/alerts screen may display the current system status, warnings, and alerts. For example, a color coded system may be employed, where warnings (e.g., low voltage conditions, system power loss, device communication loss, pool/spa chemical imbalances, and the like) are shown with a red indicator, caution alerts (e.g., chemical feeder errors, low chemical tank levels, and the like) are shown with an orange indicator, system status conditions (e.g., heater cool-down delays, informational pump speed and/or power usage, and the like) are shown with a blue indicator, and a green indicator is shown when no warnings/alerts/errors have been detected. In some embodiments, the particular types of alerts and status information generated by the system and shown at the status/alerts screen may be selectively enabled via the user interface. For example, the user may be provided with a list of alert types and status information types via the user interface, and may selectively enable or disable each alert type and status information type. -
Icon 218, shown as a gear in the present example, may be selected by a user to access a settings screen of the user interface. The settings screen may provide a user with a number of options for viewing and potentially changing settings of the control system. For example, the settings screen may include options for the initiation of a vacation mode, the initiation of a service mode, accessing and viewing of support information, altering general settings such as touchscreen settings, location, date/time, units, features, lights list order, backlight setting, temperature sensor calibration, day/night themes, manual operation priority, and chemistry readings, accessing the alerts and notifications screen, defining security settings such enabling passcode protection for the control system and establishing administrator and guest passcodes, creating or logging into a user account of a web portal, viewing and/or editing light groups/feature circuits/feature circuit groups, rebooting the system (e.g., rebooting the controlsystem load center 102 ofFIGS. 1A, 1B ), setting up remotes, configuring the system (e.g., the controlsystem load center 102 ofFIGS. 1A, 1B ) as part of an installation setup, configuring a communications network (e.g., in communication with the controlsystem load center 102 ofFIG. 1A, 1B ) such as an Ethernet or wireless network, wireless remote setup, defining delay settings (e.g., for valves, heater cool down, override delays, etc.), viewing system information, importing and/or exporting system configurations and status logs, restoring factory default settings of the system, and/or initiating a setup “wizard” to configure the system with a step-by-step digital assistant. -
Icon 220, shown partially overlapping theicon 202, may show the temperature of a corresponding pool, and a temperature setpoint. When a heater of the pool is turned off, the temperature setpoint may be omitted from theicon 220. While not shown in the present example, an icon that is similar toicon 220 may be displayed overlapping theicon 204, which may show the temperature of a corresponding spa and a temperature setpoint. -
Icon 222, shown partially overlapping theicon 206, may show a number representing the number of connected features that are presently active (e.g., that have been manually switched on). -
Icon 224, shown partially overlapping theicon 208, may show a number representing the number of connected lights that are presently active (e.g., that have been manually switched on). -
Icon 226, shown partially overlapping theicon 216, may show a number representing the number of unresolved alerts/warnings (sometimes referred to herein as alert data) that have been generated for the control system. -
FIG. 4 shows an illustrative light screen 400 (e.g., which may be accessed via the selection of theicon 208 ofFIG. 2 ) of a user interface which may be displayed on an electronic screen of a computing device (e.g., thewireless control panel 116, theindoor control panel 126, and/or or local orremote user devices FIG. 1A ). As shown, thelight screen 400 may include lightgroup selection buttons group edit buttons 410 for each light group,sync buttons 412, setbuttons 414, and swimbuttons 416. - For example, the light
group selection button 404 may be defined to correspond to a group of lights located in and around the landscape in the general area of a pool and/or spa. The lightgroup selection button 408 may be defined to correspond to all lights located on and/or around a waterfall feature of the pool/spa. When one of the lightgroup selection buttons - The light
group edit button 410, when selected, may bring up a light group settings screen in which the colors of one or more individual lights in the corresponding light group may be selected, and in which lighting mode may be changed (e.g., from fixed color mode to light show mode in which a light show may be performed by the lights of the light group). - The light
group sync button 412, when selected, may activate a sync function in which all lights in the group are synchronized to a common color at the beginning of a predefined color rotation, and a light color rotation (e.g., in a predefined sequence defined by color wheels of the lights) begins after a delay (e.g., a delay of 21 seconds). -
FIG. 5 shows an illustrative process flow for amethod 500 by which a sync function may be performed by a light group in response to a “sync” command. Atstep 502, a light screen (e.g.,light screen 400 ofFIG. 4 ) may be displayed on a user interface shown on an electronic screen of a local or remote control device (e.g.,control panels user devices FIG. 1A ) in electronic communication with a pool/spa control system. Essentially, the sync function may set all lights in the light group to the same color and may cause these lights to begin rotating at the same rate at the same time. The lights of the light group may each include a color wheel (e.g., a rotating wheel having different sections corresponding to color filters of different colors, such that when a given color filter is aligned with the light source of a particular light, the light color output by that light will correspond to the color of the given color filter) that, when rotated, causes the lights to change color according to a predefined sequence. - At
step 504, a control system processor (e.g.,control system processor 103 of controlsystem load center 102 ofFIGS. 1A, 1B ) may detect/determine that a sync command has been selected (e.g., in response to selection of the lightgroup sync button 412 ofFIG. 4 ), corresponding to a selected light group. - At
step 506, the control system processor may cause all lights in the selected light groups to be set (i.e., synchronized) to the same color. This color may correspond to the beginning of a predefined color rotation (e.g., a defined “beginning color” of the light wheel), in some embodiments. - At
step 508, after a predefined delay, the control system processor may cause the colors of all lights in the selected light group to begin rotating according to a predefined sequence (e.g., of the light wheel). - The
method 500 may be executed, at least in part, using a local device communicating with the control system via one or more local wireless connections or networks, or may be executed using a remote device communicating with the control system via a WAN and/or the internet. Additionally, in some embodiments in which a remote device is used in the execution of themethod 500, one or more physical and/or virtual servers may facilitate communication between the remote device and the control system. - Returning to
FIG. 4 , the lightgroup swim button 416, when selected, may activate a sync function in which all lights in the group are synchronized to a common color at the beginning of a predefined color rotation, and a light color rotation (e.g., in a predefined sequence according to a color wheel) begins after a delay (e.g., a delay of 21 seconds). -
FIG. 6 shows an illustrative process flow for amethod 600 by which a swim function may be performed for a light group in response to a “swim” command. Atstep 602, a light screen (e.g.,light screen 400 ofFIG. 4 ) may be displayed on a user interface shown on an electronic screen of a local or remote control device (e.g.,control panels user devices FIG. 1A ) in electronic communication with a pool/spa control system. - At
step 604, a control system processor (e.g.,control system processor 103 of controlsystem load center 102 ofFIGS. 1A, 1B ) may detect/determine that a swim command has been selected (e.g., in response to selection of the lightgroup swim button 416 ofFIG. 4 ), corresponding to a selected light group. - At
step 606, the control system processor may cause all lights in the selected light group to be set (i.e., synchronized) to the same color. This color may correspond to the beginning of a predefined color rotation, in some embodiments. - At
step 608, the control system processor may cause (e.g., via electronic communication) a first light of the light group to begin rotating according to a predefined sequence. For example, the predefined sequence may correspond to the predefined color rotation of a color wheel. - At
step 610, the control system processor may determine whether there are lights remaining in the light group that have not begun rotating. If are all lights in the light group are determined to have begun rotating, themethod 600 ends. The lights of the light group may continue to rotate according to the predefined sequence after themethod 600 ends. If at least one light of the light group is determined to have not begun rotating, then themethod 600 proceeds to step 612. - At
step 612, after a predefined delay (e.g., defined in a memory device of the controlsystem load center 102 ofFIG. 1 ), the control system processor may cause (e.g., via electronic communication) a new light in the light group to begin rotating according to the predefined sequence. Here, the “new light” refers to a light of the light group that has not begun rotating immediately prior to the execution ofstep 612. In some embodiments, the light group may be organized as an ordered list (e.g., in a memory device of the controlsystem load center 102 ofFIG. 1 ), where the order in which new lights begin rotating corresponds to the order of lights provided in the ordered list. By delaying the rotation of each light in the light group in a particular order, a “swim” effect may be created in which different colors of light appear to be “swimming” across the water of the pool or spa as the lights in the light group rotate colors. - The
method 600 may be executed, at least in part, using a local device communicating with the control system via one or more local wireless connections or networks, or may be executed using a remote device communicating with the control system via a WAN and/or the internet. Additionally, in some embodiments in which a remote device is used in the execution of themethod 600, one or more physical and/or virtual servers may facilitate communication between the remote device and the control system. - Returning to
FIG. 4 , the light group setbutton 414, when selected, may activate a set function in which all lights in the group are synchronized to a default color or a set of default colors. -
FIG. 7 shows an illustrative process flow for amethod 700 by which a set function may be performed for a light group in response to a “set” command. Atstep 702, a light screen (e.g.,light screen 400 ofFIG. 4 ) may be displayed on a user interface shown on an electronic screen of a local or remote control device (e.g.,control panels user devices FIG. 1A ) in electronic communication with a pool/spa control system. - At
step 704, a control system processor (e.g.,control system processor 103 of controlsystem load center 102 ofFIGS. 1A, 1B ) of a pool/spa control system may detect/determine that a set command has been selected (e.g., in response to selection of the light group setbutton 414 ofFIG. 4 ), corresponding to a selected light group. - At
step 706, the control system processor may cause (e.g., via electronic communication) all lights in the selected light group to be set to a default color. For example, prior to selecting the set command, the user may define (e.g., via a settings screen accessed viaicon 218 ofFIG. 2 ) a single default color or to which the lights in the selected light group are to be set in response to the set command. In this way, the lights of the light group may cause all lights in the light group to be set to a single predefined color in response to a single user command (e.g., a single press of the light group set button 414). - The
method 700 may be executed, at least in part, using a local device communicating with the control system via one or more local wireless connections or networks, or may be executed using a remote device communicating with the control system via a WAN and/or the internet. Additionally, in some embodiments in which a remote device is used in the execution of themethod 700, one or more physical and/or virtual servers may facilitate communication between the remote device and the control system. - A user may define one or more feature circuits via the user interface associated with the control system. The feature circuits may assign programmed logic functions to one or more circuits of pool/spa devices (e.g., pool/
spa devices 110 ofFIGS. 1A, 1B ), as described above. - In some embodiments, a “freeze protection” feature may be enabled for one or more pool/spa device circuits and/or feature circuits, such that corresponding freeze protect logic may protect the associated pool/spa devices when temperatures drop to or below freezing and a freeze protection mode is activated. For example, while freeze protection mode is active, the system (e.g., a processor thereof) may cause one or more pumps (e.g., of
pumps 144 ofFIG. 1B ) to run and for one or more valves actuators to open their corresponding valves when a temperature sensor (e.g., ofsensors 150 ofFIG. 1B ) detects that an ambient temperature has fallen below a predefined temperature threshold (e.g., <36° F.), such that water runs through some or all of the pipes of the pool/spa system, potentially preventing these pipes from freezing and/or bursting. The freeze protection mode may continue to be active until the freeze condition is determined to have ended (e.g., (e.g., ambient temperature >36° F.). Freeze protection may be enabled or disabled (e.g., by turning freeze protection “ON” or “OFF”) by a user via a corresponding settings screen (e.g., accessible via selection oficon 218 ofFIG. 2 ) of a user interface of a local or remote control device (e.g.,control panels user devices FIG. 1A ). In some embodiments, freeze protection for a given pool/spa device may be overridden in response to a user interaction with the user interface of a control device (e.g.,control panels user devices FIG. 1A ). -
FIG. 8 shows an illustrative process flow chart for amethod 800 by which a freeze protection mode (e.g., control system state) may be automatically activated and deactivated based on detected ambient temperatures. Atstep 802, a control system processor (e.g.,control system processor 103 of controlsystem load center 102 ofFIGS. 1A, 1B ) of a pool/spa control system may determine that the ambient temperature in the region of a pool/spa (e.g., pool and/orspa 112 ofFIG. 1A ) associated with the control system is at or below a predefined ambient temperature threshold (e.g., ≤36° F.). For example, in making this determination, the control system processor may compare the ambient temperature threshold to ambient temperature data received from an ambient temperature sensor (e.g., ofsensors 150 ofFIG. 1B ) coupled to the control system. - At
step 804, the control system processor may determine whether freeze protection is “ON” (e.g., whether a freeze protection setting is enabled). If freeze protection is “OFF” (e.g., disabled), themethod 800 ends. Otherwise, if freeze protection is “ON”, themethod 800 proceeds to step 806. - At
step 806, the control system processor identifies circuits (e.g., pool/spa device circuits) that have been assigned freeze protection (e.g., as defined in a memory of the controlsystem load center 102 ofFIG. 1A ). For example, circuits corresponding to the control of various pumps (e.g., pumps 144 ofFIG. 1B ) and valve actuators (e.g., ofsmart valves 142 ofFIG. 1B ) may be assigned freeze protection. Some circuits may be assigned freeze protection by default, while other circuits may need to be assigned freeze protection via user interaction with the user interface. - At
step 808, the control system processor activates (e.g., via electronic communication) the identified circuits. For example, the corresponding pumps may be activated and the corresponding valve actuators may be opened to cause water to flow through the pool/spa, thereby decreasing the likelihood that pipes of the pool/spa system will freeze and/or burst and potentially preventing such incidents entirely. In some embodiments, activating the identified circuits may correspond to the activation of a freeze protection mode. - At
step 810, the control system processor may prevent heaters (e.g.,heaters 146 ofFIG. 1B ) from automatically activating while the freeze protection mode is active. For example, if a heater is scheduled to activate at a time that the freeze protection mode happens to be active, the control system processor may prevent the heater from activating despite its activation being scheduled. In some embodiments, a user may override this prevention by manually activating the heater via a local or remote control device (e.g.,control panels user devices FIG. 1A ). - At
step 812, while freeze protection mode is active, the control system processor may periodically check to determine whether the freeze condition has ended. For example, the control system processor may periodically compare the predetermined ambient temperature threshold to the ambient temperature data generated by the ambient temperature sensor to determine whether the ambient temperature has risen above the ambient temperature threshold, in which case the freeze condition may be considered to have ended. If the control system processor determines that the freeze condition has not ended, themethod 800 may return to step 810, continuing to prevent the heater(s) from automatically activating. Otherwise, themethod 800 may proceed to step 814. - At
step 814, the control system processor may deactivate the identified circuits, effectively ending/deactivating the freeze protection mode. Themethod 800 may then end and normal operation of the control system may resume. - In some embodiments, a “master cleaner” feature (e.g., logic) may be defined for one or more pool/spa device circuits, which may define rules for the operation of an automatic cleaner and associated pool/spa devices. For example, the master cleaner feature may prevent an automatic cleaner pump (e.g., of the
pumps 144 ofFIG. 1B ) from running without a corresponding filter pump (e.g., of thepumps 144 ofFIG. 1B ) first being activated. For example, the master cleaner feature may force the filter pump to turn on for a predetermined amount of time prior to a scheduled activation of the automatic cleaner pump, and remain on during the operation of the automatic cleaner pump. The master cleaner feature may automatically shut off the automatic cleaner pump and/or prevent the automatic cleaner pump from running whenever a spa pump (e.g., of thepumps 144 ofFIG. 1B ) is switched on. The master cleaner feature may automatically shut off the automatic cleaner pump when a solar heater (e.g. ofheaters 146 ofFIG. 1B ) is activated and may prevent the automatic cleaner pump from being activated until either the solar heater is turned off or until a predetermined time period has elapsed. -
FIG. 9 shows an illustrative process flow chart for amethod 900 by which functions of a master cleaner feature (e.g., control system state) may be performed. Atstep 902, a control system processor (e.g.,control system processor 103 of controlsystem load center 102 ofFIGS. 1A, 1B ) of a pool/spa control system determines that a master cleaner feature has been activated. For example, the master cleaner feature may be activated in response to a corresponding interaction between a user and a corresponding screen of user interface of a local or remote control device (e.g.,control panels user devices FIG. 1A ), or may be activated as a default setting of the control system. - At
step 904, the control system processor periodically monitors status of pool/spa devices (e.g., pool/spa devices 110 ofFIG. 1B ) assigned to the master cleaner feature. For example, the control system processor may monitor when an automatic pool cleaner pump (e.g., ofpumps 144 ofFIG. 1B ) corresponding to an automatic pool cleaner (e.g.,automatic cleaner 156 ofFIG. 1B ) is scheduled to activate, may monitor the status of a spa pump (e.g., ofpumps 144 ofFIG. 1B ), and may monitor the status of a solar heater (e.g., ofheaters 146 ofFIG. 1B ). - At
step 906, the control system processor determines, based on a pre-defined and/or user-defined schedule, whether the automatic pool cleaner pump is scheduled to activate sooner than a predetermined amount of time tTH (e.g., 5 minutes). If not, the method proceeds to step 912. If so, the method proceeds to step 908. - At
step 908, the control system processor forces a filter pump (e.g., ofpumps 144 ofFIG. 1B ) of the pool to activate. - At
step 910, the control system processor activates the automatic pool cleaner pump at the scheduled time. In this way, the filter pump may be forced to run for the predetermined amount of time tTH (e.g., around 5 minutes) prior to the activation of the automatic pool cleaner pump. This may provide a priming delay for the automatic pool cleaner pump. - At
step 912, the control system processor determines whether the spa pump is on. If the spa pump is on, themethod 900 proceeds to step 914. If the spa pump is off, themethod 900 proceeds to step 918. - At
step 914, the control system processor prevents the automatic pool cleaner pump from running. - At
step 916, the control system processor determines whether the spa pump is off. If the spa pump is not off, themethod 900 returns to step 914 and the control system processor continues to prevent the automatic pool cleaner from running. If the spa pump is off, then themethod 900 returns to step 904, and monitoring of the pool/spa devices associated with the master cleaner feature continues. - At
step 918, the control system processor determines whether the solar heater is on. If the solar heater is on, themethod 900 proceeds to step 920. If the spa pump is off, themethod 900 returns to step 904, and monitoring of the pool/spa devices associated with the master cleaner feature continues. Step 918 may be skipped if the solar heater has been running uninterrupted for longer than the predetermined time period defined instep 922. - At
step 920, the control system processor prevents the automatic pool cleaner pump from running. - At
step 922, the control system processor determines whether the solar heater is off or if a predetermined time period (e.g., five minutes) has elapsed since the solar heater was turned on. If either both conditions are false, themethod 900 returns to step 920 and the control system processor continues to prevent the automatic pool cleaner pump from running. If either condition is true, themethod 900 returns to step 904 and monitoring of the pool/spa devices associated with the master cleaner feature continues. - It should be understood that
steps steps steps - One or more pool/spa devices (e.g., pool/
spa devices 110 ofFIGS. 1A, 1B ) coupled to a control system (e.g., coupled to controlsystem load center 102 orexpansion panels 108 ofFIGS. 1A, 1B ) may include on-board processing hardware that operates according to firmware stored on an associated memory device. Updated versions of this firmware may be released from time to time by device manufacturers. Conventionally, these firmware updates would need to be installed on the corresponding pool/spa device via a direct connection between a user's computer (on which the firmware update in question had previously been downloaded) and the pool/spa device itself. Depending on the location of the pool/spa device, such conventional methods may be inconvenient or impractical. However, with the control system of the present disclosure firmware updates may be automatically retrieved via a connection to a firmware update server via a WAN or the internet, and the control system may distribute the firmware update to the pool/spa device being updated. These automatic firmware updates may be performed with little or no input from a user, which may allow pool/spa devices to be easily maintained with the most up-to-date firmware. -
FIG. 10 shows an illustrative process flow chart for amethod 1000 by which a control system (e.g., controlsystem load center 102 ofFIGS. 1A and 1B ) may identify the availability of, retrieve, and distribute, one or more firmware updates for pool/spa devices (e.g., pool/spa devices 110 ofFIGS. 1A and 1B ) coupled to the control system. At step 1002 a control system processor (e.g.,control system processor 103 ofFIG. 1A ) of the control system may determine that a firmware update is available for a connected device (e.g., a pool/spa device). For example, the control system processor may periodically receive notifications of available firmware updates from a firmware server (e.g., one ofservers FIG. 1A ) via a connection to the internet (e.g., internet/WAN cloud 132 ofFIG. 1A ) via a base station/gateway router (e.g., base station/gateway/router 124 ofFIG. 1A ) and a wireless transceiver (e.g.,wireless transceiver 122 ofFIG. 1A ). - At
step 1004, the control system processor may determine whether a firmware update mode of the control system is enabled. For example, the firmware update mode may be enabled via selection of a corresponding setting by a user via a corresponding setting screen (e.g., accessible via selection oficon 218 ofFIG. 2 ) of a user interface of a local or remote control device (e.g.,control panels user devices FIG. 1A ). If the firmware update mode is enabled, themethod 1000 proceeds to step 1006. If the firmware update mode is not enabled, themethod 1000 ends. - At
step 1006, the control system processor automatically retrieves the firmware update that was determined to be available atstep 1002 from the firmware server (e.g., via the internet). - At
step 1008, the control system processor sends the firmware update to a connected device (e.g., of pool/spa devices 110) to which the firmware update corresponds. For example, the control system processor may “push” the firmware update to the connected device. -
FIG. 11A shows anillustrative backend architecture 1100 that may facilitate the collection and storage of sensor data, usage data, and/or device status information from a pool/spa control system (e.g., corresponding to pool/spa devices 110; via controlsystem load panel 102,wireless transceiver 122, base station/gateway/router 124, and internet/WAN cloud 132 ofFIGS. 1A, 1B ), the distribution of sensor data, usage data, and/or device status information to one or more client computer devices (e.g.,user devices FIG. 1A ) for display on one or more user interface screens thereof (e.g., as part of a usage screen such asusage screens FIGS. 3A and 3B ), and/or the routing of commands received from client computer devices operating in a remote mode (e.g.,user devices FIG. 1A ) to the pool/spa control system. - As shown, the
backend architecture 1100 may include aload balancer 1110, a first server orserver cluster 1112, a second server orserver cluster 1118, a communication bus/platform1124, adatabase server 1126, aweb gateway 1132, and a remote monitoring server orserver cluster 1134. The first server orserver cluster 1112 may include aweb server 1114, which may be an Internet Information Services (IIS), and a web application programming interface (API)server 1116. Theweb server 1114 may be connected to theweb API block 1116. In some embodiments, the functions of theweb server 1114 and theweb API server 1116 may be combined into a single server. The second server orserver cluster 1118 may include aweb server 1120 and aweb API server 1122. Theweb server block 1120 may be connected to theweb API server 1122. In some embodiments, the functions of theweb server 1120 and theweb API server 1122 may be combined into a single server. Thedatabase server 1126 may be a structured query language (SQL) server, and/or may include one ormore databases 1128 . The remote monitoring server orserver cluster 1134 may include a remote pool/spa API server 1136 and a remoteclient API server 1138. - The first and second servers or
server clusters load balancer 1110, to one or more pool/spa control systems 1102 (e.g., corresponding to the controlsystem load center 1102 ofFIGS. 1A and 1B ), and/orclients 1104,.The pool/spa control systems 1102 and theclients 1104 may each connect to the first server orserver cluster 1112 or the second server orserver cluster 1118 via theload balancer 1110. For example, a given pool/spa control system 1102 may maintain a persistent connection to theweb API server 1116 or theweb API server 1122 via a “heartbeat” signal. The heartbeat signal may be periodically sent to theweb API server spa control system 1102. The web API server may expect to receive a predetermined number of heartbeat signals from the given pool/spa control system 1102 in a given time period. The given pool/spa control system 1102 may expect to receive a heartbeat acknowledgement for each heartbeat signal sent by the given pool/spa control system 1102. If more than a predetermined number of expected heartbeat signals or heartbeat acknowledgements are lost (e.g., not received) over a given period, the connection between the pool/spa control system 1102 and the server orserver cluster 1112 may be terminated (either by the given pool/spa control system 1102 or by the web API) and, in some embodiments, automatically reestablished (e.g., by the given pool/spa control system 1102). The given pool/spa control system 1102 may initiate the connection to the server orserver cluster 1112, which may allow for the connection to be established without the need to reconfigure a firewall of the local network to which the given pool/spa control system 1102 is connected. - The
load balancer 1110 may be implemented via software (e.g., as part of the web gateway 1132) or stand-alone hardware, and may route network traffic (e.g., received from the pool/spa control systems 1102 or the clients 1104) to either the first server orserver cluster 1112, the second server orserver cluster 1118, or another connected server or server cluster, according a scheduling algorithm. For example, the scheduling algorithm may identify which of the servers orserver clusters - For example, initially, a given client of the
clients 1104 may connect to aweb gateway 1132 via an initially unsecure connection 1106 (e.g., corresponding to the hyper-text transfer protocol (HTTP)), which may authenticate the given client (e.g., using a username/password combination or a pre-shared key or token). If a givenclient 1104 fails to properly authenticate via theweb gateway 1132, theweb gateway 1132 may disallow the givenclient 1104 from connecting to the servers/server clusters web gateway 1132, the givenclient 1104 may communicate with the server/server clusters load balancer 1110 using a secure connection 1105 (e.g., corresponding to a Web Socket communication protocol that provides full-duplex communication channels between devices over a single TCP connection), which may bypass theweb gateway 1132. For example, theclients 1104 may include mobile user devices (e.g.,mobile devices 128 ofFIG. 1A ), web browsers or dedicated applications running on personal computer devices (e.g.,computing devices 130 ofFIG. 1A ), voice assistant clients, or other applicable clients. - The remote monitoring server or
server cluster 1134 may be connected to the pool/spa control systems 1102, one or more remote viewer clients 1108 (e.g., mobile user devices, web browsers, dedicated applications running on personal computer devices, voice assistant clients, or other applicable clients), and thedatabase server 1126. Specifically, the remote pool/spa API server 1136 may be coupled to the pool/spa control systems 1102 via respective TCP protocol connections, and may be communicatively connected to thedatabase server 1126. The remoteclient API server 1138 may be connected to theremote viewer clients 1108 via respective HTTPS protocol connections, and may be connected to thedatabase server 1126. - For example, the
remote viewer clients 1108 may correspond to a computer system that is executing remote viewer software. The remote viewer software may display sensor data, usage data, pool/spa device state data, and/or alerts/alert data corresponding to one or more of the pool/spa control systems 1102 via a user interface (e.g., a “remote monitoring dashboard”) shown on a givenremote viewer client 1108, without allowing the givenremote viewer client 1108 to issue commands to the one or more pool/spa control systems 1102 (although in some embodiments remote viewer clients may be assigned limited permissions to issue commands to the one or more pool/spa control systems 1102, such as to change chemical or temperature set points of the one or more pool/spa control systems 1102). - The
remote monitoring server 1134 may provide a producer-consumer system. For example, the remote viewer clients 1108 (consumers) may retrieve system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc.) corresponding to one or more pool/spa control systems 1102 from thedatabases 1128 via the remote client API server 1138 (e.g., which retrieves the system data and pushes it to one or more of the remote viewer clients 1108). The pool/spa control systems 1102 (producers) may upload (e.g., push) system data to thedatabases 1128 via the remote pol/spa API 1136. - The
web API server 1116 of the server orserver cluster 1112 may be coupled to thedatabase 1128 of thedatabase server 1126. Theweb API server 1122 of the server orserver cluster 1118 may also be coupled to thedatabase 1128 of thedatabase server 1126. - The
web servers 1114 and 1120 (e.g., which may be an Internet Information Services server) may be configured to host the web applications displayed via a user interface of a givenclient 1104. Theweb API servers web servers web API servers databases 1128, the retrieval of data from thedatabases 1128, and the routing of data between the server orserver cluster 1112 and the server orserver cluster 1118. - For example, a given pool/
spa control system 1102 may periodically provide system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc. related to the pool and/or spa devices to which it is connected) to the database(s) 1128 via one or more data paths that may include i) theload balancer 1110, theweb server 1114, theweb API server 1116, and thedatabase server 1126; ii) theload balancer 1110, theweb server 1120, theweb API server 1122, and thedatabase server 1126; and/or iii) the remote pool/spa API server 1136. For example, the given pool/spa control system 1102 may store all system data locally, and may periodically upload some or all of the locally stored system data to thedatabases 1128. In some embodiments, a givenclient 1104, if connected to a local network to which a given pool/spa control system 1102 is connected, may instead be operated in a “local” mode, in which, rather than retrieving system data from thedatabases 1128, the givenclient 1104 retrieves system data directly from the memory of the given pool/spa control system 1102 via the local network. - For example, a given
client 1104 may retrieve system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc.) from the database(s) 1128 in order to display that data on a corresponding screen of the user interface of the givenclient 1104. The data path by which the database(s) 1128 may route the requested data to the givenclient 1104 may include i) thedatabase server 1126, theweb API server 1116, theweb server 1114, and theload balancer 1110; and/or ii) thedatabase server 1128, theweb API server 1122, theweb server 1120. - For example, a given
remote viewer client 1108 may retrieve system data (e.g., sensor data, pool/spa device status data, usage data, alerts/alert data, etc.) from the database(s) 1128 in order to display that data on a corresponding screen of the user interface of the givenremote viewer client 1108. The data path by which the database(s) 1128 may route the requested data to the givenremote viewer client 1108 may include thedatabase server 1126 and the remoteclient API server 1138. - For example, when an alert is triggered at a given pool/
spa control system 1102, the given pool/spa control system 1102 sends alert data to the web API (web API 1116 or 1122) of the server or server cluster (server orserver cluster 1112 or 1118) to which it has been assigned by theload balancer 1110. The web API may then distribute an alert to one or more user devices of the clients 1104 (e.g., which may depend on the types of alert notifications that have been enabled for the given pool/spa control system 1102). For example, the web API may cause an e-mail, text (short message service (SMS)) message, and/or push notification to be sent to a givenclient 1104 and/or may activate an alert icon shown on the user interface of the givenclient 1104, in response to alert data received from the given pool/spa control system 1102. - The
web API 1116 of thefirst server 1112 may be communicatively coupled to theweb API 1122 of thesecond server 1118 via the communication bus/platform 1124 (e.g., which may be an Enterprise Serial Bus (ESB) or other applicable communication bus/platform). The communication bus/platform 1124 may manage communication between the server orserver cluster 1112 and the server orserver cluster 1118. In the illustrative example ofFIG. 11B , a client 1104-1 is connected to the server or server cluster 1118 (e.g., based on assignment by the load balancer 1110) and a pool/spa control system 1102-1 is connected to the server or server cluster 1112 (e.g., based on assignment by the load balancer 1110). It should be noted thatFIG. 11B provides a simplified view of a portion of thebackend architecture 1100, in which some components/devices are not shown. The client 1104-1 may issue commands (e.g., in response to interaction with one or more icons/buttons of the user interface displayed at the client 1104-1) to the pool/spa control system 1102-1. For example, the client 1104-1 may transmit command data to theweb server 1120, which may route the command data to theweb API 1122, which may route the command data to theweb API 1116 via the communication bus/platform 1124, which may route the command data to theweb server 1114, which may router the command data to the pool/spa control system 1102-1. Upon receiving and processing the command data, the pool/spa control system 1102-1 may perform one or more actions (e.g., opening/closing valves, changing pump speeds, turning a pump on or off, adjusting a temperature setpoint of a heater, activating/deactivating a heater, adjusting jet pressure, adjusting a chemical setpoint of a chemical controller, activating/deactivating an automatic cleaner, turning lights on/off, initiating light shows, changing light colors, and/or scheduling actions to be performed during a time period defined in the command data) in response to the command data. The communication bus/platform 1124 may connect the server orserver cluster 1112 to the server orserver cluster 1118, such that the command data may be passed from theweb API server 1122 to theweb API server 1116. - It will be appreciated by those skilled in the art that while the invention has been described above in connection with particular embodiments and examples, the invention is not necessarily so limited, and that numerous other embodiments, examples, uses, modifications and departures from the embodiments, examples and uses are intended to be encompassed by the claims attached hereto. The entire disclosure of each patent and publication cited herein is incorporated by reference, as if each such patent or publication were individually incorporated by reference herein. Various features and advantages of the invention are set forth in the following claims.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/387,396 US20190314243A1 (en) | 2018-04-17 | 2019-04-17 | Systems and Methods for Controlling Pool/Spa Devices |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862659000P | 2018-04-17 | 2018-04-17 | |
US16/387,396 US20190314243A1 (en) | 2018-04-17 | 2019-04-17 | Systems and Methods for Controlling Pool/Spa Devices |
Publications (1)
Publication Number | Publication Date |
---|---|
US20190314243A1 true US20190314243A1 (en) | 2019-10-17 |
Family
ID=68161018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/387,396 Pending US20190314243A1 (en) | 2018-04-17 | 2019-04-17 | Systems and Methods for Controlling Pool/Spa Devices |
Country Status (1)
Country | Link |
---|---|
US (1) | US20190314243A1 (en) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200077497A1 (en) * | 2018-08-28 | 2020-03-05 | J & J Electronics, Llc | Controller and power supply for controlling outdoor led lighting |
US20200319621A1 (en) | 2016-01-22 | 2020-10-08 | Hayward Industries, Inc. | Systems and Methods for Providing Network Connectivity and Remote Monitoring, Optimization, and Control of Pool/Spa Equipment |
US10976713B2 (en) | 2013-03-15 | 2021-04-13 | Hayward Industries, Inc. | Modular pool/spa control system |
US11000449B2 (en) | 2016-01-22 | 2021-05-11 | Hayward Industries, Inc. | Systems and methods for providing network connectivity and remote monitoring, optimization, and control of pool/spa equipment |
US11229143B2 (en) * | 2019-10-29 | 2022-01-18 | Asia Vital Components Co., Ltd. | Liquid-cooling heat dissipation system capable of regulating water quality |
US20220236812A1 (en) * | 2021-01-27 | 2022-07-28 | Sintokogio, Ltd. | Information processing device and information processing method |
WO2022157260A1 (en) * | 2021-01-22 | 2022-07-28 | Acwa Developpement | Electrical system dedicated to operating and supplying electrical power to the electrical equipment of a swimming pool |
US11446204B2 (en) * | 2017-08-16 | 2022-09-20 | York Sikora | Backup methods and systems for spa system thermal management |
WO2022208361A1 (en) * | 2021-03-29 | 2022-10-06 | Fluidra Group Australia Pty Ltd. | Concepts and methods for pool system communication between connectable devices |
US11573580B2 (en) | 2021-04-22 | 2023-02-07 | Hayward Industries, Inc. | Systems and methods for turning over fluid distribution systems |
US11579637B2 (en) | 2021-02-25 | 2023-02-14 | Hayward Industries, Inc. | Systems and methods for controlling fluid flow with a fluid distribution manifold |
WO2023071275A1 (en) * | 2021-10-29 | 2023-05-04 | 青岛海尔空调电子有限公司 | Group control system control method and device, and medium |
WO2023086540A3 (en) * | 2021-11-11 | 2023-06-22 | Zodiac Pool Systems Llc | Pool and spa operational parameter sharing via network connections |
WO2023133251A3 (en) * | 2022-01-06 | 2023-08-10 | Zodiac Pool Systems Llc | Hybrid heater for pools and spas |
US11865064B2 (en) | 2017-10-04 | 2024-01-09 | Sundance Spas, Inc. | Remote spa control system |
US20240087440A1 (en) * | 2022-09-08 | 2024-03-14 | Mirza Faizan | Iot based management system and a method for assisting users around a swimming pool |
US11946565B2 (en) | 2021-02-25 | 2024-04-02 | Hayward Industries, Inc. | Valve assembly |
WO2024081812A1 (en) * | 2022-10-14 | 2024-04-18 | Sundance Spas, Inc. | Automated temperature control system for spas |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020070611A1 (en) * | 1999-11-30 | 2002-06-13 | Cline David J. | Controller system for pool and/or spa |
US20050088119A1 (en) * | 2003-10-28 | 2005-04-28 | Pentair Pool Products, Inc. | Microprocessor controlled time domain switching of color-changing lights |
US20050258809A1 (en) * | 2004-03-15 | 2005-11-24 | Karslo William R | Control panel for pool |
US20080197788A1 (en) * | 2006-11-28 | 2008-08-21 | Hayward Industries, Inc. | Programmable Underwater Lighting System |
US20110195664A1 (en) * | 2010-02-05 | 2011-08-11 | Global Spa Components Inc., A Division Of Blue Falls Manufacturing Ltd. | Wireless control system for a spa |
US20130108476A1 (en) * | 2011-10-31 | 2013-05-02 | Yilcan Guzelgunler | Pump freeze protection |
US20140303781A1 (en) * | 2013-03-15 | 2014-10-09 | Hayward Industries, Inc. | Modular pool/spa control system |
US20150082225A1 (en) * | 2013-09-18 | 2015-03-19 | Vivint, Inc. | Systems and methods for home automation scene control |
US20160283878A1 (en) * | 2015-03-24 | 2016-09-29 | Ca, Inc. | System and method to use multi-factor capacity constraints for product-based release and team planning |
US20190238358A1 (en) * | 2018-02-01 | 2019-08-01 | Bby Solutions, Inc. | Automatic device orchestration and configuration |
-
2019
- 2019-04-17 US US16/387,396 patent/US20190314243A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020070611A1 (en) * | 1999-11-30 | 2002-06-13 | Cline David J. | Controller system for pool and/or spa |
US20050088119A1 (en) * | 2003-10-28 | 2005-04-28 | Pentair Pool Products, Inc. | Microprocessor controlled time domain switching of color-changing lights |
US20050258809A1 (en) * | 2004-03-15 | 2005-11-24 | Karslo William R | Control panel for pool |
US20080197788A1 (en) * | 2006-11-28 | 2008-08-21 | Hayward Industries, Inc. | Programmable Underwater Lighting System |
US20110195664A1 (en) * | 2010-02-05 | 2011-08-11 | Global Spa Components Inc., A Division Of Blue Falls Manufacturing Ltd. | Wireless control system for a spa |
US20130108476A1 (en) * | 2011-10-31 | 2013-05-02 | Yilcan Guzelgunler | Pump freeze protection |
US20140303781A1 (en) * | 2013-03-15 | 2014-10-09 | Hayward Industries, Inc. | Modular pool/spa control system |
US20150082225A1 (en) * | 2013-09-18 | 2015-03-19 | Vivint, Inc. | Systems and methods for home automation scene control |
US20160283878A1 (en) * | 2015-03-24 | 2016-09-29 | Ca, Inc. | System and method to use multi-factor capacity constraints for product-based release and team planning |
US20190238358A1 (en) * | 2018-02-01 | 2019-08-01 | Bby Solutions, Inc. | Automatic device orchestration and configuration |
Non-Patent Citations (2)
Title |
---|
Gebhart, Apple's Home app makes it easy to control your home from your phone. Finally. Sept. 19, 2016, CNET, 12 Pages, Page 1-12. (Year: 2016) * |
Pentair, "Pentair Intellitouch ScreenLogic User Manual - Creating a feature circuit macro" 10/28/2014, Page 51, Total 2 Pages. (Year: 2014) * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10976713B2 (en) | 2013-03-15 | 2021-04-13 | Hayward Industries, Inc. | Modular pool/spa control system |
US11822300B2 (en) | 2013-03-15 | 2023-11-21 | Hayward Industries, Inc. | Modular pool/spa control system |
US20200319621A1 (en) | 2016-01-22 | 2020-10-08 | Hayward Industries, Inc. | Systems and Methods for Providing Network Connectivity and Remote Monitoring, Optimization, and Control of Pool/Spa Equipment |
US11000449B2 (en) | 2016-01-22 | 2021-05-11 | Hayward Industries, Inc. | Systems and methods for providing network connectivity and remote monitoring, optimization, and control of pool/spa equipment |
US11096862B2 (en) | 2016-01-22 | 2021-08-24 | Hayward Industries, Inc. | Systems and methods for providing network connectivity and remote monitoring, optimization, and control of pool/spa equipment |
US11122669B2 (en) | 2016-01-22 | 2021-09-14 | Hayward Industries, Inc. | Systems and methods for providing network connectivity and remote monitoring, optimization, and control of pool/spa equipment |
US11129256B2 (en) | 2016-01-22 | 2021-09-21 | Hayward Industries, Inc. | Systems and methods for providing network connectivity and remote monitoring, optimization, and control of pool/spa equipment |
US11720085B2 (en) | 2016-01-22 | 2023-08-08 | Hayward Industries, Inc. | Systems and methods for providing network connectivity and remote monitoring, optimization, and control of pool/spa equipment |
US20220354740A1 (en) * | 2017-08-16 | 2022-11-10 | York Sikora | Backup methods and systems for spa system thermal management |
US11723837B2 (en) * | 2017-08-16 | 2023-08-15 | York Sikora | Backup methods and systems for spa system thermal management |
US20230310266A1 (en) * | 2017-08-16 | 2023-10-05 | York Sikora | Backup methods and systems for spa system thermal management |
US11446204B2 (en) * | 2017-08-16 | 2022-09-20 | York Sikora | Backup methods and systems for spa system thermal management |
US11957637B2 (en) | 2017-10-04 | 2024-04-16 | Sundance Spas, Inc. | Remote spa control system |
US11865064B2 (en) | 2017-10-04 | 2024-01-09 | Sundance Spas, Inc. | Remote spa control system |
US20200077497A1 (en) * | 2018-08-28 | 2020-03-05 | J & J Electronics, Llc | Controller and power supply for controlling outdoor led lighting |
US11229143B2 (en) * | 2019-10-29 | 2022-01-18 | Asia Vital Components Co., Ltd. | Liquid-cooling heat dissipation system capable of regulating water quality |
FR3119186A1 (en) * | 2021-01-22 | 2022-07-29 | Acwa Developpement | Electrical system dedicated to the power supply and control of electrical equipment in a swimming pool |
WO2022157260A1 (en) * | 2021-01-22 | 2022-07-28 | Acwa Developpement | Electrical system dedicated to operating and supplying electrical power to the electrical equipment of a swimming pool |
US11775081B2 (en) * | 2021-01-27 | 2023-10-03 | Sintokogio, Ltd. | Information processing device and information processing method |
US20220236812A1 (en) * | 2021-01-27 | 2022-07-28 | Sintokogio, Ltd. | Information processing device and information processing method |
US11946565B2 (en) | 2021-02-25 | 2024-04-02 | Hayward Industries, Inc. | Valve assembly |
US11698647B2 (en) | 2021-02-25 | 2023-07-11 | Hayward Industries, Inc. | Fluid distribution manifold |
US11579637B2 (en) | 2021-02-25 | 2023-02-14 | Hayward Industries, Inc. | Systems and methods for controlling fluid flow with a fluid distribution manifold |
WO2022208361A1 (en) * | 2021-03-29 | 2022-10-06 | Fluidra Group Australia Pty Ltd. | Concepts and methods for pool system communication between connectable devices |
US11579636B2 (en) | 2021-04-22 | 2023-02-14 | Hayward Industries, Inc. | Systems and methods for controlling operations of multi-manifold fluid distribution systems |
US11579635B2 (en) | 2021-04-22 | 2023-02-14 | Hayward Industries, Inc. | Systems and methods for controlling operations of a fluid distribution system |
US11573580B2 (en) | 2021-04-22 | 2023-02-07 | Hayward Industries, Inc. | Systems and methods for turning over fluid distribution systems |
WO2023071275A1 (en) * | 2021-10-29 | 2023-05-04 | 青岛海尔空调电子有限公司 | Group control system control method and device, and medium |
WO2023086540A3 (en) * | 2021-11-11 | 2023-06-22 | Zodiac Pool Systems Llc | Pool and spa operational parameter sharing via network connections |
WO2023133251A3 (en) * | 2022-01-06 | 2023-08-10 | Zodiac Pool Systems Llc | Hybrid heater for pools and spas |
US20240087440A1 (en) * | 2022-09-08 | 2024-03-14 | Mirza Faizan | Iot based management system and a method for assisting users around a swimming pool |
WO2024081812A1 (en) * | 2022-10-14 | 2024-04-18 | Sundance Spas, Inc. | Automated temperature control system for spas |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190314243A1 (en) | Systems and Methods for Controlling Pool/Spa Devices | |
AU2022200316B2 (en) | Modular pool/spa control system | |
US11722332B2 (en) | Wireless lighting controller with abnormal event detection | |
US9974150B2 (en) | Secure device rejoining for mesh network devices | |
US9898168B2 (en) | Security system access profiles | |
US20170070090A1 (en) | Smart electrical outlet | |
US20140304356A1 (en) | Wireless Aggregator | |
CA2906127C (en) | Security system installation | |
WO2015077842A1 (en) | Modular wireless power, light and automation control with user verification | |
CA2949128A1 (en) | Wireless lighting control systems and methods | |
CN111559778A (en) | System and method for water softener level detection using smart sensors | |
CN112789828B (en) | Intelligent adaptation of remote control functions in a local area network | |
EP3069333A1 (en) | Mobile user interface for security panel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
AS | Assignment |
Owner name: PENTAIR WATER POOL & SPA, INC., NORTH CAROLINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROWN, ED;LEWIS, KEITH;SIGNING DATES FROM 20230602 TO 20230610;REEL/FRAME:063960/0187 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |