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.
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.
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. 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. In some embodiments, 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. For example, 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. In some embodiments, 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. For example, 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. 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 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. In some embodiments, 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. For example, 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. 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 of control panels 116, 126 or user devices 127, 128, 130, 134. In some embodiments, 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. In some embodiments, 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.
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 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. 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 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. In some embodiments, 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. . In this way, 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). 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/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. In some embodiments, 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. In some embodiments, 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). In some embodiments, 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. In some embodiments, 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
Returning to
Some or all of the control system load center 102, the expansion 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 more connected 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 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. It should be understood that, while the 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. In such embodiments, 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.
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 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. Communication of data from the control system load center 102 to the wireless enabled device would reverse this data path. 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.
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 control system 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 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. As shown, in some embodiments 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. However, in other embodiments, one or both of 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). In some embodiments, 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-Fi™ (e.g., operating in the 2.4 and/or 5 GHz bands). As shown, in some embodiments, 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).
In some embodiments, 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. For example, 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. In some embodiments, 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.
In some embodiments, 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. In other embodiments, 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. Thus, 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. 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 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. 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). For example, 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. Additionally, 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”). For example, in response to commands received from the control devices, the 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. 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, the indoor control panel 126, and/or or local or remote user devices 127, 128, 130, 134) 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 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.
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). 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. For example, the electronic screen of the indoor control panel 126 may be a capacitive touch screen.
For example, 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 RS485, between the wireless transceiver 114 and the serial ports 106) or integrated with the control system load center 102. In some embodiments, 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®. 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. For example, 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. In some embodiments, 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. 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 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.
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., of pumps 144 of
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., of pumps 144 of
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, the indoor control panel 126, and/or or local or remote user devices 127, 128, 130, 134 of
For example, a feature circuit may be assigned for controlling multiple valve actuators (e.g., smart valves 142 of
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 of
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 with
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 of
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 of
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 the icon 212 of
Returning to
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 control system load center 102 of
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.
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 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. When one of the light group selection buttons 402, 404, 406, 408 is selected by a user via interaction with the user interface, 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.).
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).
At step 504, a control system processor (e.g., control system processor 103 of control system load center 102 of
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 the method 500, one or more physical and/or virtual servers may facilitate communication between the remote device and the control system.
Returning to
At step 604, a control system processor (e.g., control system processor 103 of control system load center 102 of
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, 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.
At step 612, after a predefined delay (e.g., defined in a memory device of the control system load center 102 of
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.
Returning to
At step 704, a control system processor (e.g., control system processor 103 of control system load center 102 of
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 via icon 218 of
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
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 of
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), the method 800 ends. Otherwise, if freeze protection is “ON”, the method 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 control system load center 102 of
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 of
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, 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.
At step 814, the 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.
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 of
At step 904, the control system processor periodically monitors status of pool/spa devices (e.g., pool/spa devices 110 of
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., of pumps 144 of
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, the method 900 proceeds to step 914. If the spa pump is off, the method 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, 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.
At 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.
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, 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.
It should be understood that 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 (e.g., pool/spa devices 110 of
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 of icon 218 of
At step 1006, 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).
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.
As shown, 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/platform1124, 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. In some embodiments, 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
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. For example, 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.).
For example, initially, 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. In contrast, after successful authentication via the web gateway 1132, 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. For example, the clients 1104 may include mobile user devices (e.g., mobile devices 128 of
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. 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 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.
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 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).
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 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 (producers) 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 (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 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. For example, 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.
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) 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. 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 the databases 1128. In some embodiments, 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.
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 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.
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 given remote viewer client 1108. 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.
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 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). 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 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.
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. In the illustrative example of
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.
Number | Date | Country | |
---|---|---|---|
62659000 | Apr 2018 | US |