The present invention relates to device discovery and address assignment for various devices on a network. More particularly, the present invention relates to a system and method for dynamic device discovery and address assignment for pool/spa equipment interconnected via a network.
Typically, discovery of devices on a half-duplex serial bus is accomplished by incrementing through a pre-defined address range, sending a response request to devices that are connected to a network, and recording the devices that respond. The Modbus communications protocol is one example of this approach.
In Modbus and other similar incremental addressing schemes, device enrollment can present some problematic conditions. For example, each device must be pre-addressed with a unique address to prevent multiple devices from having an identical address. This requirement makes setup and configuration of a network both a time consuming and error prone process. Therefore, it would be desirable to provide a network device discovery protocol that does not require pre-assignment of device addresses, yet allows any number of like devices to be added to the network.
The present invention overcomes the disadvantages and shortcomings of the prior art by providing a system and method for dynamic device discovery and address assignment for a network. The system transmits a device discovery request from a master device on a network, such as a pool/spa system controller, and receives a discovery response from a slave device which includes a pre-configured identifier. The system determines a network address based on the slave device identifier, and transmits an enrollment instruction with the network address to be used by the slave device. The system could be used to discover and assign addresses to various types of devices on a pool/spa network, such as pumps, underwater lights, chlorinators, water feature controllers, remote controllers, and/or other types of devices.
A pool or spa system for a pool or spa is disclosed that includes components operatively coupled via a communications network supporting dynamic device discovery. The system can include slave devices and a master controller. Each slave device is configured to perform one or more operations with respect to the pool or spa. Each of the slave devices is initially un-configured and has a unique device identifier associated therewith. The master controller is operatively coupled to the slave devices to form a network. The master controller is programmed to assign each of the slave devices a network address based on the unique identifier of each of the slave devices and in response to bidirectional communication between the master controller and the slave devices to configure the slave devices and enable addressed communication between the controller and the slave devices. The slave devices could include a pump, a filter, a sensor, a heater, or other equipment.
The master controller can broadcast a device discovery request on the network requesting a response from the slave devices and can receive, in response to the device discovery request, a response from a first device of the slave devices including the unique identifier associated with the first device. The master controller can correlate the device identifier received from the first device with an available network address, assign the network address to the first device, and can transmit a message on the network that includes the device identifier and the network address. The first device can receive the message, compare the device identifier in the message to the device identifier of the first device, and store the network address as the network address of the first device based on a determination that the device identifier included in the message matches the device identifier of the first device. At least one slave device can be configured such that it does not retain the network address assigned by the master controller when the slave device is powered down. The master controller can be programmed to periodically determine whether the network includes a slave device requiring configuration and/or can be programmed to maintain at least one table correlating the unique device identifier of each of the slave devices with the network address assigned to each of the slave devices.
The pool or spa system can include a gateway device operatively coupled between at least one of the slave devices and the master controller. The gateway communicates with the master controller on behalf of the at least one of the slave devices to facilitate assignment of the network address to the at least one of the slave devices.
A system for dynamic discovery of networked devices in a pool or spa system is disclosed that includes a non-transitory computer-readable medium and a processing device (or master controller). The non-transitory computer-readable medium stores computer executable instructions for a process of dynamically discovering networked devices in a pool or spa system. The processing device is programmed to execute the computer executable instructions to transmit a broadcast message including a device discovery request to the networked devices in the pool or spa system, receive a response message from an un-configured pool or spa device in the pool or spa system that includes a unique device identifier associated with the un-configured device, correlate the unique device identifier with a network address, and transmit the network address to the un-configured pool or spa device to transform the un-configured pool or spa device to a configured pool or spa device.
Also provided is a method of dynamically discovering networked devices in a pool or spa system. The method includes the steps of transmitting a broadcast message including a device discovery request to the networked devices in the pool or spa system, receiving a response message from an un-configured pool or spa device in the pool or spa system that includes a unique device identifier associated with the un-configured device, correlating the unique device identifier with a network address, and transmitting the network address to the un-configured pool or spa device to transform the un-configured pool or spa device to a configured pool or spa device.
The foregoing features of the invention will be apparent from the following Detailed Description of the Invention, taken in connection with the accompanying drawings, in which:
The present invention relates to a system and method for dynamic device discovery and address assignment for a network, as discussed in detail below in connection with
The dynamic discovery process 400 allows slave smart components (SC), e.g. devices 110-150, to be assigned a Network Address (NA) within a network (e.g., a pool/spa network). Discovery requests are addressed to the broadcast address, e.g. 0×FF, and responses are directed to the bus master address, e.g. 0×00. Each SC leaves the factory with a Unique Address (UA), e.g. device identifier, which is analogous to a MAC address, but is not reflective of a network address to be assigned by a controller in a network. In an exemplary embodiment, each device 110-160 (master and slave) on the bus 15 has a pre-programmed Unique Address (UA). For example, the UA is the device's serial number which is built into the device through a manufacturing process. One of the fields of the UA is a product code that defines the product type, and the other fields uniquely identify that particular device (e.g., a string of characters that can be used to distinguish the particular device from other devices of the same product type).
Referring now to
Alternatively, controller 160 can send a family-specific device discovery request using a command value of, e.g., 0×02, in the header of the packet, (e.g. temperature sensors only, heater only, pool lighting only, etc.) and by setting the UA product code byte 910 accordingly, as shown in
Referring now to
When a system is powered-up which utilizes the dynamic discovery protocol described herein, the controlling master device (e.g., controller 160) sends a discovery request packet to the broadcast address. All operational devices on the bus will receive this packet. Every unconfigured slave device (e.g., no assigned NA) will respond to the discovery request with its UA. In one embodiment, each slave uses a random backoff timer to reduce the number of collisions during the discovery period. As the master device receives a response, it assigns and transmits a NA configuration command to the UA of the responding (unconfigured) slave device. Only the slave device with the matching UA will accept the NA assignment. This slave is now considered configured and will no longer respond to discovery requests. As more slave devices enter the configured state, the number of collisions subsides. The discovery process continues until no more devices respond. At this time the network has settled and normal operation of the network will continue. In an exemplary embodiment, the master device is programmed to send a device discovery request upon startup, and at regular or periodic intervals as desired. In exemplary embodiments, the gateway cannot push newly discovered devices back to the master device without a discovery request from the master device.
The present invention can be embodied as a dynamic device discovery and address assignment software module and/or engine 1506, which can be embodied as computer-readable program code stored on the storage device 1504 and executed by the CPU 1510 using any suitable, high or low level computing language, such as, e.g., Java, C, C++, C#, .NET, and the like. The network interface 1508 can include, e.g., an Ethernet network interface device, a wireless network interface device, any other suitable device which permits the processing server to communicate via the network, and the like. The CPU 1510 can include any suitable single- or multiple-core microprocessor of any suitable architecture that is capable of implementing and/or running the dynamic device discovery and address assignment software 1506, e.g., an Intel processor, and the like. The random access memory 1512 can include any suitable, high-speed, random access memory typical of most modern computers, such as, e.g., dynamic RAM (DRAM), and the like. A mapping table 1516 can be stored in the storage device 1504.
Having thus described the invention in detail, it is to be understood that the foregoing description is not intended to limit the spirit or scope thereof. It will be understood that the embodiments of the present invention described herein are merely exemplary and that a person skilled in the art may make any variations and modification without departing from the spirit and scope of the invention. All such variations and modifications, including those discussed above, are intended to be included within the scope of the invention. What is desired to be protected by Letters Patent is set forth in the following appended claims.
The present application is a continuation of U.S. application Ser. No. 17/898,228 filed on Aug. 29, 2022 (U.S. Pat. No. 11,554,077), which is a continuation of U.S. application Ser. No. 14/213,172 filed on Mar. 14, 2014 (U.S. Pat. No. 11,426,325), which claims benefit of priority to U.S. Provisional Application No. 61/787,809 filed on Mar. 15, 2013, the entire disclosures of which are all expressly incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
7155497 | Grover | Dec 2006 | B2 |
7356011 | Waters et al. | Apr 2008 | B1 |
8923749 | Igoe | Dec 2014 | B2 |
9538355 | Zhang et al. | Jan 2017 | B2 |
11426325 | Blaine et al. | Aug 2022 | B2 |
11554077 | Blaine et al. | Jan 2023 | B1 |
20040221067 | Huang et al. | Nov 2004 | A1 |
20050033826 | Jones et al. | Feb 2005 | A1 |
20070093920 | Tarpo et al. | Apr 2007 | A1 |
20070294443 | Berenbaum et al. | Dec 2007 | A1 |
20080304408 | Kraemer et al. | Dec 2008 | A1 |
20100145479 | Griffiths | Jun 2010 | A1 |
20100299401 | Lloyd | Nov 2010 | A1 |
20100299430 | Powers | Nov 2010 | A1 |
20110002261 | Mocanu et al. | Jan 2011 | A1 |
20110196990 | Govindaraju et al. | Aug 2011 | A1 |
20110286859 | Ortiz et al. | Nov 2011 | A1 |
20120093508 | Baykal et al. | Apr 2012 | A1 |
20120151159 | Muralimanohar | Jun 2012 | A1 |
20120185571 | Uy | Jul 2012 | A1 |
20120221746 | Grinberg | Aug 2012 | A1 |
20120239206 | Sauer et al. | Sep 2012 | A1 |
20120265860 | Bockus et al. | Oct 2012 | A1 |
20130027176 | Stocker | Jan 2013 | A1 |
20130124763 | Kessler | May 2013 | A1 |
20130188514 | Jain | Jul 2013 | A1 |
20130211546 | Lawson et al. | Aug 2013 | A1 |
20130212574 | Hutchinson et al. | Aug 2013 | A1 |
20140064139 | Mcqueen et al. | Mar 2014 | A1 |
20140336821 | Blaine et al. | Nov 2014 | A1 |
20170346688 | Reddy et al. | Nov 2017 | A1 |
20220409481 | Blaine et al. | Dec 2022 | A1 |
Entry |
---|
International Search Report dated Jul. 29, 2014, issued in connection with Int'l Application No. PCT/US2014/028858 (2 pages). |
Written Opinion of the International Searching Authority dated Jul. 29, 2014, issued in connection with Int'l Application No. PCT/US2014/028858 (6 pages). |
Office Action dated May 20, 2016, issued in connection with U.S. Appl. No. 14/213,172 (26 pages). |
Extended European Search Report dated Oct. 4, 2016, issued in connection with European Application No. 14765575.7 (8 pages). |
Office Action dated Feb. 21, 2017, issued in connection with U.S. Appl. No. 14/213,172 (31 pages). |
Office Action dated Nov. 13, 2017, issued in connection with U.S. Appl. No. 14/213,172 (34 pages). |
Office Action dated Jun. 25, 2018, issued in connection with U.S. Appl. No. 14/213,172 (35 pages). |
Australian Examination Report dated Jan. 18, 2019, issued in connection with Australian Application No. 2014229102 (6 pages). |
European Examination Report dated Mar. 4, 2019, issued in connection with European Application No. 14765575.7 (7 pages). |
European Examination Report dated Sep. 12, 2019, issued in connection with European Application No. 14765575.7 (7 pages). |
Australian Examination Report dated Sep. 23, 2019, issued in connection with Australian Application No. 2014229102 (4 pages). |
Australian Examination Report dated Jan. 7, 2020, issued in connection with Australian Application No. 2014229102 (7 pages). |
Canadian Office Action dated Apr. 24, 2020, issued in connection with Canadian Application No. 2,906,071 (4 pages). |
Communication under Rule 71(3) EPC (Intention to Grant) dated Sep. 9, 2020, issued in connection with European Application No. 14765575.7 (5 pages). |
Office Action dated May 24, 2021, issued in connection with U.S. Appl. No. 14/213,172 (8 pages). |
Canadian Office Action dated May 13, 2021, issued in connection with Canadian Application No. 2,906,071 (4 pages). |
Office Action dated Sep. 20, 2021, issued in connection with U.S. Appl. No. 14/213,172 (11 pages). |
Extended European Search Report dated Sep. 7, 2021, issued in connection with European Application No. 21172073.5 (9 pages). |
Examiner Interview Summary Record dated Mar. 25, 2022, issued in connection with U.S. Appl. No. 14/213,172 (4 pages). |
Notice of Allowance and Examiner Interview Summary dated Apr. 18, 2022, issued in connection with U.S. Appl. No. 14/213,172 (20 pages). |
Notice of Allowance and Examiner Interview Summary dated Nov. 21, 2022, issued in connection with U.S. Appl. No. 17/898,228 (12 pages). |
Examination Report dated May 9, 2023, issued in connection with European Patent Application No. 21172073.5 (3 pages). |
Number | Date | Country | |
---|---|---|---|
20230149259 A1 | May 2023 | US |
Number | Date | Country | |
---|---|---|---|
61787809 | Mar 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17898228 | Aug 2022 | US |
Child | 18096957 | US | |
Parent | 14213172 | Mar 2014 | US |
Child | 17898228 | US |