Method and apparatus for inexpensively monitoring and controlling remotely distributed appliances
A method and associated apparatus are described that enables unattended, remotely distributed appliances, such as vending machines, utility meters, thermostats and kitchen appliances (ovens, washing machines, refrigerators, etc.) to be connected inexpensively to each other and to a centrally located server. The apparatus 1) uses relatively simple “personality” modules to adapt the apparatus to the application in combination with a sophisticated core module that provides the intelligence needed to process data locally, to format that data and to transfer it to a remote server and 2) uses existing Internet-based communication links, thereby avoiding the costly proprietary links used with current state-of-the-art solutions.
Latest Arkion Systems LLC Patents:
This invention relates to both wire-based and wireless communication systems and, in particular, to such systems used to collect data from unattended devices and to control the configuration and operating parameters of such devices.
BACKGROUND OF THE INVENTIONUnattended devices such as vending machines and utility meters all require periodic servicing. Vending machines need to be serviced on a routine basis, often daily, regardless of their need to be replenished, to collect the cash deposited into the machines and to check their inventories. Many businesses have widely dispersed points of sale that must currently be monitored by employees who periodically travel to these sites to collect receipts and replenish stock. Others depend on customers to report the need to service or maintenance or for information updates. Utility meters have to be read periodically, usually once each month, commonly requiring someone's physical presence at each customer's site. These activities take a significant amount of effort and represent significant expense to the vending machine operators and utility companies. This expense could be greatly reduced by monitoring such devices remotely. Vending machines would need to be serviced only when the inventory actually needs to be replenished, the cash container is nearing capacity or the machine is malfunctioning. Meters could be read without requiring someone's physical presence at the site.
Similarly, the ability to control devices such as thermostats from remote locations would enable building managers and utility companies to manage energy consumption dynamically, thereby moderating demand and substantially reducing the cost to the consumer. Building managers can control the environments and monitor security in clusters of buildings much more efficiently if this can be done remotely. Other devices, such as kitchen appliances and cash registers can also benefit from remote monitoring and control by, for example, enabling manufacturers to monitor malfunctions and schedule repairs or by providing real-time cash-flow information. Appliance manufacturers can improve customer satisfaction by monitoring their installed appliances and dispatch service personnel even before the customer is aware of a problem. Another area in which remote monitoring can be useful is in home and building automation. Such capability would allow travelers or home caretakers to check the temperature in their living rooms and to adjust the heating or air-conditioning accordingly so that it will be comfortable when they arrive home and to open or close drapes or turn on or off lights remotely to give the appearance of an occupied house or to ensure that their house plants receive the correct amount of sun.
Current techniques to provide such remote monitoring and control capabilities typically rely on proprietary radio-frequency networks, often with limited range, thereby still requiring personnel to travel physically to the site, to drive a specially equipped van to within a few hundred yards of the site, or to use private radio frequencies or third-party communication links. Other techniques rely on the presence of a personal computer at the site to provide a communication link between the device of interest and the remote location. In addition, these current techniques require expensive communication hardware, thereby greatly limiting their use in price-sensitive applications. They are also typically tailored to specific applications.
SUMMARY OF THE INVENTIONA three-level architecture is disclosed whereby remotely distributed, unattended appliances such as vending machines, utility meters, thermostats and ordinary household appliances can be inexpensively monitored and controlled from a central site. The apparatus needed to implement the first level, the device level, consists of:
-
- a. a relatively simple and inexpensive device communication module (DCOM) that is tailored to each application and used to convert between the data protocol native to the appliance (e.g., DEX, the data-exchange protocol used in many vending machines or the electrical pulses found in utility meters) to a special protocol used for connecting one or more DCOMs over a local-area network to a module, called the cluster communications module (CCOM), capable of communicating both with the DCOMs and with a central server over the Internet;
- b. a CCOM, serving as a master of the aforementioned local-area network and accommodating a plug-in core modules (CM);
- c. a CM that is implemented with any one of three Internet access formats, one (the CM-T) having a 56 Kbaud telephony interface, a second (the CM-E) having an Ethernet Interface for accessing the Internet over a cable or digital subscriber loop (DSL) and a third (the CM-G) having a GSM/GPRS (Global System for Mobile communication/General Packet Radio Services) interface for accessing the Internet using either of those mechanisms;
- d. a CM that, additionally, contains both a digital signal processor (DSP) chip for modulating and demodulating and otherwise processing communication signals, a central processing unit (CPU) for data formatting and processing, a flash memory for storing data processing programs and a random-access memory for storing received data
The second level of the architecture, the server level, features a centrally located server, accessible over the Internet by a plurality of CCOMs and by a plurality of users equipped with standard personal computers or handheld Internet access devices. The server implements application-specific data mining, formatting and user interface programs that enable users to access, in an accessible format, that information that is most useful to them. Its database is updated from its associated CCOMs either periodically, on an event-driven basis or on demands relayed to the CCOMs by the server.
The third level in the disclosed architecture, the user level, comprises a plurality of users, each equipped with an Internet access device, such as a personal computer or standard handheld device such as a Palm Pilot or an IPAQ, and running application-specific programs providing user-readable access to relevant information stored in the server. In addition, depending on the application, users are able to send commands through the server to individual CCOMs and, through them, to individual DCOMs, to control such things as item pricing, set points on thermostats and other switch settings.
Advantages include cost savings from reducing or eliminating entirely the need to send personnel to customer sites on a regular basis. Such cost savings can be realized with automatic, remote monitoring, enabling necessary data to be read at a central location, possibly requiring a worker's physical presence only when something breaks or needs to be replenished. Vending machine companies and utilities are two examples of businesses that can realize substantial benefits through remote monitoring. The cost of the enabling apparatus can be made low enough to be paid for by the cost-savings. The need to customize devices for specific applications and the need to travel to within a certain radio transmission range of the controlled device can be eliminated.
As illustrated in
The inventive apparatus at the device level consists of embedded hardware that links the appliance with the Internet. The basic hardware building block is relatively simple, customizable board, called a device communication module (DCOM). Each DCOM (107-112) contains a power converter and logic to provide physical and electrical interfaces to the appliance or appliances of interest. It communicates with one or more associated appliances using physical connections (e.g., serial RS232 or RS485 lines, TTL ports, power line carrier (PLC) links) and communication protocols (e.g., X.10 commands in home automation applications, the DEX protocol in vending machine applications) particular to that device. The DCOMs in turn use a dedicated, bi-directional, communications protocol, the DCOM/CCOM protocol (DCP), to communicate with a module (119-121) centrally located at the same site, called a cluster communication module (CCOM), over a local-area network (LAN) using any of several physical links (113-118), for example, ISM-band RF links, RS-485 links or power-line carrier (PLC) links, depending on the nature of, and facilities at, the site in question. The DCP supports both a master/slave and a peer-to-peer communications mode, the latter used primarily in those environments in which multiple CCOMs are present and, for reliability purposes, it is advantageous to allow each DCOM to communicate with an alternate CCOM should it not be able to reach its primary CCOM. The DCOM contains sufficient processing power to convert data received from its associated appliance into a format appropriate for communication over the DCP and for converting commands received from the CCOM into appropriate control signals back to the appliance. Since each DCOM module contains only that logic needed to convert between the physical- and link-level appliance and DCP protocols and to serve as a slave on the LAN, it can be very small, of the order of two to three square inches, and sufficiently inexpensive to be incorporated into appliances such as thermostats without prohibitively increasing their cost.
In many applications, each CCOM supports a plurality of DCOMs, in some cases as many as 64 or more. In some applications, however, when devices cannot be efficiently clustered, a CCOM may be able to support only one DCOM. In those applications, the functionality of the DCOM is integrated onto the CCOM (122), thereby eliminating the need for the DCOM as a separate module. In other applications in which large numbers of DCOMs are deployed in a area in which the distance between some of the DCOMs and their associated CCOM may exceed the range of a single LAN, relay communication modules (RCOMs, not shown in
Each CCOM communicates over the Internet (127) using any one of three wide-area network (WAN) access methods: In installations in which a telephone line is readily available, it may use a telephony link (123). In installations having cable access to the Internet, it may use an Ethernet link (124). When neither of these two access methods is convenient, it uses a GSM/GPRS link (125-126).
A flowchart of the procedure for transferring data from a device to a central server, where it can then be accessed by an authenticated user, is shown in
Data generated by the device is periodically collected by the DCOM in response to some sort of triggering mechanism, typically a clock tick or in response to a command received from a user of the system. The DCOM then formats and stores the data (201) for subsequent retrieval. In response to a query from a CCOM (202), it reformats the data for transmission over the LAN used to communicate between the CCOM and its associated DCOMs (203). Alternatively, in some applications, the DCOM periodically initiates the transfer without an explicit query. In either case, the DCOM checks to determine if a successful transmission was acknowledged (204). If it was not, it retries the transmission, and, if several such retries are unsuccessful and if its configuration tables indicate that a backup CCOM is available, attempts to transfer the data to that CCOM (205).
The CCOM, on receiving new data from a DCOM similarly reformats the data for temporary storage (211) and waits for a request for data from the server (212). Like the DCOM, the CCOM can be programmed to initiate data transfers to the server on a periodic basis if the application so requires. In either event, the CCOM formats the data and transfers it to its associated server (213) and checks for the acknowledgement of a successful transfer (214). If none is received, it attempts a retransmission (215). If more than one WAN channel is available, some of the retry attempts are made using these alternative channels.
The server, on receiving the data, again reformats it (221), this time for storage in a database that can be accessed using application-specific programs. When a user application attempts to get access to the database (222), the access privileges of the user are first authenticated using standard authentication procedures (223). If the user is determined not to have the requisite access privileges for the type of access it is attempting, an “access denied” message is returned (224). Otherwise, the data is formatted as appropriate to the specific inquiry using an application-specific program and made available to the user (225).
The procedure for sending commands from a user to a CCOM or DCOM is illustrated in the flowchart in
User-initiated commands received by the server are first parsed (311) to determine the nature of the command. The server then determines if the user issuing the command in fact has the authority to do so (312). If it does not, an “access denied” response is returned to the user (313). If the user has the privileges need to issue the command, the command is formatted for WAN transmission to the designated CCOM (314) and relayed on to it. If the transmission is not successful (315) and the command is destined for a DCOM, it checks its configuration tables to determine if the DCOM can be accessed through another CCOM and, if so, attempts to use that backup link (316). If its configuration tables indicate that an alterative WAN is available, the server may also attempt to reach the CCOM in question through that means as well.
The CCOM on receiving the command parses it (321) to determine, among other things, whether it is addressed to the CCOM or to one of its associated DCOMs (322). In the former case, it executes the command and generates a “command executed”0 message to be returned, using the previously described data transfer procedure, back to the server (323). In the latter case, I formats the command and transmits it to the designated DCOM or DCOMs (324). If a successful transfer is not acknowledged (325), it attempts to retransmit it and, if still unsuccessful, attempts to use an alternative LAN link if one is available (326). In any event, it generates an error message indicating the number of retries attempted, the LANs used and the eventual success or lack thereof in transmitting the command to its destination.
On receiving a command, the DCOM parses and executes it (331) and creates an appropriate “command executed message (332) to be returned to the server, and from there made available to the user, again using the previously described data transmission procedure. Command execution by a DCOM may entail relaying that command to one or more of its associated devices to, for example, control the set points on a thermostat or to switch on or off some subset of those devices for purposes of energy consumption management. In such applications, a DCOM is in effect a gateway to its associated devices, allowing them to be controlled remotely and at the same time providing a means for collecting information (e.g., the rate at which energy is being consumed at any given time) pertaining to those devices. Furthermore, the DCOM can be programmed to issue commands to its associated devices autonomously, executing stored or down-loaded algorithms for changing device settings based, for example, on current energy consumption rates and user profiles.
One embodiment of the DCOM is illustrated in
The DCOM communicates with a centrally located CCOM over local-area network (LAN). In the embodiment shown in
Data is received from and commands relayed to its associated device or devices through the device interface section 402, implemented in the embodiment shown in
Service section 403 is implemented with RS-232 transceiver 409 and male DB-9 connector 410 wired in the data terminal equipment (DTE) mode. It is used for on-site diagnostics and configuration purposes. In addition, in some applications in which data is presented by the device over an RS-232 link, this section can be used as the device interface section.
Power section 404 consists of a switching DC-to-DC regulator (411) and a power connector 412 appropriate to the device. In some applications (e.g., some vending machine applications), data signals may also be transferred through the same connector that is used for power, in which case, an alternative power section such as 405 containing, in addition to the combined power and signal control 417 and the switching regulator 416, a set of opto-couplers 415 used to provide electrical isolation between the DCOM and its associated device.
The RCOM is similar to a DCOM, and in fact can be identical to it, but with the microcontroller program enhanced so as to support its role both as a DCOM and as a relay between other DCOMs and a CCOM. In applications in which the RCOM is used purely as a relay, however, it can be implemented as a stripped down version of the DCOM, with, for example, sections 405 and 405 in
In one preferred embodiment, the CCOM is implemented on a carrier board that contains a power converter and a local-area network interface enabling the CCOM to serve either as a LAN master or as a LAN peer and thereby communicate individually with each of its associated DCOMs. (In some applications in which only a single appliance is located at a site, the DCOM's device interface can be integrated directly onto the CCOM carrier board, thereby eliminating the need for a separate DCOM board.) The programmable computing, signal processing and communication logic that enable the data collected from the DCOMs to be processed and relayed over the Internet to the server level and the commands received from the server to be transferred to the DCOMs is, in this embodiment, implemented on a plug-in module, called the core module (CM), that is appliance independent. In this way, the amount of custom work needed to interface to different appliances is kept to a minimum, thereby significantly reducing the cost of the apparatus. The complexity associated with formatting, processing and storing data and supporting various communication protocols is implemented on the CM and does not need to be physically modified to support different applications. In another embodiment of the CCOM, however, the core module logic and the carrier board logic are implemented on a single integrated module.
The CCOM carrier board (
The major difference between the CCOM and the DCOMs is in the core module, or in the equivalent portion of an integrated CCOM. There are three versions of the CM, depending on its method of communicating with the Internet: the CM-G (
In one preferred embodiment of the core module, the microprocessor is implemented with an Analog Devices Athena processor. An Athena chip includes a 32-bit, 39 MHz ARM7 processor core, a 16-bit, 78 MHz integrated digital signal processor (DSP), and 512 Kbytes of internal shared random-access memory. It also includes 24 Kbytes of DSP code and 16 Kbytes of IDSP data memory. The DSP implements low-level data formatting and encoding and decoding operations associated with the serial digital data stream, thereby freeing up the microprocessor for higher-level operations. These higher-level operations include data aggregation and formatting for transfer to the central server and parsing and distributing control information received from the central server. Behavioral parameters that control the nature of the data to be collected by the DCOMs are also stored in the core module's random access memory and, when modified on command from the central server, are relayed to the appropriate DCOM(s), thereby enabling these parameters to be changed dynamically.
In addition to the above, the CM-G also contains analog-to-digital (AD) and digital-to-analog (DA) converters 608 connected to the microprocessor through its serial I/O bus 607. The AD and DA converters are implemented with Analog Devices' Pegasus chip in one preferred embodiment of the CM-G. This chip also implements the Gaussian-filtered minimum shift keying (GMSK) modulation and demodulation required for communication over wireless GSM/GPRS channels. Radio-frequency modulation and demodulation, amplification and filtering take place in rf-modem 609. The modem output is connected through rf connector 610 to a half-wave antenna (not shown).
The core module CM-E (
A block diagram of the CM-T core module used for 56-Kbaud telephonic applications is shown in
The server level is implemented with standard, off-the-shelf servers running software modules including: communications modules that support virtually all wireless access devices using standard cable and wireless communication protocols (e.g., IP, HTTP, XML); processing modules that enable information to be presented to the user in a visually consistent manner and in multiple languages; a system management module to enable users and operators to specify system configurations and behavioral parameters such as alert and alarm triggers; and customization modules particularized to the data collection and distribution requirements of each application. Data received from the CCOMs can be archived on the server and subsequently mined to discern appliance usage trends for operations management and predicting purposes.
The user level in the architecture encompasses the set of interfaces that enable a user of the system to gain access to the collected, aggregated and formatted data and to issue behavioral commands to any subset of the CCOMs and DCOMs comprising the system of interest. All standard user Internet access devices are supported (e.g., personal computers, laptops, Palm-based systems, WindowsCE-based hand-held computers, etc.). Depending on the application and on the Internet access device being used, software applications can be run on the user device providing even greater data access and control capability. Again, depending on the application, the user has the ability to issue commands that are relayed by the server to a specific CCOM, and through it to a specific DCOM or set of DCOMs, thereby setting various appliance parameters such as item pricing in a vending machine or set points in a thermostat.
A typical user level display if shown in
Other applications, of course, require different information to be displayed at the user level.
Claims
1. A system for monitoring and controlling distributed appliances, the system comprising:
- a server; and
- a cluster of modules in communication with the server via a first network, the cluster of modules comprising at least one first module and at least one second module arranged to communicate with one another via a second network, the first module to receive appliance data from the second module, store the appliance data, and transmit the appliance data to and receive instructions from the server using a first communication protocol, and to receive the appliance data from and transmit instructions to the second module using a second communication protocol, and the second module to transmit appliance data to and receive instructions from the first module using the second communication protocol, and to receive appliance data from and transmit instructions to an appliance using a third communication protocol; in which at least one of the first, second, and third communication protocols is different from the others.
2. The system of claim 1 in which
- the second module is configured to communicate appliance data and instructions with the server through the first module using a first communication mode, and
- the second module is configured to use a second communication mode to reroute the appliance data and instructions if the first module is inoperable.
3. The system of claim 2 in which
- the first communication mode comprises a master/slave arrangement of communication lines between the first module and the second module, and
- the second communication mode comprises a peer-to-peer arrangement of communication lines between one or more of the second modules.
4. The system of claim 1 in which
- a plurality of first modules are configured to communicate appliance data and instructions between the second module and the server through a first set of links, and
- the plurality of first modules are configured to establish a new set of links for communicating appliance data and instructions between the second module and the server if the first module is inoperable.
5. The system of claim 1 in which
- the cluster of modules comprises a first cluster of modules including a third module and a fourth module,
- the third module and the fourth module have a peer-to-peer relationship, and
- the second module has a master/slave relationship with the third module.
6. The system of claim 5 in which the fourth module is configured to define a new master/slave relationship between the second module and the first module in the event that the third module is inoperable.
7. The system of claim 5 in which the second module is configured to communicate appliance data and instructions with the server through the third module.
8. The system of claim 7 in which the second module is configured to communicate appliance data and instructions with the server through the fourth module in the event the third module is inoperable.
9. The system of claim 7 in which the fourth module is configured to take over communicating appliance data and instructions between the server and the second module in the event that the third module is inoperable.
10. The system of claim 1 in which
- the cluster of modules comprises a first cluster of modules and a second cluster of modules, the first cluster of modules includes a third module and a fourth module, the second cluster of modules includes a fifth module and a sixth module,
- the third module and the fourth module have a peer-to-peer relationship,
- the fifth module and the sixth module have a peer-to-peer relationship,
- the fifth module has a master/slave relationship with the third module, and
- the sixth module has a master/slave relationship with the fourth module.
11. The system of claim 10 in which
- the fifth module is configured to communicate appliance data and instructions with the server through the third module; and
- the sixth module is configured to communicate appliance data and instructions with the server through the fourth module.
12. The system of claim 11 in which the fifth module is configured to communicate appliance data and instructions with the server through the sixth module in the event the third module is inoperable.
13. The system of claim 11 in which the fourth module is configured to take over communicating appliance data and instructions between the server and the fifth module in the event the third module is inoperable.
14. The system of claim 11 in which the fourth module is configured to establish a new set of master/slave relationships between the fifth module and the sixth module and the first module in the event that the third module is inoperable.
15. The system of claim 11 in which the fifth module and the sixth module are configured to use their peer-to-peer relationship to communicate application data and instructions from the fifth module to the server in the event that the third module is inoperable.
16. The system of claim 1 in which
- the second module is configured to collect data from associated appliances, store the data, and communicate the data to the first module over the second network,
- the first module is configured to receive the data from the second module, store the data, and communicate the data to the server over the first network, and
- the server is configured to receive the data from the first module, store the data, and use the data to determine instructions to send the second module for control of the appliances.
17. The system of claim 16 in which the server is also configured to communicate the data to users of the appliances.
18. The system of claim 16 in which the server is also configured to communicate the data to users of the system.
19. The system of claim 16 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules,
- the first cluster of modules includes a third module and a fourth module,
- the second cluster of modules includes a fifth module and a sixth module,
- the third module is configured to receive data from the fifth module, and
- the fourth module is configured to receive data from the sixth module.
20. The system of claim 19 in which the fourth module is configured to receive data from the fifth module in the event that the third module is inoperable.
21. The system of claim 19 in which the sixth module is configured to communicate data to the fourth module in the event that the third module is inoperable.
22. The system of claim 16 in which
- the second module is configured to communicate appliance data and instructions with the server through the first module using a first communications mode, and
- the second module is configured to use a second communications mode to reroute the appliance data and instructions if the first module is inoperable.
23. The system of claim 16 in which the first module is configured to
- receive the data from the second module using a first set of links on the second network,
- communicate the data to the server using a second set of links on the first network, and
- establish a new set of links if either of the first set of links or the second set of links is inoperable.
24. The system of claim 1 in which
- the cluster of modules includes a second cluster of modules,
- the second cluster of modules includes a fifth module and a sixth module, and
- the fifth module communicates with a first appliance using the third communication protocol, and the second module communicates with a second appliance using a fourth communication protocol.
25. The system of claim 24 in which
- the third and the fourth communication protocols are different, and
- the first module is configured to transfer appliance data and instructions between the server and the first and second appliance via the fifth and sixth modules.
26. The system of claim 1 in which transmitting appliance data comprises converting the appliance data from a format used by the second module to a format used by the server.
27. The system of claim 1 in which transmitting instructions comprises converting the instructions from a format used by the server to a format used by the second module.
28. The system of claim 1 in which the first, second, and third communication protocols are each different from the others.
29. The system of claim 1 in which the second and third communication protocols are the same communications protocol.
30. The system of claim 1 in which the first and second communication protocols are the same communications protocol.
31. The system of claim 1 in which the first communication protocol is an Internet protocol.
32. The system of claim 1 in which the third communication protocol is an appliance-specific protocol.
33. The system of claim 1 in which the first network is a wide-area network.
34. The system of claim 1 in which the first network is a wireless network.
35. The system of claim 1 in which the first network is the Internet.
36. The system of claim 1 in which the second network is a local-area network.
37. The system of claim 1 in which the second network is a wireless network.
38. The system of claim 1 in which the server comprises a plurality of servers.
39. The system of claim 1 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules;
- the first cluster of modules includes a third module and a fourth module;
- the second cluster of modules includes a fifth module; and
- the server is configured to receive, from users, instructions to change operation of an appliance, and to transmit instructions to implement the change to the fifth module which is associated with the appliance, through the fifth module.
40. The system of claim 39 in which transmitting instructions comprises
- identifying the fifth module as associated with the appliance,
- identifying the third module as associated with the identified fifth module,
- formatting the instructions for transmission on the first network to the third module,
- attempting to transmit the instructions of a first link of the first network,
- if the attempt to transmit is not successful and the fourth module is also associated with the fifth module,
- transmitting the instructions to the fourth module.
41. The system of claim 39 in which transmitting instructions comprises
- identifying the fifth module as associated with the appliance,
- identifying the third module as associated with the fifth module,
- formatting the instructions for transmission on the first network to the third module,
- attempting to transmit the instructions on a first link of the first network,
- if the attempt to transmit is not successful and a second link of the first network is available,
- transmitting the instructions to the third module on the second link of the first network.
42. The system of claim 1 in which
- the first module is configured to determine whether a received instruction applied to itself or to the second module,
- to apply the instruction to itself if the instruction applies to it, and
- to relay the instruction to the second module if the instruction applies to that module.
43. The system of claim 42 in which relaying the instruction comprises
- formatting the instruction for transmission on the second network,
- transmitting the instruction on a first link of the second network, and
- if a confirmation is not received, retransmitting the instruction on a second link of the second network.
44. The system of claim 1 in which the second module is configured to apply received instructions to itself or to control of an appliance associated with that module, based on the content of the instructions.
45. The system of claim 1 in which the appliances are utility meters.
46. The system of claim 1 in which the appliances are heating, ventilation, pumping, or air conditioning equipment.
47. The system of claim 1 in which the appliances are household appliances.
48. The system of claim 1 in which the appliances are one or more of light switches, thermostats, motion sensors, security devices, cameras, locks, pumps, load controllers, or voltage or current interrupters.
49. The system of claim 1 in which the second module comprises
- a microcontroller and a memory, in which the memory includes a program to cause the microcontroller to receive data from and relay commands to an appliance associated with the second module through an appliance-specific communications interface, and
- transmit data and receive commands from the first module over the second network.
50. The system of claim 49 in which the memory also includes a program to cause the microcontroller to receive data from and relay commands to one of the other second modules on the second network.
51. The system of claim 1 in which the first module comprises
- a microcontroller and a memory, in which the memory includes a program to cause the microcontroller to receive data from and relay commands to the second module over the second network, and transmit data to and receive commands from the server over the first network.
52. The system of claim 51 in which the microcontroller, the memory, and the interface to the first network are provided in a removable module.
53. The system of claim 1 in which the first module is associate directly with an appliance.
54. The system of claim 1 in which the second module is integrated with the first module.
55. A system for monitoring and controlling distributed appliances, the system comprising:
- a server; and
- a cluster of modules in communication with the server via a first network, the cluster of modules comprising at least one first module and at least one second module arranged to communicate with one another via a second network, the second module to communicate appliance data and instructions between an appliance and the server, through the first module, using a first communications mode; and the second module to use a second communications mode to reroute the appliance data and instructions to the server if the first module is inoperable.
56. The system of claim 55 in which
- the first module is also to transmit appliance data to and receive instructions from the server using a first communication protocol, and receive appliance data from and transmit instructions to the second module using a second communication protocol;
- the second module is also to transmit appliance data to and receive instructions from the first module using the second communication protocol, and receive appliance data from and transmit instructions to an appliance using a third communication protocol; and
- at least one of the first, second, and third communication protocols is different from the others.
57. The system of claim 55 in which
- a plurality of first modules are configured to communicate appliance data and instructions between the second module and the server through a first set of links, and
- the plurality of first modules are configured to reroute the appliance data and instructions by establishing a new set of links for the communicating of appliance data and instructions between the second module and the server if any one of the first modules is inoperable.
58. The system of claim 55 in which
- the cluster of modules comprises a third module, and a fourth module,
- the third and fourth modules have a peer-to-peer relationship, and
- the second module has a master/slave relationship with the third module.
59. The system of claim 58 in which the fourth module is configured to reroute the appliance data and instructions by defining a new master/slave relationship between the second module and the first module.
60. The system of claim 58 in which the second module is configured to communicate appliance data and instructions with the server through the third module.
61. The system of claim 60 in which the second module is configured to reroute the appliance data and instructions to the server through the fourth module in the event the third module is inoperable.
62. The system of claim 60 in which the fourth module is configured to reroute the appliance data and instructions by taking over communicating appliance data and instructions between the sever and the second module in the event that the third module is inoperable.
63. The system of claim 55 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules,
- the first cluster of modules includes a third module and a fourth module,
- the second cluster of modules includes a fifth module,
- the third and fourth modules have a peer-to-peer relationship,
- the fifth and sixth modules have a peer-to-peer relationship, and
- the first communications mode comprises a master/slave relationship between the fifth module and the third module and a master/slave relationship between the sixth module and the fourth module.
64. The system of claim 63 in which
- the fifth module is configured to communicate appliance data and instructions with the server through the third module; and
- the sixth module is configured to communicate appliance data and instructions with the server through the fourth module.
65. The system of claim 64 in which the fifth module is configured to reroute the appliance data and instructions by communicating appliance data and instructions with the server through the sixth module.
66. The system of claim 64 in which the fifth module is configured to reroute the appliance data and instructions by allowing the fourth module to take over communicating appliance data and instructions between the server and the fifth module from the third module.
67. The system of claim 64 in which the fourth module is configured to reroute the appliance data and instructions by establishing a new set of master/slave relationships between the fifth and sixth modules and the first module.
68. The system of claim 64 in which the fifth and sixth modules are configured to reroute the appliance data and instructions by using their peer-to-peer relationship to communicate appliance data and instructions from the fifth module to the server.
69. The system of claim 55 in which
- the second module is configured to collect data from associated appliances, store the data, and communicate the data to the first module over the second network,
- the first module is configured to receive the data from the second module, store the data, and communicate the data to the server over the first network, and
- the server is configured to receive the data from the first module, store the data, and use the data to determine instructions to send the second module for control of the appliances.
70. The system of claim 55 in which the first network is a wide-area network.
71. The system of claim 55 in which the first network is a wireless network.
72. The system of claim 55 in which the first network is the Internet.
73. The system of claim 55 in which the second network is a local-area network.
74. The system of claim 55 in which the second network is a wireless network.
75. The system of claim 55 in which the server comprises a plurality of servers.
76. The system of claim 55 in which the server is configured to receive from users instructions to change operation of an appliance, and to transmit instructions to implement the change to the second module which is associated with the appliance.
77. The system of claim 76 in which transmitting instructions comprises
- identifying a fifth module as associated with the appliance,
- identifying a third module as associated with the fifth module,
- formatting the instructions for transmission on the first network to the third module,
- attempting to transmit the instructions on a first link of the first network,
- if the attempt to transmit is not successful and a fourth module is also associated with the fifth module,
- transmitting the instructions to the fourth module.
78. The system of claim 76 in which transmitting instructions comprises
- identifying a fifth module as associated with the appliance,
- identifying a third module as associated with the fifth module,
- formatting the instructions for transmission of the first network to the third module,
- attempting to transmit the instructions on a first link of the first network,
- if the attempt to transmit is not successful and a second link of the first network is available,
- transmitting the instructions to the third module on the second link of the first network.
79. The system of claim 55 in which
- the first module is configured to determine whether a received instruction applies to itself or to the second module,
- to apply the instruction to itself if the instruction applies to it, and
- to relate the instruction to the second module if the instruction applies to that module.
80. The system of claim 79 in which relaying the instruction comprises
- formatting the instruction for transmission on the second network,
- transmitting the instruction on a first link of the second network, and
- if a confirmation is not received, retransmitting the instruction on a second link of the second network.
81. The system of claim 55 in which the second module is configured to apply received instructions to itself or to control of an appliance associated with that module, based on the content of the instructions.
82. The system of claim 55 in which the appliances are utility meters.
83. The system of claim 55 in which the appliances are heating, ventilation, pumping, or air conditioning equipment.
84. The system of claim 55 in which the appliances are household appliances.
85. The system of claim 55 in which the appliances are one or more of light switches, thermostats, motion sensors, security devices, cameras, locks, pumps, load controllers, or voltage or current interrupters.
86. The system of claim 55 in which the second module comprises
- a microcontroller and a memory in which the memory includes a program to cause the microcontroller to receive data from and relay commands to an appliance associated with the module through an appliance-specific communications interface, and transmit data and receive commands from the first module over the second network.
87. The system of claim 86 in which the memory also includes a program to cause the microcontroller to receive data from and relay commands to one of the other second modules on the second network.
88. The system of claim 55 in which the first module comprises
- a microcontroller and a memory, in which the memory includes a program to cause the microcontroller to receive data from and relay commands to the second module over the second network, and transmit data and receive commands from the server over the first network.
89. The system of claim 88 in which the microcontroller, the memory, and the interface to the first network are provided in a removable module.
90. The system of claim 55 in which the first module is associable directly with an appliance.
91. The system of claim 55 in which the second module is integrated with the first module.
92. A system for monitoring and controlling distributed appliances, the system comprising:
- a server; and
- a cluster of modules in communication with the server via a first network, the cluster of modules comprising at least one first module and at least one second module arranged to communicate with one another via a second network, the second module to collect data from an associated appliance capable of sending data in response to a command from the server, store the data, and communicate the data to the first module over the second network; the first module to receive the data from the second module, store the data, and communicate the data to the server over the first network; and the server to receive the data from the first module, store the data, and use the data to determine instructions to send the second module for control of the appliance.
93. The system of claim 92 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules,
- the first cluster of modules includes a third module and a fourth module,
- the second cluster of modules includes a fifth module and a sixth module,
- the third module is configured to receive data from the fifth module, and
- the fourth module is configured to receive data from the sixth module.
94. The system of claim 93 in which the fourth module is configured to receive data from the fifth module in the event that the third module is inoperable.
95. The system of claim 93 in which the fifth module is configured to communicate data to the fourth module in the event that the third module is inoperable.
96. The system of claim 92 in which
- the second module is configured to transmit appliance data to and receive instructions from the server through the first module using a first communications mode, and
- the second module is configured to use a second communications mode to reroute the appliance data and instructions if the first module is inoperable.
97. The system of claim 92 in which the first module is configured to
- receive the data from the second module using a first set of links on the second network,
- communicate the data to the server using a second set of links on the first network, and
- establish a new set of links if either of the first set of links or the second set of links is inoperable.
98. The system of claim 92 in which the first network is a wide-area network.
99. The system of claim 92 in which the first network is a wireless network.
100. The system of claim 92 in which the first network is the Internet.
101. The system of claim 92 in which the second network is a local-area network.
102. The system of claim 92 in which the second network is a wireless network.
103. The system of claim 92 in which the server comprises a plurality of servers.
104. The system of claim 92 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules,
- the first cluster of modules includes a third module and a fourth module,
- the second cluster of modules includes a fifth module, and
- the server is configured to receive from a user instructions to change operation of an appliance, and to transmit instructions to implement the change to the fifth module which is associated with the appliance.
105. The system of claim 104 in which transmitting instructions comprises
- identifying the fifth module as associated with the appliance,
- identifying the third module as associated with the fifth module,
- formatting the instructions for transmission on the first network to the third module,
- attempting to transmit the instructions on a first link of the first network,
- if the attempt to transmit is not successful and the fourth module is also associated with the fifth module,
- transmitting the instructions to the fourth module.
106. The system of claim 104 in which transmitting instructions comprises
- identifying the fifth module as associated with the appliance,
- identifying the third module as associated with the fifth module,
- formatting the instructions for transmission on the first network to the third module,
- attempting to transmit the instructions on a first link of the first network,
- if the attempt to transmit is not successful and a second link of the first network is available,
- transmitting the instructions to the third module on the second link of the first network.
107. The system of claim 92 in which
- the first module is configured to determine whether a received instruction applies to itself or to the second module,
- to apply the instruction to itself if the instruction applies to it, and
- to relay the instruction to the second module if the instruction applies to that module.
108. The system of claim 107 in which relaying the instruction comprises
- formatting the instruction for transmission on the second network,
- transmitting the instruction on a first link of the second network, and
- if a confirmation is not received, retransmitting the instruction on a second link of the second network.
109. The system of claim 92 in which the second module is configured to apply received instructions to itself or to control of an appliance associated with that module, based on the content of the instructions.
110. The system of claim 92 in which the appliances are utility meters.
111. The system of claim 92 in which the appliances are heating, ventilation, pumping, or air conditioning equipment.
112. The system of claim 92 in which the appliances are household appliances.
113. The system of claim 92 in which the appliances are one or more of light switches, thermostats, motion sensors, security devices, cameras, locks, pumps, load controllers, or voltage or current interrupters.
114. The system of claim 92 in which the second module comprises
- a microcontroller and a memory, in which the memory includes a program to cause the microcontroller to receive data from and relay commands to an appliance associated with the module through an appliance-specific communications interface, and transmit data and receive commands from the first module over the second network.
115. The system of claim 114 in which the memory also includes a program to cause the microcontroller to receive data from and relay commands to one of the other second modules on the second network.
116. The system of claim 92 in which the first module comprises
- a microcontroller and a memory, in which the memory includes a program to cause the microcontroller to receive data from and relay commands to the second module over the second network, and transmit data to and receive commands from the server over the first network.
117. The system of claim 116 in which the microcontroller, the memory, and the interface to the first network are provided in a removable module.
118. The system of claim 92 in which the first module is associable directly with an appliance.
119. The system of claim 92 in which the second module is integrated with the first module.
120. A system for monitoring and controlling distributed appliances, the system comprising:
- a server; and
- a cluster of modules in communication with the server via a first network, the cluster of modules comprising at least one first module and at least one second module arranged to communicate with one another via a second network, the second module to using a first communication protocol, collect data from an associated appliance capable of sending data in response to a command from the server, store the data, and communicate the data to the first module over the second network using a second communication protocol; the first module to receive the data from second module using the second communication protocol, store the data, and communicate the data to the server over the first network using a third communication protocol; and the server to receive the data from the first module using the third communication protocol, store the data, and use the data to determine instructions to send the second module for control of the appliance; such that the appliance data and instructions are communicated between the appliance and the server using a first communication mode, at least one of the first, second, and third communication protocols is different from the others and is a user datagram protocol, and the first module or the second module is configured to use a second communications mode to reroute the appliance data and instructions if the first module is inoperable.
121. The system of claim 120 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules,
- the first cluster of modules includes a third module and a fourth module,
- the second cluster of modules includes a fifth module and a sixth,
- the third module is configured to receive data from the fifth module, and
- the fourth module is configured to receive data from the sixth module.
122. The system for monitoring and controlling distributed appliances, the system comprising:
- a server; and
- a cluster of modules in communication with the server via a first network, the cluster of modules comprising at least one first module and at least one second module arranged to communicate with one another via a second network, the second module to using a first communication protocol, collect data from an associated appliance that sends the data autonomously, store the data, and communicate the data to the first module over the second network using a second communication protocol;
- the first module to receive the data from the second module using the second communication protocol, store the data, and communicate the data to the server over the first network using a third communication protocol; and
- the server to receive the data from the first module using the third communication protocol, store the data, and use the data to determine instructions to send the second module for control of the appliance;
- such that the appliance data and instructions are communicated between the appliance and the server using a first communication mode,
- at least one of the first, second, and third communication protocols is different from the others and is a user datagram protocol, and
- the first module or the second module is configured to use a second communications mode to reroute the appliance data and instructions if the first module is inoperable.
123. The system of claim 122 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules,
- the first cluster of modules includes a third module and a fourth module,
- the second cluster of modules includes a fifth module and a sixth,
- the third module is configured to receive data from the fifth module, and
- the fourth module is configured to receive data from the sixth module.
124. A system for monitoring and controlling distributed appliances, the system comprising:
- a server; and
- a cluster of modules in communication with the server via a first network, the cluster of modules comprising at least one first module and at least one second module arranged to communicate with one another via a second network, the second module to collect data from an associated appliance that sends the data autonomously, store the data, and communicate the data to the first module over the second network; the first module to receive the data from the second module, store the data, and communicate the data to the server over the first network; and the server to receive the data from the first module, store the data, and use the data to determine instructions to send the second module for control of the appliance.
125. The system of claim 124 in which
- the cluster of modules includes a first cluster of modules and a second cluster of modules,
- the first cluster of modules includes a third module and a fourth module,
- the second cluster of modules includes a fifth module and a sixth,
- the third module is configured to receive data from the fifth module, and
- the fourth module is configured to receive data from the sixth module.
6633781 | October 14, 2003 | Lee et al. |
7072945 | July 4, 2006 | Nieminen et al. |
7117051 | October 3, 2006 | Landry et al. |
20010048030 | December 6, 2001 | Sharood et al. |
20020062392 | May 23, 2002 | Nishikawa et al. |
20020067717 | June 6, 2002 | Raschke et al. |
20020073183 | June 13, 2002 | Yoon et al. |
20020190956 | December 19, 2002 | Klein et al. |
20030009515 | January 9, 2003 | Lee et al. |
20030018733 | January 23, 2003 | Yoon et al. |
20030046377 | March 6, 2003 | Daum et al. |
20030074109 | April 17, 2003 | Jeong et al. |
20040010561 | January 15, 2004 | Kim et al. |
20050096753 | May 5, 2005 | Arling et al. |
20050159823 | July 21, 2005 | Hayes et al. |
20050203647 | September 15, 2005 | Landry et al. |
20060041655 | February 23, 2006 | Holloway et al. |
Type: Grant
Filed: Nov 18, 2002
Date of Patent: Oct 28, 2008
Assignee: Arkion Systems LLC (New Bedford, MA)
Inventors: Seyamak Keyghobad (Marion, MA), David Rodgers (Shaker Heights, OH)
Primary Examiner: Lashonda T Jacobs
Attorney: Fish & Richardson P.C.
Application Number: 10/298,300
International Classification: G06F 15/173 (20060101);