Network formation for load control systems

By optimizing the attachment procedure through counting the backoff time period of the control device and coordinating the start-up time in the load control system, the problem of message conflicts during network formation is resolved, and the efficiency of system installation and operation is improved.

CN114271014BActive Publication Date: 2026-06-12LUTRON TECHNOLOGY COMPANY LLC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
LUTRON TECHNOLOGY COMPANY LLC
Filing Date
2020-06-20
Publication Date
2026-06-12

Smart Images

  • Figure CN114271014B_ABST
    Figure CN114271014B_ABST
Patent Text Reader

Abstract

A control device can be configured to delay an attachment procedure when transmitting an attachment message over a network. The control device can be configured to initiate an attachment procedure with a router device on a network at the end of a backoff time period. The attachment procedure can include transmitting an attachment message (e.g., a parent request message) that enables the control device to transmit and receive messages over the network through the router device. During the backoff time period, the control device can determine that an attachment message is received from another control device on the network. And, if an attachment message (e.g., a parent request message and / or a link request message) is received from another control device, the control device can increase the backoff time period (e.g., delay when the control device initiates its attachment procedure).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 864,646, filed June 21, 2019; U.S. Provisional Patent Application No. 62 / 879,122, filed July 26, 2019; U.S. Provisional Patent Application No. 62 / 880,593, filed July 30, 2019; U.S. Provisional Patent Application No. 62 / 884,986, filed August 9, 2019; U.S. Provisional Patent Application No. 62 / 910,059, filed October 3, 2019; and U.S. Provisional Patent Application No. 62 / 942,699, filed December 2, 2019, each of which is incorporated herein by reference in its entirety. Background Technology

[0003] User environments such as residential or office buildings can be configured using various types of load control systems. Lighting control systems can be used to control lighting loads that provide artificial light to the user environment. Electric window sill control systems can be used to control natural light supplied to the user environment. HVAC systems can be used to control the temperature in the user environment.

[0004] Each load control system may include various control devices, including input devices and load control devices. Control devices may receive messages that may include load control instructions for controlling the corresponding electrical load. For example, a message that may include load control instructions may be generated in response to user input or interaction at one or more input devices. Control devices may be able to directly control electrical loads. Input devices may be able to indirectly control electrical loads via load control devices. Examples of load control devices may include lighting control devices (e.g., dimmer switches, electronic switches, ballasts, or light-emitting diode (LED) drivers), power window covers, temperature control devices (e.g., thermostats), AC plug-in load control devices, and so on. Examples of input devices may include remote control devices, occupancy sensors, daylight sensors, glare sensors, color temperature sensors, temperature sensors, and so on. Remote control devices may receive user input for performing load control. Furthermore, control devices may communicate (e.g., send and / or receive messages) within a network using radio frequency (RF) communication such as ZIGBEE communication, BLUETOOTH communication, and / or THREAD communication, and / or any suitable Internet of Things (IoT) communication network. In addition, or in combination, RF communication can be performed via proprietary protocols, such as CLEAR CONNECT. TM protocol. Summary of the Invention

[0005] The control device can be configured to delay the attachment procedure while transmitting attachment messages over the network. The control device can be configured to initiate an attachment procedure with a router device on the network at the end of a backoff period. For example, the attachment procedure may include transmitting attachment messages (e.g., parent request messages) configured to establish a parent-child link between the control device and the router device, and enabling the control device to transmit and receive messages over the network via the router device. During the backoff period, the control device may determine that it has received an attachment message from another control device on the network. And, if an attachment message (e.g., a parent request message and / or a link request message) is received from another control device, the control device may extend the backoff period (e.g., delay when the control device initiates its attachment procedure).

[0006] During the backoff period, the control device can count the number of parent request messages received while the backoff timer is running, as well as the number of link request messages received while the backoff timer is running. When the backoff timer expires, the control device can restart the backoff timer for a time period depending on a second number of parent request messages and link request messages received. For example, the backoff timer's restart time period can be calculated as a weighted sum of the number of parent request messages and the number of link request messages received. Furthermore, in the weighted sum, the second number of link request messages can be weighted more heavily than the number of parent request messages.

[0007] When no response message is received for a transmitted attachment message, the control device may become the leader device of the network. Furthermore, the control device may attach to at least one sub-device (e.g., become the parent device of the attached sub-device). The control device may also determine whether a higher-priority network partition exists in the network. If a higher-priority partition exists in the network, the control device may determine not to respond to router upgrade request messages from at least one sub-device. For example, if a higher-priority partition exists in the network, the control device may determine not to transmit an acknowledgment message in response to a unicast message received from at least one sub-device.

[0008] The control device can be configured to initiate an attachment procedure at the end of a coordinated start-up time that begins when the control device is powered on. The control device can further determine the coordinated start-up time based on a unique identifier assigned to the control device (e.g., assigned during the claim procedure). The coordinated start-up time can be unique to the control device. The coordinated start-up time can be a time period reserved for the control device to initiate the attachment procedure. Attached Figure Description

[0009] Figure 1 This is a schematic diagram of an exemplary load control system.

[0010] Figure 2AIs it permissible? Figure 1 A schematic diagram of an exemplary network for communication between devices in a load control system.

[0011] Figure 2B Is it allowed? Figure 1 A schematic diagram of an exemplary network or network partition (e.g., a network or subnetwork) for communication between devices in a load control system.

[0012] Figure 2C and Figure 2D Is it allowed? Figure 1 A schematic diagram of another exemplary network for communication between devices in a load control system.

[0013] Figure 2E It is shown that... Figure 1 A schematic diagram of another exemplary network illustrating the costs and network overhead associated with communication between devices in a load control system.

[0014] Figure 2F This is a table showing exemplary link costs that can correspond to different link qualities.

[0015] Figure 3 This is a flowchart of an exemplary debugging procedure.

[0016] Figure 4 This is a flowchart of an exemplary procedure that can be executed by a control device before another device is attached to a network.

[0017] Figure 5 This is a flowchart of an exemplary procedure for attaching to another device on a network.

[0018] Figure 6A and Figure 6B This is a flowchart of another exemplary procedure for attaching to another device on a network.

[0019] Figure 7A This is a flowchart of an exemplary procedure for counting the number of parent request message append messages received while the back-off timer is running.

[0020] Figure 7B This is a flowchart of an exemplary procedure to be executed after the backoff timer expires.

[0021] Figure 8A and Figure 8B This is a flowchart of an exemplary procedure associated with a parent device.

[0022] Figure 8C This is a flowchart of an exemplary procedure to be executed by a control device to update the auxiliary parent table of one or more auxiliary parent devices.

[0023] Figure 9A and Figure 9C This is a flowchart of an exemplary procedure to be executed by the control device before another device is attached to the network.

[0024] Figure 9B and Figure 9D This is a sequence diagram of an exemplary procedure to be executed by a device on the network before being attached to another device on the network.

[0025] Figure 10A This is a flowchart of an exemplary procedure for becoming a router device.

[0026] Figure 10B This is a flowchart of an exemplary procedure executed by the parent device in response to receiving a message.

[0027] Figure 10C This is a flowchart of an exemplary procedure executed by the leader device in response to receiving a message.

[0028] Figure 11 This is a flowchart of an exemplary procedure executed by the child device to determine whether to attempt to attach to the updated parent device.

[0029] Figure 12 This is a flowchart of another exemplary procedure executed by a child device to transmit a unicast message to a parent device.

[0030] Figure 13 This is a flowchart of an exemplary procedure for attempting to attach to an updated parent device.

[0031] Figure 14 This is a block diagram of an exemplary mobile device.

[0032] Figure 15 This is a block diagram of an exemplary system controller.

[0033] Figure 16 This is a block diagram of an exemplary load control device.

[0034] Figure 17 This is a block diagram of an exemplary input device. Detailed Implementation

[0035] Figure 1This is a diagram of an exemplary load control system 100 for controlling the amount of power delivered from an alternating current (AC) power source (not shown) to one or more electrical loads. The load control system 100 may be installed in a room 102 of a building. The load control system 100 may include multiple control devices configured to communicate with each other via a wireless signal, such as a radio frequency (RF) signal 108. Alternatively or additionally, the load control system 100 may include a wired digital communication link coupled to one or more control devices to provide communication between the load control devices. The control devices of the load control system 100 may include multiple control source devices (e.g., input devices operable to transmit messages in response to user input, occupancy / vacancy conditions, changes in measured light intensity, etc.) and multiple control target devices (e.g., load control devices operable to receive messages and control corresponding electrical loads in response to received messages). A single control device of the load control system 100 may operate as both a control source device and a control target device.

[0036] The control source device can be configured to transmit messages directly to the control target device. Furthermore, the load control system 100 may include a system controller 110 (e.g., a central processing unit or load controller) operable to transmit and receive messages from control devices (e.g., control source devices and / or control target devices). For example, the system controller 110 may be configured to receive messages from the control source device and, in response to messages received from the control source device, transmit messages to the control target device. The control source device, the control target device, and the system controller 110 may be configured to transmit and receive RF signals 108 using proprietary RF protocols (such as the ClearConnect protocol). Alternatively or in combination, the RF signals 108 may be transmitted using different RF protocols, such as standard protocols, such as one of the protocols WIFI, ZIGBEE, Z-WAVE, THREAD, KNX-RF, ENOCEAN RADIO, or different proprietary protocols.

[0037] The load control system 100 may include one or more load control devices, such as a lighting control device 120, for controlling lighting loads, such as lighting loads 122 in lighting fixtures 124. For example, the lighting control device 120 may include a light-emitting diode (LED) driver, and the lighting load 122 may include an LED light source. Although each lighting fixture 124 is shown as having a single lighting load 122, each lighting fixture 124 may include one or more individual light sources (e.g., lamps and / or LED emitters), which may be individually and / or consistently controlled by the respective lighting control device 120.

[0038] The load control system 100 may include one or more load control devices or appliances, such as a speaker 146 (e.g., part of an audio / video or intercom system), capable of receiving wireless signals 108 directly from the system controller 110, which can generate audible sounds, such as alarms, music, intercom functions, etc.

[0039] The load control system 100 may include one or more daylight control devices, such as motorized window covers 150, like motorized honeycomb blackout curtains, for controlling the amount of daylight entering room 102. Each motorized window cover 150 may include a window cover fabric 152 suspended from a top rail 154 in front of the corresponding window 104. Each motorized window cover 150 may also include a motor drive unit (not shown) located inside the top rail 154 for raising and lowering the window cover fabric 152 to control the amount of daylight entering room 102. The motor drive unit of the motorized window cover 150 may be configured to receive messages via RF signal 108 (e.g., from system controller 110) and adjust the position of the corresponding window cover fabric 152 in response to the received messages. For example, the motorized window cover may be battery powered. The load control system 100 may include other types of daylight control devices, such as honeycomb blackout blinds, curtains, Roman blinds, Venetian blinds, Persian blinds, pleated blinds, tension roller blind systems, electrochromic windows or smart windows, and / or other suitable daylight control devices. Examples of battery-powered motorized window covers are described in more detail in U.S. Patent No. 8,950,461, entitled “MOTORIZED WINDOW TREATME NT,” published February 10, 2015, and U.S. Patent No. 9,488,000, entitled “IN TEGRATED ACCESSIBLE BATTERY COMPARTMENT FOR MOTORIZED WINDOW TREATMENT,” published November 8, 2016, the entire disclosure of which is hereby incorporated by reference.

[0040] The load control system 100 may include one or more temperature control devices, such as a thermostat 160, for controlling the room temperature in room 102. The thermostat 160 may be coupled to the heating, ventilation, and air conditioning (HVAC) system 162 via a control link (e.g., an analog control link or a wired digital communication link). The thermostat 160 may be configured to wirelessly transmit messages to the controller of the HVAC system 162. The thermostat 160 may include a temperature sensor for measuring the room temperature of room 102 and may control the HVAC system 162 to adjust the temperature in the room to a setpoint temperature. The load control system 100 may include one or more wireless temperature sensors (not shown) located in room 102 for measuring the room temperature. The HVAC system 162 may be configured to turn on and off a compressor for cooling room 102 and to turn on and off a heat source for heating room in response to a control signal received from the thermostat 160. The HVAC system 162 may be configured to turn on and off the fans of the HVAC system in response to a control signal received from the thermostat 160. Thermostat 160 and / or HVAC system 162 may be configured to control one or more controllable dampers to control airflow in room 102. Thermostat 160 may be configured to receive messages via RF signal 108 (e.g., from system controller 110) and adjust heating, ventilation, and cooling in response to the received messages.

[0041] The load control system 100 may include one or more other types of load control devices, such as screw-in luminaires including dimmer circuitry and incandescent or halogen lamps; screw-in luminaires including ballasts and compact fluorescent lamps; screw-in luminaires including LED drivers and LED light sources; electronic switches, controllable circuit breakers, or other switching devices for switching the appliance on and off; plug-in load control devices, controllable electrical outlets, or controllable power boards for controlling one or more plug-in loads; motor control units for controlling motor loads (such as ceiling fans or exhaust fans); drive units for controlling electric window covers or projection screens; electric... Internal or external louvers; thermostats for heating and / or cooling systems; temperature control devices for controlling setpoint temperatures in HVAC systems; air conditioners; compressors; electric skirting board heater controllers; controllable dampers; variable air volume controllers; fresh air intake controllers; ventilation controllers; hydraulic valves for radiators and radiant heating systems; humidity control units; humidifiers; dehumidifiers; water heaters; boiler controllers; pool pumps; refrigerators; freezers; television or computer monitors; cameras; audio systems or amplifiers; elevators; power supplies; generators; chargers, such as electric vehicle chargers; and alternative energy controllers.

[0042] The load control system 100 may include one or more input devices, such as a remote control device 170. The input devices may be fixed or movable. The system controller 110 may be configured to transmit one or more messages to load control devices (e.g., lighting control device 120, power window regulator 150, and / or thermostat 160) in response to messages received from the remote control device 170. The remote control device 170 may be configured to transmit messages directly to the lighting control device 120, power window regulator 150, and temperature control device 160.

[0043] The remote control device 170 may be configured to transmit messages to the system controller 110 via RF signal 108 (e.g., directly to the system controller) in response to actuation of one or more buttons on the remote control device. For example, the remote control device 170 may be battery powered. The load control system 100 may include other types of input devices, such as temperature sensors, humidity sensors, radiometers, cloudy sensors, shading sensors, pressure sensors, smoke detectors, carbon monoxide detectors, air quality sensors, motion sensors, safety sensors, proximity sensors, fixture sensors, zone sensors, keypads, multi-zone control units, slider control units, kinetic or solar-powered remote controls, key cards, cellular phones, smartphones, tablet computers, personal digital assistants, personal computers, laptop computers, clocks, audio-visual controls, security devices, power monitoring devices (e.g., power meters, energy meters, utility submeters, utility rate meters, etc.), central control transmitters, residential, commercial, or industrial controllers, and / or any combination thereof.

[0044] System controller 110 may be coupled to a network, such as a wireless or wired local area network (LAN), for example, for accessing the Internet. System controller 110 may wirelessly connect to the network, for example, using Wi-Fi technology. System controller 110 may be coupled to the network via a network communication bus (e.g., an Ethernet communication link). System controller 110 may be configured to communicate via the network with one or more network devices (e.g., mobile device 190, such as a personal computing device and / or a wearable wireless device). Mobile device 190 may be located on occupant 192, for example, it may be attached to the occupant's body or clothing, or it may be held by the occupant. Mobile device 190 may be characterized by a unique identifier (e.g., a serial number or address stored in memory) that uniquely identifies mobile device 190 and thus occupant 192. Examples of personal computing devices may include smartphones (e.g., Smartphone Smartphone or Smartphones), laptops and / or tablets (e.g., Handheld computing devices). Examples of wearable wireless devices may include activity tracking devices (such as...). Device, Device and / or Sony Devices), smartwatches, smart clothing (e.g., Smart clothing, etc.) and / or smart glasses (such as Google) (Eyeglasses). In addition, the system controller 110 can be configured to communicate with one or more other control systems (e.g., building management systems, security systems, etc.) via a network.

[0045] Mobile device 190 may be configured to transmit messages to system controller 110, for example, in one or more Internet Protocol (IP) packets. For example, mobile device 190 may be configured to transmit messages to system controller 110 via a LAN and / or via the Internet. Mobile device 190 may be configured to provide external services via the Internet (e.g., if this or that). The mobile device 190 transmits and receives RF signals 109 via a Wi-Fi communication link, a Wi-MAX communication link, a Bluetooth communication link, a near field communication (NFC) link, a cellular communication link, a TV white space (TVWS) communication link, or any combination thereof. RF signals 109 may be of the same signal type as RF signals 108 and / or transmitted using the same protocol as RF signals 108. Alternatively or additionally, the mobile device 190 may be configured to transmit RF signals according to another signal type and / or protocol. The load control system 100 may include other types of network devices coupled to the network, such as a desktop PC, a television with Wi-Fi or wireless communication capabilities, or any other suitable Internet Protocol-enabled device. Examples of load control systems operable to communicate with mobile devices and / or network devices on a network are described in more detail in commonly assigned U.S. Patent Application Publication No. 2013 / 0030589 entitled “LOAD CONTROL DEVICE HAVING INTERNETCONNECTIVITY”, published January 31, 2013, the entire disclosure of which is incorporated herein by reference.

[0046] The operation of the load control system 100 can be programmed and configured using, for example, a mobile device 190 or other network device (e.g., when the mobile device is a personal computing device). The mobile device 190 can execute graphical user interface (GUI) configuration software to allow the user to program how the load control system 100 will operate. For example, the configuration software can run as a PC application or a web interface. The configuration software and / or system controller 110 (e.g., via instructions from the configuration software) can generate a load control database that defines the operation of the load control system 100. For example, the load control database may include information about the operating settings of different load control devices of the load control system (e.g., lighting control device 120, electric window regulator 150, and / or thermostat 160). The load control database may include association information identifying associations between load control devices and input devices (e.g., remote control device 170, etc.). Associations may include device identifiers stored together, enabling devices to recognize the identifiers of associated devices to achieve communication between devices. Devices can recognize the stored identifiers of associated devices and transmit messages to and / or recognize messages received from associated devices. The load control database may include information about how the load control device responds to inputs received from the input device. Examples of configuration procedures for load control systems are described in more detail in commonly assigned U.S. Patent No. 7,391,297, entitled “HANDHELD PROGRAMMER FOR A LIGHTING CONTROL SYSTEM”, published June 24, 2008; U.S. Patent Application Publication No. 2008 / 0092075, entitled “METHOD OF BUILDING A DATABASE OF A LIGHTING CONTROL SYSTEM”, published April 17, 2008; and U.S. Patent Application Publication No. 2014 / 0265568, entitled “COMMISSIONING L OAD CONTROL SYSTEMS”, published September 18, 2014, the entire disclosure of which is incorporated herein by reference.

[0047] Control devices in a load control system can communicate with each other via a network. For example, a control device can join the network by initiating a joining procedure. During the joining procedure, the control device can send and receive joining messages, which can be used to exchange credentials with network debugging devices. After exchanging credentials, a network key can be provided to the control device, enabling it to communicate over the network. The control devices can then each attempt to attach to another device joined to the network (e.g., a router device), thus forming a mesh network. For example, a control device can attempt to attach to another device joined to the network by initiating an attachment procedure with other devices. As described herein, the control device can send and / or receive attachment messages to other devices on the network during the attachment procedure. And based on the type of attachment message transmitted during the attachment procedure, the control device can establish a link with the router device (e.g., parent-child link, secondary parent link, router-to-router link). For example, during the attachment procedure, the control device may transmit attachment messages configured to establish a parent-child link (e.g., parent request messages and / or parent response messages) to establish a parent-child link with the router device, such that the control device can become a child device of the router device, and the router device can become the parent device of the control device. Similarly, during the attachment procedure, the control device may transmit attachment messages configured to establish a secondary parent link (e.g., link request messages and / or link response messages) to establish a secondary parent link with the router device. After the parent-child link is established, the control device can transmit and receive messages over the network via other devices. As described herein, the router device to which the corresponding control device is attached may also be referred to as the parent device of the control device.

[0048] The control device can also attach to and establish links with additional devices (e.g., router devices) that have joined the network. For example, the control device can initiate an attachment procedure to attach to an additional router device (e.g., a router device that is not a parent device of the control device). As a result of the attachment procedure, the control device can establish auxiliary parent links with other router devices, making the other devices auxiliary parent devices of the control device. And during the attachment procedure, for example, the control device can send to and receive from other router devices multiple attachment messages configured to establish auxiliary parent links, such as link request messages or link response messages. The control device can receive and process messages from the auxiliary parent devices to which it is attached (e.g., in addition to the parent devices to which it is attached), which can increase the reliability of network information received in the network. As described herein, the process of a control device joining a network (e.g., via a joining procedure) and / or attaching to another device that has already joined the network (e.g., via an attachment procedure) can be referred to as network formation.

[0049] During network formation, as described herein, multiple control devices may join the network and attach to other devices already joined (e.g., via an attachment procedure with another device). However, each control device may initiate its own respective attachment procedure, which involves simultaneously or substantially simultaneously sending and receiving attachment messages over the network. As a result, multiple control devices may transmit attachment messages over the network simultaneously or substantially simultaneously. When multiple devices transmit messages over the network simultaneously or substantially simultaneously, the messages may conflict with each other and / or cause messages to fail to be received. For example, message conflicts during network formation can cause attachment messages to fail to be received, thereby delaying network formation and the installation or operation of the load control system.

[0050] As the scale of network installations (e.g., the number of devices attached to the network) increases, the number of collisions occurring during network formation can also increase. Furthermore, after a control device has repeatedly failed to attach to a network (e.g., due to message collisions and / or lack of connectivity to an existing network), the device may attempt to form another network (e.g., a network partition). Network partitions may communicate in parallel with each other, but may not communicate with each other (e.g., for at least a period of time and / or until the network partitions combine into a single network partition). For example, a device attached to a first network partition may not be able to communicate with a device attached to a second network partition. As communication links are established between devices at certain locations, each network can grow, and one or more devices in one network can join other networks. Devices leaving a network can cause excessive processing delays for devices remaining on the network when devices reconfigure or discover their roles within the network.

[0051] Figure 2A This is an illustration of an exemplary network 200a that allows communication between control devices in a load control system (e.g., load control system 100). Network 200a may include any suitable network to facilitate communication in the load control system or in an Internet of Things (IoT) environment. For example, network 200a may be a mesh network, such as a THREAD network. Various control devices of the load control system 100 may communicate with each other via network 200. Figure 2A As shown, network 200a may include a single network partition. Furthermore, network 200a may be an example of a network partition (e.g., a subnet or subnetwork) within a larger network. For example, network 200a may be an example of a network partition within a larger network consisting of multiple network partitions. Network 200a is an exemplary network, and the techniques described herein can be applied to other networks, for example, that include more or fewer control devices than network 200.

[0052] Networks such as network 200a can be used to facilitate communication among devices joining the network. The process by which these devices join the network and / or form their respective links with each other is referred to herein as network formation. As described herein, devices joining the network may form links with each other during network formation. For example, a control device may attach to another device (e.g., a router device) and establish parent-child links with other devices. After attaching to a router device (e.g., establishing a parent-child link between the device and the router device), the device can send messages to other devices in the network through the router device and receive messages including network information through the router device. Figure 2A The circled nodes may represent devices attached to other devices on network 200a (e.g., various control devices of the load control system 100). A control device attached to at least one other control device on network 200a can communicate with other control devices (e.g., other control devices attached to another control device on network 200a). Communication within network 200a may be facilitated by links (e.g., attachments) established within network 200a. [Reference] Figure 2A Links between devices can be indicated by lines (e.g., solid and dashed lines) connecting the respective control devices.

[0053] A control device joining network 200a can assume and / or be assigned a corresponding role in the network. For example, roles may include: a leader device (e.g., leader device 210), a router device (e.g., router devices 220a to 220d), a terminal device (e.g., terminal devices 230a and 230b), a router-compliant terminal device (REED) (e.g., router-compliant terminal device 240), and / or a dormant terminal device (e.g., dormant terminal device 250). The role of the control device may indicate the functionality and / or capabilities of the control device relative to network 200a. Furthermore, the role of the control device may be based on the attachment of the control device.

[0054] like Figure 2A As shown, network 200a may include a leader device 210 and one or more router devices 220a to 220d. Leader device 210 can manage other control devices on network 200. For example, leader device 210 can assign and maintain a router identifier (e.g., router ID) for each of the router devices 220. For example, a unique router identifier can be assigned to each of the router devices 220a to 220d. Leader device 210 can assign and maintain the roles of other devices. Leader device 210 can be configured as a gateway for network 200a. For example, the leader device can be a control device that facilitates communication between network 200a and other networks or network segments (e.g., routing messages to and receiving messages from network 200a and other networks or network segments). Reference Figure 1System controller (e.g., Figure 1 The system controller 110 shown can be an example of a leader device 210. Furthermore, control devices within the load control system that can be assigned roles to router devices can be assigned roles to the leader device.

[0055] Leader device 210 can attach to multiple router devices (e.g., more than 30 router devices) by establishing one or more router-to-router links, as shown by the solid lines connected to leader device 210. Leader device 210 can operate as a router device. Router devices 220a to 220d on network 200a (e.g., leader device 210 attached to network 200a) can also establish router-to-router links with each other and thus communicate with each other, for example, to form a mesh network. As described herein, router-to-router links can be established via an attachment procedure that includes transmitting attachment messages configured to establish router-to-router links (e.g., link request messages and / or link response messages). Router devices 220a to 220d can communicate with each other (e.g., as indicated by the solid lines connecting router devices 220a to 220d). Router devices 220a to 220d can communicate with leader device 210 directly or via one or more other router devices (e.g., as indicated by the solid lines connecting leader device 210 to router devices 220a and 220c). Router devices 220a to 220d can receive messages and route messages to other devices on network 200a (e.g., terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250). For example, router devices 220a to 220d can receive and / or transmit messages between or among themselves for the purpose of forwarding messages received from an attached device to another device attached to another router device. Referring now to load control system 100, externally powered controls (e.g., not battery-powered controls) can be assigned roles to router devices such as system controller 110, lighting control 120, power window regulator 150, and / or thermostat 160.

[0056] Network 200a may include one or more terminal devices 230a, 230b (e.g., also referred to herein as complete or minimal terminal devices). Terminal devices 230a, 230b may be attached to another device on network 200a (e.g., a parent device, such as leader device 210 and / or router devices 220a, 220b, 220c, 220d) and may transmit and / or receive messages via the attached leader device and / or router device. As described herein, terminal devices 230a, 230b may be attached to another device using an attachment procedure. For example, a terminal device may perform an attachment procedure to establish a parent-child link (e.g., as described herein) by transmitting attachment messages configured to establish a parent-child link (e.g., such as parent request messages and parent response messages). Figures 2A to 2E (As shown by the dashed line in the diagram). Alternatively or alternatively, the terminal device may perform the attachment procedure to establish the secondary parent link by transmitting attachment messages configured to establish the secondary parent link (such as link request messages and link response messages). Figures 2A to 2E (As shown by the long and short dashed lines in the diagram). For example, as... Figure 2A As shown, terminal device 230b can establish an auxiliary parent link with router device 220c (e.g., as shown by the long and short dashed lines). Although in Figure 2A Two terminal devices 230a and 230b are shown, each attached to a different router device, but each router device 220a to 220d may support multiple terminal devices (e.g., more than 500 terminal devices). System controller 110, input devices (e.g., remote control device 170) and / or load control devices (e.g., lighting control device 120, power window regulator 150 and / or thermostat 160) may be examples of terminal devices 230a and 230b.

[0057] Refer again Figure 2A Network 200a may include a router-qualified terminal device 240. The router-qualified terminal device 240 may be a terminal device capable (e.g., hardware-wise and / or software-wise) of becoming a leader device and / or a router device. In some cases, the role of the router-qualified terminal device 240 may be updated to that of a leader device and / or a router device. For example, when the router-qualified terminal device 240 identifies itself as being within the communication range of a terminal device attempting to join network 200a, the router-qualified terminal device 240 may upgrade itself to the role of a router device, thereby allowing a terminal device to attach to the router-qualified terminal device 240. The router-qualified terminal device 240 may transmit and / or receive messages via the attached router device 220d. Figure 2AAs shown, the router-compliant terminal device 240 can be a terminal device attached to the router device 220d. System controller 110, lighting control device 120, power window regulator 150, and / or thermostat 160 can be examples of the router-compliant terminal device 240. Referring now to load control system 100, such as an externally powered control device (e.g., not a battery-powered control device), roles such as system controller 110, lighting control device 120, power window regulator 150, and / or thermostat 160 can be assigned to the router-compliant terminal devices.

[0058] Network 200a may also include a hibernation terminal device 250. The hibernation terminal device 250 may include a terminal device or be similar to a terminal device. For example, the hibernation terminal device 250 may be a terminal device powered by a limited power source (e.g., a battery). The hibernation terminal device 250 may know its role as a hibernation terminal device based on, for example, instructions stored at the hibernation terminal device 250. Communication with the hibernation terminal device 250 may be performed such that the limited power source is conserved and / or efficiently consumed. For example, the hibernation terminal device 250 may periodically disable its corresponding communication circuitry between message transmissions. The hibernation terminal device 250 may transmit and / or receive messages via an attached router device 220a. Figure 2A As shown, the hibernation terminal device 250 can be a terminal device attached to the router device 220a. Input devices (e.g., remote control device 170) and / or load control devices (e.g., power window regulator 150 when powered by battery) can be examples of the hibernation terminal device 250. In addition, sensors and / or battery-powered devices can be examples of the hibernation terminal device 250.

[0059] The leader device 210 may update the roles of devices communicating within network 200a, for example, based on changes to network 200a (e.g., confirming role updates). In one example, when a device is attached to network 200a, the control device may be assigned a role, and the leader device 210 may update the device's role based on changes in network conditions. Changes in network conditions may include increased message traffic, the attachment of other devices, changes in signal strength, etc. Updates to the assigned roles of the control device may be based on the device's capabilities. For example, the leader device 210 may update the control device's role from a terminal device meeting router criteria to a router device (e.g., because a terminal device meeting router criteria is a terminal device qualified to perform the role of a router device). The leader device 210 may update the control device's role to a router device by assigning a router identifier (ID) to the device.

[0060] When leader device 210 updates the roles of devices in network 200, it can maintain the number of router devices in network 200a and / or router identifiers used in network 200. For example, leader device 210 can store and / or maintain a bitmap 217 that can be used to indicate the number of routers and / or router identifiers used in network 200. Bitmap 217 may include multiple bits, each corresponding to a different router identifier used in network 200. In one example, leader device 210 may support 64 router devices, and leader device 210 may store a 64-bit bitmap to track router identifiers used in network 200. Each bit in the bitmap may indicate whether a router identifier is identified by leader device 210 as being in use (e.g., having a value "1") or not in use (e.g., having a value "0"). Leader device 210 can determine that a control device should be upgraded to a router device and assign a router identifier to a router device whenever a router identifier is available. Leader device 210 can downgrade a router device (e.g., downgrade it to an end device) or remove a router device from network 200. When router devices are added or removed, bitmap 217 can be updated to indicate the number of router devices and / or router identifiers used in network 200.

[0061] Leader device 210 can send bitmap 217 to other router devices in network 200. Each router device (including leader device 210) can maintain network information about each of the router devices identified as being used in network 200. For example, each router device can maintain network information about each of the router devices in a router table (such as router table 219). For example, the network information in router table 219 can identify the router devices in network 200a and the communication quality of the corresponding router devices with other router devices maintained in the router tables stored locally thereon. Each router table (such as router table 219) can include a row of each router identifier indicated in bitmap 217. Each router device in the network (including leader device 210) can perform communication on network 200a based on the network information stored and maintained in the router tables stored locally thereon. For example, router devices (such as router devices 220a to 220d and / or leader device 210) can transmit messages differently within network 200a based on the communication quality of the corresponding router devices identified in the router tables stored locally thereon.

[0062] The control device attached to network 200a may further operate as a parent device and / or a child device. A leader device (e.g., leader device 210) and router devices (e.g., router devices 220a to 220d) attached to one or more terminal devices (e.g., terminal devices 230a, 230b, router-qualified terminal device 240, and / or dormant terminal device 250) may operate as parent devices. Terminal devices (e.g., terminal devices 230a, 230b, router-qualified terminal device 240, and / or dormant terminal device 250) attached to the leader device (e.g., leader device 210) or router devices (e.g., one of router devices 220a to 220d) may operate as child devices. As parent devices, leader device 210 and router devices 220a to 220d can each be attached to one or more child devices (e.g., one or more of terminal devices 230a, 230b, router-qualified terminal device 240, and / or dormant terminal device 250, as described herein). Furthermore, leader device 210 and router devices 220a to 220d can store and / or relay messages sent by their respective attached child devices. For example, leader device 210 and router device 220 can receive messages from their respective child devices and route the received messages to the intended recipient device (e.g., directly to the intended recipient device, via the intended recipient device's corresponding parent device, and / or to a router device or leader device on the path to the intended recipient). Similarly, leader device 210 and router devices 220a to 220d can receive messages intended for their respective child devices and route such messages to the appropriate child device. When the communication circuitry of a dormant terminal device is enabled, the parent device of the corresponding dormant terminal device can schedule communication with the dormant terminal device.

[0063] like Figure 2AAs shown, links (e.g., attachments) between child devices and their respective parent devices can be indicated by dashed lines. For example, router device 220a can be configured as the parent device of terminal device 230a and dormant terminal device 250. Similarly, router device 220b can be configured as the parent device of terminal device 230b. Router device 220a can receive messages intended for terminal device 230a and forward those messages to terminal device 230a. Since router device 220a is configured as the parent device of terminal device 230a, terminal device 230a can transmit messages to router device 220a, and router device 220a can route those messages to their intended recipient. For example, when terminal device 230a intends to transmit a message to terminal device 230b, terminal device 230a can initially transmit the message to router device 220a. Router device 220a can then route the message to router device 220b (e.g., the parent device of terminal device 230b). For example, router device 220a can route a message to router device 220b via router device 220c or router device 220d, and then router device 220b can forward the message to terminal device 230b. Furthermore, as described herein... Figure 2A As shown, router device 220a can route messages to terminal device 230b via router device 220c (e.g., an auxiliary parent device of router device 230b).

[0064] Sub-devices can be configured to transmit unicast messages to their respective parent devices. Control devices can transmit unicast messages directly or via hops through other devices in the network to another control device in the network. Each unicast message can be individually addressed to another control device by including a unique identifier of the control device to which the unicast message is transmitted. Control devices can generate separate unicast messages for each control device with which they communicate and address the unicast messages independently to each control device. Unicast messages may also include a unique identifier of the control device to which the unicast message is to be received. A control device can determine that it is the intended recipient of the unicast message by including a unique identifier that identifies itself in the unicast message.

[0065] Messages can be sent in a network using multicast and / or broadcast messages. A multicast message can be sent to a group of control devices in the network. The multicast message may include a group identifier. Control devices that are members of the group can identify the group identifier and process the message accordingly. A broadcast message can be sent to each control device in the network capable of receiving the message. The broadcast message may include an indication that the message is a broadcast message (e.g., a broadcast address). Each device receiving the broadcast message can process the message accordingly. The network can use either multicast or broadcast messages, and these two terms are used interchangeably herein.

[0066] Messages transmitted from a child device to its corresponding parent device may include an indication of the intended recipient (e.g., a unique identifier), and the parent device may route the message accordingly. See again Figure 2A Terminal device 230a can transmit messages to router device 220a (e.g., a parent device of terminal device 230a), and router device 220a can route the message based on the intended recipient. For example, if terminal device 230a transmits a message intended for terminal device 230b, router device 220a can route the message to router device 220b (e.g., a parent device of terminal device 230b that meets router criteria) via router device 220c or router device 220d. For example, if router device 220a routes the message via router device 220d, router device 220d can forward the message to router device 220b, which can then forward the message to terminal device 230b. Router device 220a can identify router device 220b as the parent device to which terminal device 230b is attached via a lookup table. Figure 2A As shown, multiple paths may exist to route messages through network 200a, and router devices may identify the shortest path (e.g., minimum hop count) to transmit messages to the appropriate device.

[0067] A child device can be configured to communicate with an auxiliary parent device (e.g., configured to communicate with more than one parent device). See reference. Figure 2A For example, terminal device 230b may be configured to communicate with a parent device (e.g., also referred to as the primary parent device) (such as router device 220b) (e.g., to transmit messages to and receive messages from it). Terminal device 230b may also be configured to communicate with an auxiliary parent device (such as router device 220c) (e.g., as...). Figure 2A (As shown by the long and short dashed lines in the diagram) communication (e.g., receiving messages from it). A child device can receive unicast messages from its parent device. A child device can also receive multicast messages (e.g., broadcast messages) from its parent device and / or one or more auxiliary parent devices, which increases the efficiency and reliability of message reception by the child device. For example, a child device can receive general network advertisement messages via auxiliary parent devices. The number of auxiliary parent devices to which a child device is attached can be limited to a threshold number of auxiliary parent devices (e.g., 3, 5, 10, etc.).

[0068] A child device may be attached to a single parent device (e.g., also referred to herein as the primary parent device) and one or more secondary parent devices. For example, a child device may transmit and / or receive unicast messages over a network via a parent device. Additionally, a child device may process messages received from one or more secondary parent devices. The number of secondary parent devices to which a given child device is attached may be limited to a threshold number of secondary parent devices, which may be predefined and / or configured. A child device may attach to a secondary parent device by transmitting an attachment message (referred herein to a link request message or link response message) configured to establish a secondary parent link with a router device. For example, see reference... Figure 2A Terminal device 230b may have transmitted a link request message to router 220c. A link request message can be used to request a communication link between two devices. In response to receiving a link request message, router device 220c may transmit a message (referred to herein as a link acceptance message) to terminal device 230b. The link acceptance request message may include information allowing the corresponding sub-device to decrypt messages from an auxiliary parent device (e.g., a frame counter). As described herein, when a sub-device is attached to an auxiliary parent device, the sub-device can receive multicast messages (e.g., multicast messages including network information) via the auxiliary parent device. For example, refer to... Figure 2A Terminal device 230b can receive multicast messages via a parent device (e.g., router device 220b) and an auxiliary parent device (e.g., router device 220c), which can increase the efficiency and reliability of the sub-device 230b in receiving multicast messages.

[0069] A child device may receive advertisement messages from a router device other than its parent device or a router device other than its auxiliary parent device. For example, a router device may transmit an advertisement message to enable other control devices to determine that a network has been established, and a control device that hears the advertisement message may attempt to attach to the router device (e.g., via network communication). Control devices may receive and track advertisement messages transmitted by router devices to determine whether the device is capable of communicating via the network. Alternatively, advertisement messages transmitted by the respective router devices may provide other router devices with the ability to measure communication metrics (e.g., RSSI) between the respective routers attached to the network (e.g., routers can use this communication metric to update their respective routing tables or routing information). For example, a communication metric may indicate the quality of a communication link between two usable devices. As described herein, a router device may determine the quality of a communication link between respective router devices by measuring communication metrics such as the received signal strength (RSS) value of an advertisement message transmitted between router devices (e.g., average received signal strength value). For example, the received signal strength value may be determined by measuring the Received Signal Strength Indicator (RSSI) of the received advertisement message.

[0070] Certain messages can be propagated and broadcast by multiple devices in network 200a, which increases the likelihood that the corresponding sub-devices will hear the message. For example, substantially similar multicast messages (e.g., messages including the same load control instructions sent to multiple load control devices) can be broadcast instead of sending multiple transmissions. Referring again to load control system 100, actuation of a button on remote control device 170 can adjust the intensity of multiple lighting loads (e.g., lighting load 122 and plug-in lighting load 142), and messages can be broadcast to adjust the corresponding lighting loads. Furthermore, devices receiving broadcast transmissions can be configured to process and repeat messages in response to receiving broadcast transmissions (e.g., forwarding messages over the network or otherwise acting as repeaters).

[0071] The sub-device may create and maintain an auxiliary parent table. The auxiliary parent table may include a list of auxiliary parent devices to which the corresponding sub-device is configured to communicate (e.g., attached to and / or able to process messages received from it via an auxiliary parent link). Furthermore, the auxiliary parent table may include indications of communication metrics, such as received semaphore values ​​(e.g., average RSSI), indicating the quality of the communication link between the sub-device and each of its auxiliary parent devices. For example, the auxiliary parent table may include a rolling average of the communication metrics for each of the sub-device's auxiliary parent devices. The sub-device may similarly create and / or maintain a router table. The router table may include routers from which the corresponding sub-device has received messages (e.g., advertisement messages). Furthermore, the router table may include indications of the communication metrics of messages received from each router in the router table. Alternatively or additionally, the sub-device may maintain a general router table. The router table may include each router from which the corresponding sub-device has received messages, and a received semaphore strength indicator for each of the corresponding routers. The router table may also include an indication of whether the corresponding router is a parent device or an auxiliary parent device of the sub-device. As used herein, the term auxiliary parent table can refer to a table separate from the router table or a subset of the router table, including routers to which auxiliary parent devices are attached as child devices.

[0072] As described herein, Network 200a allows load control systems (e.g., Figure 1 Communication between devices in the load control system 100 shown. Terminal devices 230a and 230b may include load control devices (e.g., control target devices) and / or input devices (e.g., control source devices) that communicate with other devices in the load control system. For example, terminal device 230a may communicate with another terminal device in the load control system via RF communication.

[0073] refer to Figure 1The remote control device 170 can operate as a terminal device or a dormant terminal device to transmit messages, including user-input instructions and / or control commands for controlling another terminal device (e.g., lighting control device 120, power window regulator 150, and / or thermostat 160). The remote control device 170 can communicate via one or more intermediate devices, such as leader devices and / or router devices. The leader devices and / or router devices can communicate with one or more other leader devices and / or router devices in the network to route messages to other terminal devices (e.g., lighting control device 120, power window regulator 150, and / or thermostat 160) for load control.

[0074] The control device can be attached to a network or network partition (e.g., Figure 2A Another control device on network 200a) is shown to enable the device to communicate via the network (e.g., transmit and / or receive messages). The control device can initiate an attachment procedure to another control device on the network by transmitting one or more attachment messages (such as parent request messages) configured to establish parent-child links (e.g., multicast parent request messages) to discover potential parent devices. The parent request message may be transmitted by the control device, for example, to discover and / or attach to a parent device (e.g., a router device and / or a leader device). The control device may transmit the parent request message as a multicast message, for example, to identify a device attached to the network that can act as a parent device of the control device.

[0075] Router devices (e.g., leader device 210 and / or router device 220 of network 200a) can respond to the attachment messages they receive. For example, a router device receiving a parent request message (e.g., a multicast parent request message) can respond by transmitting a parent response message. For example, a router device receiving a multicast parent request message can each transmit a parent response message (e.g., as a unicast message) to the control device that transmitted the parent request message. The parent response message can indicate that the control device that transmitted the parent response message can be used to act as a parent device. Therefore, the control device that transmitted the parent request message can receive multiple responses to the parent request message and determine the parent device to attach to based on the received parent response messages. The control device that transmitted the parent request message can identify the communication metric associated with the response message, such as a received signal strength value (e.g., RSSI), and attempt to attach to the parent device that has a maximum received signal strength indicator for the response message.

[0076] Because multiple control devices transmit parent request messages as multicast messages within the same time period, parent devices may receive multiple parent request messages simultaneously or within short time intervals. The number of parent request messages received at a parent device can prevent it from fully processing attachment messages (e.g., those received previously or subsequently). Furthermore, parent response messages transmitted by each of the parent devices that received the parent request messages can be transmitted simultaneously or substantially simultaneously. The number of parent request and parent response messages transmitted within the same time period can cause network congestion due to the number of control devices in the network (e.g., each leader device may support more than 30 router devices, and each router device may support more than 500 terminal devices), and / or cause messages to conflict with each other, which may result in one or more parent request or parent response messages failing to be received correctly. When a control device attempting to attach to another control device on the network fails to receive a parent response message, the control device may be unable to attach to other control devices on the network, which can increase the time required for network formation to complete. When each device in a load control system is powered, many control devices can attempt to attach to other control devices on the network by transmitting parent request messages simultaneously or within the same time period.

[0077] A control device attempting to attach to a router device on a network can be configured to delay attachment to allow other control devices to attach to the router device on the network. As described herein, when a control device attempts to attach to a router device on a network, multiple attach messages may be transmitted simultaneously or substantially simultaneously, which can increase the likelihood of message collisions on the network. Therefore, when a control device determines that another control device is attempting to attach to a router device on the network, the control device attempting to attach to the router device on the network can delay attachment. For example, the control device can delay attachment by incrementing a backoff timer, after which the control device can attempt to attach to the control device on the network.

[0078] The control device can reduce the frequency at which it attempts to attach to auxiliary parent devices and / or reduce the number of auxiliary parent devices it is attached to, thereby increasing the likelihood of attachment when a request is sent. Similar to network attachment, when the control device attempts to attach to an auxiliary parent device, multiple messages can be transmitted simultaneously or substantially simultaneously, which can increase the likelihood of message collisions on the network. Therefore, the control device can reduce the frequency at which it attempts to attach to auxiliary parent devices (e.g., by reducing the execution rate of programs attached to auxiliary parent devices), which can reduce the likelihood of message collisions. Furthermore, the control device can reduce the number of auxiliary parent devices attached, which can also reduce the likelihood of message collisions.

[0079] Figure 2B This is an exemplary illustration of a network 200b having multiple network partitions 201, 202, 203 (e.g., individual network partitions). Figure 2B As shown, network partition 201 may include leader device 211 and router devices 221a, 221b, 221c, and 221d. Furthermore, network 201 may include terminal devices 231a and 231b; a router-compliant terminal device 241; and a dormant terminal device 251. Figure 2B As shown, router device 221a can be a parent device (e.g., the parent device of terminal device 231a and dormant terminal device 251). Similarly, router device 221d can be the parent device of terminal device 241 that meets router conditions, and router device 221b can be the parent device of terminal device 231b. Router device 221c can be an auxiliary parent device of terminal device 231b. For example, a unique router identifier can be assigned to each of the router devices 221a to 221d in network partition 201. Network partition 202 may include the following parent devices: leader device 212 and router devices 222a, 222b, 222c, and 222d. Furthermore, network 202 may include child devices such as: terminal devices 232a and 232b; terminal device 242 that meets router conditions; and dormant terminal device 252. For example, a unique router identifier can be assigned to each of the router devices 222a to 222d in network partition 202. Network partition 203 may include a single parent device (leader device 213) and a single terminal device (terminal device 223).

[0080] like Figure 2B As shown, network partition 203 may include a leader device 213 and a terminal device 223. However, network partition 203 may not include a router device. Instead, leader device 213 may serve as the only router device within network partition 203. A leader device not connected to or attached to a router device may be referred to as a singleton device. For example, leader device 213 may be a singleton device. Figure 2B As shown, a singleton device can be connected to one or more sub-devices (e.g., terminal device 223). Network partition 203 can be a singleton partition. Figure 2B As shown, a singleton partition may include a leader device (e.g., leader device 213). Furthermore, a singleton partition may include one or more terminal devices (e.g., terminal device 223). However, as... Figure 2B As shown, a singleton partition may not include a router device.

[0081] Network 200b allows communication between control devices in a load control system (e.g., load control system 100). Furthermore, network partitions 201, 202, and 203 may be formed because some control devices cannot attach to an already formed network partition. For example, as described herein, a control device may attempt to attach to another control device on a network partition by transmitting a parent request message (e.g., a multicast parent request message). However, if a control device fails to receive a response message to the parent request message (e.g., because the control device is outside the communication range of a router device in an already formed network partition), the control device may attempt to form its own network partition (e.g., become the leader device of the new network partition).

[0082] A control device that cannot be attached to a network partition can form another network partition. For example, refer to Figure 2B Leader device 213 may no longer be able to attach to the router devices on network partitions 201 and 202 (e.g., because leader device 213 is outside the communication range of the router devices on network partitions 201 and 202). Therefore, leader device 213 may form network 203, and terminal device 223 may attach to network partition 203. Similarly, leader device 212 may no longer be able to attach to network partitions 201 and 203 (e.g., because leader device 212 is outside the communication range of the router devices on network partitions 201 and 203) and form network partition 202.

[0083] Network partitions can be associated with partition identifiers (e.g., partition IDs). Partition identifiers can be randomly or pseudo-randomly assigned (e.g., randomly assigned from a range or list of identifiers). For example, the priority of a corresponding network partition can be based on its partition identifier. Partition identifiers can be assigned by randomly selecting numbers from a range of partition identifier values. See now. Figure 2BNetwork partitions 201, 202, and 203 can each be associated with a corresponding partition identifier. For example, network partition 202 can be assigned partition identifier 1, network partition 203 can be assigned partition identifier 2, and network partition 201 can be assigned partition identifier 3. Although the partition identifiers of network partitions 201, 202, and 203 are sequential (e.g., for the sake of simplicity), the assignment of partition identifiers to network partitions can be sequential, non-sequential, and / or random. As described herein, the partition identifier can also be an indication of the priority of the corresponding network partitions 201, 202, and 203. For example, the partition identifier can also be a priority value of the corresponding network partitions 201, 202, and 203 (e.g., the corresponding priorities of network partitions 201, 202, and 203 could be 3, 1, and 2). Furthermore, a higher priority value can indicate a higher network partition priority (e.g., based on the partition identifier, network partition 201 can be a network partition with a higher priority than network partitions 202 and 203).

[0084] Priority can be assigned to network partitions based on the control devices (e.g., router devices and / or terminal devices) within them. For example, a network partition that has at least one router device in addition to the leader device may be given a higher priority than a network partition that only has a leader device and no other router devices. (See reference) Figure 2B Network partition 201 can be given a higher priority than network partition 203 because, in addition to the leader device, network partition 201 has router devices 221a to 221d, while network partition 203 does not have router devices. Furthermore, priority can be assigned to corresponding network partitions based on the number of control devices (e.g., router devices and / or terminal devices) in the network partition. (See reference...) Figure 2B Network partition 201 can be given a higher priority than network partition 203 because it can have a greater number of control devices. Each control device in the network partition can locally store the number of control devices in the network partition. Network partitions with the same number of control devices can be given different priorities using different partition identifiers, as described herein. For example, as... Figure 2B As shown, network partition 201 and network partition 202 may have the same number of control devices (e.g., router devices and / or terminal devices). Based on whether network partition 201 has a higher or lower partition identifier, network partition 201 may have a higher priority.

[0085] When a control device is attached to each of network partitions 201, 202, and 203, the effective communication range of each network partition can be increased. Furthermore, a control device that initially could not be attached to one or more of network partitions 201, 202, and 203 (e.g., because the control device was previously outside the communication range of all network partitions) may subsequently be able to be attached to one of network partitions 201, 202, and 203. Additionally, when multiple network partitions are formed (e.g., network 200b has multiple network partitions 201, 202, and 203, such as...), Figure 2B Compared to when a single network partition is formed (e.g., network 200a has a single network partition, as shown), Figure 2A As shown, this can better facilitate communication within the load control system. For example, when forming a single network partition, communication within the load control system can be better facilitated because a control device in one network partition may not be able to transmit messages to a control device attached to another network partition (e.g., a control device in one network partition may not be able to communicate with other devices outside the network partition). Therefore, if a control device attached to the first network partition is also within the communication range of the second network partition, that device can attempt to detach from the first network partition and attach to the second network partition. For example, when the second network partition has a higher priority than the first network partition, the control device can detach from the first network partition and attach to the second network partition.

[0086] Each router device attached to network partitions 201 and 202 can be associated with a communication range. The communication range of each router device can be predefined and / or preconfigured. For example, the communication range of each router device can be predefined and / or preconfigured based on the hardware components of each router device. The effective communication range of a network or network partition can be based on the communication ranges of the routers attached to the network (e.g., the sum of the communication ranges of each router attached to the network). As a result, the communication range of a network or network partition can increase with the number of router devices attached to the network.

[0087] As described herein, a control device attached to a lower-priority network partition may attempt to attach to a higher-priority network partition. For example, a control device attached to network partition 202 may attempt to attach to network partition 201 (e.g., when network partition 201 has a priority value of 3 and network partition 202 has a priority value of 1). Router device 222a may receive a partition advertisement message from a control device attached to network partition 201 (e.g., from router device 221d). The advertisement message may include an indication that the partition identifier of network 201 (e.g., 3) is greater than the partition identifier of network partition 202, and may indicate that network partition 201 is a higher-priority network partition than network 202. Router device 222a may determine to attach to network partition 201 (e.g., when network partition 201 has a higher priority).

[0088] Router device 222a may attempt to attach to network partition 201 by transmitting a request to the leader device (e.g., leader device 211) of network partition 201. This request may include, for example, a request to attach to network partition 201 and be assigned a specific router identifier. For instance, router device 222a may request to attach to network partition 201 and be assigned the router identifier assigned to router device 222a in network partition 202. In response, if another router device 212a to 212d attached to network partition 201 has already been assigned the requested router identifier, leader device 211 may reject the request. If none of the router devices 212a to 212d attached to network partition 201 has been assigned the requested router identifier, leader device 211 may accept the request. If router device 222a is attached to network partition 201 and assigned the requested router identifier, then sub-devices of router device 222a (e.g., terminal device 232a and hibernating terminal device 252) may automatically attach to network partition 201. If the leader device 211 of network partition 201 assigns the requested identifier to router device 222a (e.g., a router identifier as assigned in network partition 202), then the sub-devices may continue to communicate with router device 222a using the same router identifier (e.g., when the sub-devices communicate with router device 222a using the router identifier).

[0089] Figure 2C and Figure 2D This is an illustration of an exemplary network 200c that advances or progresses as the network 200c is formed. (See diagram below.) Figure 2CAs shown, network 200″ may include a leader device 214 and a terminal device 234a. Since network 200″ is in the initial stage of network formation, it may not yet include router devices. Consequently, terminal device 234a may be attached to leader device 214 (e.g., when no other router devices exist on network 200c). However, the communication link (e.g., parent / child link) between leader device 214 and terminal device 234a may be weak (e.g., the received signal strength indicator of messages received by terminal device 234a may be approximately -60 dB). For example, the communication link between leader device 214 and terminal device 234a may be weak because they are not located close to each other. If the communication link between leader device 214 and terminal device 234a is weak, the likelihood of message transmission and / or reception failures between them may increase.

[0090] Figure 2D It shows that in comparison Figure 2C The network shown is network 200c, which occurs during a later network formation stage. For example... Figure 2D As shown, as network formation progresses (e.g., over time), network 200c may grow to include additional control devices. For example, network 200c may grow to include router devices 224a and 224b. Furthermore, router devices 224a and 224b may be positioned closer to terminal device 234a (e.g., positioned closer to terminal device 234a than leader device 214). Additionally, the received signal strength indicators (RSS) of messages transmitted by router devices 224a and 224b and received by terminal device 234a may be stronger (e.g., stronger than the RSS of messages transmitted by leader device 214 and received by terminal device 234a, such as -35dB and -30dB respectively). Therefore, the potential communication link (e.g., a potential parent / child link) between router devices 224a and 224b and terminal device 234a may be stronger than the communication link between leader device 214 and terminal device 234a. Furthermore, as... Figure 2D As shown, the potential communication link between router device 224b and terminal device 234a may be stronger than the potential communication link between router device 224a and terminal device 234a (e.g., when router device 224b is located closer to terminal device 234a than router device 224a).

[0091] As network formation progresses or advances, additional devices attach to the network. As a result, if terminal device 234a determines that it has detached from the initial parent device (e.g., leader device 214) and attached to a newer parent device (e.g., router device 224a or router device 224b), terminal device 234a can experience better communication through network 200c. For example, as described herein, the newer parent device can be positioned closer to terminal device 234a than the initial parent device (e.g., allowing for a stronger communication link between the newer parent device and terminal device 234a), which can increase the likelihood of successful message transmission and / or reception. Consequently, as network formation progresses, the terminal device can determine whether to attach to the newer parent device. Although Figure 2C and Figure 2D This is described using an example where the relative positioning of the devices can increase or decrease the communication link shared between two devices, but other conditions can affect the communication link shared between the two devices (e.g., line of sight, interference, signal obstruction, etc.). In this sense, Figure 2C and Figure 2D The scenario is merely an example to illustrate that networks can change over time, and that changes in networks can be considered to try to increase communication over the network.

[0092] Figure 2E This is a diagram of an exemplary network 200d. Figure 2E As shown, network 200d may include a leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, and 225f. In network 200d, the router devices (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, and 225f) may periodically transmit announcement messages that can be used to calculate the cost and / or quality of communication in network 200d. For example, router device 225c may send an announcement message received by leader device 215, and leader device 215 may send an announcement message received by router device 225c. Each router device may measure the received signal strength (e.g., Received Signal Strength Indicator (RSSI)) of the received announcement message and calculate the link quality (e.g., inward link quality (LQI)) at the time the announcement message was received.

[0093] Each router device (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) can send advertisement messages as multicast messages. Advertisement messages transmitted by a router device can be received by a neighboring router device that shares a single-hop communication link with the router device transmitting the advertisement message. The single-hop communication link may be able to transmit messages (e.g., digital messages) directly from one router device to another via unicast and / or multicast communication. For example, router devices 225a and 225c may be neighboring devices that share a single-hop communication link with leader device 215 because router devices 225a and 225c can directly send digital messages to and / or directly receive digital messages from leader device 215. A single-hop communication link may be a communication link on which a router device may be able to directly receive advertisement messages with a quality higher than a given link quality (e.g., LQI greater than 0).

[0094] After a router device receives a periodic advertisement message from another router device, the router device can calculate a communication metric, such as inbound link quality (e.g., LQI), for the communication link through which the advertisement message was received. The LQI can be calculated as a predefined number within a range indicating different link qualities of the communication link between the two devices. For example, the LQI can be indicated by values ​​0, 1, 2, or 3. Different indicators of the LQI can be assigned based on the RSSI of the received advertisement message and a link margin relative to a predefined receive level. The receive level can be a predefined minimum receive level. The receive level can be established as a predefined RSSI value for communication on the network. For example, the receive level can be defined by a noise floor, which is set as the average RSSI value of noise generated on the network over a period of time. In the example using the received level as the noise floor, when the RSSI value of one or more advertisement messages (e.g., the average RSSI of advertisement messages over a period of time) is higher than the noise floor by at least 2 dB of link margin, the router device (e.g., leader device 215 or router device 225c) can calculate the LQI of communication received on the link from the neighboring router device as 1. When the RSSI value of one or more advertisement messages (e.g., the average RSSI of advertisement messages over a period of time) is higher than the noise floor by at least 10 dB of link margin, the router device (e.g., leader device 215 or router device 225c) can calculate the link quality of communication received on the link with the neighboring router device as 2. When the RSSI value of one or more advertisement messages (e.g., the average RSSI of advertisement messages over a period of time) is higher than the noise floor by at least 20 dB of link margin, the router device (e.g., leader device 215 or router device 225c) can calculate the link quality of communication received on the link with the neighboring router device as 3. A link quality value of zero indicates that the link quality is unknown or infinite when the RSSI value of one or more advertisement messages (e.g., the average RSSI value of advertisement messages over a period of time) cannot be determined to be above the noise floor. While examples of predefined numbers indicating different levels of link quality and / or different link margins that can be assigned to these levels are provided, other indicators and / or values ​​can be used to define the link quality between two routing devices. Furthermore, although individual routing devices can be provided as examples (e.g., leader device 215 or router device 225c), other routing devices can similarly calculate the link quality of the communication link between adjacent routing devices.

[0095] The Level Quality (LQI) of a communication link, measured locally at each control device (e.g., leader device 215 and router device 225c), can be exchanged with other devices on the communication link. For example, the LQI can be measured locally at each control device and transmitted to other devices via an advertisement message. The LQI measured by another router device (e.g., on the other side of the communication link) and received at the router device can be stored as the outgoing link quality (LQO) of the communication link. The LQI and / or LQO can be stored in the local router table at each router device. For example, leader device 215 can store the LQI and / or LQO of the communication link with each router device in network 200d in router table 229. Similarly, router device 225c can store the LQI and LQO used for communication with each router device in network 200d in router table 261.

[0096] As described herein, from the perspective of the device storing router tables 229 and 261, router tables 229 and 261 may each identify network information used for communication with each router in network 200d. The number of router devices in network 200d and / or the router identifiers used in network 200d may be determined from bitmap 227, as described herein. Bitmap 227 may be maintained by leader device 215 and distributed to other routing devices for local maintenance of their router tables. For example, router devices 225a and 225c may receive bitmap 227 and update their local router tables. Bitmap 227 may indicate the number of rows in the router table (e.g., indicating the number of router devices identified in the network) and / or the router identifiers to be included in the router table. The router devices may maintain updated network information for the router identifiers indicated in the router table. The updated network information in the router table may include the LQI and / or LQO of the communication links between routers identified in bitmap 227. For example, router 225c may receive bitmap 227 from leader device 215 and update router table 261 to include routers indicated in bitmap 277 in table 261, or remove routers from table 261 that are indicated in bitmap 277 as not usable in the network.

[0097] Leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, and 225f can each use the LQI and LQO in their respective router tables to calculate the link cost for communicating on communication links with other router devices. The link quality of the communication link between two router devices can be the smaller of the link quality value (e.g., LQO) of the output digital message and the link quality value (e.g., LQI) of the received digital message on the single-hop communication link between the two devices. A zero LQO or LQI indicates that a router device has failed to have a direct communication link with a router device listed in the router table.

[0098] The link cost used to transmit communication between devices on a communication link directly corresponds to the link quality of the communication on that link. Link cost can indicate the relative cost or loss of communication on a communication link. Figure 2F Table 262 shows exemplary link costs that can correspond to different link qualities. For example... Figure 2F As indicated in Table 262, for communication on a communication link between two adjacent devices, higher link quality corresponds to lower link cost.

[0099] A router device can use the link cost of each communication link to calculate the path cost of communication between the router device and another router device in network 200d. The path cost can indicate the relative cost or loss of communication over the entire communication path that may include one or more router devices. The path cost of one communication path can be compared with another to determine a higher-quality communication path for sending digital communications, which may have a lower relative cost associated with the transmission of digital messages.

[0100] Path cost indicates the total cost of transmitting a digital message from an originating router device to an end router device. For example, the path cost can be calculated as the sum of the link costs for each hop between the originating router device from which the digital message can originate and the end router device from which the digital message can be received in network 200d. Each router device can calculate the path cost to an adjacent device on a single-hop communication link as equal to the link cost and store the path cost in a locally stored router table. For example, router device 225c can set the path cost for communication with leader device 215 to be equal to the link cost on the communication link (e.g., the lower of LQI and LQO) and store the path cost in router table 261. Similarly, router device 225c can set the path cost for communication with router device 225b to be equal to the link cost on the communication link (e.g., the lower of LQI and LQO) and store the path cost in the router table.

[0101] Each router device (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) can update the path cost for transmitting digital messages to / from each router device in its respective router table based on path cost information received from another router device. For example, since router device 225b may not be able to communicate directly with leader device 215, router device 225b can receive path cost information for transmitting digital messages through another router in network 200d. Router 225c can transmit the path cost (e.g., path cost = 2) for transmitting digital messages to / from leader device 215 in a multicast message received by other router devices. For example, the multicast message can be an advertisement message. Router device 225b can receive the path cost (e.g., path cost = 2) for transmitting digital messages between leader device 215 and router device 225c. To calculate the total path cost for transmitting digital messages between router device 225b and leader device 215 via router device 225c, router device 225b can add the link cost for communication between router device 225b and router device 225c (e.g., link cost = 1) to the path cost received from router device 225c (e.g., path cost = 1) to obtain the total path cost (e.g., path cost = 3). The link cost for communication between router device 225b and router device 225c can be determined based on the link quality of the communication link between router device 225b and router device 225c, which can be the smaller of the LQI and LQO of the communication link (e.g., link quality = 3).

[0102] Each router device can send / broadcast an advertisement message including path costs to one or more other router devices in network 200d. A router device receiving path cost information from the router device sending the advertisement message can update its corresponding path cost information in its local router table (e.g., by adding the link cost used for communication with the router device sending the advertisement message to the path cost in the received message). Each router device can use locally stored path cost information to identify paths through which it can transmit digital messages. For example, a digital message transmitted from router device 225b to leader device 215 can be transmitted via router device 225a or router device 225c. Router device 225b can receive corresponding advertisement messages from router devices 225a and 225c indicating that the path cost for communication of digital messages between router device 225a and leader device 215 is the same as the path cost for communication of digital messages between router device 225c and leader device 215 (e.g., path cost = 2 on each communication link). Router device 225b can add the link cost (e.g., link cost = 1) calculated for transmitting messages between router device 225b and router device 225c to the path cost information received in an advertisement message from router 225c (e.g., path cost = 2) to determine the total path cost (e.g., total path cost = 3) for communicating with leader device 215 via router device 225c. Similarly, router device 225b can add the link cost (e.g., link cost = 2) calculated for transmitting messages between router 225b and router 225a to the path cost information received in an advertisement message from router 225a (e.g., path cost = 2) to determine the total path cost (e.g., total path cost = 4) for communicating with leader device 215 via router device 225a. Router device 225b can update its locally stored router table using the lowest path cost calculated for communicating with leader device 215 and / or the identifier of the router device (e.g., router 225c) through which digital messages are to be transmitted. Each router device can similarly update its locally stored router table using the lowest path cost calculated for communicating with other router devices in network 200d. For example, as Figure 2E As shown, the leader device 215 and the router device 225c can each calculate the minimum path cost for communicating with other router devices in the network 200d and store the path cost in the corresponding router tables 229 and 261. Router tables 229 and 261 may also store the next-hop router identifier from the corresponding device 215 and 225c, and the calculated path cost for digital messages to be transmitted through the corresponding device to achieve communication with the destination router device.

[0103] By periodically updating link quality (e.g., LQI and / or LQO), link cost, and / or path cost, and by transmitting path cost information to other router devices in periodic announcement messages, each router device can have up-to-date path cost information for transmitting digital messages to other router devices in network 200d. Router devices can use the optimal communication path (e.g., the lowest-cost path) to transmit digital messages to another device. This routing mechanism allows router devices to detect when other router devices have gone offline from network 200d, or when the path cost between routers has changed, and to calculate the next lowest-cost path to maintain connectivity with other router devices in network 200d.

[0104] To distinguish between relatively older data transmitted in periodic announcement messages and relatively newer data transmitted in periodic announcement messages, sequence numbers can be used to transmit the announcement messages. A leader device (such as leader device 215) can be responsible for updating the sequence numbers and distributing the updated sequence numbers to other router devices in the network (e.g., router devices 225a, 225b, 225c, 225d, 225e, 225f in network 200d). For example, leader device 215 can periodically (e.g., after transmitting one or more announcement messages) and / or increment the sequence number after a router device is added to the network. The sequence numbers can be updated to allow router devices in the network (e.g., leader device 215 and / or router devices 225a, 225b, 225c, 225d, 225e, 225f in network 200d) to recognize the updated network information transmitted in the announcement messages. For example, since router devices (e.g., leader device 215 and / or router devices 225a, 225b, 225c, 225d, 225e, 225f in network 200d) can periodically transmit announcement messages including path cost information indicating the path cost of communicating with other router devices in the network, the sequence number can be updated to identify the updated path cost information.

[0105] After the leader device 215 updates the sequence number, it can distribute the sequence number to other router devices in the network. For example, the leader device 215 can use the sequence number in its own advertisement messages. After receiving the updated sequence number, each router device can use the updated sequence number in subsequent advertisement messages transmitted from router devices on the network. Each sequence number transmitted from the leader device 215 to other router devices can be used in the router device's advertisement messages until the leader device 215 distributes subsequent sequence numbers. For example, router device 225c can receive the sequence number directly from the leader device 215 and use it in subsequent advertisement messages. Router device 225b can receive the sequence number from the advertisement message transmitted from router device 225c and use it in subsequent advertisement messages transmitted from router device 225b. Each router can use its current sequence number until it receives an updated sequence number originating from and distributed by the leader device 215. When a router device receives an advertisement message with an updated sequence number from a non-leader router device (e.g., router devices 225a, 225b, 225c, 225d, 225e, 225f), each router device may update the locally stored network information in its router table. If a router device receives an advertisement message with the same sequence number as a previously received advertisement message and / or one previously received from the same non-leader router device, the router device may be unable to process the advertisement message. If a router device fails to receive an updated sequence number within a predefined time period (e.g., minutes, seconds, etc.), the router may assume that leader device 215 is unavailable for communication (e.g., offline, power outage, disconnected from the network, changed role, or otherwise unable to communicate with the router device) and attempt to form another network or network partition with another leader device 215.

[0106] As described herein, control devices attached to a network (such as networks 200a, 200b, 200d) can each be assigned a corresponding role. Control devices assigned certain roles (such as leader devices or router devices) can facilitate communication with control devices assigned other roles (such as terminal devices). The roles of control devices can be assigned on a first-come, first-served basis. For example, a control device that joins the network first is assigned a role that facilitates communication with other control devices that join the network subsequently. As the network grows and other devices are added to or near the network, this can lead to a deterioration in the quality of communication links. For example, control devices can establish links with each other (e.g., parent-child links, secondary parent links, router-to-router links), which at this time provide the best quality communication links.

[0107] After network 200d is formed (e.g., the initial claiming procedure, the initial joining procedure, the initial attaching procedure, and / or other procedures performed for network establishment), the control devices may lose power and / or be reset upon receiving power. For example, the control devices in network 200d may be shut down and reconnected after a power outage or some other event that causes network 200d to lose power. After a reset (e.g., after power is restored), leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f may attempt to re-form network 200d, for example, by reattaching to the network and restoring their previous roles on the network. However, if leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f attempt to reattach to the network simultaneously or substantially simultaneously, the likelihood of message collisions may increase, which could lead to network re-formation failure or delay.

[0108] After a reset, the control device attached to network 200d may attempt to rebuild the network. To reduce the likelihood of message collisions and shorten the time required for network rebuilding to complete, the control device attached to network 200d before the reset may attempt to attach to the network in a predefined manner (e.g., sequentially). For example, the control device attached to network 200d may attach sequentially to the network according to the values ​​of stored identifiers in a set order. Furthermore, the control device attached to network 200d may attach to the network based on its corresponding hop count from the leader device 215. Hop counts and / or roles in the previously formed network may be stored at each control device or communicated from another device in another manner after power-on.

[0109] refer to Figure 2E Leader device 215 can resume its role as the leader of the network and re-establish network 200d. After leader device 215 resumes its role and / or transmits a leader announcement message, router devices 225a, 225b, 225c, 225d, 225e, and 225f can attach to the network based on their respective hop counts from leader device 215. For example, a router device with a lower hop count can receive a leader announcement message from leader device 215 and can join and / or re-attach to a previously established network, thus resuming its corresponding role faster than a router device with a higher hop count.

[0110] Router devices 225a, 225b, 225c, 225d, 225e, and 225f may attempt to join the previously formed network 200d and / or attach to a parent device in the previously formed network based on each device's coordinated startup time. For the respective router devices 225a, 225b, 225c, 225d, 225e, and 225f, the coordinated startup time can be personalized, such that the coordinated startup time triggers router devices 225a, 225b, 225c, 225d, 225e, and 225f to begin their respective join and / or attach procedures. Reference Figure 2E Router devices 225a and 225c can rejoin the network and / or reattach to the leader device 215. After router devices 225a and 225c are reattached to the leader device 215, router devices 225b, 225d, and 225e can rejoin the previously formed network and / or reattach to router devices 220a and 220c that router devices 225b, 225d, and 225e were previously attached to. After router devices 225b, 225d, and 225e are reattached to router devices 225a and 225c, router device 225f can rejoin the previously formed network and / or reattach to router device 225d.

[0111] As described herein, networks can be used to facilitate communication between relevant devices in a load control system. For a control device communicating via a network, the device can join the network, for example, by initiating a debugging procedure. Figure 3 This is a flowchart of an exemplary debugging procedure 300. Procedure 300 may be executed by a control device (e.g., a terminal device, such as terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250) attempting to join a network (e.g., networks 200, 200a, 200b, 200c, 200d, and / or network partitions 201, 202, 203) and / or attach to another device on that network. For example, when the control device is first powered on and attempts to join a network and / or attach to another device on the network, the control device may enter procedure 300 at 301.

[0112] At point 302, the control device can execute a claim procedure. The claim procedure can be used to discover and claim control devices added to the network. For example, a user's mobile device (e.g., mobile device 190) can be used to claim a load control system (e.g., Figure 1The load control system 100 shown includes control devices. Each control device can be claimed by a user's mobile device for joining a network (e.g., via a joining procedure as described herein) and / or attached to other devices on the network (e.g., via an attachment procedure as described herein). Each control device can transmit a beacon (e.g., a control device beacon) via a short-range wireless communication link (e.g., using BLE technology, Near Field Communication (NFC) technology, or other short-range wireless technologies). The mobile device can discover (e.g., receive) the beacon transmitted by the control devices in the load control system. Each beacon may include a unique beacon identifier of the control device transmitting the corresponding beacon. The unique beacon identifier may be... Beacon identifier. A unique beacon identifier may include a unique device identifier (e.g., a serial number) of the control device itself.

[0113] The mobile device can identify one or more control device beacons whose corresponding beacons are received with a Received Signal Strength Indicator (RSSI) higher than a predefined value. For example, the mobile device can identify one or more beacons that transmit the received signal strength indicator with the strongest RSSI, and the mobile device can transmit a connection message to one or more control devices. The control device executing the debugging procedure 300 can receive the connection message from the mobile device, which can be configured to establish a connection with the mobile device (e.g., a two-way communication connection).

[0114] A connection message can indicate to the control device that the control device has been selected for claiming. The connection message can operate as a claim message, or it can be sent as a separate claim message after a connection is established between the mobile device and the control device. The claim message can indicate that the control device has been claimed for addition to the network. In response to receiving a claim message, the control device can transmit a claim confirmation message to the mobile device. The claim confirmation message can include configuration information that can be used to add the control device to the network. For example, the configuration information can include a unique device identifier (e.g., a serial number) for the control device and / or network credentials for joining the network. Network credentials can include the network key, the network address of the control device (e.g., a Thread network address), and / or the joiner identifier of the control device. The control device can be programmed using network credentials received from a debugging device via RF communication (e.g., Bluetooth or other short-range communication), or the credentials can be pre-stored at the control device (e.g., at manufacturing time). When the unique beacon identifier is not the unique device identifier of the control device, the unique device identifier (e.g., a serial number) of the control device can be sent in the claim confirmation message. A network address and / or join identifier may be used during the join procedure to allow the control device to join the network.

[0115] During the claiming process at 302, or during debugging process 300, the mobile device may write information to the control device being claimed. For example, the mobile device may write the time the control device was claimed, the mobile device's identifier, and / or the application executing the claiming process on the mobile device, and / or channel information that helps the control device enter the Thread network via the joining process. This information may be sent in the claiming message or in a separate message on the connection established with the mobile device for storage at the control device. When the mobile device receives a claim confirmation message from the control device to which it is connected, the mobile device may store the control device's unique device identifier, the control device's network address (e.g., the Thread network address), and / or the control device's joiner identifier in memory.

[0116] Users can continue to move the mobile device around the space where the load control system is installed to perform the claiming process using additional control devices. When the user completes the claiming of control devices (e.g., the mobile device has claimed all or part of the control devices of the load control system), the mobile device can upload configuration information from the claimed device to a central computing device, such as a commissioning device (e.g., system controller 110). The uploaded configuration information can be used to identify the device joining the network. The central computing device can be a system controller or other device capable of communicating with other control devices in the load control system. The central computing device can be installed at the commissioning location or can be a remote computing device. Although the mobile device is described at 302 as a device that performs communication with one or more control devices during the claiming process, other computing devices may also perform similar communication with one or more control devices during the claiming process. For example, another computing device (such as a commissioning device or system controller) may perform communication with one or more control devices to perform the claiming process or a portion thereof.

[0117] At 304, the control device can execute a joining procedure. During the joining procedure at 304, the control device can search for a network to join. The control device can periodically switch between the beacon mode used for being claimed during the claiming procedure at 302 and listening for networks to join during the joining procedure at 304. After being claimed, the control device can begin the joining procedure at 304. As described herein, during the joining procedure, the control device can transmit and / or receive joining messages (e.g., messages for joining a wireless network, such as join request messages and / or join response messages). As a result of the joining procedure, and as further described herein, the control device can have a network key that allows the device to send and / or receive messages over the network.

[0118] During the claiming process, the control device may stop continuously (e.g., periodically) transmitting control device beacons over a first wireless communication medium (e.g., using BLE technology) and / or a second wireless communication medium (e.g., a wireless communication network). The control device may listen to the wireless communication network to determine whether a claiming message (e.g., a claiming request message) is being transmitted on the wireless communication network. If the mobile device attempts to reconnect to the control device while the mobile device is performing a claiming process, the control device may continue to periodically transmit control device beacons via the first wireless communication medium (e.g., at a slower rate than during the claiming process).

[0119] The control device may receive a join request message from the central computing device or debugging device during the join procedure. The control device may respond with a request to join the network. The central computing device or debugging device may challenge the control device with one or more portions of configuration information obtained during the claim procedure. For example, the join request message or another message from the central computing device or debugging device may include a request from the user device for one or more portions of network credentials (e.g., a network key). In one example, the central computing device or debugging device may identify the network address in the network credentials of the join request message and request a joiner identifier from the control device. The control device may respond with the joiner identifier or the network address and joiner identifier to join the network or network partition. The central computing device or debugging device may identify the control device as the claiming device based on a unique identifier in the message and verify the accuracy of the network credentials to join the control device to the network. The central computing device may transmit the network key to the control device, which can use the network key to connect to the network.

[0120] At point 306, the control device may initiate an attachment procedure. After the control device joins the network, at point 306, the control device may, for example, attempt to attach to another device on the network (e.g., a leader device or a router device) to form a mesh network (e.g., network formation). To attach to another device on the network, the control device may send and receive multiple attachment messages via the network. For example, at point 306, the control device may initiate the execution of procedure 500 (e.g., start a backoff timer). The control device may also, or alternatively, execute other attachment procedures as described herein.

[0121] although Figure 3 The claim procedure, join procedure, and attach procedure are described, but one or more of these procedures can be executed. For example, the claim procedure and / or join procedure can be omitted or modified because the control device may have network credentials pre-stored thereon (e.g., at manufacturing time or written thereon by another device such as a mobile device). Alternatively or alternatively, Figure 3The claiming, joining, and attaching procedures shown can be combined. For example, the joining and attaching procedures can be combined (e.g., the joining procedure may include the attaching procedure). When a control device joins the network, the attaching procedure can be executed as part of the joining procedure. The attaching procedure can be executed independently after the control device has joined the network, enabling the control device to attach to another device in the network. That is, although... Figure 3 Each procedure in the program shown is clearly described, but the claiming procedure, joining procedure, and attaching procedure can be combined individually or in various combinations.

[0122] Furthermore, at point 302, the central computing device may transmit network credentials to the control device during the claiming procedure. These network credentials can be used by the control device to directly attach to another device on the network. For example, a network device that the control device is attempting to attach to may query the control device for network credentials, as described herein. As described herein, one or more of the claiming, joining, and / or attaching procedures may be executed after power is supplied to the control device and the device is turned on. One or more of these procedures may also be executed to re-establish the network or reattach the control device to the network.

[0123] As described herein, a control device may join a network and / or attach to another device on the network to communicate with other control devices on the network. However, if a control device attempts to attach to another device on the network simultaneously or substantially simultaneously with other control devices, the likelihood of message collisions may increase and / or the control device may fail to attach to the other device on the network. To reduce the likelihood of message collisions, the control device may delay its corresponding attachment procedure so that the control device attaches to other devices on the network (e.g., sequentially rather than simultaneously, as simultaneous attachment increases the likelihood of message collisions and / or increases the likelihood that the corresponding control device fails to attach to the other device on the network). For example, a control device attempting to attach to another device on the network may delay its corresponding attachment procedure based on a coordinated start time. Furthermore, the coordinated start time may be personalized for each control device, such that the coordinated start time triggers the control device to begin its corresponding attachment procedure in a coordinated manner.

[0124] As part of the initial startup procedure, when the control device is initially powered on and / or attempts to initially attach to another device on the network or network partition (e.g., initial attachment after initial power-on following configuration and / or reconfiguration), the device may execute a startup procedure coordinated with other devices on the network or network partition. Because the initial startup procedure can be executed at the control device before it establishes a role on the network to perform communication, coordinated startup of devices on the network can be performed to reduce message latency and / or potential collisions on the network while the device is attempting to execute an attachment procedure. After the control device has been commissioned, the control device may execute the attachment procedure or initial startup procedure upon power-on.

[0125] Figure 4 This is a flowchart of an exemplary procedure 400 for determining a uniquely coordinated start time at which a control device can initiate a join procedure, which, as described herein, may include an attachment procedure. As described herein, the uniquely coordinated start time may be a time period reserved for the control device to initiate the join procedure (e.g., other devices may not perform the join procedure during this uniquely coordinated start time). Program 400 may be executed by a control device (e.g., a terminal device, such as terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250) that is attempting to attach to another device on a network (e.g., networks 200, 200', 200'', and / or network partitions 201, 202, 203). For example, at 401, the control device may enter program 400. This program may begin at 401 for each control device in the system (e.g., a claimed control device) in response to a triggering event. The triggering event may be a message from a central computing device such as a debugging device. In another example, the triggering event at 401 may be a power-on event or a reset event. Furthermore, program 400 may execute after other programs (e.g., as an initial program for forming a network, or after other programs such as a claiming program and / or a joining program).

[0126] At 402, the control device can determine a unique coordinated start-up time, which may be based on an identifier associated with the control device. This identifier can be a unique identifier assigned to the control device (e.g., a sequence number), as described herein, which allows the determined coordinated start-up time to also be unique. For example, each corresponding control device may be assigned or configured with an identifier. Identifiers can be assigned or configured such that a different identifier is assigned / configured for each control device. For example, identifiers can be sequentially assigned to control devices and stored at the control device. Identifiers can be the same identifier stored in the associated information described herein and / or used for transmitting messages between devices in the system. Identifiers may be stored at manufacturing time or during the initial configuration or commissioning procedure at the load control system after the control device is installed. Identifiers can be determined based on previous network conditions during the operation or runtime of the control device. The control device can determine the coordinated start-up time by adding a delay to each identifier. For example, the control device can add an additional one-second delay to each identifier in the sequence (e.g., the first identifier receives a one-second delay, the second identifier receives a two-second delay, etc.). Identifiers can be grouped to determine the coordinated start-up time. For example, the control device can determine that its identifier is in a first group of identifiers and set the delay to be equal to the value of the first group. In one example, a control device may determine its identifier in a first group of five control devices and wait for a coordinated start-up time of five to ten seconds, then the control devices in the next group may wait for an additional five to ten seconds, and so on. The delay of each device in the group can be randomized within a time frame.

[0127] The control device can use a unique coordinated start time to delay the start of the joining procedure. As described herein, the control device can execute a joining procedure to join the network (e.g., enabling the control device to send and receive messages to other devices joining the network). For example, the joining procedure may include an attachment procedure for attaching the control device to another device joining the network (e.g., a router device). Furthermore, the attachment procedure can establish parent-child links between the control device and other devices, allowing the control device to send and receive messages over the network via other devices. The control device can use a unique coordinated start time, allowing each control device to delay its respective joining procedure by different time periods. As described herein, if multiple devices start their respective attachment procedures simultaneously or substantially simultaneously (e.g., to establish parent-child links, secondary parent links, and / or router-to-router link procedures), the likelihood of message collisions may increase and / or the time required for network formation to complete may increase.

[0128] A unique coordinated start time can be determined, causing the control devices in the system to delay initiating their respective join procedures, thereby allowing other devices in the system to begin joining the network, for example, by attaching to other devices on the network during the attach procedure. For example, the unique coordinated start time can be determined based on the identifier of the corresponding control device, which, as described herein, can be sequentially assigned or configured. A control device with the lowest or highest numbered identifier can begin its corresponding attach procedure before other control devices in the load control system.

[0129] The identifier of a control device can be used to determine the unique coordinated start time of the control device. Each control device can assign a predefined delay to the unique identifier stored thereon. For example, a control device with the unique identifier "0001" can initiate a first delay time (e.g., a one-second delay, a ten-second delay) from a trigger event, a control device with the unique identifier "0002" can initiate a second delay time longer than the first delay time (e.g., a two-second delay) from a trigger event, and so on. The predefined delay can be applied to any character (e.g., integer, letter, alphanumeric character, etc.) or character series in the identifier.

[0130] Since the unique identifier of the control device can be assigned during manufacturing or before installation in the load control system, each delay period can be assigned to a control device within a set of identifiers. For example, a control device in the first set of identifiers (e.g., identifiers less than "0100") can initiate a first delay time, a control device in the next set of identifiers (e.g., identifiers less than "0200") can initiate a second delay time, and so on.

[0131] Control devices can know their relative positions in a device sequence and coordinate start-up times based on these relative positions. For example, a control device can receive a list or table of identifiers of other control devices in the system. This list or table can be received in messages from a central computing unit, such as a debugging unit. For example, other identifiers can be received in messages from the central computing unit or the debugging unit, transmitted as trigger events to initiate attachment procedures at each control device. A control device whose identifier is identified as the first or last in the list or table can begin its attachment procedure or initiate a first delay time (e.g., a one-second delay). The next control device whose identifier is identified as the first or last in the list or table can begin its attachment procedure after the next delay time (e.g., a one-second delay when the first device initiates a delay, or a two-second delay when the first device does not initiate a delay).

[0132] The control device may receive a uniquely coordinated start time delay from the central computing device or the debugging device. For example, the central computing device or the debugging device may identify the delay time for each device or group of devices in this document and transmit the uniquely coordinated start time for each control device to the corresponding device. The uniquely coordinated start time may be transmitted to the control device individually in a unicast message, or the coordinated start time may be transmitted in a multicast message.

[0133] The unique coordinated start times of the control devices can be grouped within a time frame. For example, the coordinated start times of a group of control devices can be randomized within a time frame. Control devices with identifiers from a first group can be assigned random coordinated start times within a first time frame, control devices with identifiers from a second group can be assigned random coordinated start times within a second time frame, and so on.

[0134] While a specific time value (e.g., seconds) can be used to describe the delay time of the unique coordinated start-up time, other time values ​​(e.g., milliseconds, tens of seconds, etc.) can also be implemented. The coordinated start-up time of the control devices can be set to a time period that allows one or more control devices to be powered on and execute the described program before other devices in the system.

[0135] At 404, the control device may wait for the unique coordinated start time determined at 402, and after waiting for the coordinated start time, the control device may begin the joining procedure at 406. Waiting for the coordinated start time determined at 402 allows the control device to begin its respective joining procedure before and / or after other control devices begin their joining procedures, which, as described herein, may include an attachment procedure. This reduces the likelihood of message collisions and / or reduces the amount of time required for network formation to complete. For example, if the unique coordinated start time is determined based on identifiers sequentially assigned or configured to the respective control devices, the unique coordinated start times of the respective control devices may expire sequentially, and the respective control devices may begin their joining procedures sequentially.

[0136] The network described herein can be used to facilitate communication within a load control system. After the network or a portion thereof is formed, the load control system may experience power loss (e.g., due to a power outage or another event causing a halt in the power supply to the load control system). If the load control system experiences power loss (e.g., a control device attached to the network experiences power loss) and / or the control device is reset, the corresponding control device within the load control system can regain power and attempt to re-form the network. However, the fact that control devices within the control system can regain power and attempt to re-form the network simultaneously or substantially simultaneously increases the likelihood of message collisions and / or increases the time required for network formation to complete. Additionally, even if the network or a portion thereof has been formed, the control device may attempt to execute attachment procedures.

[0137] The control device may apply a backoff timer (e.g., a timer that runs a backoff period) before initiating an attachment procedure. In the example, the backoff period may be a time interval during which the control device will delay before attempting to attach to another device on the network. For example, the backoff timer may allow other control devices attempting to join the network to execute and complete their respective attachment procedures. The backoff timer may also reduce the likelihood of multiple control devices initiating attachment procedures simultaneously or substantially simultaneously, which, as described herein, can lead to message collisions / failures and increase the amount of time required for network formation to complete. The backoff timer may be determined by the control device, for example, such that the control device initiates its attachment procedure when the network is not busy (e.g., when other devices are not currently executing attachment procedures). Furthermore, if the control device initiates its attachment procedure when the network is not busy, the likelihood of message collisions will be low and network formation will not be delayed. For example, the control device may listen to network traffic (e.g., messages transmitted over the network) and determine the backoff timer based on the network traffic (e.g., estimate the time during which the network will be unbusy to initiate the attachment procedure). Figures 6 to 10 Figure 8B An exemplary procedure for determining backoff time based on network traffic is shown.

[0138] Figure 5 This is a flowchart of an exemplary program 500 for a control device attached to a network (e.g., networks 200, 200', 200'' and / or network partitions 201, 202, 203). Program 500 may be executed by a control device (e.g., a terminal device, such as terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250) that is attempting to attach to another device on the network (e.g., a potential parent device, such as leader device 210 and / or router devices 220a to 220d). For example, this may be at 406 of program 400, 530 of program 500, and / or 552. Procedure 500 is executed at point 68. Furthermore, when the control device is powered on, it can initiate procedure 500 at point 501. Additionally, procedure 500 can be re-initiated after the control device has been attached to a parent device on the network. For example, if the control device cannot communicate with its parent device (e.g., the parent device is not powered on and / or otherwise unable to communicate with the network), the control device can detach from the parent device (e.g., by initiating a detachment procedure) and can re-initiate procedure 500 at point 501 to attach to another parent device. Furthermore, when the control device loses connectivity to the network (e.g., when the control device is not powered on or otherwise loses power), the control device can re-initiate procedure 500.

[0139] At 502, the control device may determine whether the control device executing program 500 is attached to a parent device on the network (e.g., networks 200a, 200b, 200c, 200d or network partitions 201, 202, 203). If the control device is not attached to a parent device on the network, at 504, the control device may determine whether a backoff timer has started and is running. As described herein, after the backoff timer expires, the control device may, for example, attempt to attach to another device on the network to establish a link with other devices (e.g., router-to-router link, parent-child link, and / or secondary parent link) by transmitting an attach message to other devices. The control device may transmit a certain type of attach message based on the type of link the control device wants to establish. For example, the control device may transmit an attach message configured to establish a parent-child link, such as a parent request message (e.g., a multicast parent request message). When the backoff timer is running, the control device executing program 500 may avoid attaching to a parent device on the network (e.g., may not attempt to attach to a parent device on the network). The resolution of the backoff timer can be in milliseconds and / or can be represented by multiple bits (e.g., thirty-two bits). The backoff timer can cause a control device to delay attempting to attach to a parent device on a network (e.g., networks 200a, 200b, 200c, 200d or network partitions 201, 202, 203) to allow other devices to attach to parent devices on the network. For example, the backoff timer can allow a parent device to process parent request messages from other devices. Therefore, if the backoff timer has started and is still running, program 500 can exit.

[0140] However, if the backoff timer has not yet started and / or is not currently running, a random number can be generated at 506. For example, a random number can be generated by randomly selecting a number from a predefined backoff time range (e.g., zero seconds to four seconds). At 508, the backoff timer can be initialized with the random number generated at 506, and as described herein, the device can avoid attaching to the network for the duration of the backoff timer. Initializing the backoff timer to the generated random number reduces the likelihood that multiple devices will attempt to attach to the network simultaneously or within the same time frame (e.g., since multiple devices will not be able to generate the same random number) and increases the chance of the device successfully attaching to the network. As described herein, when multiple devices attempt to attach to the network simultaneously, messages transmitted to attach to the network (e.g., parent request messages and parent response messages) may conflict, which can lead to attachment failure and / or delay. At 510, the backoff timer can start (e.g., start a countdown) and program 500 can exit.

[0141] Figure 6AThis is a flowchart of an exemplary procedure 600 executed by a control device in response to receiving a message. For example, the message may be received via a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). Procedure 600 may be executed by the control device while the control device is attempting to attach to another device (e.g., a parent device) on the network. For example, procedure 600 may be executed by a control device not connected to a parent device (e.g., terminal devices 230a, 230b, router-compliant terminal device 240, and / or dormant terminal device 250). Figure 6A As shown, program 600 can be executed by a control device in response to receiving a message at 601 (e.g., a message transmitted by a control device in the network described herein).

[0142] At 602, the control device may determine whether a backoff timer (e.g., a backoff timer started at 510 of program 500) is running, for example, while listening for traffic on the network (e.g., to determine whether the control device executing program 600 is currently attempting to attach to a parent device on the network). If the backoff timer is not running at 602, program 600 may exit. If the backoff timer is running at 602 (e.g., the control device is currently attempting to attach to a parent device on the network), the control device may determine at 604 whether the received message is a parent request message. As described herein, a parent request message may be transmitted by a control device attempting to attach to another device on the network (e.g., a router device or leader device, also referred to herein as a potential parent device) and establishing a parent-child link with the router device (e.g., a control device attempting to attach to the network as a child device of a router device attached to the network). Furthermore, the potential parent device receiving the parent request message (e.g., the leader device and / or the router device) may transmit a response to the parent request message. Responses to the parent request message may be transmitted simultaneously or substantially simultaneously, which may increase the likelihood of message collisions within the network. For example, conflicting messages may not be received, and the device transmitting the parent request message may be unable to attach to another device on the network. Therefore, if the message at 604 is a parent request message, then at 606, the control device may add a first time period to the backoff timer (e.g., a backoff timer starting at 510 of program 500). In this example, the control device may add the first time period to the backoff timer (e.g., a backoff timer starting at 510 of program 500) based on the number of attachment messages transmitted on the network during the backoff time period (e.g., when listening for traffic on the network during the backoff time period). For example, the first time period may be a period of 300 ms. Increasing the backoff timer (e.g., extending the backoff time period) reduces the likelihood of message collisions and allows other devices to attach to parent devices on the network without interference, which optimizes network formation (e.g., reduces the amount of time required to form a network with a single network partition). Furthermore, increasing the backoff timer allows devices to attach to the network sequentially, e.g., preventing multiple parent request messages from being transmitted simultaneously or substantially simultaneously.

[0143] At 608, the control device can determine whether the received message is a link request message. A link request message may be transmitted by another router device (e.g., a terminal device that has just been upgraded to a router device and meets router criteria) to establish a link with other router devices on the network (e.g., a secondary parent link and / or a router-to-router link). Similar to a parent request message, the leader device and / or router device receiving the link request message may each transmit a link response message in response to the link request message. The link response messages transmitted by the leader device and / or router device may be transmitted simultaneously or substantially simultaneously, which can increase the likelihood of message collisions within the network. Therefore, if the message received at 608 is a link request message, at 710, the control device may add a second time period to the backoff timer (e.g., a backoff timer started at 510 in procedure 500). The second time period may be a longer period than the first time period. For example, the second time period may be 625 ms. As described herein, increasing the backoff timer allows the receiving device to process a larger number of messages and / or reduces the likelihood of message collisions by allowing other devices to attach to the network, which optimizes network formation (e.g., reducing the time required to form a network with a single network partition). Furthermore, increasing the backoff timer allows devices to attach to the network sequentially, for example, ensuring that multiple link request messages are not transmitted simultaneously or substantially simultaneously. Procedure 600 may exit if the message is not a link request message at 604 or not a parent request message at 608.

[0144] Figure 6BThis is a flowchart of an exemplary procedure 650 that can be executed by a control device in response to the expiration (e.g., after expiration) of a backoff timer (e.g., a backoff timer started at 510 of procedure 500). Procedure 650 can be executed by the control device when the control device is attempting to attach to another device (e.g., a parent device) on a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). For example, procedure 650 can be executed by terminal devices 230a, 230b, router-qualified terminal device 240, and / or dormant terminal device 250 when these devices are not attached to a parent device. When the backoff timer expires at 651, the control device can initiate an attachment procedure at 652 (e.g., enabling the control device to attach to a router device and transmit and receive messages on the network via the router device). As described herein, the attachment procedure may include transmitting one or more attachment messages (e.g., a parent request message and a parent response message). For example, a parent request message can be transmitted by a control device to a router device to attach to a router device on a network, thereby establishing a parent-child link (e.g., a request to make the router device the parent device of the device) between the control device (e.g., a child device) and the router device (e.g., a parent device). After transmitting the parent request message, the control device executing program 650 can receive multiple parent response messages in response to the transmitted parent request message (e.g., from any router device that received the transmitted parent request message). This is because the parent request message is transmitted after a backoff timer expires (e.g., the backoff timer is initialized as...). Figure 5 (as shown by the random value), so parent request messages transmitted from multiple devices attempting to join the network can be sent at different times, and allow a greater number of messages to be correctly processed by the router device.

[0145] As the number of control devices attempting to attach to the network increases, the backoff timers running on each of the respective control devices may expire simultaneously or substantially simultaneously. If a control device receives a message while its backoff timer is running, it can add a time period to the backoff timer. Furthermore, each of the respective control devices may transmit a parent request message to attach to the network in response to the backoff timer's expiration. However, the backoff timer of the respective control device may "lose time" while processing a message received while the backoff timer is running (e.g., keeping the backoff timer running while processing the message). Additionally, as described herein, the backoff timer of the respective control device can be initialized to a number randomly generated from a range of numbers. As the number of control devices attempting to attach to the network increases, the probability that multiple control devices initialize their respective backoff timers to the same random number increases. Similarly, as the number of load control devices attempting to attach to the network increases, the probability that each of the respective backoff timers expires simultaneously or substantially simultaneously increases. If the backoff timers expire simultaneously or substantially simultaneously, parent request messages may be transmitted simultaneously or substantially simultaneously, which could lead to message collisions and / or the control device failing to attach to the network. Therefore, the control device can, for example, change the backoff timer based on the number and / or type of messages received during the backoff timer's operation.

[0146] Figure 7A This is a flowchart of an exemplary procedure 700 executed by a control device in response to receiving a message. For example, the message may be received via a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). Procedure 700 may be executed by the control device when it attempts to join a network, for example, by initiating an attachment procedure to attach to another device on the network (e.g., a router device). For example, procedure 700 may be executed by terminal devices 230a, 230b, a router-qualified terminal device 240, and / or a dormant terminal device 250 when these devices are not joined to the network or attached to a control device that has joined the network. Figure 7A As shown, program 700 may execute in response to receiving a message (e.g., a message transmitted by a control device in the network described herein) at 701. Although not in Figure 7A As shown in the diagram, program 700 can also be executed when the backoff timer is not running.

[0147] At 702, the control device can determine whether a backoff timer (e.g., a backoff timer that starts at 510 of program 500) is running (e.g., to determine whether the control device executing program 700 is currently attempting to attach to a parent device on the network). If the backoff timer is not running at 702, program 700 can exit. However, if the backoff timer is running at 702 (e.g., the control device is currently attempting to attach to a parent device on the network), the control device can determine at 704 whether the message received at 701 is a parent request message.

[0148] The control device can track the number of parent request messages and link request messages received while the backoff timer is running. At 704, the control device can determine whether the message is a parent request message. As described herein, parent request messages can be transmitted to attach to another device on the network, and multiple messages can be transmitted in response to the transmission of a parent request message (e.g., by a parent device attached to the network). If the message received at 704 is a parent request message, the control device can increment a first count N at 706. PR (For example, variables). First count N PR It can indicate the number of parent request messages received by the control device while the backoff timer is running.

[0149] At 708, the control device can determine whether the message is a link request message. As described herein, a link request message can be transmitted by the parent device to attach to other router devices attached to the network. Furthermore, multiple messages can be transmitted in response to the transmission of a link request message. If the received message is a link request message, the control device can increment a second count N at 710. LR (For example, variables). Second count N LR This indicates the number of link request messages received by the control device while the backoff timer is running. If the message is not a link request message at 704 or not a parent request message at 708, program 700 can exit.

[0150] Figure 7B This is a flowchart of an exemplary procedure 750 executed by a control device in response to the expiration of a backoff timer (e.g., a backoff timer started at 510 in procedure 500). Procedure 750 can be executed by the control device when it is attempting to attach to another device (e.g., a parent device) on a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). For example, procedure 750 can be executed by terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250 when these devices are not attached to a parent device. Figure 7BAs shown, program 750 can be executed at 751 in response to the expiration of the backoff timer. At 752, the control device can determine whether any parent request message or link request message has been received while the backoff timer is running. For example, the control device can determine a first count N. PR Second count N LR Are both equal to 0? As described in this article, the first count N PR Second count N LR This can indicate the number of parent request messages and link request messages received by the control device while the backoff timer is running. Therefore, if the first count N... PR Second count N LR If both are equal to 0, then neither the parent request message nor the link request message has been received.

[0151] When the control device fails to receive a parent request message or a link request message, it can determine that another device is not attempting to attach to another device on the network or is attempting to attach to a parent device on the network. Furthermore, the control device can determine, by transmitting a parent request message, that the current network conditions are optimal for the control device to attempt to attach to another device on the network (e.g., the other device may not attempt to attach to the network simultaneously or substantially simultaneously, which reduces the likelihood of message collisions and / or network attachment failures). For example, when the first count N... PR Second count N LR When both are equal to 0, the control device can assume that the other device may not attempt to attach to another device on the network as the control device. Therefore, if the first count N is at 752... PR Second count N LR If both are equal to 0 (e.g., no parent request message or link request message is received while the backoff timer is running), the control device can initiate an attachment procedure at 754. For example, the attachment procedure may include transmitting one or more attachment messages (e.g., a parent request message and / or a parent response message).

[0152] However, if the first count N PR Second count N LR If neither of these values ​​is equal to 0 (for example, if one or more parent request messages or link request messages are received while the backoff timer is running), then the control device at position 756 can set the maximum random value N. MAX Determined as the first count N PR Second count N LR A function (e.g., a weighted sum). For example, the first count NPR and the second count N. LR The weights of each in the set can be different. For example, when the first count N... PR Second count N LR As the value increases, the maximum random value NMAX It can also be increased. Similarly, when the first count N... PR Second count N LR When the value decreases, the maximum random value N MAX It can be reduced. Maximum random number N MAX It can be the largest number in the range of numbers, from which another value of the backoff timer can be selected (e.g., randomly).

[0153] At point 758, the control device can range from 0 to the maximum random value N. MAX Generate random numbers N from a range of numbers (including the endpoints). RAND For example, with the maximum random value N MAX Increasing the range of numbers from which random numbers can be generated reduces the likelihood that multiple devices will select the same random number (e.g., select the same backoff timer), thus reducing the possibility of message collisions. At 860, the control device can set the backoff timer to the random number N generated at 758. RAND At 862, the control device can start the backoff timer (e.g., countdown), and program 750 can exit.

[0154] As described herein, a control device can join a network by initiating an attachment procedure with a router device. Completion of the attachment procedure results in the control device being assigned the role of an end device attached to the router device on the network. Furthermore, the control device and the router device can form a parent-child link; for example, the control device can be a child device of the router device, and the router device can be the parent device of the control device. Over time, other devices can join the network, for example, by attaching to the router device (e.g., or by joining another router device in the network). As the number of devices joining the network increases, the network can upgrade the roles of some of the devices joining the network to router device roles (e.g., upgrading certain end devices that meet router criteria to router device roles, as described herein). Other devices can join the network by initiating an attachment procedure with the upgraded router device, thereby increasing the network size.

[0155] However, as the number of router devices on the network increases, some parent-child links may no longer be optimal. For example, when a control device initially joins the network, the router device to which it is attached may no longer be the optimal router device to which it should be attached (e.g., the optimal parent device for the control device), because another router device may exist on the network, and the control device may have higher link quality and / or lower link cost on the communication link with that other router device. A similar situation may occur for secondary parent devices attached to the control device. As a result, the control device may attach to another router device to establish a parent-child link with another router device joining the network and / or attach to another secondary parent device. Figures 8A to 8C An exemplary procedure is shown for determining the establishment of a parent-child link with another router device joining the network and / or attachment to another auxiliary parent device.

[0156] Figure 8A This is a flowchart of an exemplary procedure 800 executed by a control device in response to receiving a message. For example, the message may be received via a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). Procedure 800 may be executed by the control device after the control device has been attached to another device (e.g., a parent device) on the network. For example, the control device executing procedure 800 may be a child device attached to a parent device on the network. Reference now. Figure 2A Program 800 can be executed by terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250. For example... Figure 8A As shown, program 800 can be executed by the control device in response to receiving a message at 801.

[0157] At 802, the control device may determine whether the received message originates from a router device on the network (e.g., a leader device, such as leader device 210, and / or a router device, such as one of router devices 220a to 220d). If the message is received from a control device other than a router device, program 800 may terminate. However, if the message is received from a router device, at 804, the control device may determine whether the router device is already a secondary parent device of the control device (e.g., determining whether the message received at 801 is from a secondary parent device of the control device). If the message is received from a secondary parent device of the control device, program 800 may exit (e.g., when the control device is already attached to the router device).

[0158] If a message is received from a router device that is not an auxiliary parent device of the control device, then at 806, the control device can determine (e.g., measure) the current Received Signal Strength Indicator (RSSI) value of the received message. For example, the control device can measure the current Received Signal Strength Indicator (RSSI) of the received message at 9 / 806. RX Current Received Signal Strength Indicator (RSSI) RX It can indicate the signal strength of the message and / or the communication quality from the router device from which the message was received to the control device. The control device can use the current received signal strength indicator (RSSI). RX To determine which of multiple router devices on the network attempts to establish itself as a secondary parent device (e.g., which router device to which it is attached as a secondary parent device). The control device may store (e.g., may pre-store) the stored Received Signal Strength Indicator (RSSI). STORED It can indicate the router device from which the message with the highest received signal strength indicator (e.g., compared to messages received from other router devices) received by the control device comes.

[0159] The control device can determine whether the communication metrics of a router device not attached to the control device indicate a potential communication link with stronger communication metrics than its parent device. For example, as shown in Figure 8, at 808, the control device can use the current received signal strength indicator (RSSI). RX With the stored Received Signal Strength Indicator (RSSI) STORED Compare the stored Received Signal Strength Indicator (RSSI). STORED This could be a predefined threshold and / or an indication of the router device from which the control device receives a message with the highest Received Signal Strength Indicator (RSSI). If the current Received Signal Strength Indicator (RSSI)... RX Less than the stored Received Signal Strength Indicator (RSSI) STORED Then program 800 can exit. However, if the current received signal strength indicator RSSI... RX Greater than or equal to the stored Received Signal Strength Indicator (RSSI) STORED Then, at 810, the control device can initiate an attachment procedure with the router device to establish a secondary parent link (e.g., by transmitting an attachment message configured to establish a secondary parent link, such as a link request message). Additionally, the router device's router identifier (e.g., router ID) and the current received signal strength indicator (RSSI) can be used. RX Stored in memory (e.g., the current received signal strength indicator RSSI). RX Stored as the Received Signal Strength Indicator (RSSI) STOREDAs described herein, the control device may, for example, initiate an attachment procedure to a router device (e.g., attach to the router device such that the router device becomes an auxiliary parent device of the control device), the router device corresponding to a router identifier of the router device stored in memory (e.g., as referenced herein). Figure 8B (As described above). For example, the router identifier of the router device and the current highest received signal strength indicator (RSSI). RX A secondary parent table can be stored in memory. As described herein, the secondary parent table may include a list of secondary parent devices to which the corresponding child device is attached (e.g., synchronized with and / or able to process messages received from it).

[0160] Figure 8B This is a flowchart of an exemplary procedure 820 executed by a control device to attach to one or more auxiliary parent devices. As described herein, a child device may be attached to an auxiliary parent device to increase the reliability of communication within a network (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). Router devices on the network (e.g., leader devices, such as leader device 210, and / or router devices, such as one of router devices 220a to 220d) may operate as auxiliary parent devices. Procedure 820 may be executed periodically by the control device at 821. For example, procedure 820 may be executed at periodic intervals of thirty-two (32) seconds.

[0161] At point 822, the control device can determine the router identifier and the Received Signal Strength Identifier (RSSI) of the router device. UPDATED The control device can determine whether to establish an auxiliary parent link with the router device (e.g., a potential auxiliary parent device). For example, at 822, the control device can retrieve the router ID and received signal strength indicator of the stored router device, and determine whether to establish an auxiliary parent link with that router device (e.g., the router device stored at 810 of program 800). Furthermore, at 822, the control device can determine the router ID of the router device with the highest stored received signal strength indicator in the auxiliary parent table. At 824, the control device can determine the variable N, which indicates the number of auxiliary parent devices to which the control device has been attached. AUX-PAR Is it greater than or equal to the maximum value N? MAX Maximum value N MAX This indicates the maximum number of auxiliary parent devices that can be attached to the control device. Maximum value N MAX It can be pre-configured and / or updated (e.g., updated based on changes to the network). For example, the maximum value N. MAX It can be pre-configured to 10.

[0162] If variable N is at position 824AUX-PAR Less than the maximum value N MAX Then, at 826, the control device may initiate an attachment procedure to establish a secondary parent link with the router device identified as a potential secondary parent device (e.g., at 822). As described herein, the attachment procedure may include transmitting one or more attachment messages (e.g., link request messages) configured to establish a secondary parent link with the identified router device. After attaching to the identified router device, at 828, the updated router ID and Received Signal Strength Indicator (RSSI) of the secondary parent device can be updated. UPDATED Stored in the auxiliary parent table, and at 830, variable N AUX-PAR It can be incremented before program 820 exits.

[0163] If variable N is at position 824 AUX-PAR Greater than or equal to the maximum value N MAX Then at position 832, the control device can determine that the auxiliary parent table contains the lowest received signal strength indicator RSSI. AUX-LO The auxiliary parent device. It has a minimum received signal strength indicator (RSSI). AUX-LO The auxiliary parent device can be an auxiliary parent device to which the control device is attached during the initial network formation. However, as described herein, after time has passed, the network may include other routers that can provide the control device with improved communication over the network (e.g., increasing the likelihood that the control device can successfully send and / or receive messages). Furthermore, if the control device is to be attached to a router with a stronger communication link with the control device, the control device may experience improved communication over the network.

[0164] The control device can determine whether the corresponding communication metric of a potential auxiliary parent device indicates a potential communication link that is stronger than the current communication metric of the auxiliary parent device. For example, such as Figure 8B As shown, at 834, the control device can determine the Received Signal Strength Indicator (RSSI) of a potential auxiliary parent device. UPDATED The lowest received signal strength indicator (RSSI) in the auxiliary parent table AUX-LO Is the difference between them greater than or equal to the hysteresis threshold TH? AUX-HYS (e.g., RSSI) UPDATED –RSSI AUX-LO ≥TH AUX-HYS ). Lag threshold TH AUX-HYS It can be predefined (e.g., approximately 10 dB) or variable, for example, based on the lowest received signal strength indicator (RSSI) in a secondary parent table. AUX-LO If the received signal strength indicator RSSI of the potential auxiliary parent device is at 834... UPDATED The lowest received signal strength indicator (RSSI) in the auxiliary parent table AUX-LOThe difference between them is less than the hysteresis threshold TH AUX-HYS Then program 820 can exit.

[0165] If at 8344, the potential auxiliary parent device's Received Signal Strength Indicator (RSSI) UPDATED The lowest received signal strength indicator (RSSI) in the auxiliary parent table AUX-LO The difference between them is greater than or equal to the hysteresis threshold TH AUX-HYS Then, at 836, the control device can initiate an attachment procedure with the router identified as a potential secondary parent device (e.g., at 822) to establish a secondary parent link, which can improve communication for the control device on the network. As described herein, the attachment procedure for establishing a secondary parent link may include transmitting one or more attachment messages (e.g., link request messages) configured to establish a secondary parent link to the router identified as a potential secondary parent device. At 838, the control device can update the secondary parent table (e.g., to indicate attachment / secondary parent links with the updated secondary parent device). For example, at 838, the control device may remove the lowest received signal strength indicator (RSSI) from the secondary parent table. AUX-LO The router ID of the auxiliary parent device is updated, and the updated router ID of the auxiliary parent device and the corresponding Received Signal Strength Indicator (RSSI) are also updated. UPDATED Add to the router table.

[0166] After adding the router ID and received signal strength indicator of the new auxiliary parent device to the auxiliary parent table at 828 and / or updating the auxiliary parent table at 838, the control device may reset the parent update timer at 840 (e.g., to 5 minutes), after which procedure 820 may exit. The parent update timer can be used as a trigger for the child device to determine whether the child device should be attached to the updated parent device to improve communication between the child device and its parent device (e.g., as will be referred to below). Figure 11 (To be described in more detail).

[0167] Figure 8C This is a flowchart of an exemplary procedure 850 executed by a control device to update the auxiliary parent table of one or more auxiliary parent devices. For example, it can be... Figure 8B At point 838 of the shown procedure 820, procedure 850 is executed to add the auxiliary parent device to the auxiliary parent table. See again... Figure 8CThe control device can be a sub-device attached to a current parent device (e.g., by establishing a parent-child link with the current parent device) and one or more auxiliary parent devices (e.g., by establishing auxiliary parent links with one or more auxiliary parent devices). As described herein, the sub-device can be attached to auxiliary parent devices to increase the reliability of communication within a network (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). Router devices on the network (e.g., leader devices, such as leader device 210, and / or router devices, such as router devices 220a to 220d) can operate as auxiliary parent devices of the sub-device, and the sub-device can receive multicast messages via the auxiliary parent devices. An auxiliary parent table stored at the sub-device can include a list of auxiliary parent devices to which the sub-device is configured to communicate (e.g., attached to and / or able to process messages received from it via an auxiliary parent link).

[0168] like Figure 8C As shown, the control device can determine whether a corresponding communication metric of a potential auxiliary parent device indicates a potential communication link with a stronger communication metric than the current auxiliary parent device. At 851, procedure 850 can begin, as described herein, which adds the potential auxiliary parent device to the auxiliary parent table (e.g., at 838 during the execution of procedure 820). At 852, the control device can determine whether the potential auxiliary parent device has a predefined number of link qualities. The communication link between the corresponding control device and another device (e.g., a router device) can be measured and / or defined by link quality, as described herein. Link quality can be a communication metric indicating the quality of the communication link. For example, the link quality can be defined as 0, 1, 2, or 3 for the corresponding communication link. The lowest link quality (e.g., a link quality equal to 0 or 1) can indicate a relatively low-quality communication link between the corresponding control devices (e.g., a communication link where the probability of failed transmission is relatively high). The highest link quality (e.g., a link quality equal to 3) can indicate a relatively high-quality communication link between the corresponding control devices (e.g., a communication link where the probability of successful transmission is relatively high).

[0169] The control device can determine whether a potential auxiliary parent device has a link quality equal to a predefined value. The predefined value can be the highest quality value assigned to a communication link (e.g., a link quality equal to 3). The potential auxiliary parent device being analyzed can be a router device with the highest stored received RSSI among router devices stored in the auxiliary parent table.

[0170] If the auxiliary parent device to be added to the auxiliary parent table has a link quality equal to a predefined value (e.g., a link quality of 3), the control device can initiate an attachment procedure with the auxiliary parent device to be added to the auxiliary parent table at 858. Furthermore, the control device can add the auxiliary parent device to the auxiliary parent table. At 960, the control device can also set the maximum value N. MAX Increment by one (e.g., N) MAX =N MAX +1). As described in this article, the maximum value N MAX It can indicate the maximum number of auxiliary parent devices that the control device can be attached to.

[0171] If the auxiliary parent device to be added to the auxiliary parent table does not have a link quality equal to a predefined value (e.g., a link quality of 3), then at 854 the control device can be associated with the auxiliary parent table having the lowest received signal strength indicator (RSSI). AUX-LO The auxiliary parent device is then separated. Furthermore, at 856, the control device can initiate an attachment procedure to attach to the potential auxiliary parent device and transfer the router identifier and Received Signal Strength Identifier (RSSI) of the potential auxiliary parent device. UPDATED Add to the auxiliary parent table. As described herein, during the execution of procedure 820 (e.g., at 822 of procedure 820), the router identifier and Received Signal Strength Identifier (RSSI) of the potential parent device may have already been determined. UPDATED .

[0172] The role of a control device attached to the network can be adjusted over time. For example, a terminal device that meets router criteria can be adjusted to the role of a router device. When the number of router devices joining the network falls below a threshold, a terminal device that meets router criteria can be adjusted to the role of a router device. Furthermore, a terminal device that meets router criteria can be adjusted to the role of a router device when another device requests that a terminal device that meets router criteria be adjusted to the role of a router device (e.g., when other devices cannot attach to router devices joining the network). When other devices fail to attach to a parent device, they can request that a terminal device that meets router criteria be adjusted to the role of a router device, which may prevent other devices from joining the network. As described herein, other devices may be unable to attach to a parent device if they fail to receive a response to a parent request message, for example, due to message conflicts in the network. In response to the failure to receive a response to a parent request message, the control device may attempt to form a new network or network partition (e.g., as described herein, this can increase the time required to form a single network), or request another device to upgrade to the role of a router device, allowing the control device to initiate an attachment procedure with the newly upgraded router device. When a terminal device that meets the router criteria receives a request to be reassigned to the role of a router device, the terminal device may, for example, request permission from the leader device to be reassigned to the role of a router device. The leader device may accept the request to be reassigned to the role of a router device by providing the terminal device that meets the router criteria with a router identifier.

[0173] A router device that has already joined a network or network partition can attach to another network and maintain its role on that other network. For example, a router device can attach to another network and attempt to use the router identifier assigned to the initial network or network partition. If the router device maintains the assigned router identifier, its sub-devices can also attach (e.g., migrate) to another network, for example, without transmitting additional messages (e.g., an additional parent request message for attaching to another network).

[0174] During the initial formation of the network, information stored at the control device can be used to re-form the network. Figure 9A and Figure 9C An exemplary procedure for reshaping a previously formed network is shown (e.g., a network reshaping procedure). For example, Figure 9A and Figure 9CThe procedure illustrated can be executed after a power outage or another event that causes the power supply to the corresponding control devices in the network to cease. As described herein, after a previously formed network loses power and the devices therein subsequently regain power, a control device attached to the network (e.g., attached to the network before the power loss) may attempt to reattach to the previously formed mesh network and / or re-form the previously formed mesh network. However, since the control devices can regain power simultaneously or substantially simultaneously, each control device in the corresponding control device may attempt to reattach to the network and / or re-form the network simultaneously, which can increase the likelihood of message collisions and increase the amount of time until network formation is complete.

[0175] To reduce the likelihood of message collisions and the amount of time until network formation is complete, the control device may attempt to reattach to the parent device and re-form the network. After power-on, the control device may attempt to restore the previous roles in the previously formed network. Previous roles may be stored locally on each control device within the control device. The control device of the leader device in the previously formed network may begin its startup procedure before other control devices in the load control system. The control devices of non-leader router devices in the previously formed network may delay their startup procedures to allow the leader device to start and begin transmitting advertisement messages to other router devices. Other router devices may begin their startup procedures during a predefined interval after power-on (e.g., to allow the leader device to start). For example, other router devices may begin their startup procedures at a random time within the interval after the leader initiates its startup procedure. During the startup procedure at a router device, each router device may attempt to attach to the leader device or another router device to which it was attached in the previously formed network. Terminal devices may begin their startup procedures during a predefined interval after power-on to allow routers to perform their startup procedures and attach to the leader device or other router devices. For example, a terminal device may begin its startup procedure at a random time within the interval after a router initiates its startup procedure. The predefined interval at the terminal device can be longer than the router device's delayed startup procedure to allow the router device time to perform attachment and re-formation of the previously formed network.

[0176] Figure 9A This is a flowchart of an exemplary procedure 900 for a device to reattach to a parent device and / or re-establish a previously formed network after a power loss and / or reset. Procedure 900 can be executed by a control device previously attached to the network before the power loss and / or reset. Figure 9A As shown, procedure 900 may begin at 901. For example, as described herein, procedure 900 may be executed after a network power loss and / or reset, which may occur after a power outage or another event that causes a power interruption to the power supply to the corresponding control device attached to the previously formed network.

[0177] At 912, the control device can determine whether it is the leader device of the previously formed network. As described herein, the leader device can manage other control devices on the network. For example, the leader device can assign and maintain router identifiers for each router device among those attached to the network. The leader device can be the first device to attempt to re-form the previously formed network. The control device may have a role identifier stored in its memory that indicates its role in the previously formed network. For example, the role identifier may indicate that the control device is the leader device of the previously formed network. The role identifier may be stored along with one or more network credentials for the network, such as the control device's network address (e.g., a Thread network address). At 912, the control device can determine that it is the leader device of the previously formed network based on this stored role identifier of the previously formed network.

[0178] At 914, a control device (e.g., a leader device in a previously formed network) may transmit a link request message. For example, the link request message may be sent as a multicast message. The link request message can be used to determine whether another leader device has already formed the network. In one example, the previously formed network may have lost power and additional devices may have been added to the system, the locations of the devices may have been moved, and / or the space may have been reconfigured to cause sources of interference between devices to be added or removed. Due to potential changes in the network and / or the space where the network resides, the leader device may transmit a link request message to determine whether another leader device exists on the network. For example, a link request message may be transmitted to identify whether an already formed network is being implemented. Therefore, the leader device may transmit a link request message to determine whether other devices are powered on and a network with another leader device has been formed. If the leader device receives a response to the link request message, the leader device may not be able to become the leader device on the network and may revert to being a terminal device or another role on the network. Other control devices in the previously formed network may not respond to the link request because they may wait for a leader notification from the leader device and / or for a coordinated start-up time after power-on and connection.

[0179] At 916, the control device may determine, for example, based on a received response to a link request. For instance, if another leader device receives a link request message transmitted by the control device in the space where the control device is located and transmits a response to the link request message, the control device may determine that another network partition exists and may relinquish its previous role as the leader device of the previously formed network. At 918, the control device may relinquish its previous role as the leader device of the previously formed network to begin another attachment procedure (e.g., as described herein). Figure 5 (As described). An attachment procedure at 918 can be executed to form a network that can be configured differently from a previously formed network.

[0180] However, if no response to the link request message is received, the control device can determine that no other network partition exists, and at 920, a leader advertisement message can be transmitted. The leader advertisement message can be used, for example, to reshape a previously formed network by triggering a router device in the previously formed network to attach to the leader device (e.g., transmitting a link request message to the leader device) and reshaping the mesh of the previously formed network. A router device attached to the leader device in the previously formed network can listen for leader advertisements before initiating its attachment procedure.

[0181] At 922, the control device may determine whether it is a router device in the previously formed network. This determination at 922 may be based on a role identifier stored in memory at the control device, indicating the router device's role in the previously formed network. At 924, the control device (e.g., a router device in the previously formed network) may wait for the router device's coordinated startup time (e.g., a coordinated router startup time). The coordinated startup time may be unique to the device and / or based on the role identifier. For example, the coordinated startup time may be based on the time the control device is powered on and / or an identifier assigned to the control device (e.g., during a claiming procedure). The coordinated startup time of the router device may be equal to a base delay time (e.g., which may be the same for each router device) plus an offset delay time. The offset delay time may be based on the hop count between the respective router device and the leader device. For example, the base delay time may be the same for each router previously attached to the previously formed network, allowing the leader device of the previously formed network to re-form into the network and enabling router devices to re-attach. Offset latency can be based on the hop count back to the leader device, ensuring that the offset latency of routers farther from the leader device is longer than that of routers closer to the leader device. (See reference) Figure 2EFor example, the offset delay time of router devices 225a and 225c directly attached to leader device 215 can be shorter than the offset delay time of router devices 225b, 225d, and 225e not directly attached to leader device 215. Therefore, the coordinating router startup time of router devices 225a and 225c can end before the coordinating startup time of router devices 225b, 225d, and 225e.

[0182] The offset delay time for each device can be a predefined time period multiplied by the hop count of the control device. The hop count can be determined from the previously formed network and can be stored at the control device. After waiting for the basic delay time, the control device can wait for an offset delay time before starting the attachment procedure, which can be a multiple of the hop count of the predefined time period. The offset delay time calculated based on the hop count of the control device relative to the leader device allows router devices with a lower hop count or closer to the leader device to perform the attachment procedure before router devices with a higher hop count or farther from the leader device. In the example, the predefined time period multiplied by the hop count to calculate the offset delay time can be in the range of ten to thirty seconds. However, this time can be changed to allow for other delays, giving the router devices time to power on, perform the attachment procedure, and / or begin advertising.

[0183] In another example, when calculating the offset delay time of a control unit, a different amount of time can be added for each hop count. As the hop count increases, the amount of time added for each hop count can be more or less. For example, as the hop count increases, the amount of time added to the offset delay time can increase by a predefined increment to allow more time to process messages in a larger network. The amount of time added to the offset delay time can vary based on the number of control units with the same hop count. This allows for shorter delays when fewer control units perform the attachment procedure, and larger delays when more units perform the attachment procedure. The control unit can store control units with the same hop count from a previously formed network, or this can be transmitted from a central computing unit or debugging unit to the control unit.

[0184] Return to reference Figure 9AAfter waiting for the coordinated startup time of the router device at 924, the control device may transmit a request to restore its role in the previously formed network at 926. For example, the control device may transmit an attachment message as a unicast message to one of the router device and / or the leader device at 926. The control device may store the identifier of the router device in its memory, through which network communications to be transmitted through the network to reach the leader device, which may be the leader device or another router device (e.g., depending on whether the control device was previously attached to the leader device or another router device in the previously formed network). For example, if the control device is directly attached to the leader device in the previously formed network (e.g., ... Figure 2E If the router devices 225a and 225c are connected, the control device may transmit a link request message (e.g., as a unicast message) to the leader device of the previously established network. However, if the control device is not directly attached to the leader device (e.g., ...), Figure 2E If router devices 225b, 225d, 225e, and 225f are used, the control device can transmit a link request message (e.g., as a unicast message) to the router device, through which the control device can communicate with the leader device. For example, router device 225b can store an identifier for router device 225c, which may indicate the next hop back to leader device 215. Router device 225b can transmit the link request message as a unicast message to router device 225c after waiting for the coordination start time.

[0185] At 928, the control device can determine whether a response has been received to the link request message transmitted at 926. As described herein, the response to the link request message can be a link acceptance message, which may instruct the establishment of a communication link for communication with the control device in the previously established network. The link acceptance message may include information (e.g., a frame counter) that allows the control device to decrypt messages from the device with which it has established a communication link.

[0186] If no response to the link request message is received at 928, the control device may relinquish its role in the previously established network and begin another attachment procedure at 930. The control device may wait for a response for a predetermined period of time. However, if a response to the link request message is received, the control device may transmit a router advertisement message at 932. The router advertisement message informs other router devices on the network that the control device is now operating as a router device.

[0187] Refer again Figure 9AThe control device can determine that it is a terminal device. For example, if the control device determines at 932 that it is not a router device in a previously formed network, it can determine that it is a terminal device. A role identifier stored in memory indicates that the control device is a terminal device in the previously formed network. If the control device is a terminal device, at 934, the control device can wait for the coordinated startup time of the terminal device (e.g., coordinate the terminal device startup time). The coordinated startup time of the terminal device can be a predetermined time longer than the coordinated startup time of the router device (e.g., to allow the router devices to establish communication with each other before the terminal device attempts to attach to the router device), and the coordinated startup time of the router device can be later than the coordinated startup time of the leader device (e.g., a predetermined time / offset can be added to the coordinated startup time of the leader device). Furthermore, the coordinated startup time of the terminal device can be calculated, for example, in a manner similar to or different from how the coordinated startup time of the router device is calculated. For example, the coordinated startup time of the terminal device can be calculated based on the hop count of the terminal device as described herein. The coordinated startup time of the terminal device can be longer than the coordinated startup time of the router device. For example, the router device can be given higher priority than the terminal device to perform attachment to devices in a previously formed network.

[0188] After the coordination start time expires, at 936, the control device may transmit a parent request message (e.g., as a unicast message) to the parent device of the control device in the previously formed network. The identifier of the previous parent device may be stored therein in memory. The parent request message may be transmitted as a unicast message to the previous parent device to reattach to the parent device. At 938, the control device may determine whether a response to the parent request message has been received. The response to the parent request message may be a parent response message. If no response to the parent request message is received (e.g., within a predefined time period), at 930, the control device may relinquish its role in the previously formed network and begin another attachment procedure. The attachment procedure may be executed to attach to another network or network partition as described herein.

[0189] Figure 9B This is a flowchart illustrating a sequence of exemplary messages transmitted between devices in network 940 when a startup and / or attachment procedure is performed to attach to a device in a previously formed network. Figure 9B The startup and / or attachment procedures shown in the sequence flowchart can reflect the execution of the device in network 940. Figure 9A The flowchart 900 shown and described herein represents one or more portions of a sequence of messages in network 940. See again... Figure 9B The exemplary network 940 may include Figure 2EThe subset of devices in network 200c shown is provided as an example, but other networks with different configurations may operate similarly. For example, network 940 may include leader device 215 and router devices 225a, 225d, 225f. Network 940 may also include terminal device 260 attached to router device 225f.

[0190] like Figure 9B As shown, leader device 215 can share a single-hop communication link with router device 225a. During network formation, router device 225a can store the router identifier of leader device 215 and the hop count from the leader device (e.g., hop count = 1), through which single-hop communication towards leader device 215 can be performed. Router device 225a can share a single-hop communication link with router device 225d. During network formation, router device 225d can store the router identifier of router device 225a and the hop count from the leader device (e.g., hop count = 2), through which single-hop communication towards leader device 215 can be performed. Router device 225d can share a single-hop communication link with router device 225f. During network formation, router device 225f can store the router identifier of router device 225d and the hop count from the leader device (e.g., hop count = 3), through which single-hop communication towards leader device 215 can be performed. Although in Figure 2E Although not shown, terminal device 260 may share a single-hop communication link with router device 225f. During network formation, terminal device 260 may store the router identifier of router device 225f.

[0191] When devices in network 940 are powered off and on after the network has been formed, each device can execute a startup and / or attachment procedure to attempt to re-form the previously formed network. Leader device 215 can identify itself as the leader device and transmit a link request message 943. The link request message 943 can be sent as a multicast message. The link request message 943 can be used to determine whether another leader device has already formed the network. If leader device 215 fails to receive a response to the link request message 943, leader device 215 can maintain its role as the leader device and allow attachment of non-leader router devices that were previously attached to leader device 215 on the previously formed network.

[0192] Router device 225a may wait for a coordinated router device startup time 941 before transmitting the unicast request message 944. The coordinated startup time 941 of router device 225a may be equal to a base delay time (e.g., which may be the same for each router device 225a, 225d, 225f) plus an offset delay time. The offset delay time of the coordinated router device startup time 941 may be based on the hop count between router device 225a and leader device 215. For router devices with a larger hop count from leader device 215, the offset delay time may be weighted higher. For example, the offset delay time may be based on a multiple of the hop count returning to leader device 215 (e.g., hop count = 1). The hop count may be locally stored at router device 225a during the formation of the previously formed network.

[0193] After router device 225a waits for the coordinating router device startup time 941, router device 225a may send a unicast request message 944. The unicast request message 944 may be transmitted by router device 225a so that router device 225a may attempt to restore its role in the previously established network. The unicast request message 944 may be a link request message used to re-establish the communication link between router device 225a and leader device 215. Router device 225a may identify in its memory that it is attached to leader device 215 in the previously established network. Router device 225a may transmit the unicast request message 944 to leader device 215, to which it is attached in the previously established network. The unicast request message 944 may include a router identifier, which is another unique identifier of leader device 215.

[0194] Leader device 215 may receive unicast request message 944 and respond with unicast response message 945. As described herein, unicast response message 945 may be a link acceptance message, which may indicate the formation of a communication link for communication between router device 225a and leader device 215, as in a previously formed network. The link acceptance message may include information (e.g., a frame counter) that allows router device 225a to decrypt messages from leader device 215 with which it has established a communication link. After receiving unicast response message 945 at router device 225a, router device 225a may transmit router advertisement messages in network 940.

[0195] Router device 225d may wait for a coordinated router device startup time 941a before transmitting the unicast request message 946. The coordinated startup time 941a of router device 225d may be equal to a base delay time (e.g., which may be the same for each router device 225a, 225d, 225f) plus an offset delay time. The offset delay time of the coordinated router device startup time 941a may be based on the hop count between router device 225d and leader device 215. For router devices with a larger hop count from leader device 215, the offset delay time may be weighted higher. For example, the offset delay time may be based on a multiple of the hop count back to leader device 215 (e.g., hop count = 2). The offset delay time of router device 225d may be longer than the offset delay time of router device 225a because router device 225d has a larger hop count from leader device 215. During the formation of the previously formed network, the hop count may be locally stored at router device 225d.

[0196] After router device 225d waits for the coordinated router device startup time 941a, router device 225d may send a unicast request message 946. The unicast request message 946 may be transmitted by router device 225d to allow router device 225d to attempt to restore its role in the previously established network. The unicast request message 946 may be a link request message used to re-establish the communication link between router device 225d and router device 225a. Router device 225d may identify router device 225a, which it is attached to in the previously established network, in memory for transmitting messages to leader device 215. For example, the identifier of router device 225a may represent the next hop back to leader device 215. Router device 225d may transmit the unicast request message 946 to router device 225a, which it is attached to in the previously established network. The unicast request message 946 may include a router identifier, which is another unique identifier of router device 225a.

[0197] Router device 225a may receive unicast request message 946 and respond with unicast response message 947. As described herein, unicast response message 947 may be a link acceptance message, which may indicate the formation of a communication link for communication between router device 225d and router device 225a, as in a previously formed network. The link acceptance message may include information (e.g., a frame counter) that allows router device 225d to decrypt messages from router device 225a with which it has established a communication link. After receiving unicast response message 947 at router device 225d, router device 225d may transmit router advertisement messages in network 940.

[0198] Router device 225f may wait for a coordinated router device startup time 941b before transmitting the unicast request message 948. The coordinated startup time 941b of router device 225f may be equal to a base delay time (e.g., which may be the same for each router device 225a, 225d, 225f) plus an offset delay time. For router devices with a larger hop count from leader device 215, the offset delay time may be weighted higher. The offset delay time of the coordinated router device startup time 941b may be based on the hop count between router device 225f and leader device 215. For example, the offset delay time may be based on a multiple of the hop count returning to leader device 215 (e.g., hop count = 3). The offset delay time of router device 225f may be longer than the offset delay times of router devices 225a and 225d because router device 225f has a larger hop count from leader device 215. During the formation of the previously formed network, the hop count may be locally stored at router device 225f.

[0199] After router device 225f waits for the coordinated router device startup time 941b, router device 225f may send a unicast request message 948. The unicast request message 948 may be transmitted by router device 225f to attempt to restore its role in the previously established network. The unicast request message 948 may be a link request message used to re-establish the communication link between router device 225f and router device 225d. Router device 225f may identify router device 225d, which it is attached to in the previously established network, in memory for transmitting messages to leader device 215. For example, the identifier of router device 225d may indicate the next hop to return to leader device 215. Router device 225f may transmit the unicast request message 948 to router device 225d, which it is attached to in the previously established network. The unicast request message 948 may include a router identifier, which may be another unique identifier of router device 225d.

[0200] Router device 225d may receive unicast request message 948 and respond with unicast response message 949. As described herein, unicast response message 949 may be a link acceptance message, which may indicate the formation of a communication link for communication between router device 225f and router device 225d, as in a previously formed network. The link acceptance message may include information (e.g., a frame counter) that allows router device 225f to decrypt messages from router device 225d with which it has established a communication link. After receiving unicast response message 949 at router device 225f, router device 225f may transmit router advertisement messages in network 940.

[0201] Terminal device 260 may wait for a coordinated terminal device startup time 942 before transmitting the parent request message 950. The coordinated startup time 942 of terminal device 260 may be a predetermined time longer than the coordinated startup times of router devices 225a, 225d, 225f (e.g., to allow router devices 225a, 225d, 225f to establish communication with each other before terminal device 260 attempts to attach to router device 225f). Furthermore, the coordinated startup time 942 of terminal device 260 may be calculated, for example, in a manner similar to or different from how the coordinated startup times 941, 941a, 941b of router devices 225a, 225d, 225f are calculated. For example, the coordinated startup time 942 of terminal device 260 may be calculated based on the hop count of the terminal device using a basic delay time (e.g., which may be the same for each terminal device) and / or an added delay time, as described herein. The coordinated startup time 942 of terminal device 260 may have a longer base latency time (e.g., which may be the same for each terminal device in the network) and / or offset latency time than that of router devices 225a, 225d, and 225f. For example, the base latency time of router devices 225a, 225d, and 225f may be between zero seconds and one second, and the base latency time of terminal device 260 may be between ten seconds and twenty-five seconds. The base latency time of terminal device 260 may be a multiple of the base latency time of router devices 225a, 225d, and 225f. The longer coordinated startup time 242 of terminal device 260 may prioritize router devices 225a, 225d, and 225f to allow router devices 225a, 225d, and 225f to perform startup and / or attachment procedures and to be ready to receive parent requests from terminal devices. The amount of time added to each hop count of the coordinated startup time 942 for terminal device 260 may be the same as or different from the amount of time added to each hop count for router devices 225a, 225d, 225f.

[0202] After the terminal device 260 waits for the coordinating router device startup time 942, the terminal device 260 may send a parent request message 950. The parent request message 950 may be sent as a unicast request message so that the terminal device 260 may attempt to restore its role in the previously established network. The parent request message 950 may be a request to re-establish the communication link between the terminal device 260 and the router device 225f. The terminal device 260 may identify the router device 225f, to which it is attached in the previously established network, in memory for transmitting messages to the leader device 215. For example, the identifier of the router device 225f may indicate the next hop to return to the leader device 215. The terminal device 260 may transmit the parent request message 950 to the router device 225f, to which it is attached in the previously established network. The parent request message 950 may include a router identifier, which is another unique identifier of the router device 225f.

[0203] Router device 225f can receive parent request message 950 and respond with parent response message 951. As described herein, parent response message 951 can indicate that router device 225f has accepted terminal device 260 as a child device and has re-established a communication link for communication between terminal device 260 and router device 225f, as in a previously established network. Parent response message 951 may include information (e.g., a frame counter) that allows terminal device 260 to decrypt messages from router device 225f with which it has established a communication link. After receiving parent response message 951 at terminal device 260, terminal device 260 can transmit messages out to other devices in network 940 via router device 225f.

[0204] In addition to delaying startup during predefined intervals to allow the leader device and / or other router devices to execute their startup procedures and / or other devices attached to the network, router devices and terminal devices may wait to receive advertisement messages from router devices attached to the router device or terminal device in the predefined network. Again, the control device of the leader device in the pre-formed network may initiate its startup procedure before other control devices in the load control system. The control device of a non-leader router device in the pre-formed network may delay its startup procedure to allow the leader device to start and begin transmitting advertisement messages to other router devices. Other router devices may initiate their startup procedures during a predefined interval after power-on (e.g., to allow the leader device to start). For example, other router devices may initiate their startup procedures at a random time within the interval after the leader initiates its startup procedure. During the startup procedure at a router device, each router device may wait for an advertisement message from the leader device or another router device attached to the router device in the pre-formed network. Receiving an advertisement message may instruct the device attached to the router device in the pre-formed network to be powered on and to establish its previous role in the pre-formed network. Upon receiving an advertisement message from a leader device or router device attached to another router device in a previously formed network, a router device may attempt to attach to that device. A terminal device may begin its startup procedure during a predefined interval after power-on, allowing the router to perform its startup procedure and attach to the leader device or other router devices. The predefined interval at the terminal device may be longer than the predefined interval used by the router device to delay its startup procedure, allowing the router device time to perform attachment and re-form the previously formed network. During the startup procedure at the terminal device, each terminal device may wait for an advertisement message from the leader device or another router device attached to the terminal device in a previously formed network. Receiving the advertisement message may instruct the device attached to the terminal device in the previously formed network to be powered on and to establish its previous role in the previously formed network. Upon receiving an advertisement message from a leader device or another router device attached to the terminal device in a previously formed network, the terminal device may attempt to attach to that device.

[0205] Figure 9C This is a flowchart of an example reattachment procedure 952 for reattaching devices to a previously formed network and / or re-forming a previously formed network (e.g., after a power loss or another network reset). Procedure 952 can be executed by a control device of other devices attached to a previously formed network before the power loss or other network reset. Figure 9CAs shown, procedure 952 may begin at 953. For example, as described herein, procedure 953 may be executed after a control device reset, which may occur after a power outage or another event that causes a power interruption to the corresponding control device attached to the previously formed network.

[0206] At 954, the control device can determine whether it is the leader device of the previously formed network. As described herein, the leader device can manage other control devices on the network. For example, the leader device can assign and maintain router identifiers for each router device among those attached to the network. The leader device can be the first device to attempt to re-form the previously formed network. The control device may have a role identifier stored in its memory that indicates its role in the previously formed network. For example, the role identifier may indicate that the control device is the leader device of the previously formed network. The role identifier may be stored along with one or more network credentials for the network, such as the control device's network address (e.g., a Thread network address). At 954, the control device can determine that it is the leader device of the previously formed network based on this stored role identifier of the previously formed network.

[0207] At 955, a control device (e.g., a leader device in a previously formed network) may transmit a link request message. For example, the link request message may be sent as a multicast message. The link request message can be used to determine whether a network has already been formed with another leader device. In one example, a previously formed network may have lost power and additional devices may have been added to the system, the locations of devices may have been moved, and / or the space may have been reconfigured to cause sources of interference between devices to be added or removed. Due to potential changes in the network and / or the space where the network resides, the leader device may transmit a link request message to determine whether another leader device exists on the network. For example, a link request message may be transmitted to identify whether an already formed network is being implemented. Therefore, the leader device may transmit a link request message to determine whether other devices are powered on and a network with another leader device has been formed. If the leader device receives a response to a link request message, the leader device may not be able to become the leader device on the network and may revert to being a terminal device or another role on the network. Other control devices in the previously formed network may not respond to the link request because they may wait for a leader notification from the leader device and / or for a coordinated start-up time after power-on and connection.

[0208] At 956, the control device may determine, for example, based on the received response to the link request message, whether one or more other network partitions exist. If another leader device receives the link request message and transmits a response to it, at 958 the control device may determine the existence of another network partition, relinquish its previous role (e.g., the role of the leader device in a previously formed network), and initiate another attachment procedure (e.g., as described herein). Figure 5 As described herein, a control device may relinquish a previous role to form a network that can be configured differently from a previously formed network. The fact that the leader device responds to a link request message may indicate that another network configured differently from a previously established network has been formed (e.g., in the absence of a control device that previously acted as the leader device).

[0209] At 956, the control device may determine, for example, based on a received response to a link request. If another leader device receives a link request message and transmits a response to it, the control device may determine that another network partition exists and may relinquish its previous role as the leader device of the previously formed network. At 958, the control device may relinquish its previous role as the leader device of the previously formed network to begin another attachment procedure (e.g., as described herein). Figure 5 The attachment procedure at point 958 can be executed to form a network that can be configured differently from a previously formed network. The fact that the leader device responds to a link request message indicates that another network configured differently from a previously established network has been formed (e.g., in the absence of a control device that previously acted as the leader device).

[0210] However, if no response to the link request message is received, the control device can determine that no other network partition exists, and at 960, a leader announcement message can be transmitted. The leader announcement message can be used, for example, to reshape a previously formed network by triggering a router device in the previously formed network to attach to the leader device (e.g., transmitting a link request message to the leader device) and reshaping the mesh of the previously formed network. A router device attached to the leader device in the previously formed network can listen for leader announcements before initiating its attachment procedure.

[0211] At 962, the control device may determine whether it is a router device in the previously formed network. This determination at 962 may be based on a role identifier stored in memory at the control device, indicating the router device's role in the previously formed network. If the control device is defined as a router device in the previously formed network, then at 963, the control device may determine the coordination startup time (e.g., the coordination router startup time) for waiting for the router device. As described herein, the coordination startup time of the router device may be equal to a base delay time (e.g., which may be the same for each router device) plus an offset delay time. The offset delay time may be based on the hop count between the respective router device and the leader device. For example, the base delay time may be the same for each router previously attached to the previously formed network, allowing the leader device of the previously formed network to re-form the network and enabling router devices to re-attach. The offset delay time may be based on the hop count returning to the leader device, such that the offset delay time for router devices farther from the leader device is longer than the offset delay time for router devices closer to the leader device. Reference Figure 2E For example, the offset delay time of router devices 225a and 225c directly attached to leader device 215 can be shorter than the offset delay time of router devices 225b, 225d, and 225e not directly attached to leader device 215. Therefore, the coordinating router startup time of router devices 225a and 225c can end before the coordinating startup time of router devices 225b, 225d, and 225e.

[0212] The offset delay time for each device can be a predefined time period multiplied by the hop count of the control device. The hop count can be determined from the previously formed network and can be stored at the control device. After waiting for the basic delay time, the control device can wait for an offset delay time before starting the attachment procedure, which can be a multiple of the hop count of the predefined time period. The offset delay time calculated based on the hop count of the control device relative to the leader device allows router devices with a lower hop count or closer to the leader device to perform the attachment procedure before router devices with a higher hop count or farther from the leader device. In the example, the predefined time period multiplied by the hop count to calculate the offset delay time can be in the range of ten to thirty seconds. However, this time can be changed to allow for other delays, giving the router devices time to power on, perform the attachment procedure, and / or begin advertising.

[0213] In another example, when calculating the offset delay time of a control unit, a different amount of time can be added for each hop count. As the hop count increases, the amount of time added for each hop count can be more or less. For example, as the hop count increases, the amount of time added to the offset delay time can increase by a predefined increment to allow more time to process messages in a larger network. The amount of time added to the offset delay time can vary based on the number of control units with the same hop count. This allows for shorter delays when fewer control units perform the attachment procedure, and larger delays when more units perform the attachment procedure. The control unit can store control units with the same hop count from a previously formed network, or this can be transmitted from a central computing unit or debugging unit to the control unit.

[0214] Return to reference Figure 9C After waiting for the coordinated startup time of the router devices at 963, the control device can determine at 964 whether it has received an announcement message from another control device to which it is attached in the previously formed network. The control device can receive the announcement message from the leader device (e.g., the announcement message transmitted at 960) or from another router device (e.g., the announcement message transmitted at 974). For example, the control device can wait to receive an announcement message at 964 from either the leader device or a router device in the network. Furthermore, the control device can wait to receive an announcement message at 964 from a selected router device. For example, the selected router device can be a router device through which network communication transmissions traverse the network to reach the leader device in the previously formed network; the leader device can be either a leader device or a router device (e.g., depending on whether the control device was previously attached to the leader device or another router device in the previously formed network). A unique identifier for the selected router device (e.g., the router through which network communication transmissions traverse the network to reach the leader device in the previously formed network) can be stored in memory. The control device may wait for an advertisement message from the selected router device, whose unique identifier is stored in memory. If the control device has not yet received an advertisement message from the selected router device, at 966 the control device may determine whether a timeout period has elapsed. If the timeout period has elapsed and an advertisement message has not been received, at 968 the control device may relinquish its previous role and begin another attachment procedure. If the control device receives an advertisement message from the selected router device, at 970 the control device may attempt to attach to that router device (e.g., as described in more detail below).

[0215] After waiting for the coordinating router device's startup time at point 963, the control device may wait at point 964 for a first time period (e.g., approximately 30 seconds) to receive an advertisement message from the selected router device whose unique identifier is stored in memory. When the control device receives the advertisement message from the selected router device during the first time period, at point 970, the control device may attempt to attach to the selected router device. If the control device does not receive an advertisement message from the selected router device before the end of the first time period, the control device may wait for a second time period (e.g., approximately 30 seconds) to receive advertisement messages from other router devices (e.g., those other than and / or including the selected router device). For example, the control device may wait during the second time period to receive an advertisement message from either the leader device and / or other router devices in the network. When the control device receives an advertisement message from a router device during the second time period, at point 970, the control device may attempt to attach to the router device from which the advertisement message was received. For example, when the control device receives an advertisement message during the second time period, the control device may attempt to attach to either the leader device and / or other router devices in the network. Furthermore, when the control device receives an advertisement message from the router device during the second time period and the received signal strength (RSSI) value of the received advertisement message exceeds a threshold, the control device attempts to attach to the router device. If the control device does not receive an advertisement message from the router device before the end of the second time period, at point 968 the control device may relinquish its previous role and begin another attachment procedure.

[0216] If at 964 the control device receives an advertisement message from the selected router device whose unique identifier is stored in memory, then at 970 the control device can attempt to attach to the selected router device by transmitting a unicast request to that router device. At 970, the control device can transmit a link request message (e.g., as a unicast message) to the selected router device whose unique identifier is stored in memory, which the control device can use to restore its role in the previously established network. The control device can select the previous leader device or router device based on whether the control device is attached to the leader device of the previously established network or another router device. For example, if the control device is directly attached to the leader device in the previously established network (e.g., ...), Figure 2E In router devices 220a and 220c, the control device can transmit attachment messages configured to establish router-to-router links, such as link request messages (e.g., as unicast messages), to the leader device of a previously formed network. However, if the control device is not directly attached to the leader device (e.g., ...), Figure 2EIf router devices 220b and 220d are used, the control device can transmit a link request message (e.g., as a unicast message) to the router device, and the control device can communicate with the leader device through the router device. For example, refer to Figure 2E Router device 225b may store an identifier for router device 225c, which may indicate the next hop back to leader device 215. Router device 225b may transmit a link request message as a unicast message to router device 225c after waiting for the coordination start time. At 972, the control device may determine whether a response has been received to the link request message transmitted at 970. As described herein, the response to the link request message may be a link acceptance message, which may instruct the establishment of a communication link for communication with the control device in the previously formed network. The link acceptance message may include information (e.g., a frame counter) that allows the control device to decrypt messages from the device with which it has established a communication link.

[0217] If a response to the link request message is not received at 972 (e.g., after a certain period of time), then at 968, the control device may relinquish its role in the previously formed network and begin another attachment procedure. A response to the link request message may instruct the leader or other router device of the previously formed network to be powered on and accept link requests from other devices in the network. If a response to the link request message is received, then at 974, the control device may transmit a router advertisement message. Transmitting a router advertisement message may notify other router devices on the network that the control device is operating as a router device. Transmitting the advertisement message may trigger other router devices and / or terminal devices attached to the control device in the previously formed network to reattach to the control device and re-form the previously formed network. For example, see reference... Figure 2A If router device 220a sends a router advertisement message, terminal device 230a and hibernating terminal device 250 can be triggered to reattach to router device 220a. (See reference) Figure 2E If router devices 225a and 225c transmit router advertisement messages, router devices 225e and 225d may be triggered to reattach to router device 225a, and router device 225b may be triggered to reattach to router device 225c. Router devices 225b, 225d, and 225e may wait for router advertisements from their respective router devices to which they were previously attached during their coordinated startup time.

[0218] Refer again Figure 9CThe control device can determine that it is a terminal device. For example, if the control device determines at 962 that it is not a router device in the previously formed network, then at 976 the control device can determine that it is a terminal device and wait for a coordinated startup time. The coordinated startup time of the terminal device can be a predetermined time. The coordinated startup time of the terminal device can be longer than the coordinated startup time of the router device. The coordinated startup time of the terminal device can be long enough to allow the router devices to establish communication with each other before the terminal device attempts to attach to the router device. For example, the coordinated startup time of the router device (e.g., the coordinated startup time at 963) can be a random time between zero seconds and one second, while the coordinated startup time of the terminal device (e.g., the coordinated startup time at 976) can be a random time between ten seconds and twenty-five seconds. Furthermore, the coordinated startup time can be calculated as described herein.

[0219] The coordination start-up time can end after the router device in the previously formed network has been reattached to other devices in the network. After waiting for the coordination start-up time to end at 976, the control device can determine at 975 whether it has received an announcement message from the parent device of the control device in the previously formed network.

[0220] The control device may receive notification messages from its previous parent device. For example, the control device may wait at 975 to receive a notification message from a router device through which network communication is transmitted in a previously established network (e.g., a previous parent device). The unique identifier of the router device to which the control device is attached in the previously established network may be stored in memory. The control device may wait for a notification message from its previous parent device, whose unique identifier is stored in memory, in order to be able to communicate in the previously established network. If the control device has not yet received a notification message from its previous parent device, whose unique identifier is stored in memory, in order to be able to communicate in the previously established network, at 977 the control device may determine whether a timeout period has elapsed. If the timeout period has elapsed and a notification message has not been received, at 968 the control device may relinquish its previous role and begin another attachment procedure.

[0221] If the control device receives an announcement message from a previous parent device whose unique identifier is stored in memory, at 978 the control device may transmit a unicast attachment message (e.g., a parent request message) configured to establish a parent-child link to the previous parent device. At 978, the control device may also transmit the parent request message (e.g., as a unicast message) to a parent router device whose unique identifier is stored in memory, which the control device can use to restore its role in the previously formed network. The control device may select the previous parent device based on whether the control device is attached as a child device to the leader device of the previously formed network or to another router device. For example, if the control device is directly attached as a child device to the leader device in the previously formed network (e.g., ...), Figure 2C and Figure 2D Terminal device 234a and Figure 2B If the terminal device 223 is not directly attached to the leader device of the previously formed network, the control device may transmit a parent request message (e.g., as a unicast message) to the leader device of the network. However, if the control device is not directly attached to the leader device (e.g., terminal device 223), the control device may transmit a parent request message (e.g., as a unicast message) to the leader device of the previously formed network. Figure 2A If the terminal devices 230a, 230b, hibernation terminal device 250, and / or REED device 240 are involved, the control device can transmit a parent request message (e.g., as a unicast message) to the router device, through which the control device can communicate on the network (e.g., with the leader device). For example, refer to... Figure 2A The terminal device 230a may store the identifier of the router device 220a, which may indicate the next hop to return to the leader device 210. The terminal device 230a may transmit the parent request message as a unicast message to the router device 220a after waiting for the coordination start time.

[0222] Refer again Figure 9C At 980, the control device can determine whether a response has been received to the parent request message transmitted at 978. The response to the parent request message can be a parent response message. If no response to the parent request message is received (e.g., within a predefined time period), at 968, the control device can relinquish its role in the previously formed network and begin another attachment procedure. A response to the unicast message can instruct the parent device of the previously formed network to be powered on and accept the child device. An attachment procedure can be executed to attach to another network or network partition as described herein. If a response to the parent request message is received, the control device can continue communicating with the same parent device in the previously formed network.

[0223] Figure 9D This is a flowchart illustrating a sequence of exemplary messages transmitted between devices in network 940a when a startup and / or attachment procedure is performed to attach to a device in a previously formed network. Figure 9DThe startup and / or attachment procedures shown in the sequence flowchart can reflect the execution of the device in network 940a. Figure 9C The flowchart 952 shown and described herein represents one or more portions of a sequence of messages in network 940a. See again... Figure 9D The exemplary network 940a may include [interconnection / connection / etc.]. Figure 9B The illustrated network 940 has a similar device configuration. Similarly, network 940a may include... Figure 2E The subset of devices in network 200c shown is for illustrative purposes only, but other networks with different configurations may operate similarly. Network 940a may include leader device 215, router devices 225a, 225d, 225f, and terminal device 260 attached to a parent device (e.g., router device 225f).

[0224] like Figure 9D As shown, leader device 215 can share a single-hop communication link with router device 225a. During network formation, router device 225a can store the router identifier of leader device 215 and the hop count from the leader device (e.g., hop count = 1), through which single-hop communication towards leader device 215 can be performed. Router device 225a can share a single-hop communication link with router device 225d. During network formation, router device 225d can store the router identifier of router device 225a and the hop count from the leader device (e.g., hop count = 2), through which single-hop communication towards leader device 215 can be performed. Router device 225d can share a single-hop communication link with router device 225f. During network formation, router device 225f can store the router identifier of router device 225d and the hop count from the leader device (e.g., hop count = 3), through which single-hop communication towards leader device 215 can be performed. Although in Figure 2E Although not shown, terminal device 260 may share a single-hop communication link with router device 225f. During network formation, terminal device 260 may store the router identifier of parent device 225f.

[0225] When devices in network 940a are powered off and on after the network has been formed, each device can execute a startup and / or attachment procedure to attempt to re-form the previously formed network. Leader device 215 can identify itself as the leader device and transmit a link request message 984. The link request message 984 can be sent as a multicast message. The link request message 984 can be used to determine whether another leader device has already formed in the network. If leader device 215 fails to receive a response to the link request message 984, leader device 215 can maintain its role as the leader device, begin transmitting advertisement messages, and allow attachment of non-leader router devices that were previously attached to leader device 215 on the previously formed network.

[0226] Router device 225a may wait for a coordinating router device startup time 982 before listening to an advertisement message transmitted from leader device 215, which is attached to router device 225a in a previously formed network. The coordinating router device startup time of router device 225a may be the same as or different from the coordinating router device startup times 982a, 982b of other router devices 225d, 225f in network 940a. The coordinating router device startup times 982, 982a, 982b may be the same predefined time because each corresponding router device 225a, 225d, 225f may wait to receive an advertisement message before performing communication on network 240a. The delay caused by waiting for an advertisement message from another router device may allow router device 225a, which is closer to leader device 215 (e.g., has a lower hop count from leader device 215), to have a higher priority than router devices 225d, 225f, which are farther from leader device 215 (e.g., have a larger hop count from leader device 215).

[0227] The coordinated startup time 982 of router device 225a may differ from the coordinated startup times 982a and 982b of other router devices 225d and 225f. For example, the coordinated startup time 982 may be equal to a base delay time (e.g., which may be the same for each router device 225a, 225d, and 225f) plus an offset delay time. The offset delay time of the coordinated router device startup time 982 may be based on the hop count between router device 225a and leader device 215. For router devices with a larger hop count from leader device 215, the offset delay time may be weighted higher. For example, the offset delay time may be based on a multiple of the hop count back to leader device 215 (e.g., hop count = 1). The hop count may be locally stored at router device 225a during the formation of the previously formed network.

[0228] After router device 225a waits for the coordinating router device startup time 982, router device 225a may listen for and receive an advertisement message 985 from leader device 215. The advertisement message 985 may be transmitted as a multicast message. Router device 225a may have a locally stored router identifier or other unique identifier for leader device 215 to identify leader device 215 as the device to which router device 225a is attached in the previously formed network. Router device 225a may identify the advertisement message 985 from leader device 215 and determine that leader device 215 is powered on and capable of receiving link requests. In response to advertisement message 985, router device 225a may transmit a unicast request message 986 to leader device 215. The unicast request message 986 may be transmitted by router device 225a so that router device 225a attempts to restore its role in the previously formed network. The unicast request message 986 may be a link request message used to re-establish a communication link between router device 225a and leader device 215. The unicast request message 986 may include a router identifier, which is another unique identifier of the leader device 215.

[0229] Leader device 215 may receive unicast request message 986 and respond with unicast response message 987. As described herein, unicast response message 987 may be a link acceptance message, which may indicate the formation of a communication link for communication between router device 225a and leader device 215, as in a previously formed network. The link acceptance message may include information (e.g., a frame counter) that allows router device 225a to decrypt messages from leader device 215 with which it has established a communication link. After receiving unicast response message 987 at router device 225a, router device 225a may transmit router advertisement messages in network 940a.

[0230] Router device 225d may wait for a coordinated router device startup time 982a before listening to advertisement messages transmitted from router device 225a attached to router device 225d in a previously formed network. As described herein, the coordinated router device startup time of router device 225d may be the same as or different from the coordinated router device startup times 982, 982b of other router devices 225a, 225f in network 940a. The coordinated startup time 982a of router device 225d may be equal to a basic delay time (e.g., which may be the same for each router device 225a, 225d, 225f) plus an offset delay time. The offset delay time of the coordinated router device startup time 982a may be based on the hop count between router device 225d and leader device 215. For router devices with a larger hop count from leader device 215, the offset delay time may be weighted higher. For example, the offset delay time may be based on a multiple of the hop count back to leader device 215 (e.g., hop count = 2). The offset delay time of router device 225d can be longer than that of router device 225a because router device 225d has a larger hop count relative to leader device 215. The hop count can be locally stored at router device 225d during the formation of the previously formed network.

[0231] After router device 225d waits for the coordinated router device startup time 982a, router device 225d can listen for and receive advertisement messages 988 from router device 225a. Advertisement message 988 can be transmitted as a multicast message. Router device 225d may have a locally stored router identifier or other unique identifier for router device 225a to identify router device 225a as a device to which router device 225d is attached in the previously formed network. Router device 225d can identify advertisement messages 988 from router device 225a and determine that router device 225a is powered on and capable of receiving link requests.

[0232] In response to announcement message 988, router device 225d may transmit a unicast request message 989 to router device 225a. The unicast request message 989 may be transmitted by router device 225d so that router device 225d may attempt to restore its role in the previously established network. The unicast request message 989 may be a link request message used to re-establish the communication link between router device 225d and router device 225a. The unicast request message 989 may include a router identifier, which is another unique identifier of router device 225a.

[0233] Router device 225a may receive unicast request message 989 and respond with unicast response message 990. As described herein, unicast response message 990 may be a link acceptance message, which may indicate the formation of a communication link for communication between router device 225d and router device 225a, as in a previously formed network. The link acceptance message may include information (e.g., a frame counter) that allows router device 225d to decrypt messages from router device 225a with which it has established a communication link. After receiving unicast response message 990 at router device 225d, router device 225d may transmit router advertisement messages in network 940a.

[0234] Router device 225f may wait for a coordinated router device startup time 982b before listening to advertisement messages transmitted from router device 225d attached to router device 225f in a previously formed network. As described herein, the coordinated router device startup time of router device 225f may be the same as or different from the coordinated router device startup times 982, 982a of other router devices 225a, 225d in network 940a. The coordinated startup time 982b of router device 225f may be equal to a basic delay time (e.g., which may be the same for each router device 225a, 225d, 225f) plus an offset delay time. For router devices with a larger hop count from leader device 215, the offset delay time may be weighted higher. The offset delay time of the coordinated router device startup time 982b may be based on the hop count between router device 225f and leader device 215. For example, the offset delay time may be based on a multiple of the hop count returning to leader device 215 (e.g., hop count = 3). The offset delay time of router device 225f can be longer than that of router devices 225a and 225d because router device 225f has a larger hop count relative to leader device 215. The hop count can be locally stored at router device 225f during the formation of the previously formed network.

[0235] After router device 225f waits for the coordinated router device startup time 982b, router device 225f can listen for and receive the advertisement message 991 transmitted from router device 225d. The advertisement message 991 can be transmitted as a multicast message. Router device 225f may have a locally stored router identifier or other unique identifier for router device 225d to identify router device 225d as the device to which router device 225f is attached in the previously formed network. Router device 225f can identify the advertisement message 991 from router device 225d and determine that router device 225d is powered on and capable of receiving link requests.

[0236] In response to announcement message 991, router device 225f may transmit a unicast request message 992 to router device 225d. The unicast request message 992 may be transmitted by router device 225f so that router device 225f may attempt to restore its role in the previously established network. The unicast request message 992 may be a link request message used to re-establish the communication link between router device 225f and router device 225d. The unicast request message 992 may include a router identifier, which is another unique identifier of router device 225d.

[0237] Router device 225d can receive unicast request message 992 and respond with unicast response message 993. As described herein, unicast response message 993 can be a link acceptance message, which indicates the formation of a communication link for communication between router device 225f and router device 225d, as in a previously formed network. The link acceptance message may include information (e.g., a frame counter) allowing router device 225f to decrypt messages from router device 225d with which it has established a communication link. After receiving unicast response message 993 at router device 225f, router device 225f can transmit router advertisement messages in network 940a.

[0238] Terminal device 260 may wait for a coordinated terminal device startup time 983 before listening to an announcement message transmitted from router device 225f, which is stored locally in a previously formed network as a parent device of terminal device 260. The coordinated startup time 983 of terminal device 260 may be a predetermined time longer than the coordinated startup times of router devices 225a, 225d, 225f (e.g., to allow router devices 225a, 225d, 225f to establish communication with each other before terminal device 260 attempts to attach to router device 225f). Furthermore, the coordinated startup time 983 of terminal device 260 may be calculated, for example, in a manner similar to or different from how the coordinated startup times 982, 982a, 982b of router devices 225a, 225d, 225f are calculated. For example, the coordinated startup time 983 of terminal device 260 may be calculated as described herein based on the hop count of the terminal device using a basic delay time (e.g., which may be the same for each terminal device) and / or an added delay time. As described herein, the hop count of a control device, such as terminal device 260, may be stored at the control device or otherwise transmitted to the control device. The coordinated startup time 983 of terminal device 260 may have a longer base latency time (e.g., which may be the same for each terminal device in the network) and / or offset latency time than the base latency time of router devices 225a, 225d, 225f and / or the offset latency time. For example, the base latency time of router devices 225a, 225d, 225f may be between zero seconds and one second, and the base latency time of terminal device 260 may be between ten seconds and twenty-five seconds. The base latency time of terminal device 260 may be a multiple of the base latency time of router devices 225a, 225d, 225f. The longer coordinated startup time 283 of terminal device 260 may prioritize router devices 225a, 225d, 225f to allow router devices 225a, 225d, 225f to perform startup and / or attachment procedures and to be ready to receive parent requests from terminal devices. The amount of time added to each hop count of the coordinated startup time 983 for terminal device 260 may be the same as or different from the amount of time added to each hop count for router devices 225a, 225d, and 225f.

[0239] After the terminal device 260 waits for the router device startup time 983 to be coordinated, the terminal device 260 can listen for and receive an announcement message 994 from the router device 225f. The announcement message 994 can be transmitted as a multicast message. The terminal device 260 may have a locally stored router identifier or other unique identifier for the router device 225f to identify the router device 225f as a parent device to which the terminal device 260 is attached in the previously formed network. The terminal device 260 can identify the announcement message 994 from the router device 225f and determine that the router device 225f is powered on and capable of receiving parent requests.

[0240] In response to notification message 994, terminal device 260 may transmit a parent request message 995 to router device 225f. The parent request message 995 may be transmitted as a unicast message. The parent request message 995 may be transmitted by terminal device 260 so that terminal device 260 may attempt to resume its role as a child device of router device 225f in the previously established network. The parent request message 995 may be a request to re-establish the communication link between terminal device 260 and router device 225f. Terminal device 260 may identify in memory that it is attached to router device 225f in the previously established network for transmitting messages to leader device 215. For example, the identifier of router device 225f may indicate the next hop to return to leader device 215. Terminal device 260 may transmit the parent request message 995 to router device 225f, to which it is attached in the previously established network. The parent request message 995 may include a router identifier, which is another unique identifier of router device 225f.

[0241] Router device 225f can receive parent request message 995 and respond with parent response message 996. As described herein, parent response message 996 can indicate that router device 225f has accepted terminal device 260 as a child device and has re-established a communication link for communication between terminal device 260 and router device 225f, as in a previously established network. Parent response message 996 may include information (e.g., a frame counter) that allows terminal device 260 to decrypt messages from router device 225f with which it has established a communication link. After receiving parent response message 996 at terminal device 260, terminal device 260 can transmit messages out to other devices in network 940a via router device 225f.

[0242] As described herein, control devices joined to different networks or network partitions may not be able to communicate with each other. Therefore, to enable all control devices in a load control system to communicate with each other, control devices in a load control system may join a single network or network partition. However, in some scenarios, multiple networks or network partitions may be formed in a load control system. For example, when a control device cannot be attached to a router device on an existing network or network partition, the control device may form a new network or network partition. Figures 10A to 10C An exemplary procedure is shown for forming a single network or network partition to which a control device in a load control system is attached.

[0243] Figure 10A This is a flowchart of an exemplary procedure 1000 for a control device to transition to the role of a router device (e.g., upgrade to a router device). Procedure 1000 can be executed by a control device capable of being assigned the role of a router device, such as a terminal device 240 that meets router criteria. At 1002, the control device can determine whether to transition to the role of a router device. The control device can determine the transition to the role of a router device in multiple scenarios. For example, the control device can determine to transition to a router device if the control device determines that the number of router devices within a network (e.g., or network segment) is insufficient (e.g., below a threshold). As described herein, the control device can determine to transition to the role of a router device when another device attempting to attach to the network (e.g., or network segment) requests to use the control device as its parent device (e.g., by transmitting an attachment message configured to establish a parent-child link, such as a parent request message, to the control device). If the control device fails to determine the transition to the role of a router device, procedure 1000 can exit.

[0244] If the control device determines that it should transition to the role of a router device, it may transmit a message at 1004 indicating that it wants to become a router device. For example, the control device may transmit an address solicitation request message to the leader device of the network or network partition. At 1006, the control device may determine whether a response to the message to become a router device has been received. For example, the response to the message to become a router device may include an assigned router identifier. If no response is received at 1006, the control device may determine at 1008 whether a timeout period has elapsed. If the timeout period has elapsed and no response has been received, procedure 1000 may exit. The timeout period may be predefined and indicates the time period during which a response to the message to become a router device will be received.

[0245] If a response to the message indicating becoming a router device is received at 1006, the control device can transmit a link request message at 1010. As described herein, router devices within the network can respond to the link request message with a link accept message, and the control device can now be assigned the role of a router device. After a router device upgrade, other devices can attach to the control device and establish parent-child links with it, which reduces the likelihood of the control device forming a new network segment because it failed to attach to a device in an already formed network or network segment. Therefore, at 1012, the control device executing program 1000 can communicate with the router device that responded to the link request transmitted at 1010, and program 1000 can exit.

[0246] Refer again Figure 2B Multiple network partitions 201, 202, and 203 can be formed within a single network 200b. However, devices in one partition (e.g., the first network partition 201) may not be able to communicate with devices in another partition (e.g., the second network partition 202 and / or the third network partition 203). For example, now referring to... Figure 1 If network device 190 is attached to a different network partition than floor lamp 142, network device 190 may be unable to communicate with floor lamp 142 (e.g., to send load control commands to floor lamp). Similarly, if system controller 110 is attached to a different network partition than power window cover 150, system controller 110 may be unable to communicate with power window cover 150. However, referring back to the reference... Figure 2B When each device in a network such as network 200b is located in a single network partition, these devices may eventually be able to communicate with each other (e.g., as...). Figure 2A (As shown). Therefore, in order to merge multiple network partitions into a single network partition, the device may attempt to attach to a higher-priority network partition. For example, a network partition with a higher priority value could be a network partition with a higher partition identifier. See again... Figure 2B Network partition 201 may have a higher priority than network partitions 202 and 203 (e.g., because network partition 201 has partition identifier 3, and network partitions 202 and 203 have partition identifiers 1 and 2, respectively). Furthermore, a network partition that includes at least one router device (e.g., at least one router device other than the leader device) may be a network partition with a higher priority than a network partition that does not include a router device, regardless of the network partition's priority value. For example, refer to... Figure 2BSince network partition 202 includes router devices 222a, 222b, 222c, and 222d, network partition 202 can have a higher priority than network partition 203 (e.g., even if network partition 203 has a higher priority value of 2). Therefore, if leader device 213 hears an announcement message from the control device in network partition 202, leader device 213 can attempt to attach to network partition 202.

[0247] As described herein, router devices within a network partition can be assigned router identifiers (e.g., router IDs) by the leader device of the respective network partition. When a control device attempts to attach to another control device on a network partition and then attempts to become a router device, a router identifier can be randomly assigned to that device (e.g., from a predefined range of router identifiers). Alternatively or concurrently, when a control device attempts to attach to another control device on a network partition and then attempts to become a router device, the device can request to be assigned a specific router identifier. For example, a router device can request to be assigned a specific router identifier when it has been assigned the requested router identifier in the network partition to which it was previously attached. Furthermore, if a router device subsequently attaches to another network partition and uses the router identifier assigned in the previous network partition, a sub-device of the router device from the previous network partition can (e.g., by using an attachment procedure) automatically attach to a router device in the other network partition (e.g., without attempting to attach to another router device on the network partition, as described herein in conjunction with Figures 6 to 6). Figure 8B (as described above). However, if the router device is attached to another network segment and cannot use the requested router identifier (e.g., the router device has been assigned a different router identifier), the router device's sub-devices may not automatically attach to the other network segment. Instead, the sub-devices may have to use the identifiers shown in Figures 6 to 7. Figure 8B The described procedure is used to attach to another router device on a network partition (e.g., using an attachment procedure to establish a parent-child link).

[0248] Child devices of a parent device detached from a network partition may be unable to communicate with other devices on the network partition (e.g., because the parent device facilitates communication for the child devices), and the child devices may attempt to attach to another router device in the partition and establish a parent-child link with that other router device. In some instances, the parent device detaching from a network partition to attach to another network partition may be the leader device of that network partition. As described herein, when a leader device detaches from a network partition, the network partition may no longer exist (e.g., because each network partition must include at least one leader device). As a result, when a leader device detaches from a network partition, the child devices of the leader device and any router devices on the network partition may attempt to attach to another network partition. As described herein, as the number of devices attempting to attach to other network partitions increases, the attachment of a device to another partition network can be delayed (e.g., due to the backoff period as described herein). However, if a device initiates the attachment procedure earlier, the formation of a single network partition in the network can be accelerated.

[0249] Figure 10B This is a flowchart of an exemplary procedure 1020 executed by a control device (e.g., a parent device) in response to receiving a message (e.g., from a child device). For example, the message may be received via a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 200, 201, 202). Procedure 1020 may be executed by a control device acting as a parent device (e.g., a leader device or a router device) that has at least established a parent-child relationship with a child device (e.g., a terminal device, a dormant terminal device, and / or a terminal device compliant with router conditions). Figure 10B As shown, procedure 1020 can be executed by the control device in response to receiving a message at 1021. At 1022, the parent device can determine whether the received message comes from a child device (e.g., a child device attached to the control device executing procedure 1020). If the message is received from a control device other than a child device, the parent device can process the message accordingly at 1028. For example, the message received at 1021 could be an advertisement message from a router device attached to another network partition. Furthermore, at 1028, the control device can process the router advertisement message to determine the priority associated with other network partitions (e.g., determining whether other network partitions have a higher priority), and / or to determine whether there are conflicts on other network partitions (e.g., router ID conflicts). After processing the message at 1028, procedure 1020 can exit.

[0250] As shown in Figure 10, a control device that is a parent device of at least one sub-device can ignore messages from its sub-devices when it detects a conflict (e.g., a router ID conflict) on a higher-priority network. For example, if a message received at 1022 is from a sub-device, the parent device can determine at 1024 whether there is a conflict (e.g., a router ID conflict) between its router identifier and the router identifier of a router device on a higher-priority network partition. As described herein, when the control device receives an advertisement message from a router device attached to a higher-priority network partition and assigned the same router identifier as the device receiving the advertisement message (e.g., when a received message not received from a sub-device of the control device is processed at 1028 of a previous call to procedure 1020), the control device can determine that a router ID conflict exists. For example, an advertisement message received from a control device attached to another network or network partition may include an indication of the router ID of each of the corresponding router devices attached to the other network or network partition, which can provide the control device with the ability to determine whether a router ID conflict exists. If no router ID conflict exists at 1024, the control device can process the message from its sub-device accordingly at 1028. For example, the control device can respond to or route messages received from the sub-device. Again, after processing the message at 1028, program 1020 can exit.

[0251] However, if the control device determines that a router ID conflict does exist (e.g., when a received message not received from a child device of the control device is processed at 1028 of the previous call to procedure 1020), the control device may ignore the message received from the child device at 1026. As described herein, when a router ID conflict exists, the control device may be unable to attach to a higher-priority network partition and continue using the same router identifier. Furthermore, the child device of the parent device may not automatically attach to a higher-priority network partition. Instead, the parent device may detach from its current network partition and attempt to attach to a higher-priority network partition (e.g., using a combination...). Figures 3 to 5 The procedure described in B can reduce the time spent forming a single network partition. An updated router identifier (e.g., a router identifier different from the one assigned in a previous network partition) can be assigned to the parent device by a higher-priority network partition. When the parent device is separated from a network partition, the child device of the parent device may be unable to communicate with other devices in the network partition (e.g., when the child device is communicating via the parent device in the network partition), triggering the child device to attempt to attach to another network partition (e.g., a higher-priority network partition). For example, the child device may periodically (e.g., up to every four minutes) register or poll data from the corresponding parent device, and when the parent device does not respond to the child device registering or polling data, the child device may be triggered to attempt to attach to another network partition.

[0252] When higher-priority network partitions exist, the growth of lower-priority network partitions (e.g., an increase in the number of devices attached to lower-priority network partitions) can increase the amount of time required to form a single network partition. For example, a device attached to a lower-priority network partition may eventually attach to the highest-priority network partition. Furthermore, if the leader device of each of the corresponding lower-priority network partitions becomes separated from its respective network partition, the lower-priority network partition may cease to exist, as described herein. This could cause devices attached to lower-priority network partitions to lose network connectivity and attempt to attach to higher-priority network partitions. Therefore, devices attached to lower-priority network partitions may attempt to attach to higher-priority network partitions simultaneously or substantially simultaneously, which could delay the attachment of devices to higher-priority network partitions (e.g., due to backoff periods as described herein).

[0253] Figure 10C This is a flowchart of an exemplary procedure 1050 executed by a control device (e.g., a leader device) in response to receiving a message. For example, the message may be received via a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 200, 201, 202). Procedure 1050 may be executed by the leader device to determine whether to upgrade the control device (e.g., a terminal device compliant with router conditions) to the role of a router device. Figure 10C As shown, procedure 1050 may execute in response to receiving a message at 1051. At 1052, the leader device may determine whether the message is an attachment message configured to request an upgrade to a router device (e.g., a router upgrade request message and / or an address solicitation message). As described herein, certain devices in a network partition (e.g., terminal devices that meet router criteria) may be upgraded to the role of a router device. To upgrade to the role of a router device, a device may transmit a message to the leader device of the network partition. If the leader device accepts the request to upgrade the device's role to a router device, the leader device may assign a router identifier to the device. If the received message is not a request to upgrade to the role of a router device, procedure 1050 may exit.

[0254] At 1054, the leader device (e.g., leader device 211) can determine whether a higher-priority network partition has exited. As described herein, the device can attempt to attach to the higher-priority network partition, for example, to form a single network partition in the network. If the higher-priority network partition does exist and has been identified by the leader device, at 1062 the leader device can refuse to upgrade the device to the role of a router device (e.g., reject the router upgrade request message). For example, if the leader device refuses to allow the device to upgrade to the role of a router device, the attached device may be unable to attach to the lower-priority network partition to which the leader device is currently attached (e.g., because the attached sub-device may be unable to attach to the network partition by attaching to the device that has been requested to upgrade to the role of a router device). If the attached device cannot attach to the lower-priority network partition, the time spent forming a single network partition in the network can be reduced.

[0255] However, if a higher-priority network partition does not exist or has not yet been identified by the leader device, the leader device can determine the current router count N. ROUTER Is it less than the maximum router count N? ROUTER-MAX The current router count is N. ROUTER This indicates the number of router devices currently attached to a network partition. Maximum router count N ROUTER-MAX This can indicate the maximum number of router devices that can be attached to a network partition, as described herein, and this maximum number can be pre-configured and / or predefined. If the current router count N... ROUTER Less than the maximum router count N ROUTER-MAX (For example, an additional router device may be attached to a network partition), then at 1058 the leader device may transmit a command to promote the device to the role of a router device (e.g., by assigning a router identifier to the device). Furthermore, for example at 1060, the parent device may increment the current router count N. ROUTER This indicates that the router device has been attached to the network partition. However, if variable N... ROUTER Greater than or equal to the maximum router count N ROUTER-MAX (For example, if the maximum number of router devices are attached to a network partition), then at 1062 the parent device can refuse to upgrade the device to the role of a router device (for example, by not assigning a router identifier to the device).

[0256] Many implementations of networks such as Thread networks, for example, allow child devices attached to a parent device to continue establishing and maintaining communication links over the network until those links fail. As described herein, during the initial stages of network formation, the network may include a single router device (e.g., a leader device), and the communication links between the router device and initially added child devices may become fragile as the network grows. For example, a device attached to the network may be a child device of the leader device. As the network grows and advances during formation, the leader device may upgrade the role of one or more of its child devices (e.g., terminal devices that meet router criteria) to that of a router device, for example, to accommodate the attachment of additional devices. Therefore, over time and as the network grows (e.g., as the number of devices attached to the network increases), the number of router devices on the network may increase, which increases the network's communication range.

[0257] As the number of routers attached to the network increases, an additional number of routers can be provided to devices attempting to attach to the network. This allows devices to attach to routers that share a strong communication link with the respective device (e.g., messages between the router and the respective device have a high RSSI). For example, if two devices are located close to each other (e.g., close enough that communication between them is likely to succeed), the two respective devices can share a strong communication link. Similarly, an additional number of routers can be provided to devices attempting to attach to a secondary parent device. This allows the device to attach to a router that shares a strong communication link with the device.

[0258] If a child device is attached to a parent device with a strong communication link, the device's communication over the network can be improved (e.g., the likelihood of messages being successfully sent and / or received can increase). For example, the device's communication over the network can be improved because the communication link between the corresponding child and parent devices may be stronger (e.g., messages can be sent and / or received with stronger or higher receive signal strength indicators). However, as described herein, during the initial stages of network formation (e.g., when the network includes fewer than three routers), the child device may not be able to attach to a parent device with a strong communication link. For example, the child device may not be able to attach to a parent device with a strong communication link because the parent device may not exist (e.g., the network may not be able to upgrade devices that share a strong communication link with the child device). Furthermore, the child device can remain attached to the parent device as long as it successfully sends and / or receives a threshold number of communications (e.g., successfully sends and / or receives communications 25% of the time). As a result, a child device may remain attached to a parent device that fails to have a stronger communication link than the other parent device, which can reduce the success of communication performed for the device on the network (e.g., the possibility that messages may fail to be sent and / or received may increase).

[0259] However, if a sub-device is attached to a parent device with a weaker communication link than other available parent devices, the sub-device's communication over the network may be degraded (e.g., the likelihood of messages failing to be sent and / or received may increase). However, the sub-device may remain attached to the parent device with the weaker communication link. For example, the sub-device may remain attached to the parent device until the number of consecutive failed message transmissions and / or receptions is greater than or equal to a transmission failure threshold (e.g., 5). Furthermore, when message transmissions fail, the sub-device's communication may be delayed, which could cause the load control system to be unable to respond quickly to commands used to implement load control within the system.

[0260] As described herein, during the initial phase of network formation, a child device may not be able to attach to a parent device located near or near the control device (e.g., a router device sharing a strong communication link with the control device). For example, a child device may not be able to attach to a parent device located near or near the control device because the network may also need to upgrade router devices located near or near the child device. Conversely, the control device may attach to a router device that is not located near or near the control device, which may increase the likelihood of message transmission and / or message reception failures. When the network upgrades and adds router devices, the control device may attempt to attach to another router device that is located near or near the control device, thereby increasing the likelihood of successful message transmission and / or reception.

[0261] The control device may attempt to attach to another parent device, for example, to a router device located in or near the device. Furthermore, since routers may be occasionally upgraded during the initial phase of network formation, the routers located in or near the device may change over time. As a result, the rate at which the control device determines whether to attach to another parent device can be variable and / or make it less likely that the network will subsequently upgrade other routers. For example, the rate at which the control device determines whether to attach to another parent device may be based on changes to a secondary parent table. A parent update timer can be used to determine whether to attach to the updated parent device. When the secondary parent table is updated, the parent update timer can be reset (e.g., as...). Figure 9B (As shown at 940 of program 920).

[0262] The child device can determine whether to attach to the updated parent device after the parent update timer expires. For example, the child device can determine to attach to the updated parent device when the communication link (e.g., parent / child link) between the child device and the updated parent device is stronger than the communication link between the child device and its current parent device (e.g., the updated parent device is located closer to the child device than its current parent device and / or the interference source has been removed). If the child device attaches to the updated parent device that shares a stronger communication link with the child device, the communication quality of the child device over the network can be improved.

[0263] Figure 11 This is a flowchart of an exemplary procedure 1100 executed by a control device to attach to an updated parent device. Procedure 1100 can be executed by the control device after the control device has been attached to a parent device on a network or network partition (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). The control device executing procedure 1100 can be a child device attached to a parent device on the network. Procedure 1100 can be executed when at least one auxiliary parent device is identified in an auxiliary parent table (e.g., the auxiliary parent table has non-null values) to potentially be added as an updated parent device and / or when the auxiliary parent device has a stronger average received signal strength identifier than the current parent device for a period of time. Reference now. Figure 2A The program 1100 can be executed by terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250.

[0264] like Figure 11 As shown, procedure 1100 can be executed at 1101 after the attached timer expires. The parent update timer can be reset when the auxiliary parent table is updated. The auxiliary parent table can be updated whenever an auxiliary parent device is added. When a control device is attached to an auxiliary parent device, the auxiliary parent device can be added to the auxiliary parent table. Adding to the auxiliary parent table can indicate that the network is in the initial stage of network formation (e.g., the control device is still attached to the network and / or the leader device is still upgrading router devices on the network), that the control device has been added to the network, and / or that some form of interference (e.g., partitions or other communication devices) has been removed. Updating the auxiliary parent table can indicate that the network's leader device recently upgraded a terminal device to a router device located near the control device, and can also indicate that the network's leader device can update other router devices located near the control device.

[0265] At 1102, the control device can determine a communication metric, such as the received signal strength indicator (RSSI) value of its current parent device. For example, at 1102, the control device can determine the RSSI value of its current parent device. PARAs described herein, the control device can be attached to a parent device, which facilitates communication of the control device over the network. At 1104, the control device can determine the highest received signal strength indicator (RSSI) in the auxiliary parent table. AUX-HI The control device may be attached to one or more auxiliary parent devices. Router devices on the network (e.g., leader devices, such as leader device 210, and / or router devices, such as one of router devices 220a to 220d) may operate as auxiliary parent devices.

[0266] The control device can determine whether the corresponding communication metric of the auxiliary parent device indicates a potential communication link that is stronger than the communication metric of the parent device. For example, such as Figure 11 As shown, at position 1106, the control device can determine the highest received signal strength indicator (RSSI) of the auxiliary parent device in the auxiliary parent table. AUX-HI With the current parent device's Received Signal Strength Indicator (RSSI) PAR Is the difference between them greater than or equal to the hysteresis threshold TH? PAR-HYS (e.g., RSSI) AUX-HI –RSSI PAR ≥TH PAR-HYS ). Lag threshold TH PAR-HYS This can be implemented to ensure that communication between the control device and the auxiliary parent device considered for the updated parent device is stronger than communication between the control device and the current parent device by at least a lag threshold TH. PAR-HYS Lag threshold TH PAR-HYS This prevents sub-devices from updating their parent devices too frequently, for example, among multiple parent devices with similar received signal strength indicators for communication, thus avoiding additional network communication and processing for similar or nominal communication gains.

[0267] Lag threshold TH PAR-HYS This can be predefined (e.g., approximately 10 dB). Hysteresis threshold TH PAR-HYS It can be variable. For example, the hysteresis threshold TH. PAR-HYS It can be based on the highest received signal strength indicator (RSSI) in the auxiliary parent table. AUX-HI Lag threshold TH PAR-HYS It can be set to the highest received signal strength indicator (RSSI) of the auxiliary parent device in the auxiliary parent table. AUX-HI Low predefined amount or percentage. If the highest received signal strength indicator (RSSI) of the auxiliary parent device is at 1100. AUX-HI With the current parent device's Received Signal Strength Indicator (RSSI) PAR The difference between them is less than the hysteresis threshold TH PAR-HYS Then program 1100 can exit.

[0268] If the highest received signal strength indicator RSSI of the auxiliary parent device is at 1106... AUX-HI With the current parent device's Received Signal Strength Indicator (RSSI) PAR The difference between them is greater than or equal to the hysteresis threshold TH PAR-HYS Then, at 1108, the control device can initiate an attachment procedure to attempt to attach to the updated parent device (e.g., after detaching from the current parent device). For example, the updated parent device could be one with the highest received signal strength indicator (RSSI). AUX-HI An auxiliary parent device can improve communication between control devices on the network. Control devices can be attached to devices with the highest received signal strength indicator (RSSI) in the following ways. AUX-HI Auxiliary parent device: Transmits one or more attachment messages configured to establish a parent-child link to the auxiliary parent device, such as a parent request message (e.g., as a unicast parent request message). Has a Highest Received Signal Strength Indicator (RSSI). AUX-HI The auxiliary parent device can transmit a response to the parent request message, which may include an indication of the received signal strength indicator (RSSI) of the parent request message. For example, the RSSI of the parent request message can be used to describe the distance from the control device to the device with the highest received signal strength indicator (RSSI). AUX-HI The strength of communication between the auxiliary parent device and the device.

[0269] If the control device cannot be attached to the highest received signal strength indicator RSSI AUX-HI The auxiliary parent device and / or the device from which the highest received signal strength indicator RSSI is located. AUX-HI If the receive signal strength indicator of an auxiliary parent device indicates that it cannot receive communication from the control device with a higher receive signal strength identifier than the current parent device or a threshold level higher than the current parent device, the control device may attempt to attach to another auxiliary parent device in the auxiliary parent list. For example, the control device may move to the auxiliary parent device with the next lower priority in the auxiliary parent list to attempt attachment.

[0270] At 1110, the control device can reset the parent update timer before exiting program 1100, so that when the parent timer expires, program 1100 can be executed again to see if the control device should attempt to attach to the updated parent device.

[0271] Figure 12This is a flowchart of an exemplary procedure 1200 executed by a control device to transmit a unicast message to a parent device. Procedure 1200 can be executed by the control device after the control device has been attached to another device on the network (e.g., the initial parent device). For example, the control device executing procedure 1200 can be a child device attached to a parent device on the network. When procedure 1200 is executed, the control device can determine when to attempt to attach to the updated parent device or not to attach to the updated parent device. Refer now to... Figure 2A The program 1200 can be executed by terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250.

[0272] like Figure 12 As shown, program 1200 may begin at 1201. For example, at 1201, the control device may execute program 1200 in response to actuation of a button on the user interface. At 1202, the control device may transmit a unicast message (e.g., a unicast message indicating button actuation detected at 1201) to the parent device. At 1204, the control device may determine whether a response to the unicast message has been received (e.g., a response message). For example, the response message may provide an indication that the parent device has received the unicast message (e.g., an acknowledgment message) and / or may otherwise indicate that the transmission of the unicast message was successful. The response message may include an indication of the received signal strength indicator when the unicast message was received at the parent device. If a response message is received, the control device may process the response message at 1208. For example, at 1208, the control device may update a visual indicator of the user interface in response to the response message. However, if no response message is received at 1204, the control device may determine at 1206 whether a timeout period has elapsed. If the timeout period expires at point 1206 and no response is received at point 1204, the control device can increment the number N of failed unicast message transmissions to the parent device at point 1210. FAILED The timeout period can be predefined and can indicate the time period during which a response message will be received. At 1212, the control device can determine the number N of failed transmissions to the parent device. FAILED Is it greater than or equal to the maximum threshold number N of transmissions that the control device must perform before it stops retrying to transmit unicast messages to the parent device? MAX (For example, initial transmission plus retransmission). Maximum threshold number N for transmissions. MAX It can be predefined or preconfigured to, for example, the value twelve (12). If the number of failed transmissions to the parent device N... FAILED The maximum number of transmissions N is not greater than or equal to the maximum threshold number. MAX Then, at point 1202, the control device can retransmit the unicast message to the parent device.

[0273] As described herein, transmissions may fail because the communication link between the control device and the parent device may be weak. For example, the communication link between the control device and the parent device may be weak because the control device may have already been attached to the parent device during the initial stages of network formation (e.g., when the number of available router devices to be attached is low), and / or the control device and the parent device are not located close to each other. At 1214, the control device can determine the number N of failed transmissions to the parent device. FAILED Is it greater than or equal to the maximum number N of transmissions that may fail before the control device attempts to attach to the updated parent device? BAD-LINK Maximum quantity N BAD-LINK? This indicates the maximum number of failed transmissions or retransmissions, which may indicate a weak communication link between the control device and the parent device. Consequently, if the number of failed transmissions N to the parent device... FAILED Greater than or equal to the maximum number N BAD-LINK Then at 1216, the control device may initiate an attachment procedure to attempt to attach to the updated parent device (e.g., because inefficient communication has been identified). For example, the control device may initiate an attachment procedure to establish a parent-child link with an auxiliary parent device that has the next priority order in the auxiliary parent table (e.g., setting the auxiliary parent device as the parent device).

[0274] As described herein, the control device may attempt to attach to an updated parent device to improve the quality of its communication over the network. For example, the communication link between the control device and the updated parent device may be stronger than the communication link between the control device and its current parent device. Figure 13 This is a flowchart of an exemplary procedure 1300 executed by a control device to attempt attachment to an updated parent device. Procedure 1300 can be executed by the control device after the control device has been attached to the current parent device. For example, the control device executing procedure 1300 can be a child device of the current parent device. Refer now to... Figure 2A Program 1300 can be executed by terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250. For example... Figure 13 As shown, program 1300 may begin at 1301. For example, program 1300 may be executed as an attempt to attach to an updated parent device, for example, during the execution of program 1150 (e.g., at 1158 of program 1150) or the execution of program 1200 (e.g., at 1216 of program 1200).

[0275] At 1302, the control device can determine the auxiliary parent table containing the highest received signal strength indicator (RSSI). AUX>CH(For example, the highest received signal strength indicator of a message transmitted from the auxiliary parent device to the child device). For example, at 1302, the control device can simply invoke an auxiliary parent device having a highest received signal strength indicator RSSI as determined during the execution of program 1100 (e.g., at 1104 of program 1100). AUX-HI The auxiliary parent device. At 1304, the control device can determine the highest received signal strength indicator (RSSI) of the auxiliary parent device in the auxiliary parent table. AUX>CH With the current parent device's Received Signal Strength Indicator (RSSI) PAR Is the difference between them greater than or equal to the hysteresis threshold TH? PAR-HYS .

[0276] If the highest received signal strength indicator RSSI of the auxiliary parent device in the auxiliary parent table at position 1304 AUX>CH With the current parent device's Received Signal Strength Indicator (RSSI) PAR The difference between them is greater than or equal to the hysteresis threshold TH PAR-HYS Then, at position 1306, the control device can initiate a connection with the auxiliary parent table that has the highest received signal strength indicator (RSSI). AUX>CH The attachment procedure for the auxiliary parent device. For example, during the attachment procedure, the control device may transmit one or more attachment messages (e.g., parent request messages) at 1306 to attach to the auxiliary parent table with the highest received signal strength indicator RSSI. AUX>CH The auxiliary parent device (e.g., becomes the one with the highest received signal strength indicator RSSI) AUX>CH (A child device of an auxiliary parent device). A parent request message can be a message configured to inquire whether the auxiliary parent device is a possible option for attachment. A parent request message can be part of a two-message exchange in which the auxiliary parent device sends a response message indicating whether the auxiliary parent device can be used as a parent device for operation as a control device. The auxiliary parent device can determine whether it has any openings that can be used to attach child devices, or whether the auxiliary parent device is already a parent device of a threshold number of child devices as defined on the network.

[0277] The control device can attempt to function as the highest received signal strength indicator (RSSI). AUX>CH The auxiliary parent device's child device is attached (e.g., the one with the highest received signal strength indicator RSSI). AUX>CH The auxiliary parent device is set as the parent device because the communication link between the control device and the auxiliary parent device may be strong and / or the control device and the auxiliary parent device may be located close to each other. At 1308, the control device can determine whether it has received a response to an acknowledgment parent request message. For example, it may have a highest received signal strength indicator (RSSI). AUX-HIThe auxiliary parent device may transmit a response in response to receiving a parent request message to confirm that the auxiliary parent device can become the parent device of the control device (e.g., accepting the parent request message). Furthermore, the response may include a Received Signal Strength Indicator (RSSI) for messages (e.g., parent request messages) received by the auxiliary parent device from the control device. CH>AUX Instructions.

[0278] At 1310, the control device may determine whether the auxiliary parent device is able to receive a message from the control device with a higher Received Signal Strength Indicator (RSSI) than the current parent device. For example, at 1310, the control device may determine the RSSI of a message (e.g., a parent request message) received by the auxiliary parent device from the control device. CH>AUX Is it greater than the Received Signal Strength Indicator (RSSI) of the message received by the current parent device from the control device? CH>PAR。 As a result, if both the communication path for messages transmitted from the control device to the updated parent device and the communication path for messages transmitted from the updated parent device to the control device are strong, the control device may attempt to attach to the updated parent device. This is further supported by the Received Signal Strength Indicator (RSSI) of messages received by the auxiliary parent device from the control device (e.g., parent request messages). CH>AUX The received signal strength indicator (RSSI) of the message received by the current parent device from the control device is greater than the value of the received signal strength indicator (RSSI). CH>PAR Then, at position 1312, the control device can transmit the received signal strength indicator RSSI. CH>AUX Stored as Received Signal Strength Indicator (RSSI) CH>PAR (For example, to be used in the future to determine when to attach to the updated parent device). At 1314, the control device may, for example, set the auxiliary parent device as the parent device by initiating an action with the highest received signal strength indicator RSSI. AUX-HI The attachment procedure of the auxiliary parent device, for example, to connect with the device having the highest received signal strength indicator RSSI. AUX-HI The auxiliary parent device establishes a parent-child link (e.g., and from the device with the highest received signal strength indicator RSSI). AUX-HI The auxiliary parent device obtains a child identifier. At 1316, the control device can set a previous parent device as an auxiliary parent device, for example, by initiating an attachment procedure to establish an auxiliary parent link with the previous parent device. As described herein, the attachment procedure may include transmitting one or more attachment messages (e.g., link request messages or link response messages) configured to establish an auxiliary parent link to the previous parent device. For example, initiating an attachment procedure with the previous parent device may indicate that the previous parent device is no longer the parent device of the control device before procedure 1300 can exit.

[0279] However, if the received signal strength indicator RSSI of the message received by the auxiliary parent device from the control deviceCH->AUX Not greater than the Received Signal Strength Indicator (RSSI) of the message received by the current parent device from the control device. CH->PAR If so, the control device can consider the other auxiliary parent device as the updated parent device. At 1318, the control device can determine whether an additional auxiliary parent device exists in the auxiliary parent table. If the control device determines at 1318 that an additional auxiliary parent device exists in the auxiliary parent table, then at 1320, the control device can determine the remaining auxiliary parent devices in the auxiliary parent table that have the highest received signal strength indicator (RSSI). AUX>CH The auxiliary parent device (e.g., excluding the auxiliary parent device that the control device just attempted to attach to). For example, at 1320, the control device can use an auxiliary parent table to determine the auxiliary parent device with the next highest received signal strength indicator. Procedure 1300 can then loop at 1304 to determine the highest received signal strength indicator (RSSI) of the remaining auxiliary parent devices in the auxiliary parent table. AUX>CH With the current parent device's Received Signal Strength Indicator (RSSI) PAR Is the difference between them greater than or equal to the hysteresis threshold TH? PAR-HYS .

[0280] If the received signal strength indicator RSSI of the remaining auxiliary parent devices in the auxiliary parent table at position 1304 AUX>CH With the current parent device's Received Signal Strength Indicator (RSSI) PAR The difference between them is less than the hysteresis threshold TH PAR-HYS Then at 1302, the control device can determine the highest received signal strength indicator (RSSI) of the auxiliary parent device (e.g., all auxiliary parent devices) in the auxiliary parent table. AUX>CH Furthermore, when no additional auxiliary parent devices are found in the auxiliary parent table at 1318, the control device at 1302 can subsequently determine the highest received signal strength indicator (RSSI) of the auxiliary parent devices (e.g., all auxiliary parent devices) in the auxiliary parent table. AUX>CH At point 1314, the control device may continue to attempt to attach to an auxiliary parent device in the auxiliary parent list until it successfully attaches to one of the auxiliary parent devices. Furthermore, the control device may exit procedure 800 after a predetermined timeout period (e.g., without attaching to the updated parent device).

[0281] Figure 14This is a block diagram illustrating an exemplary mobile device 1400 as described herein. The mobile device 1400 may include control circuitry 1402 for controlling the functions of the mobile device 1400. Control circuitry 1402 may include one or more general-purpose processors, special-purpose processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application-specific integrated circuits (ASICs), etc. Control circuitry 1402 may perform signal encoding, data processing, power control, input / output processing, or any other function that enables the mobile device 1400 to perform as described herein. Control circuitry 1402 may store information in and / or retrieve information from memory 1404. Memory 1404 may include non-removable memory and / or removable memory. Non-removable memory may include random access memory (RAM), read-only memory (ROM), hard disk, or any other type of non-removable memory. Removable memory may include a subscriber identity module (SIM) card, memory stick, memory card, or any other type of removable memory.

[0282] Mobile device 1400 may include communication circuitry 1408 for transmitting and / or receiving information. Communication circuitry 1408 may perf...

Claims

1. A method performed by a router device located in a first network partition, wherein the router device is assigned an identifier and has a terminal device attached thereto, enabling the terminal device to transmit and receive messages through the router device via the first network partition, the method comprising: The formation of a second network partition is detected, wherein the first network partition is associated with a first network priority and the second network partition is associated with a second network priority, wherein the second network priority is higher than the first network priority, and wherein one or more router devices are in the second network partition and each of the one or more router devices in the second network partition is assigned a corresponding identifier; Based on messages received from one or more router devices in the second network partition, it is determined that there is an identifier conflict between the router devices in the first network partition and the one or more router devices in the second network partition, wherein determining that there is an identifier conflict between the router devices in the first network partition and the one or more router devices in the second network partition includes determining that the identifier assigned to the one or more router devices in the second network partition is the same as the identifier assigned to the router device. as well as When the second network priority is higher than the first network priority, in response to determining that the identifier conflict exists, the message received from the terminal device attached to the router device cannot be responded to.

2. The method of claim 1, wherein the detection of the formation of the second network partition is based on receiving a message from a router device located in the second network partition.

3. The method of claim 2, wherein the method further comprises: In response to the detection that no identifier conflict exists for the one or more router devices on the second network partition, an joining procedure is initiated to join the second network partition using the identifier assigned to the router device on the first network partition.

4. The method of claim 3, wherein the joining procedure includes transmitting a router upgrade request message including the identifier assigned to the router device in the first network partition, wherein the router upgrade request message is configured to enable the router device in the first network partition to join the second network partition using the identifier assigned to the router device in the first network partition.

5. The method of claim 1, further comprising: A router upgrade request message is received from a control device that joins the first network partition, the router upgrade request message being configured to enable the control device to act as a router device on the first network partition; as well as The router upgrade request message is rejected in response to the detection of the formation of the second network partition.

6. The method of claim 5, wherein the control device is a terminal device that meets router requirements.

7. A non-transitory computer-readable storage medium having program instructions stored thereon, the program instructions causing the control circuit to perform the method as described in any one of claims 1-6 when executed by the control circuit.

8. An apparatus comprising: Control circuit; as well as A memory coupled to the control circuit for storing instructions, which, when executed from the memory, cause the control circuit to perform the method as described in any one of claims 1-6.

9. An apparatus comprising components for performing the method as described in any one of claims 1-6.