Systems and methods for dynamic grouping of multicast commands within a utility system

CN122953607APending Publication Date: 2026-10-20ACLARA TECHNOLOGIES LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202580021097.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-12
Filing Date
2025-01-10
Publication Date
2026-10-20

AI Technical Summary

Technical Problem

XY寻址对于负载控制应用非常有用,但是作为单向机制,不支持对命令的确认

Benefits of technology

[0114]本发明的各种特征和优点在以下权利要求中阐述。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure FT_1
    Figure FT_1
  • Figure FT_2
    Figure FT_2
  • Figure FT_3
    Figure FT_3
Patent Text Reader

Abstract

A utility system includes multiple electricity meters, multiple load devices, and a utility controller. The utility controller is configured to receive commands and associated management groups, and to identify multiple target devices based on the received management groups. The target devices include one or more of the electricity meters and load devices. The utility controller is further configured to determine a first optimal communication group among multiple communication groups associated with the utility system. The first optimal communication group includes one or more of the identified target devices. The utility controller is also configured to issue the received commands to the identified optimal communication group.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority and benefit to U.S. Provisional Patent Application No. 63 / 620,556, filed January 12, 2024, the contents of which are incorporated herein by reference. Technical Field

[0003] The embodiments disclosed herein relate to systems and methods for allowing dynamic grouping of utility equipment (such as meters, load devices, etc.) to facilitate the transmission and processing of directed multicast commands. Background Technology

[0004] Historically, communication systems based their addressing on something as simple as IP addresses. "Multicast" addresses could be used to address "groups," but these groups were often generic or possibly device-type based. As more advanced communication systems became available, such as TWACS® from Aclara, Inc., these systems developed more sophisticated addressing modes called "FGU" and "XY" addressing. FGU addressing is used for bidirectional commands to address groups. These groups are typically organized by electrical location within the network. Requests sent to a group receive a response providing data or acknowledging the command. However, group members cannot be customized in real time. XY addressing is used for unidirectional commands (in the broadcast of commands). These groups are typically organized by load type (in one dimension) and connectivity or area (in another dimension). XY addressing is very useful for load control applications, but as a unidirectional mechanism, it does not support command acknowledgment.

[0005] For example, in load control scenarios, there is a need for dynamic adjustments to groups of devices. For instance, it might be necessary to select all hot water heaters in a given area, or all air conditioners on a given feeder. Adjustments to these groups are typically under the control of the arithmetic unit, allowing them to reduce a given load in real time. Furthermore, load control can include real-time markets, in addition to those based on one day in advance, one hour in advance, or future markets, requiring the ability to dynamically balance the load within the utility system in real time. Therefore, the ability to define groups for load control and optimally communicate commands to these groups is advantageous. Additionally, it is desirable to obtain confirmation from the devices receiving load control commands and to run simulations within the network to test the effectiveness of the communication network and group allocation. Summary of the Invention

[0006] In one embodiment, a utility system is described, including multiple electricity meters, multiple load devices, and a utility controller. The utility controller is configured to receive commands and associated management groups, and to determine multiple target devices based on the received management groups. Target devices include one or more of the electricity meters and load devices. The utility controller is further configured to determine a first optimal communication group among multiple communication groups associated with the utility system. The first optimal communication group includes one or more of the determined target devices. The utility controller is also configured to issue the received commands to the determined optimal communication group.

[0007] In one aspect, multiple communication groups include one or more meters and one or more load devices.

[0008] In another aspect, the utility controller is also configured to determine whether any of the target devices is not included in the optimal communication group, and to determine a second optimal communication group, wherein the second optimal communication group includes one or more target devices that are not included in the first optimal communication group.

[0009] In another aspect, the first optimal communication group includes the maximum number of multiple target devices.

[0010] In another aspect, commands and associated management groups are transmitted by third-party devices.

[0011] In another aspect, commands include instructions that use synchronous communication to respond to commands.

[0012] In another aspect, synchronous communication requires each of the target devices to transmit a response at a predefined frequency and time slot.

[0013] In another aspect, the utility controller performs union and intersection operations to determine the optimal communication group.

[0014] In another embodiment, a process for issuing commands to devices within a utility system is described. The method includes receiving a command at a utility controller. The command includes a group of target devices within the utility system for executing the command. The process further includes: determining, at the utility controller, a plurality of target devices within the utility system based on the received command. The process also includes: determining a first optimal communication group of a plurality of communication groups associated with the utility system, wherein the first optimal communication group includes one or more of the determined target devices.

[0015] In another aspect, the communication group includes one or more meters and one or more load devices.

[0016] In another aspect, the process also includes: determining whether any of the target devices is not included in the optimal communication group, determining a second optimal communication group, wherein the second optimal communication group includes one or more target devices not included in the first optimal communication group, and transmitting the received commands to the second optimal communication group.

[0017] In another aspect, the first optimal communication group includes the largest number of target devices.

[0018] In another aspect, commands are transmitted by external devices.

[0019] In another aspect, commands include instructions that use synchronous communication to respond to commands.

[0020] In another aspect, synchronous communication requires each of the target devices to transmit a response at a predefined frequency and time slot.

[0021] In another embodiment, a utility device is described. The utility device includes a communication interface and an electronic processor. The electronic processor is configured to receive a command via the communication interface, determine whether the received command is addressed to the utility device, process the command in response to determining that the received command is addressed to the utility device, and determine whether the command requires a synchronous response. The electronic processor is further configured to: determine a response frequency and time slot for responding to the command in response to determining that the command requires a synchronous response; determine whether the determined time slot has occurred; and transmit a response to the command via the communication interface in response to determining that the time slot has occurred.

[0022] In one aspect, the utility equipment is configured to avoid transmission on the response frequency during the time slot in response to a determination command not being addressed to the utility equipment.

[0023] In another aspect, utility equipment is load switching equipment.

[0024] In another aspect, utility equipment is the electricity meter.

[0025] In another aspect, commands are received from the utility controller.

[0026] Other aspects of this technology will become apparent upon consideration of the detailed description and accompanying drawings. Attached Figure Description

[0027] Figure 1 This is a system diagram illustrating a utility system according to some embodiments.

[0028] Figure 2 This is a block diagram illustrating a utility controller according to some embodiments.

[0029] Figure 3 According to some embodiments Figure 1 A block diagram of instruments within a public utility system.

[0030] Figure 4 According to some embodiments Figure 1 A block diagram of load devices within a utility system.

[0031] Figure 5 This is a flowchart illustrating a process for managing group formation according to some embodiments.

[0032] Figure 6 This is a flowchart illustrating a process for generating one or more communication groups according to some embodiments.

[0033] Figure 7 This is a flowchart illustrating a process for group optimization according to some embodiments.

[0034] Figure 8 This is a class diagram illustrating the data structure types within a utility system according to some embodiments.

[0035] Figure 9 This is a block diagram illustrating a process for application layer verification according to some embodiments.

[0036] Figure 10 This is a timing diagram illustrating the relationship between the response window and the start delay when transmitting in synchronous mode according to some embodiments. Detailed Implementation

[0037] Before explaining any embodiment of this application in detail, it should be understood that the application is not limited to the construction details and component arrangements set forth in the following description or shown in the following figures. The application can have other embodiments and can be practiced or implemented in various ways.

[0038] Furthermore, it should be understood that the wording and terminology used herein are for descriptive purposes and should not be considered restrictive. The use of “comprising,” “including,” or “having,” and variations thereof is intended to cover items listed herein and their equivalents, as well as additional items. Unless otherwise specified or limited, the terms “installation,” “connection,” “support,” and “coupling,” and variations thereof, are used extensively and cover direct and indirect installation, connection, support, and coupling. As used in this document, the word “or” may mean inclusive or. As a non-restrictive example, if the example statement in this document “item Z may include element A or B,” this may be interpreted as disclosing an item Z that includes only element A, an item Z that includes only element B, and an item Z that includes both elements A and B.

[0039] As used herein, “meter” can mean a connected utility meter, endpoint, terminal device, Advanced Metering Infrastructure (“AMI”) meter from Aclara Technologies®, meter communication accessory, or other metering device required for a given application.

[0040] Figure 1 An example utility system 100 according to some embodiments is shown. It should be understood that utility system 100 is for illustrative purposes and a utility system may include more or fewer components, as described below. Utility system 100 includes a group operator 102. In some examples, group operator 102 may be referred to as a central utility controller, utility controller, etc. Group operator 102 is configured to manage and control the communication and / or operation of various connected devices, such as one or more meters 104 and / or load devices 106. However, other connected devices are also contemplated depending on the requirements of a given application. Meters 104 may be general-purpose solid-state power utility meters, smart meters (i.e., connected), and / or other meter types depending on the requirements of a given application. Meters 104 may be residential meters, commercial meters, industrial meters, municipal meters, and / or other meters depending on the requirements of a given application. Load devices 106 may include various devices for controlling loads on an electrical utility system, such as utility system 100. For example, a load device may include connected electrical appliances or other household components, such as a water heater, refrigerator, pool heater, pool pump, hot tub, air conditioning unit, and / or other electrical load devices required for a given application. Load device 106 may be configured to allow remote operation to disconnect load device 106, thereby reducing strain on the power grid or utility system. In other examples, load device 106 may be an industrial device connected to utility system 100 and configured to be disconnectable to reduce strain on the power grid. For the sake of brevity, every type of load device 106 is not described herein; however, it should be understood that a load device may include any electrical load device within a utility system, such as utility system 100.

[0041] Furthermore, although system 100 is shown relative to meter 104 and load device 106, it is conceivable that multiple other devices, such as sensors (methane sensors, water line sensors, sewer overflow sensors, conductor sensors, etc.) and / or any other devices that may be used within a utility system, may be used in system 100. Therefore, the meter and load devices described herein are for illustrative purposes and are not intended to be limiting.

[0042] Group processor 102 can be configured to communicate with instrument 104 and / or load device 106 via wide area network 108. Communication network 108 can utilize one or more communication protocols to provide communication between group processor 102 and instrument 104 and / or load device 106. Example communication protocols may include Bluetooth, Bluetooth Low Energy (“BLE”), cellular (e.g., 3G, 4G, 5G, LTE, CDMA, TDMA, etc.), RF, Wi-Fi, LoRa, LoRaWAN, Z-wave, Thread, Zigbee, Matter, or proprietary communication protocols such as Aclara RF. However, other communication protocols are also contemplated depending on the specific application requirements.

[0043] Utility system 100 may further include user system 110. User system 110 may be one or more third-party systems, such as load management systems, equipment suppliers, alternative energy suppliers, billing service providers, and / or other third parties as required by a given application. In other examples, user system 110 may be associated with a utility provider and therefore with group processor 102. User system 110 may be configured to communicate with group processor 102 to perform various operations on associated meters 104 and / or load devices 106, such as reading meter data, disconnecting power connections to loads associated with meters, and / or controlling load devices 106 to allow load reduction on the utility system.

[0044] Turn now Figure 2 A block diagram of an example group arithmetic unit 102 according to some embodiments is shown. Figure 2 As shown, the arithmetic unit includes processing circuitry 202, a communication interface 204, and an input / output (I / O) interface 206. Processing circuitry 202 includes an electronic processor 208 and a memory 210. Processing circuitry 202 can be communicatively connected to one or more of the communication interface 204 and I / O interface 206. Electronic processor 208 can be implemented as a programmable microprocessor, an application-specific integrated circuit (ASIC), one or more field-programmable gate arrays (FPGAs), a set of processing units, or having other suitable electronic processing units.

[0045] Memory 210 (e.g., a non-transitory computer-readable medium) includes one or more devices (e.g., RAM, ROM, flash memory, hard disk storage, etc.) for storing data and / or computer code to perform or facilitate the various processes, layers, and modules described herein. Memory 210 may include database components, object code components, script components, or other types of code and information for supporting the various activities and information structures described herein. According to one example, memory 210 is communicatively connected to electronic processor 208 via processing circuitry 202 and may include computer code for (e.g., by processing circuitry 202 and / or electronic processor 208) performing one or more processes described herein.

[0046] Communication interface 204 is configured to facilitate communication between group operator 102 and one or more external devices or systems, such as meter 104, load device 106, user system 110, and / or other devices according to given application requirements. In one embodiment, communication interface 204 facilitates communication network 108 using one or more communication protocols. Communication interface 204 may be or include a wireless communication interface (e.g., antenna, transmitter, receiver, transceiver, etc.) for data communication between group operator 102 and one or more external devices (such as those described above). In some embodiments, communication interface 204 utilizes proprietary protocols for communicating with other devices. For example, the proprietary protocol may be an RF-based protocol configured to provide efficient and effective communication between group operator 102 and other devices (such as Aclara RF). In other embodiments, other wireless communication protocols may also be used, such as cellular (3G, 4G, 5G, LTE, CDMA, etc.), Wi-Fi, LoRa, LoRaWAN, Z-wave, Thread, and / or any other applicable wireless communication protocols.

[0047] I / O interface 206 can be configured to directly interface with one or more devices (such as power supplies, other communication equipment, etc.). In one embodiment, I / O interface 206 can utilize general-purpose I / O (GPIO) ports, analog inputs, digital inputs, etc.

[0048] As described above, memory 210 can be configured to store various processes, layers, and modules that can be executed by electronic processor 208 and / or processing circuitry 202. In one embodiment, memory 210 includes packet optimization circuitry 212 and / or command processing circuitry. Packet optimization circuitry 212 can be configured to optimize communication groups of associated terminal devices (e.g., meter 104, load device 106, and / or other devices required by a given application), as will be described in more detail below. Command processing circuitry 214 can be configured to process one or more commands received from various devices and / or circuits (such as packet optimization circuitry 212, user system 110, and / or other devices required by a given application).

[0049] Turning Figure 3 A block diagram of an instrument (such as instrument 104) according to some embodiments is shown. Figure 3 As shown, instrument 104 includes processing circuitry 302, communication interface 304, input / output (I / O) interface 314, and one or more sensors 316. Processing circuitry 302 includes an electronic processor 308 and a memory 310. Processing circuitry 302 can be communicatively connected to one or more of the communication interface 304 and I / O interface 314. Electronic processor 308 can be implemented as a programmable microprocessor, application-specific integrated circuit (ASIC), one or more field-programmable gate arrays (FPGAs), a set of processing units, or having other suitable electronic processing units.

[0050] Memory 310 (e.g., a non-transitory computer-readable medium) includes one or more devices (e.g., RAM, ROM, flash memory, hard disk storage, etc.) for storing data and / or computer code to perform or facilitate the various processes, layers, and modules described herein. Memory 310 may include database components, object code components, script components, or other types of code and information for supporting the various activities and information structures described herein. According to one example, memory 310 is communicatively connected to electronic processor 308 via processing circuitry 302 and may include computer code for (e.g., by processing circuitry 302 and / or electronic processor 308) performing one or more processes described herein.

[0051] Communication interface 304 is configured to facilitate communication between instrument 104 and one or more external devices or systems, such as group processor 102, one or more other instruments 104, and / or one or more load devices 106. Communication interface 304 may be or include a wireless communication interface (e.g., antenna, transmitter, receiver, transceiver, etc.) for data communication between instrument 104 and one or more external devices, such as another instrument 104, one or more load devices 106, and / or group processor 102. In some embodiments, communication interface 304 utilizes a proprietary protocol for communicating with other instruments 104, one or more load devices 106, and / or group processor 102. For example, the proprietary protocol may be an RF-based protocol configured to provide efficient and effective communication between instrument 104 and other devices. In other embodiments, other wireless communication protocols may also be used, such as cellular (3G, 4G, 5G, LTE, CDMA, etc.), Wi-Fi, LoRa, LoRaWAN, Z-wave, Thread, and / or any other suitable wireless communication protocol.

[0052] I / O interface 314 can be configured to directly interface with one or more devices, such as a power supply, power monitor, etc. In one embodiment, I / O interface 314 may utilize general-purpose I / O (GPIO) ports, analog inputs, digital inputs, etc. Sensor 316 may include one or more sensors configured to monitor one or more aspects of the power distribution line coupled to meter 104. For example, sensor 316 may include voltage sensors, current sensors, temperature sensors, and other sensors depending on the requirements of a given application. In some embodiments, sensor 316 includes one or more connections between meter 104 and the electrical utility line. In other examples, sensor 216 may be connected to the electrical utility line using I / O interface 314.

[0053] Instrument 104 may further include a location system 318. The location system 318 can provide location data for instrument 104. In some examples, the location system 318 may utilize geospatial satellite data (e.g., GPS, GLONASS, etc.) to determine the location of instrument 104. However, other location determination techniques (e.g., cellular triangulation, Wi-Fi location, or other location services required for a given application) may also be used by the location system 318.

[0054] As described above, memory 310 can be configured to store various processes, layers, and modules, which can be executed by electronic processor 308 and / or processing circuitry 302. In one embodiment, memory 310 includes packet processing circuitry 320. Packet processing circuitry 320 is configured to determine whether meter 104 is the intended target of a unicast group message.

[0055] Turn now Figure 4 A block diagram of a load device (such as load device 106) is shown according to some embodiments. Figure 4 As shown, the load device 106 includes processing circuitry 402, a communication interface 404, an input / output (I / O) interface 414, and one or more sensors 416. Processing circuitry 402 includes an electronic processor 408 and a memory 410. Processing circuitry 402 can be communicatively connected to one or more of the communication interface 404 and the I / O interface 414. Electronic processor 408 can be implemented as a programmable microprocessor, an application-specific integrated circuit (ASIC), one or more field-programmable gate arrays (FPGAs), a set of processing units, or having other suitable electronic processing units.

[0056] Memory 410 (e.g., a non-transitory computer-readable medium) includes one or more devices (e.g., RAM, ROM, flash memory, hard disk storage, etc.) for storing data and / or computer code to perform or facilitate the various processes, layers, and modules described herein. Memory 410 may include database components, object code components, script components, or other types of code and information for supporting the various activities and information structures described herein. According to one example, memory 410 is communicatively connected to electronic processor 408 via processing circuitry 402 and may include computer code for (e.g., by processing circuitry 402 and / or electronic processor 408) performing one or more processes described herein.

[0057] Communication interface 404 is configured to facilitate communication between load device 106 and one or more external devices or systems, such as group processor 102, one or more other load devices 106, and / or one or more meters 104. Communication interface 404 may be or include a wireless communication interface (e.g., antenna, transmitter, receiver, transceiver, etc.) for data communication between load device 106 and one or more external devices, such as group processor 102, one or more load devices 106, and / or one or more meters 104. In some embodiments, communication interface 404 utilizes a proprietary protocol for communicating with other load devices 106, one or more meters 104, and / or group processor 102. For example, the proprietary protocol may be an RF-based protocol configured to provide efficient and effective communication between load device 106 and other devices. In other embodiments, other wireless communication protocols may also be used, such as cellular (3G, 4G, 5G, LTE, CDMA, etc.), Wi-Fi, LoRa, LoRaWAN, Z-wave, Thread, and / or any other suitable wireless communication protocol.

[0058] I / O interface 414 can be configured to directly interface with one or more devices, such as power supplies, appliances, power relays, etc. In one embodiment, I / O interface 414 may utilize general-purpose I / O (GPIO) ports, analog inputs, digital inputs, etc. Sensor 416 may include one or more sensors configured to monitor one or more aspects of the power distribution coupled to load device 106. For example, sensor 416 may include voltage sensors, current sensors, temperature sensors, and other sensors depending on the requirements of a given application. In some embodiments, sensor 416 includes one or more connections between load device 106 and an associated load. In other examples, sensor 416 may be connected to an electrical load using I / O interface 414.

[0059] Payload device 106 may further include a location system 418. Location system 418 can provide location data for payload device 106. In some examples, location system 418 may utilize geospatial satellite data (e.g., GPS, GLONASS, etc.) to determine the location of payload device 106. However, other location determination techniques (e.g., cellular triangulation, Wi-Fi location, or other location services required for a given application) may also be used by location system 418.

[0060] As described above, memory 410 can be configured to store various processes, layers, and modules, which can be executed by electronic processor 408 and / or processing circuitry 402. In one embodiment, memory 410 includes packet processing circuitry 420. Packet processing circuitry 420 is configured to determine whether payload device 106 is the intended target of a unicast group message.

[0061] Turn now Figure 5 According to some embodiments, a process 500 for forming a management group is illustrated. A management group is typically a group of devices selected for discussing a specific topic or performing a designated task. An example of a specific topic might be the provision of certain data, such as load data. Typically, a user system (such as user system 110) forms and / or determines which devices are expected to be in a specific management group and maintains said management group (e.g., maintaining a list of devices within the management group). Any given device (e.g., meter 104, load device 106, and / or other suitable devices) may be in multiple management groups, as determined based on needs within user system 110. Therefore, process 500 is generally understood to be performed by user system 110. However, in other examples, process 500 may be performed by group operator 102 and / or other devices / systems as required by a given application.

[0062] At process block 502, user system 110 receives a list of all devices associated with a utility system (such as utility system 100). In one embodiment, group operator 102 may provide user system 110 with a list of all devices. The list of devices may include meters 104, load devices 106, and other devices as required by a given application.

[0063] At process block 504, user system 110 determines one or more relationships between devices and / or other assets. For example, user system 110 may determine which meters 104 and load devices 106 are associated with each other. Alternatively, load devices 106 may be identified as having relationships such as being associated with the same residence or facility, similar load types, associated transformer assignments, and / or other relationships required by a given application. At process block 506, user system 110 determines administrative groups of received devices based on specific needs. These specific needs may be desired load reduction, load control, billing requirements, service cancellation, meter reading, firmware updates, and / or any other applicable needs for a given application. In one embodiment, user system 110 may be configured to generate administrative groups based on any specific needs as defined by user system 110.

[0064] At process frame 508, one or more management groups are formed based on the determined management groups. Each device within a management group may have an identifier for each device, such as a master resource identifier (mRID). The formed management group may include a group name and a member roster consisting of device identifiers (such as mRIDs). Management groups may have other attributes, such as a "reason" (e.g., the purpose or reason behind the formation of the management group, router affiliation, and / or other attributes required by a given application). The one or more management groups are then transmitted to the group operator at process frame 510.

[0065] Turn now Figure 6According to some embodiments, a process 600 for generating one or more communication groups is illustrated. A communication group is a group of devices within a utility system (such as utility system 100) and configured to allow communication between a group operator 102 and various devices within utility system 100, such as meter 104 and / or load device 106. Communication groups may be generated primarily for message routing purposes. In some examples, there may be size limitations for a particular communication group, which may be determined by the technology used in the utility system. In other examples, multiple communication groups may belong to the same routing path. In one embodiment, process 600 is performed by a group operator, such as via processing circuitry 202. At process block 602, group operator 102 identifies all devices within the utility system (such as utility system 100). In some examples, devices (e.g., meter 104, load device 106, etc.) may broadcast all their identifiers (e.g., mRIDs) to group operator 102 upon initial connection. In other examples, devices may broadcast their identifiers continuously. In other examples, group operator 102 may receive a list of devices within utility system 100 from external devices or systems when a new device is installed. For example, when a new device is installed within utility system 100, the device is registered within utility system 100.

[0066] At process frame 604, one or more communication groups are generated. Communication groups can be defined based on one or more characteristics of associated devices, such as location, union and / or intersection characteristics, interconnection characteristics (e.g., common connection point), end-user characteristics (e.g., same facility, facility group, etc.), and / or other parameters required by a given application. Each communication group has an associated identifier. The communication group identifier can be written to each device within the communication to make that device aware of its membership in a particular communication group. Additionally, each device (also referred to herein as an endpoint) is also assigned a unit number (“UnitNo”) within the communication group, which indicates the device's location within the communication group.

[0067] In generating a communication group, group operator 102 can further generate an address map (“AddrMap”) representing all UnitNos belonging to the generated communication group. The UnitNos can have a specific order, which can be used in the formation of the AddrMap. For example, this specific order can be based on location, distance from group operator 102, application, and / or other parameters required by a given application.

[0068] When a communication group is generated, the list of communication groups in the group operator 102 is updated at procedure block 606.

[0069] Turn now Figure 7According to some embodiments, a process 700 for group optimization is illustrated. Group optimization can be utilized to allow one or more communication groups to be used to provide messages to devices specified in a management group, such as those described above. For example, as will be described in more detail below, when user system 110 issues one or more commands for allocation to a group of devices within a management group, group operator 102 can reorganize the management group into multiple communication groups to optimize the allocation of commands to associated devices. The commands may include various instructions, such as requests for report data, instructions to disconnect load connections, instructions to connect loads, instructions to disconnect or reconnect services, or any other commands required by a given application. Therefore, in some embodiments, group operator 102 performs process 700 as described below.

[0070] At process block 702, group operator 102 receives a command and the associated management group to which the command points. In some examples, the command and the associated management group are received from user system 110. At process block 704, the group operator obtains a list of target devices within utility system 100 based on the received command and the associated management group. In one embodiment, group operator 102 performs one or more union and intersection operations to obtain the list of target devices. For example, group operator 102 may associate the list of devices within a management group with devices within utility system 100 and within one or more associated communication groups. In other examples, group operator 102 determines which devices within the received management group exist within utility system 100. While union and intersection operations have been described above, it will be understood that other related and / or probabilistic operations may be performed to obtain the target list based on the received command and the associated management group.

[0071] At process block 706, group operator 102 evaluates the previously generated communication groups against the target list in the received management group to determine the optimal grouping of target devices within the existing communication groups. For example, in the optimal case, all target devices within the received management group will be included in a single communication group, allowing associated commands to be transmitted to the relevant communication group. However, in some instances, target devices associated with a received management group may be associated with multiple communication groups. In any case, finding the optimal set of communication groups alleviates the need to send targeted unicast messages to the list of target devices associated with the received communication groups.

[0072] As part of the evaluation, group operator 102 can first examine which communication groups include the most target devices from the received management groups. While some devices within a communication group may not be target devices, group operator 102 can select which devices within the communication group receive messages by selecting targeted devices within the AddrMap. In other examples, communication groups can be selected only if all devices within the communication group are target devices associated with the received management group. By determining the optimal use of communication groups for transmitting received commands to devices within the associated management group, the number of transmission requests from the group operator is reduced, thereby improving the time required to transmit the requested commands. Although not described in detail above, it is understood that various statistical and probabilistic analyses can be used to determine the optimal grouping.

[0073] At process block 708, the group operator determines whether optimal packetization (i.e., optimal coverage) has been determined. In some examples, group operator 102 determines optimal packetization based on determining that the minimum possible number of transmissions has been achieved. In other examples, group operator 102 may dynamically determine when optimal packetization has been achieved based on the priority of the received commands. For example, if the command is of high priority, group operator 102 may choose to minimize optimization (e.g., determine optimal packetization) to prevent unnecessary delays when transmitting commands to the target device. Therefore, the group operator can change the level of optimization based on various parameters, such as the priority of the received commands.

[0074] In response to the determination that the optimal group has not been determined, at process block 706, group operator 102 continues to evaluate previously generated communication groups against the target list in the received management group to determine the optimal group for target devices within the existing communication group. In response to the determination that the optimal group has been determined, group operator 102 issues the received commands to the target devices in the determined optimal communication group. As noted above, in some instances, the entire communication group may include target devices. In other examples, group operator 102 may select only the target devices within the communication group to process commands transmitted to the communication group, such as by modifying the AddrMap of a given communication group.

[0075] At process block 712, group operator 102 updates the target list to remove those targets that received the issued command. In some examples, upon finding an optimal communication group, the command may be issued to that group first, which may not include all target devices associated with the received command. At process block 714, group operator 102 determines if any target devices remain (i.e., have not yet received the command). In response to determining that there are remaining target devices, the group operator returns to process block 706 to continue evaluating the optimal communication group. This may include searching for a suboptimal communication group (e.g., a communication group that includes a smaller number of target devices), and / or determining that there is no remaining optimal group, which could result in sending a targeted unicast message to each remaining target device.

[0076] In response to the determination that no target device remains, process 700 ends at process box 716.

[0077] Turn now Figure 8 The diagram illustrates a class diagram 800 according to some embodiments. The class diagram illustrates various attributes of the various devices and structures described above. For example, for a general class of group 802, group 802 may typically include a group ID and a group name. The group may be a management group 804 or a communication group 806, or a target list 808. The management group may include a reason field for identifying the purpose of the management group. The communication group 806 may include router affiliation. One or more units 810 (e.g., devices) may be associated with each group 802. A unit may consist of a switch 812 (e.g., a load device) and an endpoint 814 (e.g., a meter). Unit 810 typically includes a description field, an installation information field, an mRID field, a registration field, and a UnitNo field. Switch 812 further includes a load rating field, a load type field, a lock field, an open field, and an opt-out field, a program status field, and / or a relay number field. Endpoint 814 may include a MAC address field. The fields and classes described above are for illustrative purposes, and it should be noted that the various devices and structures described herein may include more or fewer fields depending on the requirements of a given application.

[0078] Turn now Figure 9A process 900 is used to allow synchronous responses from one or more endpoint devices (e.g., meter 104 and / or load device 106) using application-layer acknowledgment. In one embodiment, process 900 is typically performed by the endpoint device, such as meter 104 and / or load device 106. For brevity, process 900 will generally be referred to as being performed by the endpoint device. In cases requiring a synchronous response, the addressing unit (e.g., the target device) will respond in a specific manner within a specific time frame, as described below. Furthermore, in cases requesting a synchronous response, non-addressing units must also understand this, as they must process the broadcast message sufficiently to avoid transmission on any frequency identified as part of a synchronization request, as described below. Conversely, in cases requiring only an asynchronous response, each target device can respond within its own time.

[0079] In the above description, the target device is described as being addressed. A target device being "addressed" means that a multicast broadcast delivers a message to the target device, and the command does not contain any communication group restrictions. Alternatively, the target device can be "addressed" by a multicast broadcast delivering a message, where the command within the message specifies a particular communication group but does not have an AddrMap, according to the following rules:

[0080]

[0081] Equation 1

[0082] In a further alternative, the target device is "addressed" via multicast of delivered messages, where the commands within the message specify a particular communication group and AddrMap according to the following rules:

[0083]

[0084] Equation 2

[0085] In the equation above, comGroupList represents a list of all communication groups defined within the target device, and AddrMap() represents an array of indexed bits such that the bits in AddrMap correspond to each UnitNo within the group.

[0086] Now back Figure 9At process block 902, the terminal device monitors broadcast messages. At process block 904, the terminal device receives multicast broadcast messages. In one embodiment, the multicast broadcast message is received from group operator 102. At process block 906, upon receiving a multicast broadcast message, the terminal device determines whether the message is intended for the terminal device. In one embodiment, the terminal device may determine whether the message is intended for the terminal device based on whether the terminal device is addressed in the message, as described above. At process block 908, in response to determining that the terminal device is not the target, the terminal device then processes the received message to determine whether to place any restrictions on the terminal device. Restrictions may include determining whether the multicast broadcast requires a synchronized response, in which case the terminal device determines whether there is a time and / or frequency at which the terminal device is restricted from transmitting. Although not described herein, it should be understood that, depending on the given application requirements, the terminal device may perform one or more other actions (or specifically, not perform certain actions) based on the received message.

[0087] In response to determining that the received message is addressed to a terminal device, the terminal device processes the command at process block 910. The processing command may include determining one or more instructions within the received command. For example, the processing command may include determining what action (if any) is needed, whether the command requires an asynchronous or synchronous response, and / or other information based on the requirements of a given application.

[0088] When processing the command, the terminal device determines at process block 912 whether an asynchronous or synchronous response is required. In one embodiment, the determination of whether the response should be synchronous or asynchronous is based on the data within the received message. In response to the determination that an asynchronous response is required, the terminal device responds as needed at process block 914.

[0089] In response to the determination that a synchronization response is required, the terminal device determines the required response frequency and timeslot for transmitting the response at process block 916. In one embodiment, the received message may include a frequency map (“FreqMap”) element that identifies which inbound channels are available for communicating the synchronization response. If the FreqMap element is not present in the message, the terminal device may assume that any frequency is available. The terminal device may further determine the channel based on a plurality of feasible channels (assumed to be, but not limited to, 32 as shown in Equation 3) provided in the FreqMap element:

[0090]

[0091] Equation 3

[0092] Based on the list of available channels, the terminal device can determine the unit channel (UnitCh) for transmission based on the following equation:

[0093]

[0094] Equation 4

[0095] The unit channel describes the frequency at which the transmission will occur. A unit channel of zero indicates that the first frequency identified in the FreqMap (marked with '1') corresponds to an entry in the defined list of transmission frequencies. Transmission frequencies can be determined based on the following equation, where phyTxFrequencies is simply a list or array of feasible transmission frequencies.

[0096]

[0097] Equation 5

[0098] The terminal device can then use the following equation to determine the time slot used to transmit the response:

[0099]

[0100] Equation 6

[0101] In one embodiment, the time slot when the response should occur is given by adding the start delay (“StartDelay”) to the time when the outbound command is captured, plus the unit response window (“UnitResponseWindow”) multiplied by the slot number, as shown in the following equation:

[0102]

[0103] Equation 7

[0104] Figure 10 The diagram illustrates the relationship between the response window and the start delay, as calculated above. Returning to... Figure 9 When calculating the response frequency and time slot, at process box 918, the terminal device waits for the determined time slot. At process box 920, the terminal device determines whether the time slot has been reached. In response to determining that the time slot has not been reached, the terminal device continues to wait for the time slot at process box 918. In response to determining that the time slot has been reached, the terminal device transmits a unicast message at process box 922.

[0105] It is expected that multiple terminal devices will be transmitted in each time slot, and therefore the frequency used is based on the unit number of the terminal device, as shown in Table 1 below.

[0106]

[0107] Table 1

[0108] In some examples, when the AddrMap associated with a group includes zeros (i.e., indicating that some devices within the group are not targets), it may be necessary to adjust the unit number. To do this, the terminal device must analyze the received AddrMap and count the number of "1"s starting from the least significant bit. When a '1' is counted, the terminal device reaches its assigned unit number (also found as a '1' in the AddrMap), and the unit number adjusted by the terminal device ("AdjUnitNo") becomes the number of counted '1's, which is less than the terminal device's unit number, as described in the equation below.

[0109]

[0110] Equation 8

[0111] This may affect the determination of time slots, as shown in Table 2 below.

[0112]

[0113] Table 2

[0114] The various features and advantages of the present invention are set forth in the following claims.

[0115] Clause 1. A utility system comprising: a plurality of electricity meters; a plurality of load devices; and a utility controller configured to: receive commands and associated management groups; determine a plurality of target devices based on the received management groups, wherein the target devices include one or more of the plurality of electricity meters and one or more of the plurality of load devices; determine a first optimal communication group among a plurality of communication groups associated with the utility system, wherein the first optimal communication group includes one or more of the determined target devices; and issue the received commands to the determined optimal communication group.

[0116] Clause 2. The system according to Clause 1, wherein the multiple communication groups include one or more of a multiple electricity meters and one or more of a multiple load devices.

[0117] Clause 3. The system according to Clause 1, wherein the utility controller is further configured to: determine whether any of a plurality of target devices is not included in an optimal communication group; and determine a second optimal communication group, wherein the second optimal communication group includes one or more of the plurality of target devices not included in the first optimal communication group.

[0118] Clause 4. The system according to Clause 1, wherein the first optimal communication group comprises a maximum number of multiple target devices.

[0119] Clause 5. The system described in Clause 1, wherein commands and associated management groups are transmitted by a third-party device.

[0120] Clause 6. The system according to Clause 1, wherein the command includes instructions that respond to the command using synchronous communication.

[0121] Clause 7. The system as described in Clause 6, wherein synchronous communication requires each of the target devices to transmit a response at a predefined frequency and time slot.

[0122] Clause 8. The system described in Clause 1, wherein the utility controller performs union and intersection operations to determine the optimal communication group.

[0123] Clause 9. A method for issuing commands to devices within a utility system, comprising: receiving a command at a utility controller, wherein the command includes a group of target devices within the utility system for executing the command; determining, at the utility controller, a plurality of target devices within the utility system based on the received command; and determining a first optimal communication group of a plurality of communication groups associated with the utility system, wherein the first optimal communication group includes one or more of the determined target devices.

[0124] Clause 10. The method according to Clause 9, wherein the plurality of communication groups includes one or more of a plurality of meters and one or more of a plurality of load devices.

[0125] Clause 11. The method according to Clause 9 further comprises: determining whether any of the plurality of target devices is not included in the optimal communication group; determining a second optimal communication group, wherein the second optimal communication group includes one or more of the plurality of target devices not included in the first optimal communication group; and transmitting the issued received command to the second optimal communication group.

[0126] Clause 12. The method according to Clause 9, wherein the first optimal communication group comprises a maximum number of multiple target devices.

[0127] Clause 13. The method described in Clause 9, wherein the command is transmitted by an external device.

[0128] Clause 14. The method according to Clause 9, wherein the command includes instructions to respond to the command using synchronous communication.

[0129] Clause 15. The method according to Clause 14, wherein synchronous communication requires each of the target devices to transmit a response at a predefined frequency and time slot.

[0130] Clause 16. A utility device, comprising: a communication interface; and an electronic processor configured to: receive a command via the communication interface; determine whether the received command is addressed to the utility device; process the command in response to determining that the received command is addressed to the utility device; determine whether the command requires a synchronous response; determine a response frequency and time slot for responding to the command in response to determining that the command requires a synchronous response; determine whether the determined time slot has occurred; and transmit a response to the command via the communication interface in response to determining that the time slot has occurred.

[0131] Clause 17. The utility equipment as described in Clause 16, wherein the utility equipment is configured to avoid transmission on the response frequency during a time slot in response to a determination command not being addressed to the utility equipment.

[0132] Clause 18. The utility equipment described in Clause 16, wherein the utility equipment is a load switching device.

[0133] Clause 19. Utility equipment as described in Clause 16, wherein the utility equipment is an electricity meter.

[0134] Clause 20. Utility equipment as described in Clause 16, wherein the command is received from the utility controller.

Claims

1. A public utility system, comprising: Multiple electricity meters; Multiple load devices; as well as A utility controller, configured to: Receive commands and associated management groups; Multiple target devices are determined based on the received management group, wherein the target devices include one or more of the multiple electricity meters and one or more of the multiple load devices; Determine a first optimal communication group among a plurality of communication groups associated with the utility system, wherein the first optimal communication group includes one or more of a plurality of determined target devices; and Publish the received commands to the identified optimal communication group.

2. The system according to claim 1, wherein, The plurality of communication groups include one or more of the plurality of meters and one or more of the plurality of load devices.

3. The system according to claim 1, wherein, The utility controller is also configured to: Determine whether any of the plurality of target devices is not included in the optimal communication group; and A second optimal communication group is determined, wherein the second optimal communication group includes one or more of the plurality of target devices that were not included in the first optimal communication group.

4. The system according to claim 1, wherein, The first optimal communication group includes the maximum number of target devices.

5. The system according to claim 1, wherein, The commands and associated management groups are transmitted by a third-party device.

6. The system according to claim 1, wherein, The command includes instructions to respond to the command using synchronous communication.

7. The system according to claim 6, wherein, Synchronous communication requires each of the target devices to transmit a response at a predefined frequency and time slot.

8. The system according to claim 1, wherein, The utility controller performs union and intersection operations to determine the optimal communication group.

9. A method for issuing commands to devices within a utility system, comprising: Receive commands at the utility controller, wherein the commands include a group of target devices within the utility system for executing the commands; At the utility controller, multiple target devices within the utility system are determined based on received commands; and A first optimal communication group is determined among a plurality of communication groups associated with the utility system, wherein the first optimal communication group includes one or more of a plurality of determined target devices.

10. The method according to claim 9, wherein, The multiple communication groups include one or more of multiple meters and one or more of multiple load devices.

11. The method of claim 9, further comprising: Determine whether any of the plurality of target devices is not included in the optimal communication group; A second optimal communication group is determined, wherein the second optimal communication group includes one or more of the plurality of target devices that were not included in the first optimal communication group; as well as The received command is transmitted to the second optimal communication group.

12. The method according to claim 9, wherein, The first optimal communication group includes the maximum number of target devices.

13. The method according to claim 9, wherein, The command is transmitted by an external device.

14. The method according to claim 9, wherein, The command includes instructions to respond to the command using synchronous communication.

15. The method according to claim 14, wherein, Synchronous communication requires each of the target devices to transmit a response at a predefined frequency and time slot.

16. A utility facility, comprising: Communication interface; as well as An electronic processor, the electronic processor being configured to: Commands are received via the communication interface; Determine whether the received command is addressed to the utility equipment; The command is processed in response to determining that the received command is addressed to the utility equipment; Determine whether the command requires a synchronous response; Determine the response frequency and time slots for responding to the command in response to the determination that the command requires a synchronous response; Determine whether the identified time slot has occurred; and In response to determining that the time slot has occurred, a response to the command is transmitted via the communication interface.

17. The utility equipment according to claim 16, wherein, The utility is configured to avoid transmission on the response frequency during the time slot in response to determining that the command is not addressed to the utility.

18. The utility equipment according to claim 16, wherein, The utility equipment mentioned is a load switchgear.

19. The utility equipment according to claim 16, wherein, The utility equipment mentioned is an electricity meter.

20. The utility equipment according to claim 16, wherein, The command was received from the utility controller.