System and method for locally managing network appliances in a closed area network via a gateway device

A system, medium and method of managing, via a gateway device, to wirelessly communicate with a plurality of network appliances in a closed local area network is disclosed. A data message is received from a first network appliance configured to communicate data in association with a first application profile. The first application profile is retrieved from a locally stored application profile database upon being identified. A database is accessed at the gateway device containing policy information of the first network appliance and evaluated for one or more policy parameters. A first instruction command is generated at the gateway device based on the accessed policy information, wherein the instruction command conforms with the first application profile to instruct the first network appliance to perform a specified action. The instruction command is wirelessly transmitted from the gateway device to the first network appliance to cause it to perform a specified action.

RELATED APPLICATION

This application claims the benefit of Indian Patent Application Filing No. 1206/CHE/2013, filed Mar. 20, 2013, which is hereby incorporated by reference in its entirety.

FIELD

The present disclosure relates generally to a system and method for locally managing network appliances in a closed area network via a gateway device, and in particular, relates to a system and method for locally managing network devices utilizing low cost/lost power wireless machine to machine communication protocols.

BACKGROUND

Home and building automation is becoming even more popular with the support and use of personal area networks that allow local network enabled devices to wirelessly communicate with one another using low-power digital radios.

The Institute of Electronic and Electrical Engineers (IEEE) has ratified the IEEE 802.15.4 standard for mesh or personal area networks. ZigBee™ is one type of a standards certified suite of high level communication protocols using small, low-power digital radios based on the IEEE 802.15.4 standard. ZigBee™ specification is thus targeted for use with network enabled appliances and applications that require a low data rate, long battery life, as well as require secure networking. Some examples of such appliances and applications include: Home Entertainment and Control (e.g. Home automation, smart lighting, advanced temperature control, safety and security, movies and music); Wireless Sensor Networks; Industrial control; Embedded sensing; Medical data collection; Smoke and intruder warning; Building automation and the like.

ZigBee™ has a defined rate of 250 kbit/s, best suited for periodic or intermittent data or a single wireless signal transmission between network appliances and ZigBee™ enabled network gateway devices. Data transmission rates between ZigBee™ enabled network devices vary from 20 to 900 Kbps.

Any ZigBee™ compatible network appliance can be tasked with running on the ZigBee™ network. Such ZigBee™ appliances are designed to have radios that operate on an established country specific frequency bands (i.e. 868 MHz in Europe, 915 MHz in USA/Australia, 2.4 GHz in most other countries) as well as 60 KB-256 KB integrated flash memory.

However, the ZigBee™ suite was designed to have standardized application profiles that were specific to the type of market application in which the standard was to be used. For example, the ZigBee™ standard includes discreet application profiles for Home Automation; Smart Energy; Telecommunication Services; Health Care; RF4CE—Remote Control, etc. Each application profile has different set communication protocols within the PAN as well as gateway devices and servers, policy and decision making guidelines, memory usage, data rates and the like.

Typically, ZigBee™ network appliances communicate with one or more servers over a wide area network (i.e. Internet), wherein one or more gateway devices sitting on the edge of a Personal Area Network (PAN) relay the communications between the network appliances and the servers. However, considering there can be several different close range ZigBee™ network appliances, many of which utilize different application profiles in a particular PAN, the sheer handling of data as well as load balancing and other optimization processes must be handled by the servers.

Accordingly, the overall wide area network (between the PAN and the servers) can get bogged down with handling machine to machine communications, while also having to handle traditional network messaging.

What is needed is a system and method for locally managing network devices utilizing low cost/lost power wireless machine to machine communication protocols.

SUMMARY

In an aspect, a method of managing, via a gateway device configured to wireless communicate with a plurality of network appliances in a closed local area network is disclosed. The method comprises wirelessly receiving, at a gateway device in communication with a plurality of network appliances in a close local area network, a data message from a first network appliance configured to communicate data in association with a first application profile. The method includes retrieving, at the gateway device, the first application profile from a locally stored application profile database upon identifying the first network appliance from the received data message. The method includes accessing one or more databases at the gateway device containing policy information with regard to at least the first network appliance. The method includes evaluating the policy information in the one or more databases in association with one or more policy parameters at the gateway device. The method includes generating a first instruction command at the gateway device based on at least the accessed policy information, the first instruction command generated in conformance with the first application profile and configured to instruct the first network appliance to perform a specified action. The method includes wirelessly transmitting the first instruction command from the gateway device to at least the first network appliance, wherein the first network appliance performs the specified action in conjunction with the first instruction command.

In an aspect, a non-transitory processor readable medium having stored thereon instructions for managing a gateway device configured to wireless communicate with a plurality of network appliances in a closed local area network. The medium comprises processor executable code which, when executed by at least one processor of the gateway device, causes the processor to communicate with a plurality of network appliances in a close local area network, wherein a data message is received from a first network appliance at the gateway device. The data message is configured to communicate data in association with a first application profile of the first network appliance. The processor is configured to retrieve the first application profile from a locally stored application profile database upon identifying the first network appliance from the received data message. The processor is configured to access one or more databases containing policy information with regard to at least the first network appliance. The processor is configured to evaluate the policy information in the one or more databases in association with one or more policy parameters. The processor is configured to generate a first instruction command by the gateway device based on at least the accessed policy information, the first instruction command generated in conformance with the first application profile and configured to instruct the first network appliance to perform a specified action. The processor is configured to wirelessly transmit the first instruction command at least the first network appliance, wherein the first network appliance performs the specified action in conjunction with the first instruction command.

In an aspect, computing device comprises a network interface capable of communicating with one or more network appliances in a closed area network, a memory having stored thereon code embodying machine executable programmable instructions; and a processor configured to execute the stored programming instructions in the memory. The processor configured to communicate with the one or more network appliances in the close local area network, wherein a data message is received from a first network appliance at the gateway device, the data message configured to communicate data in association with a first application profile of the first network appliance. The processor configured to retrieve the first application profile from a locally stored application profile database upon identifying the first network appliance from the received data message. The processor configured to access one or more databases containing policy information with regard to at least the first network appliance. The processor configured to evaluate the policy information in the one or more databases in association with one or more policy parameters. The processor configured to generate a first instruction command by the gateway device based on at least the accessed policy information, the first instruction command generated in conformance with the first application profile and configured to instruct the first network appliance to perform a specified action. The processor configured to wirelessly transmit the first instruction command at least the first network appliance, wherein the first network appliance performs the specified action in conjunction with the first instruction command.

In one or more above aspects, a second instruction command is generated at the gateway device for a second network appliance in the closed area network. The second instruction command is generated based on at least the accessed policy information, the second instruction command generated in conformance with an application profile corresponding to the second network appliance. The second instruction command is then wirelessly transmitted from the gateway device to at least the second network appliance, wherein the second network appliance performs the specified action in conjunction with the second instruction command.

In one or more aspects, the data message from the first network appliance is associated with data taken from one or more sensors of the first network appliance.

In one or more aspects, the first instruction command is configured to cause one or more actuators of the first network appliances to operate.

In one or more aspects, a plurality of proposed operation schedules are generated, wherein each proposed operation schedule designates selected operation times for a set of a plurality of selected network appliances over a designated time duration. The plurality of generated proposed schedules are analyzed in association with one or more set operating constraints. An optimized schedule is identified from the proposed operation schedules, the optimized schedule having a lowest utility cost for operating the network appliances and satisfying the one or more set operating constraints.

In one or more aspects, preselected probability indexes are calculated for each network appliance for each time increment in the time duration, in which the probability indexes represent priority of operation of the network appliances. The probability indexes are then calculated for generating each proposed operating schedule.

DETAILED DESCRIPTION

FIG. 1Aillustrates a diagram of an example network environment that utilizes one or more network gateway devices implemented for use with a closed area network in accordance with an aspect of the present disclosure. In particular, the environment100includes one or more servers102, a closed area network (CAN)101including one or more network enabled appliances (“network appliance”)106(1)-106(n) along with one or more network enabled gateway devices110in communication with the network appliances106and the servers102.

It should be noted that although three servers102, two network appliances106(1)-106(n) and two gateway devices110are shown inFIG. 1, any number (including only one) of these network devices can be used without being limiting to the present disclosure. It should also be noted, in terms of the present disclosure, that the naming of any network device, software or hardware component or other element in singular form (e.g. ‘gateway device,’ ‘processor,’ ‘memory’) does not limit it to the singular case and thus can be construed to be in the plural.

In an aspect, the servers102are connected to a local area network (LAN)104that is connected to a wide area network108. In another aspect, the servers102are directly connected to the wide area network108for direct connection to one or more of the gateway devices110or for cloud based communications with the gateway devices110. The servers102comprise one or more network devices or machines capable of operating one or more Web-based and/or non Web-based applications that may be accessed by other network devices (e.g. gateway devices, network appliances, other servers) in the network100.

In an aspect, one or more servers102runs software to allow control, operation and handling of any network appliance106(or sub-component thereof), any gateway device110and/or any other network device in the closed area network101utilizing the ZigBee™ standard or the like.

In an aspect, one or more servers102may be front end Web servers, application servers, and/or database servers which may handle Web page(s), image(s) of physical objects, user account information, and/or other tasks or resources. One or more servers102may comprise a cluster of a plurality of servers which are managed by a network traffic management device (e.g. firewall, load balancer, web accelerator), gateway device110, router, hub and the like. In another aspect, the servers102implement a version of Microsoft® IIS servers, RADIUS servers and/or Apache® servers, and the like.

The closed area network (CAN)101is described herein as a local area network (LAN) or personal area network (PAN) in which one or more low cost/low power network appliances are able to wirelessly communicate in the CAN101in accordance with an aspect of the present disclosure. As shown inFIG. 1A, the CAN101includes one or more network appliances106(1)-106(n) which wirelessly communicate with one or more gateway devices110(and the managing module200) via the ZigBee™ standard. It should be noted that although the ZigBee™ suite and associated IEEE 802.15.4 standard are disclosed for use with the managing module200of the present disclosure, other low cost/low power closed area networks utilizing the same or other wireless communication standard can be utilized with the managing module.

Network appliances106(1)-106(n) comprise network enabled devices capable of connecting to and communicating with other network appliances as well as gateway device(s)110and servers102. As shown inFIG. 1A, one or more network appliance106includes at least one sensor106A and at least one actuator106B. However, it should be noted that the network appliance106may include only sensor(s) or only actuator(s).

In an aspect, the network appliance106can be one or more sensors106A and/or one or more actuators106B, wherein the primary function of the appliance106, itself, is for sensing (e.g. motion detector) and/or actuation (e.g. door lock).

In another aspect, the network appliance106may be a combination of the sensor(s)106A and/or actuator(s)106B and a primary electronic device which performs a primary function other than sensing and/or actuation. The sensor(s)106A and/or actuator(s)106B may be external to the primary electronic device or are alternatively embedded in or integral with the primary electronic device. Non-limiting and non-exhausting examples of such primary electronic devices that may have sensor(s)106A and/or actuator(s)106B include, but are not limited to, lighting systems, HVAC systems, telecommunication devices, computer systems, computer peripheral systems, kiosks, GPS systems, switches, cameras, security systems and associated components, kitchen appliances, bathroom appliances, bedroom appliances, living room appliances, laundry facilities, water/gas heaters, audio and/or video systems, video game systems, local network routers, power outlets, power utility meters, gas and water regulators, vehicles and vehicle components, industrial machinery and any other electronic device that can be operated remotely in residential, commercial or industrial settings.

In an aspect, the sensor106A provides measurement or monitoring data to the gateway device110in accordance with its associated application profile. Some example of sensors106A include, but are not limited to, motion detectors, accelerometers, infrared sensors, temperature sensors, pressure sensors, radiation sensors, natural gas sensors, smoke detectors, carbon monoxide sensors, door sensors, window sensors, and the like.

Additionally, the actuator106B receives commands or instructions from the gateway device110, wherein the actuator106B performs the action in conformance with the received command/instruction. Some examples of actuators106B include, but are not limited to, switches, locks, temperature valves, water valves, curtains, gas and water valves, utility meters, relays, motion sensors, alarms, temperature sensors. thermostats, VOC sensors and switches or any other hardware or software component which causes a device to perform a certain action. For example, sensor106A may provide monitoring data to the gateway device110that a person has entered a specific room, wherein the gateway device110will instruct actuator106B to turn on a light in that room.

Network108comprises a publicly accessible network, such as the Internet, which handles communication between the network appliances106(1)-106(n) and the servers102, via the gateway device(s)110. However, it is contemplated that the network108may comprise other types of private and public networks. Communications between the gateway device110and the servers102take place over the network108according to standard network protocols, such as the HTTP, UDP, and TCP/IP protocols and the like.

Further, it should be appreciated that the network108may include local area networks (LANs), wide area networks (WANs), direct connections and any combination thereof, as well as other types and numbers of network types. On an interconnected set of LANs or other networks, including those based on differing architectures and protocols, routers, switches, hubs, gateways, bridges, and other intermediate network devices may act as links within and between LANs, WANs and other networks to enable messages and other data to be sent and received between network devices. Also, communication links within and between LANs and other networks typically include twisted wire pair (e.g., Ethernet), coaxial cable, analog telephone lines, mobile cell towers, full or fractional dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links and other communications technologies. LAN104may comprise one or more private and public networks which provide secured access to the servers102. It should be noted that the LAN104is not necessary to the operation of the system described herein.

FIG. 1Billustrates a block diagram of a gateway device shown inFIG. 1Ain accordance with an aspect of the present disclosure. The gateway device110includes one or more processors112, one or more device I/O interfaces114, one or more network interfaces116and one or more memories120, all of which are coupled together by one or more buses118. As will be discussed in more detail below, the gateway device110includes a managing module200stored in the memory120, although the module200may be stored in other memory external to the device110. It should be noted that the gateway device110can include other types and numbers of components and is not limited to the configuration shown inFIG. 1B.

Device processor112comprises one or more microprocessors configured to execute computer/machine readable and executable instructions stored in the respective local device memory120or in a remote device memory (not shown). Such instructions are implemented by the processor112to perform one or more functions of the managing module200, as described in more detail below. It is understood that the processor112may comprise other types and/or combinations of processors, such as digital signal processors, micro-controllers, application specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”), field programmable logic devices (“FPLDs”), field programmable gate arrays (“FPGAs”), and the like.

Device I/O interfaces114comprise one or more user input and output device interface mechanisms local to the gateway device110to allow communications between the user or network administrator and the gateway device110. Such communications include, but are not limited to, communicating user input data and commands (e.g. configuration, adjustment instructions, general setup) to the device110and receiving output information from the device110regarding general and specific information of the CAN101, one or more network appliances106(1)-106(n) or the gateway device110itself. In an aspect, the interface114is located on the device110, itself, wherein the user is able to interact with the gateway device110via the local interface. In another aspect, the interface114is displayed on a wired or wirelessly connected computer (e.g. mobile phone, laptop, tablet), whereby the user is able to interact with the gateway device110through the external computer using the interface114.

Network interface116comprises one or more mechanisms that enable the gateway device110to communicate with the network appliances106(1)-106(n) in the CAN101as well as the servers102. The network interface116is configured to handle transmission and receipt of data packets specific to the different application profiles and protocols of the network appliances106(1)-106(n) in the CAN106. Similarly, the network interface116is configured to handle transmission and receipt of data packets with the servers102in conformance with appropriate network protocols (e.g. TCP/IP, UDP). Network interface116is sometimes referred to as a transceiver, transceiving device, or network interface card (NIC).

In an example where the network device includes more than one device processor112(or a processor112has more than one core), each processor112(and/or core) may use the same single network interface116or a plurality of network interfaces116to communicate with other network devices. Further, the network interface116may include one or more physical ports, such as Ethernet ports, to couple its respective device with other network devices in the system100. Moreover, the network interface116may include certain physical ports dedicated to receiving and/or transmitting certain types of network data, such as device management related data for configuring the respective device, and the like.

Bus118comprises one or more internal device component communication buses, links, bridges and supporting components, such as bus controllers and/or arbiters. The bus118enables the various components of the device110, such as the processor112, I/O interface114, network interface116, manager module200and device memory120to communicate with one another. However, it is contemplated that the bus118may enable one or more components of its respective network device to communicate with components in other devices as well. Example buses118include HyperTransport, PCI, PCI Express, InfiniBand, USB, Firewire, Serial ATA (SATA), SCSI, IDE and AGP buses. However, it is contemplated that other types and numbers of buses118may be used, whereby the particular types and arrangement of buses118will depend on the particular configuration of the gateway device110which houses the bus118.

Device memory120comprises non-transitory computer readable media, namely computer readable or processor readable storage media, which are examples of machine-readable storage media. Computer readable storage/machine-readable storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information. Such storage media stores computer readable/machine-executable instructions, data structures, program modules and components, or other data, which may be obtained and/or executed by one or more processors, such as device processor112. Such stored instructions allow the processor to perform actions, including implementing an operating system for controlling the general operation of the gateway device110, and in particular, ensuring smooth operation of the managing module200, to perform one or more portions of the novel processes described below.

Examples of computer readable storage media include RAM, BIOS, ROM, EEPROM, flash/firmware memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium which can be used to store desired information. Such desired information includes data and/or computer/machine-executable instructions and which can be accessed by the gateway device110. It should be noted that although the memory120is shown as separate from the processor112, it is contemplated that the processor112may have an integrated memory, such as a flash memory, instead of (or in addition to) memory120.

FIG. 2Aillustrates a block diagram of an example managing module of the gateway module in accordance with an aspect of the present disclosure. In general, the managing module200is a software based solution that is stored in the memory120and is loaded onto the gateway device110, either locally via the I/O interface114, or remotely pushed by one or more servers102. Generally, the managing module200manages incoming and outgoing data message with respect to the network appliances106(1)-106(n) in the CAN101and servers102in accordance with various configuration parameters. The managing module200is configured to be able to locally make decisions that affect the operation of the network appliances106(1)-106(n) as well as the overall CAN101, thereby relieving the server(s)102from having to perform those functions.

For example, the managing module200can make smart decisions to control, in real-time, energy consumption of one or more network appliances106(1)-106(n) in the CAN106as well as perform load balancing and various other smart intelligent activities to optimize operation of the PAN, as well as selectively communicate with the server(s)102. For example, the managing module200maybe configured in a manner such that the gateway device200will notify the server102for one or more specific activities where the server102doesn't want the gateway device200to make a particular decision locally for those specific activities.

As shown inFIG. 2A, the managing module200includes a controller module202, a network device handler204, a configuration module206, a local aggregator module208, a local storage210and an optimization module212. It should be noted that additional/fewer/different modules may be utilized in the managing module200and the example shown inFIG. 2Ais only exemplary and thus not limiting.

The controller module (referred to also as “controller”)202performs general handling, managing and organizing of functions performed by the managing module200. In an aspect, the controller module202coordinates and communicates with the various other modules or subcomponents. Accordingly, the controller module202operates in an orchestrating fashion by communicating with the various other modules to ensure effective operation of the managing module200.

The network device handler module204operates with the controller202and communicates with the network interface116(FIG. 1B) of the gateway device110to allow seamless communication with the network appliances106(1)-106(n) as well as server(s)102. More details of the network device handler module204are described in relation toFIG. 2B.

As shown inFIG. 2A, the configuration module206of the managing module200is configured to access various configuration and policy parameters stored in storage210. In particular, the configuration module206may access configuration and/or policy parameter instructions to allow the managing module200to selectively make decisions that affect operations of one or more network appliances106(1)-106(n) in the CAN101and/or handle instructed communications with the server102. More details of the configuration module206are described in relation toFIG. 2C.

As shown inFIG. 2A, the managing module200includes a local aggregator module208configured to aggregate and store incoming data from the network appliances106(1)-106(n) and/or server102for a designated amount of time in conformance with configuration data. The storage210may have a limited amount of space to store data received from other network devices. As a result, received data may be stored in the storage210for a limited and set amount of time before being sent to a server102based on a policy configuration. The aggregator also supplies the input to the load balancer and optimization module212.

As shown inFIG. 2A, the managing module200includes an optimization module212configured to perform load balancing processes as well as other optimization processes to achieve efficient operation of the network appliances106(1)-106(n) within the CAN101. In an aspect, the optimization module212may be utilized to minimize overall energy costs of the appliances in the CAN101, as will be described in more detail below.

FIG. 2Billustrates a block diagram of an example network device handler module in accordance with an aspect of the present disclosure. As discussed above, the network device handler module204operates with the network interface116(FIG. 1B) to allow seamless communication of the gateway device110with network appliances106(1)-106(n) as well as server(s)102. Referring now toFIG. 2B, the network device handler204may one or more sub-modules or sub-components. In an aspect, these sub modules include a device interface module214, a message generator module216, a sensor/actuator health module218, a network device updater module220and a server handler module222. It should be noted that the sub-modules inFIG. 2Bare exemplary only and need not be incorporated in the network device handler204, but can be implemented in any other module (including just the managing module200).

The device interface module214, in an aspect, is configured to analyze data messages received at the gateway device110from one or more transmitting network appliances106(1)-106(n). As mentioned above, various network appliances106(1)-106(n) which utilize the ZigBee™ suite communicate in association with different application profiles which can widely vary from one another. In other words, one type of network appliance106may communicate and operate in accordance with one type of application profile whereas another type of network appliance106may communicate and operate in accordance with another type of application profile. In particular, two different application profiles may require that the data packets be set up differently and contain different content information. In other words, a particular network appliance may speak a different communication language than another network appliance which uses a different application profile.

Accordingly, the gateway device110is designed to allow it to communicate with each network appliance by ‘speaking each appliance's language.” In particular, the managing module200is able to process incoming packets and generate outgoing data packets with each network appliance in conformance with that appliance's respective application profile. The device interface module214enables the managing module200to do this with any network appliance106(1)-106(n) in the CAN101irrespective of the application profile.

The device interface module214is configured to identify the transmitting network appliance106which sent the corresponding data message. In particular, the interface module214analyzes information of the data message, such as header information and/or actual content data in the body of the data message. The interface module214may determine such information including, but not limited to, whether the transmitting network appliance106is a stand alone device or is part of a combined network appliance (described above). The interface module214may determine whether the network appliance is a sensor106A and/or an actuator106B. The interface module214may determine the specific application protocol which is to be used when communicating with the transmitting network appliance106, as well as determining the network address of the transmitting appliance106and other information identifying specific policy and/or appliance configuration information stored in the configuration module206, as well as the location of the network appliance106in the CAN101and the like. The interface module214also functions as a translator to communicate with the various hetergeneous network appliances in the CAN101.

Once the network appliance106is identified, the managing module210can access the storage and retrieve the application profile that corresponds to that network appliance106. The managing module210will then be able to apply that appliance's106application profile to effectively process the data message and communicate with that appliance106.

As shown inFIG. 2B, the network device handler204includes a message generator module216which utilizes the application profile information for the network appliance106. The message generator module216is configured to operate with the controller202and generate data packets to send to the network appliance106in conformance with its application profile.

As shown inFIG. 2B, the network device handler includes a sensor/actuator health check module218. The health check module218operates with the controller202and utilizes policy parameter information to perform routine check up processes for identified network appliances106. In an aspect, the health check module218utilizes scheduling information from the configuration module206to ping the identified network appliances106and update the server102if no response is received from the appliance(s)106within a set amount of time.

As shown inFIG. 2B, the network device handler204may include a network appliance updater module220in an aspect. It should be noted that although the network appliance updater module220is shown in a separate block, it is contemplated that the updater module220can be incorporated into one or more other modules. The updater module220works in tandem with the health check module218and keeps track of the network appliances106which do not respond to the ping(s) sent from the health check module218. The updater module220may store such information for immediate or eventual transmission to the server102. In an aspect, the updater module220may keep track of the network appliances which are currently on-line and responding to the pings. Also if a new network appliance106(1)-106(n) joins the CAN101, the updater module220may authenticate the new appliance and communicate start up information retrieved from the appliance configuration module228(FIG. 2C).

As shown inFIG. 2B, the network device interface214may include a server handler module222in accordance with an aspect. The server handler222can handle information concerning the flexibility in the transmission protocols that the servers102use to communicate. This is advantageous if a particular network appliance's application profile has a transmission protocol that is compliant with that of the server102, the server handler module222will indicate such so that the managing module200will not need to convert any data received from that particular network appliance106. Some examples of such protocols that the server handler module222can inform to the managing module200include, but are not limited to, XML, ASCII, binary etc. In an aspect, the server handler222may provide information associated with one or more preferred mediums (e.g. Ethernet, WiFi, mobile network) over which communications are to be sent from the gateway device110to the server102. In another example, if the gateway device110is to transmit a data message to a particular server102which is an IPv6 server, the interface module214will correspondingly instruct the network interface116to configure the headers of any generated outgoing data packets with IPv6.

FIG. 2Cillustrates a block diagram of an example configuration module in accordance with an aspect of the present disclosure. As shown inFIG. 2C, the configuration module206includes a policy configuration module224, a gateway device configuration module226, and a network appliance configuration module228.

In general, the policy configuration module224locally stores and locally handles policy based instructions and/or localized rules which are provided by the server102. This is advantageous as the managing module200can execute assess and execute policies that are locally stored without troubling the servers102or enterprise dashboard.

In an aspect, the policy configurations handled by the policy configuration module224can include any general, time based, usage based and/or budget based policies that the managing module200locally executes to control one or more network appliances106(1)-106(n) based on the policies and/or data received from the network appliances106(1)-106(n).

An example of a general policy would be for the managing module200to turn off one or more lights in a room if sensor data indicates that no one is in that room. An example of a time based policy would instruct the managing module200to turn off one or more identified network appliances106(1)-106(n) after 6:00 pm. Another time based policy may instruct the managing module200to turn on one or more identified network appliances106(1)-106(n) at 9:00 am.

One usage based policy example may instruct the managing module200of the gateway device110turn off one or more identified network appliances if one appliance or a group of appliance(s) consumes more than 1 kWh in one day.

The gateway configuration module226contains instructions and configuration data that are specific to the gateway device110and the managing module200. In particular, the gateway configuration data is specific to the operation of the gateway device110and the managing module200such that the gateway device110(and module200) can effectively and efficiently carry out its activities with respect to the network appliances106(1)-106(n) and the CAN101.

In an aspect, the gateway configuration data may contain a list that identifies the network appliance(s)106(1)-106(n). In an aspect, the list can be configured from the server102on the gateway device110via XML commands without disturbing gateway running functionality. In an aspect, the gateway configuration data may identify new network appliances that are added to the CAN101along with instructions to the gateway device110regarding authentication steps to be taken by the gateway device110for the newly added appliance.

In an aspect, the gateway configuration data may instruct the managing module200regarding established priority or order instructions with regard actions that the managing module200must take when handling more than one network appliance106(1)-106(n). For example, the priority/order instructions may indicate an order of network appliances106(1)-106(n) which the managing module200is to turn off if there is budget threshold breach.

The network appliance configuration module228contains instructions and configuration data that are specific to the network appliances106(1)-106(n) in the CAN101. The configuration data handled by the network appliance configuration module228is used to instruct the managing module200on daily energy budgets allotted to those network appliances106(1)-106(n) and operational thresholds that the network appliances106(1)-106(n) cannot exceed, priority lists of the associated network appliances, operating status of network appliances (e.g. smart plugs) and the like.

Another example is a gateway hourly energy budget, wherein running time is a priority of every network appliance106(1)-106(n) that does not harm the operation of the business. For example there can be one or more rules that the gateway device110executes in conformance with, irrespective of load balance or budgeting purposes. For instance, the gateway device110may have a rule that requires that one or more network enabled hot water or geyser devices be turned on by the gateway device110from morning 8:00 am until 5:00 pm everyday.

FIG. 3illustrates a flow chart describing the process for managing a plurality of network appliances in a closed area network in accordance with an aspect of the present disclosure. In particular, as shown inFIG. 3, the process begins when the managing module200receives a data message from a network appliance106(1)-106(n) (Block300). The managing module200identifies the network appliance106(1)-106(n) that transmitted the data message (Block302).

The managing module200thereafter accesses one or more databases and retrieves application profile information for the identified network appliance106(1)-106(n) (Block304).

Utilizing the application profile information for the network appliance106(1)-106(n), the managing module200is able to analyze the data message (Block306). The managing module200thereafter stores the data message in a local aggregator or other memory (Block308).

The managing module200also accesses the configuration module206and determines whether any instructions or rules are to be executed by the managing module200in accordance with one or more policies directed to the gateway device110, network appliance106(1)-106(n), or other matter (Block310). If not, the process repeats back to Block300.

If so, the managing module200executes one or more actions in conformance with the one or more policies (Block312). The action is then stored by the managing module200and the process repeats back to Block300.

FIG. 4illustrates a flow chart representing at least a portion of a process performed by the optimization module212to determine an optimized operational schedule in accordance with an aspect of the present disclosure. The techniques utilized by the optimization module212is advantageous in minimizing consumption of power and reducing associated utility costs while efficiently maximizing the operational time of the network appliances106(1)-106(n) handled by the gateway device210in the CAN101. Many power providers apply a varying price per kW-hour, whereby the price may change during peak hours as well as during non-peak hours.

In general to the process described below, the optimization module212of the gateway device110may be configured to iteratively generate several proposed operational schedules for a set number of network appliances handled by the gateway device110. As will be discussed in more detail below, the optimization module212applies various algorithms to energy and utility cost data and analyzes the results in light of one or more set parameter boundaries to select an optimized operational schedule that maximizes the operation of the network appliances106(1)-106(n) while minimizing the overall utility cost of operating the appliances106(1)-106(n). The optimization module212is configured to receive

As shown in Block400inFIG. 4, the optimization module212first identifies the number of network appliances “d”106(1)-106(n) which the gateway device110that are to be considered in the optimization process. The optimization device212can consider any number of network appliances “d”106(1)-106(n) greater than 1.

The optimization module212also determines the average amount of utility power that each network appliance in the set consumes (“h”) for a number of time increments over the designated time duration (Block402). In an aspect, the time duration may be designated to be 24 hours, although shorter or longer time durations are contemplated.

The designated time increments considered by the optimization module212are in conformance with the time increments that are in the proposed operation schedules. For the example procedure inFIG. 4, the optimization module212considers each time increment to one hour wherein the average energy consumptions are considered per hour over the time duration. It should be however, that other time increments can be contemplated (e.g. 5, 15, 30 minutes increments, 2 hour increments) by the optimization module212, in an aspect.

The optimization module212also accesses stored data to determine assigned priority values or probability indexes for each identified network appliance, per time increments over the time duration (Block404). In particular, the priority value for a corresponding network appliance reflects the probability that the network appliance would be operating during the associated time increment in the event that a monetary or energy consumption threshold had been exceeded. For instance, network appliances that are essential or perform critical functions (e.g. security alarms, HVAC) will be assigned higher priority values whereas less important network appliances will be given lower priority values.

In an example, the essential network appliances may be assigned a priority value of 0.9 whereas non-essential network appliances may be given a priority value of 0.2 for a designated time increment. It should be noted that the priority value for a particular network appliance may change among time increments. For instance, a network appliance performing air conditioning or heating functions may have a greater priority value during business hours and a lower priority value during non business hours. It should be noted that a network appliance can be assigned a priority value of 0 or 1 for a corresponding time increment.

In an aspect, the optimization module212generates one or more proposed operation schedules for the set of network appliances that are considered for optimization (Block406). It should be noted that proposed operation schedules are iteratively and simultaneously generated and processed. In particular, the proposed operation schedule takes into account the operating statuses of the network appliances in the set with respect to each time increment over the designated time duration. In an aspect, the proposed operation schedule is configured as a two dimensional matrix, wherein each network appliance “d” in the set D is given an operational status of ON or OFF for each time increment. In an aspect, an operational status of ON is given a value of “1” whereas an operational status of OFF for a particular network appliance is given a value of “0”. It should be noted that the generated matrix is the solution output. If the below equations 1 to 5 are fed to a linear programming solver, then based on objectives mentioned in equation 1 and 2 below and constraints mentioned in equation 3, 4, 5 the LP solver will output this two dimensional matrix.

For the generated proposed operation schedule, the optimization module212calculates an aggregated minimum utility cost for the set of network appliances over the designated time duration (Block408). In an aspect, the optimization module212utilizes an algorithm represented in Equation 1 to calculate the aggregated minimum utility cost for the proposed operation schedule.

Where Ctis the cost per kW-hour charged by the utility company at time increment t. As shown in Equation 1, the optimization module212calculates the product of the average power consumption “hi” for a network appliance “di” with the cost of power “Ct” at time increment t. As described above, the operating status “Si,t” for a particular network appliance will have a value of 1 if the network appliance is operating at time increment t. Accordingly, if the network appliance is not operating at a particular time increment, the product will have a value of “0”.

Accordingly, the optimization module212sums the products for each network appliance over each time increment for the entire designated time duration to calculate the minimum utility cost for the proposed operation schedule. The optimization module212thereafter determines whether the calculated minimum utility cost is the lowest among other stored aggregated utility cost results corresponding to other proposed operation schedules generated by the optimization module212(Block410). If the optimization module212determines that the aggregated minimum utility cost for the proposed operation schedule does not have the lowest monetary amount, the optimization module212discards the proposed operating schedule and generates another proposed operating schedule (Block406). The new generated schedule will have different operating status assigned to the network appliances in the set.

For the generated proposed operation schedule, the optimization module212also calculates an aggregated maximum operating value for the set of network appliances over the designated time duration (Block412). In an aspect, the optimization module212utilizes an algorithm represented in Equation (2) in determining the maximum operating time for the network appliances for each time increment over the time duration:

In particular, the optimization module212sums up the operating status values (i.e. 0 or 1) for each network appliance at each time increment over the time duration to calculate an aggregated maximum operating value for the network appliances of the proposed schedule. The optimization module212thereafter determines whether the calculated maximum operating value is of the greatest value among other stored aggregated maximum operating values for other proposed operation schedules generated by the optimization module212(Block414). If the optimization module212determines that the aggregated maximum operating value for the proposed operation schedule is not the greatest value, the optimization module212discards the proposed operating schedule and generates another proposed operating schedule (Block406). The new generated schedule will have different operating status assigned to the network appliances in the set.

In contrast, if the optimization module212determines that the aggregated maximum operating value for the proposed operation schedule is the greatest value, the process proceeds to Block416. In particular to Block416, the optimization module212determines whether the sum of the priority values assigned to the network appliances in the proposed operation schedule, at any particular time increment, is greater than a predetermined priority threshold value, as shown in Equation (3). In an aspect, the priority threshold value is “1”, although other values are contemplated.
Σi=1no of dev.Prob.(di)≦1  (3)

If the optimization module212determines that the sum of the priority values for the network appliances exceeds the priority threshold value, at one or more time increments, the optimization module212discards the proposed operating schedule and generates another proposed operating schedule (Block406). The new generated schedule will have different operating status assigned to the network appliances in the set.

In contrast, the optimization module212determines whether the proposed schedule has an associated utility cost which violates a preestablished monetary budget of the gateway device110at one or more time increments (Block418), as represented in Equation (4).

If the optimization module212determines that the preestablished monetary budget of the gateway device110is exceeded by the proposed schedule at one or more time increments, the optimization module212discards the proposed operating schedule and generates another proposed operating schedule (Block406). The new generated schedule will have different operating status assigned to the network appliances in the set.

However, if the gateway device's110energy budget and/or utility cost budget is not exceeded at any time increment for the proposed schedule, the optimization device210determines if the energy and/or utility budget of any of the network appliances106in the set will be exceeded during at least one time increment for the proposed schedule (Block420).

In particular to an aspect, the optimization module212utilizes an algorithm, such as in Equation (5), to calculate the budget constraints assigned to each network appliance:

If the optimization module212determines that the preestablished monetary and/or energy budget for any network appliance106is exceeded by the proposed schedule at one or more time increments, the optimization module212discards the proposed operating schedule and generates another proposed operating schedule (Block406). The new generated schedule will have different operating statuses assigned to the network appliances in the set.

On the other hand, the optimization module212will consider the proposed schedule to be an optimized schedule which is then stored in a memory (Block422). The gateway device110is able to process and implement the newly considered optimized schedule to operate the network appliances in conformance with the new schedule. In an aspect, the gateway device110communicates such data to the one or more server devices102. In an aspect, the optimization device212may periodically execute the process described inFIG. 4to adjust an existing optimized schedule or implement a new optimized schedule.

While embodiments and applications have been shown and described, it would be apparent to those skilled in the art having the benefit of this disclosure that many more modifications than mentioned above are possible without departing from the inventive concepts disclosed herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.