Improved attachment in the network

By maintaining auxiliary parent tables and optimizing parent-child link settings in the load control system, the message conflict problem during network formation is solved, and network formation efficiency and system stability are improved.

CN114207684BActive Publication Date: 2025-02-11LUTRON TECHNOLOGY COMPANY LLC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202080056274.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-02
Filing Date
2020-06-20
Publication Date
2025-02-11
Estimated Expiration
2040-06-20

AI Technical Summary

Technical Problem

In a load control system, multiple control devices may cause message conflicts during network formation, delay network formation and installation or operation of load control systems, especially when the scale of network installation increases.

Method used

The control device optimizes the message transmission path, reduces message conflicts, and reduces network congestion by maintaining the auxiliary parent table, determining and setting the auxiliary parent device as the primary parent device, optimizing the message transmission path, reducing message conflicts, and reducing the attachment frequency.

Benefits of technology

By optimizing the settings of parent-child links and auxiliary parent links, reducing message conflicts and delays, improving the network formation efficiency and stability of the load control system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114207684B_ABST
    Figure CN114207684B_ABST
Patent Text Reader

Abstract

A control device may transmit messages with devices in a network through a parent device and receive messages from an auxiliary parent device. The control device may store corresponding communication metrics associated with the parent device and each of one or more auxiliary parent devices. The control device may set one of the one or more auxiliary parent devices as the parent device of the control device, for example, when it is determined that the corresponding communication metric of the auxiliary parent device set as the parent device indicates a stronger communication link than the parent device. When the average received signal strength indicator of the auxiliary parent device is greater than the average received signal strength indicator of the parent device, the control device may determine that the corresponding communication metric of the auxiliary parent device indicates a stronger potential communication link than the parent device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

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

[0003] A user environment, such as a residence or office building, for example, can be configured using various types of load control systems. A lighting control system can be used to control lighting loads that provide artificial light in the user environment. An electric window treatment control system can be used to control the natural light provided to the user environment. An HVAC system 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. The control device may receive a message, which may include a load control instruction for controlling the corresponding electrical load. For example, a message that may include a load control instruction may be generated in response to a user input or interaction at one or more input devices in the input device. The control device may be able to directly control the electrical load. The input device may be able to indirectly control the electrical load via the load control device. Examples of load control devices may include lighting control devices (e.g., dimmer switches, electronic switches, ballasts, or light-emitting diode (LED) drivers), electric window treatments, temperature control devices (e.g., thermostats), AC plug-in load control devices, and the like. Examples of input devices may include remote control devices, occupancy sensors, daylight sensors, glare sensors, color temperature sensors, temperature sensors, and the like. The remote control device may receive user input for performing load control. And the control device may communicate (e.g., send and / or receive messages) in a network using radio frequency (RF) communications such as ZIGBEE communications, BLUETOOTH communications, and / or THREAD communications and / or any suitable Internet of Things communications network. Additionally or in combination, RF communications may be performed via proprietary protocols such as CLEAR CONNECT TM protocol. Summary of the invention

[0005] The control device may be configured to transmit messages to other devices in the network through the parent device. The control device may also receive messages from one or more auxiliary parent devices. The control device may store corresponding communication metrics (e.g., average received signal strength indicators of received messages) associated with the parent device and each of the one or more auxiliary parent devices. Based on the communication metrics, for example, the control device may set the auxiliary parent device in the one or more auxiliary parent devices as the primary parent device of the control device. For example, the corresponding communication metrics of the auxiliary parent device set as the parent device may indicate a potential communication link that is stronger than the communication metric of the primary parent device. When the average received signal strength indicator of the auxiliary parent device is greater than the average received signal strength indicator of the primary parent device (e.g., greater by a certain margin), the control device may determine that 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.

[0006] The control device may transmit an attachment message to the auxiliary parent device, for example, to set the auxiliary parent device as the parent device of the control device. The control device may receive a response message from the auxiliary parent device including a received signal strength indicator when the auxiliary parent device receives the attachment message. The control device may further determine whether the received signal strength indicator when the auxiliary parent device receives the attachment message is greater than the received signal strength indicator when the parent device receives the message from the control device. For example, if the received signal strength indicator when the auxiliary parent device receives the attachment message is greater than the received signal strength indicator when the parent device receives the message from the control device, the control device may set the first auxiliary parent device as the primary parent device of the control device.

[0007] Alternatively, the control device may determine not to set the auxiliary parent device as the primary parent device. The control device may also determine that a corresponding communication metric of a second auxiliary parent device among the one or more auxiliary parent devices indicates a potential communication link that is stronger than the communication metric of the parent device. And when a received signal strength indicator of the second auxiliary parent device when receiving the attach message is greater than a received signal strength indicator of the parent device when receiving the message from the control device, the control device may set the second auxiliary parent device as the primary parent device of the control device.

[0008] The control device may transmit a unicast message to its parent device. In response, when the primary parent device receives the unicast message from the control device, the parent device may transmit an acknowledgment message. The control device may count the number of times the control device transmits a unicast message to the parent device and fails to receive an acknowledgment message from the primary parent device. For example, when the number exceeds a threshold, the control device may determine that the secondary parent device is to be set as the parent device of the control device. The control device may determine that the secondary parent device is to be set as the parent device based on the communication metric of the parent device and the corresponding communication metric of the secondary parent device.

[0009] The control device may maintain an auxiliary parent table including a unique identifier and a corresponding communication metric associated with each of one or more auxiliary parent devices of the control device. The control device may also determine a communication metric of a router device that is not one of the one or more auxiliary parent devices of the control device. The control device may determine that the corresponding communication metric of the auxiliary parent device indicates the weakest communication link of one or more auxiliary parent devices in the auxiliary parent table. The control device may determine that the communication metric of the router device indicates a potential communication link that is stronger than the communication metric of the auxiliary parent device having the weakest communication link, and remove the unique identifier and communication metric of the auxiliary parent device from the auxiliary parent table. The control device may also add the unique identifier and communication metric of the router device to the auxiliary parent table. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0011] Figure 2A Yes Figure 1 A schematic diagram of an exemplary network for communication between devices in a load control system.

[0012] Figure 2B Yes Figure 1 A schematic diagram of an exemplary network or network partition (eg, network or subnetwork) for communication between devices in a load control system.

[0013] Figure 2C and Figure 2D Yes Figure 1 A schematic diagram of another exemplary network for communications between devices within a load control system.

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

[0015] Figure 2F is a table showing exemplary link costs that may correspond to different link qualities.

[0016] Figure 3 is a flow chart of an exemplary debugging procedure.

[0017] Figure 4 is a flow chart of an exemplary procedure that may be performed by a control device prior to attaching to another device on a network.

[0018] Figure 5 is a flow chart of an exemplary procedure for attaching to another device on a network.

[0019] Fig. 6A and Figure 6B is a flow chart of another exemplary procedure for attaching to another device on a network.

[0020] Fig. 7A is a flow chart of an exemplary procedure for counting the number of parent request message attach messages received while a back-off timer is running.

[0021] Figure 7B is a flow chart of an exemplary procedure to be performed after the backoff timer expires.

[0022] Fig. 8A and Figure 8B is a flow chart of an exemplary procedure associated with attaching to a parent device.

[0023] Figure 8C is a flow chart of an exemplary procedure to be executed by a control device to update a secondary parent table of one or more secondary parent devices.

[0024] Fig. 9A and Fig. 9C is a flow chart of an exemplary procedure to be performed by a control device prior to attaching to another device on the network.

[0025] Fig. 9B and Fig.9D is a sequence diagram of an exemplary procedure to be performed by a device on a network before attaching to another device on the network.

[0026] Fig. 10A is a flow chart of an exemplary procedure for becoming a router device.

[0027] Fig. 10B is a flow chart of an exemplary procedure performed by a parent device in response to receiving a message.

[0028] Fig. 10C is a flow chart of an exemplary procedure performed by a leader device in response to receiving a message.

[0029] Fig.11 is a flow chart of an exemplary procedure performed by a child device to determine whether to attempt to attach to an updated parent device.

[0030] Fig.12 is a flow chart of another exemplary procedure performed by a child device to transmit a unicast message to a parent device.

[0031] Fig.13 is a flow chart of an exemplary procedure for attempting to attach to an updated parent device.

[0032] Fig.14 is a block diagram of an exemplary mobile device.

[0033] Fig.15 is a block diagram of an exemplary system controller.

[0034] Fig.16 is a block diagram of an exemplary load control device.

[0035] Fig.17 is a block diagram of an exemplary input device. DETAILED DESCRIPTION

[0036] Figure 1 1 is a diagram of an exemplary load control system 100 for controlling the amount of power delivered to one or more electrical loads from an alternating current (AC) power source (not shown). The load control system 100 may be installed in a room 102 of a building. The load control system 100 may include a plurality of control devices configured to communicate with each other via wireless signals, such as radio frequency (RF) signals 108. Alternatively or additionally, the load control system 100 may include a wired digital communication link coupled to one or more of the control devices to provide communication between the load control devices. The control devices of the load control system 100 may include a plurality of control source devices (e.g., input devices operable to transmit messages in response to user input, occupied / vacant conditions, changes in measured light intensity, etc.) and a plurality of control target devices (e.g., load control devices operable to receive messages and control corresponding electrical loads in response to the 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.

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

[0038] The load control system 100 may include one or more load control devices, such as lighting control devices 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 loads 122 may include LED light sources. 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) that may be controlled individually and / or in unison by the corresponding lighting control device 120.

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

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

[0041] The load control system 100 may include one or more temperature control devices, such as a thermostat 160, for controlling the room temperature in the room 102. The thermostat 160 may be coupled to a 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 communicate messages with a controller of the HVAC system 162. The thermostat 160 may include a temperature sensor for measuring the room temperature of the room 102, and may control the HVAC system 162 to adjust the temperature in the room to a set point temperature. The load control system 100 may include one or more wireless temperature sensors (not shown) located in the room 102 for measuring the room temperature. The HVAC system 162 may be configured to turn on and off a compressor for cooling the room 102, and turn on and off a heat source for heating the room, in response to a control signal received from the thermostat 160. The HVAC system 162 may be configured to turn on and off a fan 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.

[0042] The load control system 100 may include one or more other types of load control devices, such as a screw-in lamp including a dimmer circuit and an incandescent or halogen lamp; a screw-in lamp including a ballast and a compact fluorescent lamp; a screw-in lamp including an LED driver and an LED light source; an electronic switch, a controllable circuit breaker, or other switching device for turning the fixture on and off; a plug-in load control device, a controllable electrical outlet, or a controllable power strip for controlling one or more plug-in loads; a motor control unit for controlling a motor load (such as a ceiling fan or exhaust fan); a drive unit for controlling a motorized window treatment or projection screen; a motorized Interior or exterior blinds; thermostats for heating and / or cooling systems; temperature control devices for controlling the set point temperature of HVAC systems; air conditioners; compressors; electric baseboard 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; video cameras; audio systems or amplifiers; elevators; power supplies; generators; chargers, such as electric vehicle chargers; and alternative energy controllers.

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

[0044] The remote control device 170 may be configured to transmit a message to the system controller 110 (e.g., directly to the system controller) via the RF signal 108 in response to actuation of one or more buttons of 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, shadow sensors, pressure sensors, smoke detectors, carbon monoxide detectors, air quality sensors, motion sensors, security sensors, proximity sensors, fixture sensors, zoning sensors, keypads, multi-zone control units, slider control units, kinetic or solar powered remote controls, key fobs, cellular phones, smart phones, 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.

[0045] The 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. The system controller 110 may be wirelessly connected to the network, for example, using Wi-Fi technology. The system controller 110 may be coupled to the network via a network communication bus (e.g., an Ethernet communication link). The system controller 110 may be configured to communicate with one or more network devices (e.g., a mobile device 190, such as a personal computing device and / or a wearable wireless device) via the network. The mobile device 190 may be located on an occupant 192, for example, may be attached to the occupant's body or clothing, or may be held by the occupant. The mobile device 190 may be characterized by a unique identifier (e.g., a serial number or address stored in a memory) that uniquely identifies the mobile device 190 and, therefore, the occupant 192. Examples of personal computing devices may include smart phones (e.g., Smartphone, Smartphone or smartphone), laptop and / or tablet device (e.g. Handheld computing devices). Examples of wearable wireless devices may include activity tracking devices such as Devices, Device and / or Sony devices), smart watches, smart clothing (e.g. Smart clothing, etc.) and / or smart glasses (such as Google In addition, the system controller 110 may be configured to communicate with one or more other control systems (eg, a building management system, a security system, etc.) via a network.

[0046] The mobile device 190 may be configured to transmit messages to the system controller 110, for example, in one or more Internet Protocol packets. For example, the mobile device 190 may be configured to transmit messages to the system controller 110 over a LAN and / or via the Internet. The mobile device 190 may be configured to communicate with an external service (e.g., if this is the case) via the Internet. The mobile device 190 may transmit and receive the RF signal 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 television white space (TVWS) communication link, or any combination thereof. The RF signal 109 may be the same signal type as the RF signal 108 and / or transmitted using the same protocol as the RF signal 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 personal computer, 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 greater detail in commonly assigned U.S. Patent Application Publication No. 2013 / 0030589, entitled “LOAD CONTROL DEVICE HAVING INTERNET CONNECTIVITY,” published on January 31, 2013, the entire disclosure of which is hereby incorporated by reference.

[0047] The operation of the load control system 100 can be programmed and configured using, for example, the mobile device 190 or other network device (e.g., when the mobile device is a personal computing device). The mobile device 190 can execute a graphical user interface (GUI) configuration software to allow a user to program how the load control system 100 will operate. For example, the configuration software can be run as a PC application or a web interface. The configuration software and / or the 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 (e.g., lighting control devices 120, electric window treatments 150, and / or thermostats 160) of the load control system. The load control database may include association information identifying the association between the load control device and the input device (e.g., remote control device 170, etc.). The association may include device identifiers stored together so that the device can identify the identifiers of the associated devices to enable communication between the devices. The device can identify the stored identifiers of the associated devices and transmit messages to the associated devices and / or identify messages received from the 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 programs for load control systems are described in more detail in commonly assigned U.S. Patent No. 7,391,297, issued on June 24, 2008, entitled "HANDHELD PROGRAMMER FOR A LIGHTING CONTROL SYSTEM," U.S. Patent Application Publication No. 2008 / 0092075, published on April 17, 2008, entitled "METHOD OF BUILDING A DATABASE OF A LIGHTING CONTROL SYSTEM," and U.S. Patent Application Publication No. 2014 / 0265568, published on September 18, 2014, entitled "COMMISSIONING LOAD CONTROL SYSTEMS," the entire disclosures of which are hereby incorporated by reference.

[0048] The control devices of the load control system can communicate with each other via a network. For example, the control device can join the network by starting a joining procedure. During the joining procedure, the control device can send and receive joining messages, and the joining messages can be used to exchange credentials with the network commissioning device. After exchanging credentials, a network key can be provided to the control device, which enables the control device to communicate through the network. Then, the control devices can each try to attach to another device (e.g., a router device) joined to the network, thereby forming a mesh network. For example, the control device can try 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 (e.g., a parent-child link, an auxiliary parent link, a router-to-router link) with the router device. For example, the control device may transmit an attachment message (e.g., a parent request message and / or a parent response message) configured to establish a parent-child link during an attachment procedure to establish a parent-child link with a router device, so that the control device can become a child device of the router device, and the router device can become a parent device of the control device. Similarly, the control device may transmit an attachment message (e.g., a link request message and / or a link response message) configured to establish an auxiliary parent link during an attachment procedure to establish an auxiliary parent link with the router device. After establishing the parent-child link, the control device may transmit and receive messages through other devices over the network. 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.

[0049] The control device may also attach to an additional device (e.g., a router device) that is added to the network and establish a link with it. For example, the control device may 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 may establish an auxiliary parent link with other router devices, so that the other device becomes an auxiliary parent device of the control device. And during the attachment procedure, for example, the control device may send to other router devices and receive from other router devices a plurality of attachment messages configured to establish an auxiliary parent link, such as a link request message or a link response message. The control device may receive and process messages from the auxiliary parent device to which it is attached (e.g., in addition to the parent device to which it is attached), which may increase the reliability of the 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 been added to the network (e.g., via an attachment procedure) may be referred to as network formation.

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

[0051] As the size of a network installation (e.g., the number of devices attached to a network) increases, the number of conflicts that occur during network formation may increase. In addition, after a control device fails to attach to a network continuously (e.g., due to message conflicts and / or lack of connectivity with an already formed network), the device may attempt to form another network (e.g., a network partition). Network partitions may communicate with each other in parallel, but may not communicate with each other (e.g., at least for a period of time and / or until the network partitions are combined 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. When a communication link is established between devices at a certain location, each network may grow, and one or more devices in one network may join other networks. Devices leaving a network may cause excessive processing delays to devices remaining on the network as devices reconfigure or discover their roles in the network.

[0052] Figure 2A 2 is a diagram of an exemplary network 200a that may allow 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 a load control system or Internet of Things (IoT) environment. For example, network 200a may be a mesh network, such as a THREAD network. The various control devices of load control system 100 may communicate with each other via network 200. Figure 2A As shown, network 200a may include a single network partition. In addition, network 200a may be an example of a network partition (e.g., a subnetwork or subnet) within a larger network. For example, network 200a may be an example of a network partition within a larger network composed of multiple network partitions. Network 200a is an exemplary network, and the techniques described herein may be applied to other networks that include, for example, more control devices or fewer control devices than network 200.

[0053] A network such as network 200a can be used to facilitate communication of devices added to the network. The process by which these devices are added to the network and / or form their respective links with each other may be referred to as network formation in this article. As described herein, devices added to the network may form links with each other during network formation. For example, a control device may be attached to another device (e.g., a router device) and establish a parent-child link with other devices. After being attached to a router device (e.g., establishing a parent-child link between the device and the router device), the device may send a message to other devices in the network through the router device, and receive a message including network information through the router device. Figure 2A The circled nodes may represent devices attached to other devices on the 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 the network 200a may communicate with other control devices (e.g., other control devices attached to another control device on the network 200a). Communications within the network 200a may be facilitated by links (e.g., attachments) established within the network 200a. Figure 2A , links between devices may be indicated by lines (eg, solid and dashed lines) connecting the respective control devices.

[0054] A control device added to the network 200a may assume and / or be assigned a corresponding role in the network. For example, the roles may include: a leader device (e.g., leader device 210), a router device (e.g., router devices 220a to 220d), an end device (e.g., end devices 230a and 230b), a router-qualified end device (REED) (e.g., router-qualified end device 240), and / or a dormant end device (e.g., dormant end device 250). The role of the control device may indicate the function and / or capability of the control device relative to the network 200a. In addition, the role of the control device may be based on the attachment of the control device.

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

[0056] Leader device 210 may be attached to multiple router devices (e.g., more than 30 router devices) by establishing one or more router-to-router links, as indicated by the solid lines connected to leader device 210. Leader device 210 may operate as a router device. Router devices 220a to 220d on network 200a (e.g., attached to leader device 210 on network 200a) may 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 may be established by an attachment procedure that includes transmitting an attachment message (e.g., a link request message and / or a link response message) configured to establish a router-to-router link. Router devices 220a to 220d may communicate with each other (e.g., as indicated by the solid lines connecting router devices 220a to 220d). The router devices 220a-220d may communicate with the leader device 210 directly or through one or more other router devices (e.g., as indicated by the solid lines connecting the leader device 210 to the router devices 220a and 220c). The router devices 220a-220d may receive messages and route the messages to other devices on the network 200a (e.g., the end devices 230a, 230b, the router-qualified end devices 240, and / or the dormant end devices 250). For example, the router devices 220a-220d may receive and / or transmit messages between devices or between each other for transmitting a message received from an attached device to another device attached to another router device. Referring now to the load control system 100, for example, an externally powered control device (e.g., a control device that is not battery powered) may be assigned the role of a router device, such as the system controller 110, the lighting control device 120, the electric window treatment 150, and / or the thermostat 160.

[0057] The network 200a may include one or more terminal devices 230a, 230b (e.g., also referred to herein as complete or minimal terminal devices). The terminal devices 230a, 230b may be attached to another device on the network 200a (e.g., a parent device, such as the 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, the terminal devices 230a, 230b may be attached to another device by using an attachment procedure. For example, the terminal device may perform an attachment procedure to establish a parent-child link (e.g., such as a parent request message and a parent response message) by transmitting an attachment message configured to establish a parent-child link. FIG. 2A to FIG. 2E Additionally or alternatively, the terminal device may perform an attachment procedure to establish an auxiliary parent link (e.g., as shown by dashed lines in FIG. 1 ) by transmitting an attachment message (such as a link request message and a link response message) configured to establish an auxiliary parent link. FIG. 2A to FIG. 2E ). For example, Figure 2A As shown, terminal device 230b can establish an auxiliary parent link with router device 220c (eg, as shown by long dashed lines and short dashed lines). Figure 2A 2, and each terminal device is 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). The system controller 110, input devices (e.g., remote control device 170), and / or load control devices (e.g., lighting control device 120, electric window treatment 150, and / or thermostat 160) may be examples of terminal devices 230a, 230b.

[0058] Reference again Figure 2A , the network 200a may include a router-qualified terminal device 240. The router-qualified terminal device 240 may be a terminal device that is capable (e.g., hardware-capable and / or software-capable) 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 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 the network 200a, the router-qualified terminal device 240 may upgrade itself to the role of a router device, thereby allowing the 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. As Figure 2AAs shown, the router-qualified end device 240 can be one of the end devices attached to the router device 220d. The system controller 110, the lighting control device 120, the electric window treatment 150, and / or the thermostat 160 can be examples of the router-qualified end device 240. Now referring to the load control system 100, for example, an externally powered control device (e.g., not a battery-powered control device) can be assigned the role of a router-qualified end device, such as the system controller 110, the lighting control device 120, the electric window treatment 150, and / or the thermostat 160.

[0059] The network 200a may also include a dormant terminal device 250. The dormant terminal device 250 may include a terminal device or may be similar to a terminal device. For example, the dormant terminal device 250 may be a terminal device powered by a limited power source (e.g., a battery). The dormant terminal device 250 may understand its role as a dormant terminal device based on, for example, an indication stored at the dormant terminal device 250. Communications with the dormant terminal device 250 may be performed such that the limited power source is conserved and / or consumed efficiently. For example, the dormant terminal device 250 may periodically disable its corresponding communication circuit between message transmissions. The dormant terminal device 250 may transmit and / or receive messages via the attached router device 220a. As shown in FIG. Figure 2A As shown, the dormant terminal device 250 may be one of the terminal devices attached to the router device 220a. An input device (e.g., the remote control device 170) and / or a load control device (e.g., the electric window treatment 150 when powered by a battery) may be an example of the dormant terminal device 250. In addition, a sensor and / or a battery-powered device may be an example of the dormant terminal device 250.

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

[0061] When the leader device 210 updates the role of the device in the network 200, the leader device may maintain the number of router devices in the network 200a and / or the router identifiers used in the network 200. For example, the leader device 210 may store and / or maintain a bitmap 217, which may be used to indicate the number of routers and / or router identifiers used in the network 200. The bitmap 217 may include a plurality of bits, each of which corresponds to a different router identifier used in the network 200. In one example, the leader device 210 may support 64 router devices, and the leader device 210 may store a 64-bit bitmap for tracking the router identifiers used in the network 200. Each bit in the bitmap may indicate whether the router identifier is identified by the leader device 210 as being in use (e.g., having a value of "1") or unused (e.g., having a value of "0"). The leader device 210 may determine that the control device should be upgraded to a router device, and assign a router identifier to the router device as long as the router identifier is available. The leader device 210 may demote the router device (e.g., to an end device) or remove the router device from the network 200. As router devices are added or removed, bitmap 217 may be updated to indicate the number of router devices and / or router identifiers used in network 200 .

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

[0063] The control device attached to the network 200a may further operate as a parent device and / or a child device. A leader device (e.g., leader device 210) and a router device (e.g., router devices 220a to 220d) attached to one or more terminal devices (e.g., terminal devices 230a, 230b, router-qualified terminal devices 240, and / or dormant terminal devices 250) may operate as a parent device. A terminal device (e.g., terminal devices 230a, 230b, router-qualified terminal devices 240, and / or dormant terminal devices 250) attached to a leader device (e.g., leader device 210) or a router device (e.g., one of router devices 220a to 220d) may operate as a child device. As parent devices, the leader device 210 and the router devices 220a to 220d may each be attached to one or more child devices (e.g., one or more of the terminal devices 230a, 230b, the router-qualified terminal device 240, and / or the dormant terminal device 250, as described herein). In addition, the leader device 210 and the router devices 220a to 220d may store and / or relay messages sent by their respective attached child devices. For example, the leader device 210 and the router device 220 may 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 respective parent device, and / or to a router device or leader device on the path to the intended recipient). Similarly, the leader device 210 and the router devices 220a to 220d may receive messages intended for their respective child devices and route the messages to the appropriate child devices. When the communication circuit of the dormant terminal device is enabled, the parent device of the respective dormant terminal device may schedule communications with the dormant terminal device.

[0064] like Figure 2AAs shown, the link (e.g., attachment) between the child device and the corresponding parent device may be indicated by a dotted line. For example, the router device 220a may be configured as a parent device of the terminal device 230a and the dormant terminal device 250. Similarly, the router device 220b may be configured as a parent device of the terminal device 230b. The router device 220a may receive a message intended for the terminal device 230a and forward the message to the terminal device 230a. Since the router device 220a is configured as a parent device of the terminal device 230a, the terminal device 230a may transmit the message to the router device 220a, and the router device 220a may route the message to the intended recipient. For example, when the terminal device 230a intends to transmit a message to the terminal device 230b, the terminal device 230a may initially transmit the message to the router device 220a. The router device 220a may route the message to the router device 220b (e.g., the parent device of the terminal device 230b). For example, router device 220a may route the message to router device 220b via router device 220c or router device 220d, and then router device 220b may forward the message to terminal device 230b. Figure 2A As shown, router device 220a may route the message to terminal device 230b via router device 220c (eg, an auxiliary parent device of router device 230b).

[0065] A child device may be configured to transmit a unicast message to its corresponding parent device. A control device may transmit a unicast message to another control device in the network directly or via hops through other devices in the network. Each unicast message may be individually addressed to another control device by including a unique identifier of the control device to which the unicast message is transmitted. The control devices may generate a separate unicast message for each control device with which they communicate, and address the unicast message to each control device independently. The unicast message may also include a unique identifier of the control device to which the unicast message is to be received. A control device may determine that it is the intended recipient of a unicast message by identifying its own unique identifier in the unicast message.

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

[0067] A message transmitted by a child device to its respective parent device may include an indication of the intended recipient (e.g., a unique identifier), and the parent device may route the message accordingly. Figure 2A , terminal device 230a may transmit a message to router device 220a (e.g., a parent device of terminal device 230a), and router device 220a may 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 may route the message to router device 220b (e.g., a parent device of terminal device 230b that meets the router condition) via router device 220c or router device 220d. For example, if router device 220a routes the message via router device 220d, router device 220d may forward the message to router device 220b, which may forward the message to terminal device 230b. Router device 220a may identify, via a lookup table, that router device 220b is the parent device to which terminal device 230b is attached. Figure 2A As shown, there may be multiple paths to route a message through the network 200a, and the router device may identify the shortest path (eg, lowest number of hops) to transmit the message to the corresponding device.

[0068] A child device may be configured to communicate with a secondary parent device (eg, configured to communicate with more than one parent device). Figure 2A For example, the terminal device 230b may be configured to communicate with (e.g., transmit messages to and receive messages from) a parent device (e.g., also referred to as a primary parent device) such as the router device 220b. The terminal device 230b may also be configured to communicate with a secondary parent device (e.g., also referred to as a primary parent device) such as the router device 220c. Figure 2A A child device may communicate with (e.g., receive messages from) a parent device (as shown by the long dashed and short dashed lines in FIG. 1 ). A child device may receive unicast messages from its parent device. A child device may also receive multicast messages (e.g., broadcast messages) from its parent device and / or one or more auxiliary parent devices, which may increase the efficiency and reliability of the child device receiving messages. For example, a child device may receive general network announcement messages via an auxiliary parent device. The number of auxiliary parent devices to which a child device is attached may be limited to a threshold number of auxiliary parent devices (e.g., 3, 5, 10, etc.).

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

[0070] The child device may receive an announcement message from a router device other than the parent device of the child device or a router device other than the auxiliary parent device of the child device. For example, the router device may transmit an announcement message so that other control devices can determine that a network has been formed, and the control device that hears the announcement message may try to attach to the router device (e.g., communicate via the network). The control device may receive and track the announcement message transmitted by the router device to determine whether the device is able to communicate via the network. In addition or alternatively, the announcement message transmitted by the corresponding router device may provide other router devices with the ability to measure the communication metric (e.g., RSSI) between the corresponding routers attached to the network (e.g., the router may use the communication metric to update its corresponding routing table or routing information). For example, the communication metric may indicate the quality of the communication link between the two devices that can be used. As described herein, the router device may determine the quality of the communication link between the corresponding router devices by measuring the communication metric, such as the received signal strength value (e.g., average received signal strength value) of the announcement message transmitted between the router devices. For example, the received signal strength value may be determined by measuring the received signal strength indicator (RSSI) of the received announcement message.

[0071] Certain messages may be propagated and broadcast by multiple devices in the network 200a, which may increase the likelihood that the corresponding sub-devices hear the message. For example, a substantially similar multicast message (e.g., a message including the same load control instruction sent to multiple load control devices) may be broadcast instead of sending multiple transmissions. Referring again to the load control system 100, actuation of a button of the remote control device 170 may adjust the intensity of multiple lighting loads (e.g., the lighting load 122 and the plug-in lighting load 142), and the message may be broadcast to adjust the corresponding lighting loads. In addition, the device receiving the broadcast transmission may be configured to process and repeat the message (e.g., forward the message through the network or otherwise act as a repeater) in response to receiving the broadcast transmission.

[0072] The child device may create and maintain an auxiliary parent table. The auxiliary parent table may include a list of auxiliary parent devices with which the corresponding child device is configured to communicate (e.g., attached to and / or capable of processing messages received from it via an auxiliary parent link). In addition, the auxiliary parent table may include an indication of a communication metric indicating the quality of the communication link between the child device and each of the auxiliary parent devices of the child device, such as a received signal magnitude (e.g., an average RSSI). For example, the auxiliary parent table may include a rolling average of the communication metrics of each of the auxiliary parent devices of the child device. The child device may similarly create and / or maintain a router table. The router table may include routers from which the corresponding child device has received messages (e.g., announcement messages). In addition, the router table may include an indication of the communication metrics of messages received from each of the routers in the router table. Additionally or alternatively, the child device may maintain a general router table. The router table may include each of the routers from which the corresponding child device has received messages and a received signal 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 of the child device or an auxiliary parent device of the child device. As used herein, the term secondary parent table may refer to a table separate from a router table or a subset of a router table that includes routers attached as secondary parent devices of child devices.

[0073] As described herein, network 200a may allow a load control system (e.g., Figure 1 The terminal devices 230a, 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, the terminal device 230a may communicate with another terminal device in the load control system via RF communication.

[0074] refer to Figure 1, the remote control device 170 may operate as an end device or a dormant end device for transmitting messages including indications of user input and / or control instructions for controlling another end device (e.g., lighting control device 120, electric window treatment 150, and / or thermostat 160). The remote control device 170 may communicate via one or more intermediate devices, such as a leader device and / or a router device. The leader device and / or router device may communicate with one or more other leader devices and / or router devices in the network to route messages to other end devices (e.g., lighting control device 120, electric window treatment 150, and / or thermostat 160) for performing load control.

[0075] The control device may be attached to a network or network partition (e.g. Figure 2A Another control device on the network 200a shown in FIG. 200a ) is connected to another control device on the network to enable the device to communicate (e.g., transmit and / or receive messages) via the network. The control device may 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 a parent-child link (e.g., multicasting parent request messages) to discover potential parent devices. Parent request messages may, for example, be transmitted by the control device 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 may act as a parent device of the control device.

[0076] Router devices (e.g., leader device 210 and / or router device 220 of network 200a) may respond to the attachment messages they receive. For example, a router device that receives a parent request message (e.g., a multicast parent request message) may respond by transmitting a parent response message. For example, the router devices that receive the multicast parent request message may each transmit a parent response message (e.g., as a unicast message) to the control device that transmits the parent request message. The parent response message may indicate that the control device that transmits the parent response message is available to act as a parent device. Thus, the control device that transmits the parent request message may receive multiple responses to the parent request message and determine the parent device to attach based on the received parent response messages. The control device that transmits the parent request message may identify a 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 with the maximum received signal strength indicator for the response message.

[0077] Since multiple control devices transmit parent request messages as multicast messages in the same time period, the parent devices may each receive multiple parent request messages at the same time or in a short time period. The number of parent request messages received at the parent device may prevent the parent device from being able to fully process the attachment message (e.g., previously or subsequently received). In addition, the parent response message transmitted by each parent device in the parent device receiving the parent request message may be transmitted simultaneously or substantially simultaneously. The number of parent request messages and parent response messages transmitted in the same time period may congest the network 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 cause one or more of the parent request message or the parent response message to fail to be correctly received. 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 may increase the amount of time it takes to complete network formation. When each of the devices in the load control system is provided power, many control devices may attempt to attach to other control devices on the network by transmitting parent request messages at the same time or within the same time period.

[0078] A control device attempting to attach to a router device on a network may 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 attachment messages may be transmitted simultaneously or substantially simultaneously, which may increase the likelihood of message conflicts 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 may delay attachment. For example, the control device may delay attachment by adding time to a backoff timer, and after the backoff timer expires, the control device may attempt to attach to a control device on the network.

[0079] The control device may reduce the frequency with which the control device attempts to attach to a secondary parent device and / or reduce the number of secondary parent devices to which the control device is attached to increase the likelihood of attachment when a request is sent. Similar to network attachment, when the control device attempts to attach to a secondary parent device, multiple messages may be transmitted simultaneously or substantially simultaneously, which may increase the likelihood of message conflicts on the network. Therefore, the control device may reduce the frequency with which the control device attempts to attach to a secondary parent device (e.g., reduce the execution rate of programs attached to the secondary parent device), which may reduce the likelihood of message conflicts. In addition, the control device may reduce the number of attached secondary parent devices, which may also reduce the likelihood of message conflicts.

[0080] Figure 2B 2 is an exemplary diagram of a network 200b having multiple network partitions 201, 202, 203 (eg, separate network partitions). Figure 2B As shown, network partition 201 may include leader device 211 and router devices 221a, 221b, 221c, 221d. In addition, network 201 may include terminal devices 231a, 231b; terminal device 241 that meets router conditions; and dormant terminal device 251. Figure 2B As shown, router device 221a can be a parent device (e.g., a parent device of terminal device 231a and dormant terminal device 251). Similarly, router device 221d can be a parent device of terminal device 241 that meets router conditions, and the router device can be a parent device of terminal device 231b. Router device 221c can be a secondary parent device of terminal device 231b. For example, a unique router identifier can be assigned to each of router devices 221a to 221d in network partition 201. Network partition 202 can include the following parent devices: leader device 212 and router devices 222a, 222b, 222c, 222d. In addition, network 202 can include child devices, such as: terminal devices 232a, 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 router devices 222a to 222d in network partition 202. Network partition 203 may include a single parent device (leader device 213) and a single end device (end device 223).

[0081] like Figure 2B As shown, network partition 203 may include leader device 213 and end 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 that is not connected 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 may be connected to one or more sub-devices (e.g., terminal device 223). Network partition 203 may be a singleton partition. Figure 2B As shown, a singleton partition may include a leader device (e.g., leader device 213). In addition, a singleton partition may include one or more terminal devices (e.g., terminal device 223). Figure 2B As shown, a singleton partition may not include a router device.

[0082] The network 200b may allow communication between control devices in a load control system (e.g., the load control system 100). In addition, network partitions 201, 202, 203 may be formed due to the inability of certain control devices to 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., multicasting a parent request message). However, if the 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 of the already formed network partition), the control device may attempt to form its own network partition (e.g., become a leader device of a new network partition).

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

[0084] A network partition may be associated with a partition identifier (e.g., a partition ID). The partition identifier may 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 may be based on the partition identifier of the network partition. The partition identifier may be assigned by randomly selecting a number from a range of partition identifier values. Now referring to Figure 2B, network partitions 201, 202, 203 may each be associated with a corresponding partition identifier. For example, network partition 202 may be assigned partition identifier 1, network partition 203 may be assigned partition identifier 2, and network partition 201 may be assigned partition identifier 3. Although the partition identifiers of network partitions 201, 202, 203 are sequential (e.g., to provide a simplified explanation), the assignment of partition identifiers to network partitions may be sequential, non-sequential, and / or random. As described herein, a partition identifier may also be an indication of the priority of the corresponding network partition 201, 202, 203. For example, a partition identifier may also be a priority value of the corresponding network partition 201, 202, 203 (e.g., the corresponding priorities of network partitions 201, 202, 203 may be 3, 1, and 2). In addition, a higher priority value may indicate a higher network partition priority (e.g., based on the partition identifier, network partition 201 may be a higher priority network partition than network partitions 202, 203).

[0085] Priorities may be assigned to corresponding network partitions based on the control devices (e.g., router devices and / or terminal devices) in the network partitions. For example, a network partition having at least one router device in addition to a leader device may be given a higher priority than a network partition having only a leader device and no other router devices. Figure 2B , network partition 201 may be given a higher priority than network partition 203 because network partition 201 has router devices 221a to 221d in addition to the leader device, while network partition 203 has no router device. In addition, priorities may 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. Figure 2B , network partition 201 may be given a higher priority than network partition 203 because network partition 201 may have a greater number of control devices in the network partition. Each control device in the network partition may store locally thereon the number of control devices in the network partition. Network partitions having the same number of control devices may be given different priorities using different partition identifiers, as described herein. For example, Figure 2B As shown, network partition 201 and network partition 202 may have the same number of control devices (eg, router devices and / or terminal devices). Based on network partition 201 having a higher or lower partition identifier, network partition 201 may have a higher priority.

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

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

[0088] 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 announcement message from a control device attached to network partition 201 (e.g., from router device 221d). The announcement message may include an indication that the partition identifier of network 201 (e.g., 3) may be 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).

[0089] The router device 222a may attempt to attach to the network partition 201 by transmitting a request to a leader device (e.g., the leader device 211) of the network partition 201. The request may include, for example, a request for the router device to attach to the network partition 201 by requesting to attach to the network partition 201 and be assigned a specific router identifier. For example, the router device 222a may request to attach to the network partition 201 and be assigned the router identifier that the router device 222a is assigned in the network partition 202. In response, if another router device 212a to 212d attached to the network partition 201 has been assigned the requested router identifier, the leader device 211 may deny the request. If none of the router devices 212a to 212d attached to the network partition 201 is assigned the requested router identifier, the leader device 211 may accept the request. If router device 222a is attached to network partition 201 and is assigned the requested router identifier, child devices of router device 222a (e.g., terminal device 232a and dormant terminal device 252) may automatically attach to network partition 201. If 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), the child devices may continue to communicate with router device 222a using the same router identifier (e.g., when the child devices communicate with router device 222a using the router identifier).

[0090] Figure 2C and Figure 2D is an illustration of an exemplary network 200c as the network 200c advances or progresses in network formation. Figure 2CAs shown, network 200″ may include a leader device 214 and an end device 234a. Since network 200″ is in the initial stage of network formation, network 200″ may not yet include a router device. As a result, end 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 end device 234a may be weak (e.g., a received signal strength indicator of a message received by end device 234a may be approximately -60 dB). For example, the communication link between leader device 214 and end device 234a may be weak because leader device 214 and end device 234a are not located close to each other. If the communication link between leader device 214 and end device 234a is weak, the possibility of failure in message transmission and / or reception between leader device 214 and end device 234a may increase.

[0091] Figure 2D Shown in the ratio Figure 2C The network 200c is shown during a later network formation stage. Figure 2D As shown, as network formation progresses (e.g., as time progresses), network 200c may grow to include additional control devices. For example, network 200c may grow to include router devices 224a, 224b. In addition, router devices 224a, 224b may be positioned close to terminal device 234a (e.g., positioned closer to terminal device 234a than leader device 214). In addition, the received signal strength indicator of a message transmitted by router devices 224a, 224b and received by terminal device 234a may be stronger (e.g., stronger than the received signal strength indicator transmitted by leader device 214 and received by terminal device 234a, such as -35dB and -30dB, respectively). Therefore, the potential communication link (e.g., potential parent / child link) between router devices 224a, 224b and terminal device 234a may be stronger than the communication link between leader device 214 and terminal device 234a. In addition, as Figure 2D As shown, a potential communication link between router device 224b and terminal device 234a may be stronger than a potential communication link between router device 224a and terminal device 234a (eg, when router device 224b is located closer to terminal device 234a than router device 224a).

[0092] As network formation progresses or advances, additional devices are attached to the network. As a result, if the terminal device 234a determines to detach from the initial parent device (e.g., leader device 214) and attach to an updated parent device (e.g., router device 224a or router device 224b), the terminal device 234a may experience better communications over the network 200c. For example, as described herein, the updated parent device may be positioned closer to the terminal device 234a than the initial parent device (e.g., so that the updated parent device and the terminal device 234a may have a stronger communication link), which may increase the likelihood of successful message transmission and / or reception. As a result, as network formation progresses, the terminal device may determine whether to attach to the updated parent device. Although Figure 2C and Figure 2D is described using examples where the relative positioning of devices can increase or decrease the communication link shared between the 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 scenarios are merely examples to illustrate that networks may change over time and that changes in the network may be taken into account in an attempt to increase communications through the network.

[0093] Figure 2E 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, 225f. In network 200d, router devices (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) may periodically transmit advertisement messages, which may be used to calculate the cost and / or quality of communication in network 200d. For example, router device 225c may send an advertisement message received by leader device 215, and leader device 215 may send an advertisement message received by router device 225c. Each router device may measure a received signal strength value (e.g., a received signal strength indicator (RSSI)) of the received advertisement message, and calculate a link quality (e.g., an inbound link quality (LQI)) when the advertisement message is received.

[0094] Each router device (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) may send an announcement message as a multicast message. An announcement message transmitted by a router device may be received by a neighboring router device that shares a single-hop communication link with the router device that transmits the announcement message. A single-hop communication link may be capable of transmitting a message (e.g., a digital message) directly from a router device to another router device via unicast and / or multicast communication. For example, router devices 225a, 225c may be neighboring devices that share a single-hop communication link with leader device 215, because router devices 225a, 225c may be capable of directly sending digital messages to leader device 215 and / or directly receiving digital messages from leader device 215. A single-hop communication link may be a communication link on which a router device may be capable of directly receiving an announcement message above a given link quality (e.g., LQI greater than 0).

[0095] After a router device receives a periodic advertisement message from another router device, the router device may calculate a communication metric, such as an inward link quality (e.g., LQI), of the communication link via which the advertisement message is received. The LQI may 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 may be indicated by a value of 0, 1, 2, or 3. Different indicators of the LQI may be assigned based on the RSSI of the received advertisement message and the link margin relative to a predefined reception level. The reception level may be a predefined minimum reception level. The reception level may be established as a predefined RSSI value for communication on the network. For example, the reception level may be defined by a noise floor, which is set to an average RSSI value of the noise generated on the network over a period of time. In an example using the reception level as the noise floor, when the RSSI value of one or more advertisement messages (e.g., the average RSSI of the advertisement messages over a period of time) is higher than the noise floor by a link margin of at least 2 dB, the router device (e.g., the leader device 215 or the router device 225c) may calculate the LQI of the 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 the advertisement messages over a period of time) is higher than the noise floor by a link margin of at least 10 dB, the router device (e.g., the leader device 215 or the router device 225c) may calculate the link quality of the 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 the advertisement messages over a period of time) is higher than the noise floor by a link margin of at least 20 dB, the router device (e.g., the leader device 215 or the router device 225c) may calculate the link quality of the communication received on the link with the neighboring router device as 3. When the RSSI value of one or more announcement messages (e.g., the average RSSI value of the announcement messages over a period of time) cannot be determined to be above the noise floor, a link quality value of zero may indicate that the link quality is unknown or infinite. Although examples of predefined numbers indicating different levels of link quality and / or different link margins that may be assigned to these levels are provided, other indicators and / or values ​​may be used to define the link quality between two routing devices. In addition, although a separate routing device may be provided as an example (e.g., leader device 215 or router device 225c), other routing devices may similarly calculate the link quality of a communication link between adjacent routing devices.

[0096] The LQI of the 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 a notification 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 outbound link quality (LQO) of the communication link. The LQI and / or LQO can be stored in a local router table at each routing device. For example, the leader device 215 can store the LQI and / or LQO of the communication link with each router device in the network 200d in the router table 229. Similarly, the router device 225c can store the LQI and LQO for communicating with each router device in the network 200d in the router table 261.

[0097] As described herein, from the perspective of the device storing the router table 229, 261, the router table 229, 261 can each identify network information for communicating with each router in the network 200d. The number of router devices in the network 200d and / or the router identifiers used in the network 200d can be determined from the bitmap 227, as described herein. The bitmap 227 can be maintained by the leader device 215 and distributed to other routing devices for local maintenance of their router tables. For example, the router devices 225a, 225c can receive the bitmap 227 and update their local router tables. The bitmap 227 can 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 device can 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 the routers identified in the 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 in table 261 indicated in bitmap 277 as unusable in the network.

[0098] The leader device 215 and the router devices 225a, 225b, 225c, 225d, 225e, 225f may each use the LQI and LQO in their respective router tables to calculate link costs for communicating on communication links with other router devices. The link quality of a communication link between two router devices may be the smaller of a value of the link quality of an outgoing digital message (e.g., LQO) and a value of the link quality of a received digital message (e.g., LQI) over a single-hop communication link between the two devices. An LQO or LQI of zero may indicate that the router device fails to have a direct communication link with a router device listed in the router table.

[0099] The link cost for sending communications between devices on a communication link may directly correspond to the link quality of communications on the communication link.The link cost may indicate the relative cost or loss of communications on the communication link. Figure 2F Table 262 is shown showing exemplary link costs that may correspond to different link qualities. Figure 2F As indicated in Table 262 of , for communications on a communication link between two neighboring devices, a higher link quality may correspond to a lower link cost.

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

[0101] The path cost may indicate the total cost for transmitting the digital message from the starting router device to the ending router device. For example, the path cost may be calculated as the sum of the link costs for each hop between the starting router device from which the digital message may originate and the ending router device from which the digital message may be received in the network 200d. Each router device may calculate the path cost to the adjacent device on a single-hop communication link to be equal to the link cost, and store the path cost in a locally stored router table. For example, the router device 225c may set the path cost for communication with the 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 the router table 261. Similarly, the router device 225c may set the path cost for communication with the 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.

[0102] Each router device (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) may update the path cost for transmitting digital messages to / from each router device in its corresponding router table based on the 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 may receive path cost information for transmitting digital messages through another router in network 200d. Router 225c may 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 may be an announcement message. Router device 225b may 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 the digital message between the router device 225b and the leader device 215 through the router device 225c, the router device 225b may add the link cost for communication between the router device 225b and the router device 225c (e.g., link cost=1) to the path cost received from the router device 225c (e.g., path cost=1) to obtain a total path cost (e.g., path cost=3). The link cost for communication between the router device 225b and the router device 225c may be determined based on the link quality of the communication link between the router device 225b and the router device 225c, which may be the smaller of the LQI and LQO of the communication link (e.g., link quality=3).

[0103] Each router device may send / broadcast an announcement message including a path cost to one or more other router devices in the network 200d. A router device that receives path cost information from a router device that sends an announcement message may 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 that sends the announcement message to the path cost in the received message). Each router device may use the locally stored path cost information to identify a path through which a digital message may be transmitted. For example, a digital message transmitted from router device 225b to leader device 215 may be transmitted through router device 225a or router device 225c. Router device 225b may receive corresponding announcement messages from router device 225a and router device 225c, indicating that the path cost of communication of digital messages between router device 225a and leader device 215 is the same as the path cost of communication of digital messages between router device 225c and leader device 215 (e.g., path cost = 2 on each communication link). Router device 225b may add the link cost calculated for transmitting messages between router device 225b and router device 225c (e.g., link cost=1) to the path cost information received in the advertisement message from router 225c (e.g., path cost=2) to determine a total path cost for communicating with leader device 215 through router device 225c (e.g., total path cost=3). Router device 225b may similarly add the link cost calculated for transmitting messages between router 225b and router 225a (e.g., link cost=2) to the path cost information received in the advertisement message from router 225a (e.g., path cost=2) to determine a total path cost for communicating with leader device 215 through router device 225a (e.g., total path cost=4). Router device 225b may update a locally stored router table with the lowest path cost calculated for communicating with leader device 215 and / or an identifier of a router device (e.g., router 225c) through which the digital message is to be transmitted. Each router device may similarly update its corresponding locally stored router table with the lowest path cost calculated for communicating with other router devices in network 200d. Figure 2E As shown, the leader device 215 and the router device 225c may each calculate the lowest path cost for communicating with other router devices in the network 200d and store the path cost in the respective router tables 229, 261. The router tables 229, 261 may also store therein the router identifier of the next hop from the respective device 215, 225c through which the digital message is to be transmitted to achieve the calculated path cost for communication with the destination router device.

[0104] By periodically updating link quality (e.g., LQI and / or LQO), link cost, and / or path cost, and transmitting the path cost to other router devices in periodic advertisement messages, each router device may have the latest path cost information for transmitting digital messages to other router devices in network 200d. Router devices may use the best communication path (e.g., the lowest cost path) to transmit digital messages to another device. This routing mechanism may allow router devices to detect when other router devices have been disconnected from network 200d, or when the path cost between routers has changed, and calculate the next lowest cost path to maintain connectivity with other router devices in network 200d.

[0105] In order to distinguish relatively old data transmitted in the periodic advertisement message from relatively new data transmitted in the periodic advertisement message, the advertisement message may be transmitted with a sequence number. A leader device (such as the leader device 215) may be responsible for updating the sequence number and distributing the updated sequence number to other router devices in the network (e.g., router devices 225a, 225b, 225c, 225d, 225e, 225f in the network 200d). For example, the leader device 215 may increment the sequence number periodically (e.g., after transmitting one or more advertisement messages) and / or after adding a router device to the network. The sequence number may be updated to allow router devices in the network (e.g., the leader device 215 and / or router devices 225a, 225b, 225c, 225d, 225e, 225f in the network 200d) to identify updated network information transmitted in the advertisement message. For example, since a router device (e.g., leader device 215 and / or router devices 225a, 225b, 225c, 225d, 225e, 225f in network 200d) may periodically transmit a notification message including path cost information indicating path costs for communicating with other router devices in the network, the sequence number may be updated to identify the updated path cost information.

[0106] After the leader device 215 updates the sequence number, the leader device 215 may distribute the sequence number to other router devices in the network. For example, the leader device 215 may use the sequence number in its own advertisement message. After receiving the updated sequence number, each router device may 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 may be used in the advertisement message of the router device until the leader device 215 distributes the subsequent sequence number. For example, router device 225c may receive the sequence number directly from the leader device 215 and use the sequence number in a subsequent advertisement message. Router device 225b may receive the sequence number in the advertisement message transmitted from router device 225c and use the sequence number in a subsequent advertisement message transmitted from router device 225b. The routers may each use the current sequence number until receiving the updated sequence number originating from and distributed from 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 the router table. If a router device receives an advertisement message with the same sequence number as a previously received advertisement message and / or 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 the updated sequence number within a predefined time period (e.g., minutes, seconds, etc.), the router may assume that the leader device 215 is unavailable for communication (e.g., offline, powered off, dropped from the network, changed roles, or otherwise unable to communicate with the router device) and attempt to form another network or network partition with another leader device 215.

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

[0108] After forming the network 200d (e.g., an initially performed claiming procedure, an initially performed joining procedure, an initially performed attaching procedure, and / or other procedures performed to establish the network), the control devices may lose power and / or be reset after receiving power. For example, the control devices in the network 200d may be turned off and back on after a power outage or some other event that causes the network 200d to lose power. After the reset (e.g., after power is restored), the leader device 215 and the router devices 225a, 225b, 225c, 225d, 225e, 225f may attempt to re-form the network 200d, for example, by re-attaching to the network and resuming their previous roles on the network. However, if the leader device 215 and the router devices 225a, 225b, 225c, 225d, 225e, 225f attempt to re-attach to the network at the same time or substantially at the same time, the likelihood of message conflicts may increase, which may cause the network re-formation to fail or become delayed.

[0109] After the reset, the control devices attached to the network 200d may attempt to re-form the network. In order to reduce the possibility of message conflicts and reduce the time period for network re-formation to be completed, the control devices attached to the network 200d before the reset may attempt to attach to the network in a predefined manner (e.g., sequentially). For example, the control devices attached to the network 200d may be sequentially attached to the network in a set sequential manner according to the values ​​of the stored identifiers. In addition, the control devices attached to the network 200d may be attached to the network based on their corresponding hop counts from the leader device 215. The hop counts and / or roles in the previously formed network may be stored at each control device, or communicated from another device in other ways after power-on.

[0110] refer to Figure 2E , the leader device 215 may resume its role as the leader device of the network and re-form the network 200d. After the leader device 215 resumes its role and / or transmits the leader advertisement message, the router devices 225a, 225b, 225c, 225d, 225e, 225f may attach to the network based on their corresponding hop counts from the leader device 215. For example, a router device with a lower hop count may receive a leader advertisement message from the leader device 215 and may join and / or re-attach to a previously formed network in order to resume its corresponding role faster than a router device with a higher hop count.

[0111] The router devices 225a, 225b, 225c, 225d, 225e, 225f may attempt to join the previously formed network 200d and / or attach to a parent device in the previously formed network based on the coordinated start time of each device. The coordinated start time may be personalized for the respective router devices 225a, 225b, 225c, 225d, 225e, 225f so that the coordinated start time triggers the router devices 225a, 225b, 225c, 225d, 225e, 225f to begin their respective join procedures and / or attach procedures. Figure 2E , router devices 225a, 225c may rejoin the network and / or reattach to the leader device 215. After router devices 225a, 225c reattach to the leader device 215, router devices 225b, 225d, 225e may rejoin the previously formed network and / or reattach to router devices 220a, 220c to which router devices 225b, 225d, 225e were attached in the previously formed network. After router devices 225b, 225d, 225e reattach to router devices 225a, 225c, router device 225f may rejoin the previously formed network and / or reattach to router device 225d.

[0112] As described herein, a network can be used to facilitate communication between respective devices of a load control system. For respective control devices communicating via a network, the control devices can join the network, for example, by initiating a commissioning procedure. Figure 3 300. The procedure 300 may be executed by a control device (e.g., an end device, such as end devices 230a, 230b, router-qualified end devices 240, and / or dormant end devices 250) that is 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 the 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 the procedure 300 at 301.

[0113] At 302, the control device may perform a claiming procedure. The claiming procedure may be used to discover the control device and claim the control device for adding to the network. For example, a user's mobile device (e.g., mobile device 190) may be used to claim a load control system (e.g., Figure 1The load control system 100 shown in the figure can be used to control devices in the load control system. Each control device can be claimed by a user's mobile device for joining the network (e.g., via a joining procedure as described herein), and / or attaching 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 technology). The mobile device can discover (e.g., receive) beacons transmitted by control devices in the load control system. Each beacon may include a unique beacon identifier of the control device that transmitted the corresponding beacon. The unique beacon identifier may be Beacon Identifier. The unique beacon identifier may include a unique device identifier (eg, a serial number) of the control device itself.

[0114] The mobile device may identify one or more control device beacons whose corresponding beacons are received with a received signal strength indicator (RSSI) above a predefined value. For example, the mobile device may identify one or more beacons among the beacons received by the transmission with the strongest received signal strength indicator, and the mobile device may transmit a connection message to the one or more control devices. The control device executing the debugger 300 may receive a connection message from the mobile device, and the connection message may be configured to establish a connection (e.g., a two-way communication connection) with the mobile device.

[0115] The connection message may indicate to the control device that the control device has been selected for claiming. The connection message may operate as a claim message, or a separate claim message may be sent after a connection is established between the mobile device and the control device. The claim message may indicate that the control device has been claimed for addition to the network. In response to receiving the claim message, the control device may transmit a claim confirmation message to the mobile device. The claim confirmation message may include configuration information that can be used to join the control device to the network. For example, the configuration information may include a unique device identifier (e.g., a serial number) of the control device and / or network credentials for joining the network. The network credentials may include a network key for the network, a network address (e.g., a Thread network address) of the control device, and / or a joiner identifier of the control device. The control device may be programmed with the network credentials by receiving the credentials for the network from a commissioning device via RF communication (e.g., Bluetooth or other short-range communication), or the credentials may be pre-stored at the control device (e.g., at the time of manufacture). 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 may be sent in the claim confirmation message. The network address and / or join identifier may be used during a join procedure to allow the control device to join the network.

[0116] During the claim procedure at 302, or during the debugging procedure 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, an identifier of the mobile device and / or an application executing the claim procedure on the mobile device, and / or channel information that helps the control device enter the Thread network through the joining procedure. This information may be sent in the claim 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 the claim confirmation message from the control device to which the mobile device is connected, the mobile device may store the control device's unique device identifier, the control device's network address (e.g., a Thread network address), and / or the control device's joiner identifier in a memory.

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

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

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

[0120] The control device may receive a join request message from the central computing device or the debugging device during the joining procedure. The control device may respond with a request to join the network. The central computing device or the debugging device may challenge the control device with one or more parts of the configuration information obtained during the claiming procedure. For example, the join request message or another message from the central computing device or the debugging device may include a request for one or more parts of the network credentials (e.g., a network key) from the user device. In one example, the central computing device or the debugging device may identify the network address in the network credentials in the join request message and request a joiner identifier from the control device. The control device may respond with a joiner identifier or a network address and a joiner identifier to join the network or network partition. The central computing device or the debugging device may identify the control device as the claimed device based on the unique identifier in the message and confirm 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 may use the network key to connect to the network.

[0121] At 306, the control device may initiate an attachment procedure. After the control device joins the network, at 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., formation of a network). In order to attach to another device on the network, the control device may send and receive multiple attachment messages via the network. For example, at 306, the control device may initiate execution of procedure 500 (e.g., start a backoff timer). The control device may also or alternatively perform other attachment procedures as described herein.

[0122] although Figure 3 A claim procedure, a join procedure, and an attachment procedure are described, but one or more of these procedures may be performed. For example, the claim procedure and / or the join procedure may be omitted or modified because the control device may have network credentials pre-stored thereon (e.g., at the time of manufacture or written thereto by another device such as a mobile device). Additionally or alternatively, Figure 3The claim procedure, join procedure, and attach procedure shown may be combined. For example, the join procedure and the attach procedure may be combined (e.g., the join procedure may include the attach procedure). When the control device joins the network, the attach procedure may be executed as part of the join procedure. The attach procedure may be executed independently after the control device has joined the network to enable the control device to attach to another device in the network. That is, although Figure 3 Each of the procedures shown in is clearly described, but the claim procedure, the join procedure, and the attach procedure may each be combined or performed in various combinations.

[0123] Additionally, at 302, the central computing device may transmit network credentials to the control device during a claim procedure. The network credentials may be used by the control device to directly attach to another device on the network. For example, a network device to which the control device attempts to attach may challenge the control device for network credentials, as described herein. As described herein, one or more of a claim procedure, a join procedure, and / or an attachment procedure may be performed after power is provided to the control device and the device is turned on. One or more of these procedures may also be performed to re-form a network or re-attach the control device to a network.

[0124] As described herein, a control device may join a network and / or attach to another device on the network in order 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 conflicts may increase and / or the control device may fail to attach to another device on the network. In order to reduce the likelihood of message conflicts, 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, which may increase the likelihood of message conflicts and / or increase the likelihood that the corresponding control device fails to attach to another device on the network). For example, a control device attempting to attach to other devices on the network may delay its corresponding attachment procedure based on a coordinated start time. In addition, the coordinated start time may be personalized for the corresponding control device so that the coordinated start time triggers the control device to start its corresponding attachment procedure in a coordinated manner.

[0125] As part of an initial startup procedure, when a control device is initially powered on and / or attempts to initially attach to another device on a network or network partition (e.g., an initial attachment after initially being powered on after configuration and / or reconfiguration), the device may perform a coordinated startup procedure with other devices on the network or network partition. Because the initial startup procedure may be performed at the control device before the control device establishes a role on the network to perform communications, a coordinated startup of devices on the network may be performed to reduce latency and / or potential conflicts of messages on the network while the devices are attempting to perform an attach procedure. After the control device has been commissioned, the control device may perform an attach procedure or an initial startup procedure when powered on.

[0126] Figure 4 4 is a flow chart of an exemplary process 400 for determining a unique coordinated start time at which a control device may initiate a join procedure, which may include an attachment procedure, as described herein. As described herein, the unique coordinated start time may be a time period reserved for the control device to initiate a join procedure (e.g., other devices may not perform a join procedure during the unique coordinated start time). Procedure 400 may be performed by a control device (e.g., an end device, such as end devices 230a, 230b, router-qualified end device 240, and / or dormant end 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 procedure 400. The procedure may start at 401 for each control device in the system (e.g., a claimed control device) in response to a trigger event. The trigger event may be a message from a central computing device such as a debugging device. In another example, the trigger event at 401 may be a power-on event or a reset event. In addition, procedure 400 may be performed after other procedures (e.g., as an initial procedure for forming a network, or after other procedures such as a claim procedure and / or a join procedure).

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

[0128] The control device may use a unique coordination start time to delay the start of a join procedure. As described herein, the control device may execute a join procedure to join a network (e.g., to enable the control device to send and receive messages to other devices joined to the network). For example, the join procedure may include an attachment procedure for attaching the control device to another device (e.g., a router device) joined to the network. In addition, the attachment procedure may establish a parent-child link between the control device and the other devices, so that the control device can send and receive messages through the network through the other devices. The control device may use a unique coordination start time so that each control device delays the corresponding join procedure for a different time period. As described herein, if multiple devices start their corresponding attachment procedures simultaneously or substantially simultaneously (e.g., to establish a parent-child link, an auxiliary parent link, and / or a router-to-router link procedure), the possibility of message conflicts may increase and / or the time to complete network formation may increase.

[0129] A unique coordinated start time may be determined such that a control device in the system delays initiating its respective join procedure, 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 may be determined based on identifiers of the respective control devices, which may be sequentially assigned or configured as described herein. A control device with a lowest or highest numbered identifier may begin a respective attach procedure before other control devices in the load control system.

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

[0131] Since the unique identifier of the control device can be assigned at the time of manufacture, or before the device is installed in the load control system, each delay period can be assigned to the control devices within a group of identifiers. For example, the control devices in the first group of identifiers (e.g., identifiers less than "0100") can initiate a first delay time, the control devices in the next group of identifiers (e.g., identifiers less than "0200") can initiate a second delay time, and so on.

[0132] The control devices may know their relative position in a sequence of devices and delay the coordinated start time based on their relative position in the sequence. For example, the control device may receive a list or table of identifiers of other control devices in the system. The list or table may be received in a message from a central computing device such as a debugging device. For example, the other identifiers may be received in a message from a central computing device or a debugging device, which is transmitted as a trigger event for initiating an attachment procedure at each control device. The control device whose identifier is identified as the first or last in the list or table may start 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 may start 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).

[0133] The control device may receive a delay time of a unique coordinated start time from a central computing device or a debugging device. For example, the central computing device or the debugging device may identify the delay time of each device or device group herein and transmit the unique coordinated start time of each control device to the corresponding device. The unique 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.

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

[0135] Although a certain amount of time (e.g., seconds) may be used to describe the delay time of the unique coordinated start time, other amounts of time (e.g., milliseconds, tens of seconds, etc.) may also be implemented. The coordinated start time of the control devices may be set to a time period that allows one or more control devices to power up and execute the described procedures before other devices in the system.

[0136] 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 a join procedure at 406. Waiting for the coordinated start time determined at 402 may allow the control device to begin its respective join procedure at a time before and / or after other control devices begin their join procedures, which may include an attachment procedure as described herein, which may reduce the likelihood of message conflicts and / or reduce the amount of time for network formation to complete. For example, if the unique coordinated start time is determined based on identifiers that are 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 sequentially begin their join procedures.

[0137] The networks described herein may be used to facilitate communications within a load control system. After the network, or a portion thereof, is formed, the load control system may experience a loss of power (e.g., due to a power outage or another event that causes the power supplied to the load control system to cease). If the load control system experiences a loss of power (e.g., a control device attached to a network attached to the network experiences a loss of power) and / or the control device is reset, the corresponding control device within the load control system may regain power and attempt to reform the network. However, the control devices within the control system may regain power and attempt to reform the network simultaneously or substantially simultaneously, which may increase the likelihood of message conflicts and / or increase the amount of time it takes for the network to form. In addition, the control devices may attempt to perform the attachment procedure even if the network, or a portion thereof, has already been formed.

[0138] The control device may apply a backoff timer (e.g., a timer that runs a backoff period) before initiating an attachment procedure. In an example, the backoff period may be a period of time that 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 at the same time or substantially at the same time, which, as described herein, may result in message conflicts / failures and increase the amount of time it takes for network formation to complete. The backoff timer may be determined by the control device, for example, so 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). In addition, if the control device initiates its attachment procedure when the network is not busy, the likelihood of message conflicts occurring 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 a backoff timer based on the network traffic (e.g., an estimate of the time the network will not be busy to initiate the attachment procedure). Figures 6 to 6 Figure 8B An exemplary procedure for determining a backoff time based on network traffic is shown.

[0139] Figure 5 1 is a flow chart of an exemplary procedure 500 for a control device attached to a network (e.g., networks 200, 200′, 200″ and / or network partitions 201, 202, 203). Procedure 500 may be performed by a control device (e.g., an end device, such as end devices 230a, 230b, router-qualified end device 240, and / or dormant end 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, procedure 500 may be performed at 406 of procedure 400, at 530 of procedure 500, and / or at 552 of procedure 552. Procedure 500 may be executed at 501. In addition, when the control device is powered on, the control device may initiate procedure 500 at 501. In addition, procedure 500 may 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 unplugged and / or otherwise unable to communicate with the network), the control device may detach from the parent device (e.g., by initiating a detach procedure) and may re-initiate procedure 500 at 501 to attach to another parent device. In addition, when the control device loses connectivity with the network (e.g., when the control device is unplugged or otherwise loses power), the control device may re-initiate procedure 500.

[0140] At 502, the control device may determine whether the control device executing the program 500 is attached to a parent device on the network (e.g., network 200a, 200b, 200c, 200d or network partition 201, 202, 203). If the control device is not attached to a parent device on the network, then at 504, the control device may determine whether a backoff timer has been started and is running. As described herein, after the backoff timer expires, the control device may attempt to attach to another device on the network to establish a link with the other device (e.g., a router-to-router link, a parent-child link, and / or an auxiliary parent link), for example by transmitting an attachment message to the other device. The control device may transmit a certain type of attachment message based on the type of link that the control device wants to establish. For example, the control device may transmit an attachment 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 the 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 may be in milliseconds and / or may be represented by a plurality of bits (e.g., thirty-two bits). The backoff timer may cause the 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 the parent device on the network. For example, the backoff timer may allow the parent device to process parent request messages from other devices. Thus, if the backoff timer has begun and is still running, the procedure 500 may exit.

[0141] However, if the backoff timer has not yet started and / or is not currently running, a random number may be generated at 506. For example, the random number may 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 may be initialized with the random number generated at 506, and as described herein, the device may avoid attaching to the network during the backoff timer period. Initializing the backoff timer to the generated random number may reduce the likelihood that multiple devices attempt to attach to the network at the same time or within the same time frame (e.g., since multiple devices will not be able to generate the same random number), and increase the chance that the device successfully attaches to the network. As described herein, when multiple devices attempt to attach to the network at the same time, messages transmitted to attach to the network (e.g., parent request messages and parent response messages) may conflict, which may result in attachment failures and / or delays. At 510, the backoff timer may start (e.g., begin a countdown) and the procedure 500 may exit.

[0142] Fig. 6Ais a flow chart of an exemplary procedure 600 performed 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 performed by a control device when the control device is attempting to attach to another device on the network (e.g., a parent device). For example, procedure 600 may be performed by a control device that is not connected to a parent device (e.g., terminal devices 230a, 230b, router-qualified terminal devices 240, and / or dormant terminal devices 250). Fig. 6A As shown, routine 600 may be performed by a control device in response to receiving a message at 601 (eg, a message transmitted by a control device in a network as described herein).

[0143] At 602, the control device may determine whether a backoff timer (e.g., the backoff timer started at 510 of procedure 500) is running, for example, while listening to traffic on the network (e.g., to determine whether the control device executing procedure 600 is currently attempting to attach to a parent device on the network). If the backoff timer is not running at 602, procedure 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 that attempts to attach to another device on the network (e.g., a router device or a leader device, also referred to herein as a potential parent device) and establish a parent-child link with the router device (e.g., a control device that attempts to attach to the network as a child device of a router device attached to the network). In addition, a potential parent device (e.g., a leader device and / or a router device) that receives the parent request message may transmit a response to the parent request message. The 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, messages that conflict with each other may not be received, and the device that transmits the parent request message may not be able to attach to another device on the network. Therefore, if the message is a parent request message at 604, then at 606, the control device may add a first time period to a backoff timer (e.g., the backoff timer started at 510 of procedure 500). In an example, the control device may add a first time period to the backoff timer (e.g., the backoff timer started at 510 of procedure 500) based on the number of attachment messages transmitted on the network during the backoff time period (e.g., when listening to traffic on the network during the backoff period). For example, the first time period may be a time period including 300ms. Adding time to the backoff timer (e.g., extending the backoff time period) may reduce the likelihood of message conflicts occurring and allow other devices to attach to the parent device on the network without interference, which may optimize the formation of the network (e.g., reducing the amount of time to form a network with a single network partition). In addition, adding time to the backoff timer may allow devices to attach to the network sequentially, for example, so that multiple parent request messages are not transmitted simultaneously or substantially simultaneously.

[0144] At 608, the control device may determine whether the received message is a link request message. The link request message may be transmitted by another router device (e.g., a router-qualified terminal device that has just been upgraded to a router device) to establish a link (e.g., an auxiliary parent link and / or a router-to-router link) with other router devices on the network. Similar to the parent request message, the leader device and / or the router device that receives 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 the router device may be transmitted simultaneously or substantially simultaneously, which may increase the possibility of message conflicts within the network. Therefore, if the message received at 608 is a link request message, then at 710, the control device may add a second time period to the backoff timer (e.g., the backoff timer started at 510 of procedure 500). The second time period may be a time period greater than the first time period. For example, the second time period may be 625ms. As described herein, increasing the time for the backoff timer can allow the receiving device to process a greater number of messages and / or reduce the likelihood of message collisions by allowing other devices to attach to the network, which can optimize the formation of the network (e.g., reducing the amount of time to form a network with a single network partition). In addition, increasing the time for the backoff timer can allow devices to attach to the network sequentially, for example, so that multiple link request messages are not transmitted simultaneously or substantially simultaneously. If the message is not a link request message at 604 or a parent request message at 608, the process 600 can exit.

[0145] Figure 6B6 is a flow chart of an exemplary procedure 650 that may be performed by a control device in response to the expiration of a backoff timer (e.g., the backoff timer started at 510 of procedure 500) (e.g., after expiration). Procedure 650 may be performed by a 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 may be performed by terminal devices 230a, 230b, router-qualified terminal devices 240, and / or dormant terminal devices 250 when these devices are not attached to a parent device. When the backoff timer expires at 651, the control device may 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 through 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 may be transmitted by a control device to a router device to attach to the router device on the network, thereby establishing a parent-child link between the control device (e.g., a child device) and the router device (e.g., a parent device) (e.g., a request to make the router device a parent device of the devices). After transmitting the parent request message, the control device executing program 650 may receive a plurality of parent response messages in response to the transmitted parent request message (e.g., from any router device that receives the transmitted parent request message). Since the parent request message is transmitted after the backoff timer expires (e.g., the backoff timer is initialized as Figure 5 The random value shown), so that parent request messages transmitted from multiple devices attempting to join the network can be sent at different times, and allowing a greater number of messages to be correctly processed by the router device.

[0146] As the number of control devices attempting to attach to the network increases, the backoff timers running on each of the corresponding control devices may expire simultaneously or substantially simultaneously. If the control device receives a message while the backoff timer is running, the control device may add a time period to the backoff timer. In addition, each of the corresponding control devices may transmit a parent request message to attach to the network in response to the expiration of the backoff timer. However, when processing a message received while the backoff timer is running, the backoff timer of the corresponding control device may "lose time" (e.g., keep the backoff timer running while processing the message). In addition, as described herein, the backoff timer of the corresponding control device may be initialized to a number randomly generated from a certain range of numbers. As the number of control devices attempting to attach to the network increases, the probability that multiple control devices initialize their corresponding backoff timers to the same random number may increase. Similarly, as the number of load control devices attempting to attach to the network increases, the probability that each of the corresponding backoff timers expires simultaneously or substantially simultaneously may increase. If the backoff timers expire simultaneously or substantially simultaneously, the parent request message may be transmitted simultaneously or substantially simultaneously, which may result in message conflicts and / or the inability of the control device to attach to the network. Thus, the control means may vary the back-off timer, for example based on the number and / or type of messages received while the back-off timer is running.

[0147] Fig. 7A is a flow chart of an exemplary procedure 700 performed 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 performed by a control device when the control device 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 performed by terminal devices 230a, 230b, router-qualified terminal devices 240, and / or dormant terminal devices 250 when these devices are not joined to the network or attached to a control device that is joined to the network. Fig. 7A As shown, routine 700 may be executed in response to receiving a message at 701 (e.g., a message transmitted by a control device in a network as described herein). Fig. 7A Although shown in FIG. 7 , procedure 700 may also be performed when the backoff timer is not running.

[0148] At 702, the control device may determine whether a backoff timer (e.g., the backoff timer started at 510 of procedure 500) is running (e.g., to determine whether the control device executing procedure 700 is currently attempting to attach to a parent device on the network). If the backoff timer is not running at 702, procedure 700 may 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 may determine at 704 whether the message received at 701 is a parent request message.

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

[0150] At 708, the control device may determine whether the message is a link request message. As described herein, a link request message may be transmitted by a parent device to attach to other router devices attached to a network. In addition, multiple messages may be transmitted in response to the transmission of a link request message. If the received message is a link request message, then at 710 the control device may increment a second count N. LR (eg, variable). Second count N LR The number of link request messages received by the control device while the backoff timer is running may be indicated.If the message is not a link request message at 704 or a parent request message at 708, the routine 700 may exit.

[0151] Figure 7B is a flow chart of an exemplary procedure 750 executed by a control device in response to the expiration of a backoff timer (e.g., the backoff timer started at 510 of procedure 500). Procedure 750 may be executed by a 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 750 may be executed by terminal devices 230a, 230b, router-qualified terminal devices 240, and / or dormant terminal devices 250 when these devices are not attached to a parent device. Figure 7BAs shown, procedure 750 may be executed at 751 in response to the expiration of the backoff timer. At 752, the control device may determine whether any parent request message or link request message is received while the backoff timer is running. For example, the control device may determine a first count N PR and the second count N LR Are both equal to 0. As described herein, the first count N PR and the second count N LR The first count N may indicate the number of parent request messages and link request messages received by the control device when the backoff timer is running. PR and the second count N LR If both are equal to 0, neither the parent request message nor the link request message has been received.

[0152] When the control device fails to receive the parent request message or the link request message, the control device may determine that the other device is not attempting to attach to the other device on the network or the parent device on the network. In addition, the control device may determine that the current conditions of the network are optimal for the control device to attempt to attach to the other device on the network by transmitting the parent request message (e.g., the other device may not attempt to attach to the network at the same time or substantially at the same time, which may reduce the possibility of message conflicts and / or network attachment failures). For example, when the first count N PR and the second count N LR When both are equal to 0, the controlling device may assume that the other device may not attempt to attach to the other device on the network as a controlling device. PR and the 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 may 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).

[0153] However, if the first count N PR and the second count N LR If both are not equal to 0 (for example, one or more parent request messages or link request messages are received while the backoff timer is running), then at 756 the control device may set the maximum random value N MAX Determined as the first count N PR and the second count N LR For example, the first count NPR and the second count N LR The weight of each of can be different. For example, when the first count N PR and the second count N LR As the value of increases, the maximum random value NMAX Similarly, when the first count N PR and the second count N LR As the value of decreases, the maximum random value N MAX Can be reduced. Maximum random number N MAX It may be a maximum number in a range of numbers from which another value for the backoff timer may be selected (eg, randomly selected).

[0154] At 758, the control device can range from 0 to the maximum random value N MAX Generate a random number N from a range of numbers (including the end value) RAND For example, with the maximum random number N MAX As the random number N is increased (e.g., the range of numbers from which the random number can be generated increases), the likelihood that multiple devices select the same random number (e.g., select the same backoff timer) can be reduced, which can reduce the likelihood of message collisions. At 860, the control device can set the backoff timer to the random number N generated at 758. RAND At 862, control may start a back-off timer (eg, a countdown), and routine 750 may exit.

[0155] As described herein, a control device may join a network by initiating an attachment procedure with a router device. Completion of the attachment procedure may result in the control device being assigned the role of a terminal device attached to a router device on the network. In addition, the control device and the router device may form a parent-child link, for example, the control device may be a child device of the router device, and the router device may be a parent device of the control device. Over time, other devices may join the network, for example, by attaching to a router device (for example, or another router device joined to the network). As the number of devices joined to the network increases, the network may upgrade the role of certain devices joined to the network to the role of a router device (for example, upgrading certain terminal devices that meet router conditions to the role of a router device, as described herein). Other devices may join the network by initiating an attachment procedure with an upgraded router device, thereby growing the network.

[0156] However, as the number of router devices on the network increases, some parent-child links may no longer be optimal. For example, the router device to which the control device was attached when it initially joined the network may no longer be the best router device to attach to (e.g., the best parent device for the control device) because another router device may exist on the network and the control device may have a higher link quality and / or a lower link cost on the communication link with the other router device. A similar situation may occur for an auxiliary parent device 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 that has joined the network and / or to another auxiliary parent device. FIG. 8A to FIG. 8C An exemplary procedure for determining to establish a parent-child link with another router device joining the network and / or attaching to another secondary parent device is shown.

[0157] Fig. 8A 800 is a flow chart of an exemplary procedure 800 performed 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 performed by a 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 of a parent device attached to the network. Now referring to Figure 2A The process 800 may be executed by the terminal devices 230a, 230b, the terminal device 240 that meets the router conditions, and / or the dormant terminal device 250. Fig. 8A As shown, routine 800 may be executed by a control device in response to receiving a message at 801 .

[0158] At 802, the control device may determine whether the received message is 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, the process 800 may end. 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 a secondary parent device of the control device). If the message is received from a secondary parent device of the control device, the process 800 may exit (e.g., when the control device is already attached to the router device).

[0159] If a message is received from a router device that is not a secondary parent device of the control device, then at 806, the control device may determine (e.g., measure) a current received signal strength indicator magnitude of the received message. For example, the control device may measure a current received signal strength indicator RSSI of the received message at 9\806. RX Current received signal strength indicator RSSI RX The control device may use the current received signal strength indicator RSSI to indicate the signal strength of the message and / or the communication quality from the router device from which the message is received to the control device. RX The control device may store (eg, may pre-store) the stored received signal strength indicator RSSI. STORED , which may indicate the router device from which the message with the highest received signal strength indicator (eg, compared to messages received from other router devices) was received by the control device.

[0160] The control device may determine whether the communication metric of the router device not attached to the control device indicates a potential communication link that is stronger than the communication metric of the parent device. For example, as shown in FIG. 8 , at 808, the control device may determine whether the communication metric of the router device not attached to the control device indicates a potential communication link that is stronger than the communication metric of the parent device. RX The stored received signal strength indicator RSSI STORED The stored received signal strength indicator RSSI is compared. STORED It may be a predefined threshold and / or may indicate the router device from which the message with the highest RSSI received by the control device comes. RX is less than the stored received signal strength indicator RSSI STORED , then the process 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 , the control device may initiate an attachment procedure with the router device at 810 to establish an auxiliary parent link (e.g., by transmitting an attachment message configured to establish an auxiliary parent link, such as a link request message). In addition, a router identifier (e.g., router ID) and a current received signal strength indicator RSSI of the router device may be transmitted to the control device at 810. RX Stored in a memory (for example, the current received signal strength indicator RSSI RX Stored as the stored received signal strength indicator RSSI STOREDAs described herein, the control device may, for example, initiate an attachment procedure with a router device (e.g., attach to the router device so that the router device becomes a secondary parent device of the control device) that corresponds to a router identifier of the router device stored in memory (e.g., as described herein with reference to Figure 8B For example, the router identifier of the router device and the current highest received signal strength indicator RSSI RX may be stored in a secondary parent table in memory.As described herein, the secondary parent table may include a list of secondary parent devices to which (eg, synchronized with and / or capable of processing messages received from) a corresponding child device.

[0161] Figure 8B 820 is a flow chart of an exemplary procedure 820 performed by a control device to attach to one or more secondary parent devices. As described herein, child devices may attach to secondary parent devices to increase the reliability of communications within a network (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). Router devices 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) may operate as secondary parent devices. Procedure 820 may be periodically performed by the control device at 821. For example, procedure 820 may be performed at periodic intervals of thirty-two (32) seconds.

[0162] At 822, the control device may determine a router identifier and a received signal strength identifier RSSI of the router device. UPDATED , the control device may 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 may retrieve a stored router ID and a received signal strength indicator of a router device, and the control device may determine whether to establish an auxiliary parent link with the router device (e.g., the router device stored at 810 of process 800). In addition, at 822, the control device may determine the router ID of the router device having the highest stored received signal indicator of the router devices stored in the auxiliary parent table. At 824, the control device may determine a variable N indicating the number of auxiliary parent devices to which the control device has attached. AUX-PAR Is it greater than or equal to the maximum value N? MAX . Maximum value N MAX Indicates the maximum number of auxiliary parent devices to which the control device can be attached. Maximum value N MAX Can be preconfigured and / or updated (e.g., based on changes to the network). For example, the maximum value N MAX Can be preconfigured to 10.

[0163] If at 824 the variable NAUX-PAR Less than the maximum value N MAX , then at 826, the control device may initiate an attachment procedure to establish an auxiliary parent link with the router device identified as a potential auxiliary 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 an auxiliary 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 auxiliary parent device may be sent to the control device. UPDATED stored in the auxiliary parent table, and at 830, the variable N AUX-PAR May be incremented before program 820 exits.

[0164] If at 824 the variable N AUX-PAR Greater than or equal to the maximum value N MAX , then at 832, the control device may determine the auxiliary parent table having the lowest received signal strength indicator RSSI AUX-LO The secondary parent device with the lowest RSSI AUX-LO The secondary parent device may be the secondary parent device to which the control device is attached during initial network formation. However, as described herein, over time, the network may include other routers that may provide the control device with improved communication through the network (e.g., increasing the likelihood that the control device will successfully send and / or receive messages). Additionally, if the control device were to attach to a router that had a stronger communication link with the control device, the control device may experience improved communication over the network.

[0165] The control device may determine whether the corresponding communication metric of the potential auxiliary parent device indicates a stronger potential communication link than the communication metric of the current auxiliary parent device. Figure 8B As shown, at 834, the control device may determine the received signal strength indicator RSSI of the potential auxiliary parent device. UPDATED The lowest RSSI in the auxiliary parent table AUX-LO Is the difference between the two values ​​greater than or equal to the hysteresis threshold TH? AUX-HYS (For example, RSSI UPDATED –RSSI AUX-LO ≥TH AUX-HYS ). Hysteresis threshold TH AUX-HYS Can be predefined (e.g., approximately 10 dB) or variable, e.g., based on the lowest RSSI in the secondary parent table AUX-LO If the received signal strength indicator RSSI of the potential auxiliary parent device at 834 UPDATED The lowest 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.

[0166] If at 8344, the received signal strength indicator RSSI of the potential auxiliary parent device UPDATED The lowest RSSI in the auxiliary parent table AUX-LO The difference between the AUX-HYS , then at 836 the control device may initiate an attachment procedure with a router identified as a potential auxiliary parent device (e.g., at 822) to establish an auxiliary parent link, which may improve communication of the control device on the network. As described herein, the attachment procedure to establish an auxiliary parent link may include transmitting one or more attachment messages (e.g., link request messages) configured to establish an auxiliary parent link to a router identified as a potential auxiliary parent device. At 838, the control device may update the auxiliary parent table (e.g., to indicate an attachment / auxiliary parent link with an updated auxiliary parent device). For example, at 838, the control device may remove the auxiliary parent device having the lowest received signal strength indicator RSSI from the auxiliary parent table. AUX-LO The router ID of the auxiliary parent device is updated, and the router ID of the auxiliary parent device and the corresponding received signal strength indicator RSSI are updated. UPDATED Add to router table.

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

[0168] Figure 8C is a flow chart of an exemplary process 850 executed by a control device to update an auxiliary parent table of one or more auxiliary parent devices. Figure 8B At 838 of the illustrated process 820, process 850 is executed to add the auxiliary parent device to the auxiliary parent table. Figure 8C, the control device may be a child device that is 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 an auxiliary parent link with 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 communications within a network (e.g., networks 200a, 200b, 200c, 200d and / or network partitions 201, 202, 203). 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) may operate as an auxiliary parent device of a child device, and the child device may receive multicast messages via the auxiliary parent device. The auxiliary parent table stored at the child device may include a list of auxiliary parent devices with which the child device is configured to communicate (e.g., attached to and / or able to process messages received from via an auxiliary parent link).

[0169] like Figure 8C As shown, the control device may determine whether the corresponding communication metric of the potential auxiliary parent device indicates a potential communication link that is stronger than the communication metric of the current auxiliary parent device. At 851, the procedure 850 may start, as described herein, which may add the potential auxiliary parent device to the auxiliary parent table (e.g., at 838 during the execution of the procedure 820). At 852, the control device may 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) may be measured and / or defined by link quality, as described herein. Link quality may be a communication metric indicating the quality of the communication link. For example, the link quality may 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) may indicate a relatively low quality communication link between the corresponding control devices (e.g., a communication link in which the probability of failed transmission is relatively high). The highest link quality (e.g., a link quality equal to 3) may indicate a relatively high quality communication link between the corresponding control devices (e.g., a communication link in which the probability of successful transmission is relatively high).

[0170] The control device may determine whether a potential secondary parent device has a link quality equal to a predefined value. The predefined value may be the highest quality value assigned to the link quality of the communication link (e.g., a link quality equal to 3). The potential secondary parent device being analyzed may be the router device having the highest stored received RSSI of the router devices stored in the secondary parent table.

[0171] 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 may initiate an attachment procedure with the auxiliary parent device to be added to the auxiliary parent table at 858. In addition, the control device may add the auxiliary parent device to the auxiliary parent table. At 960, the control device may also set the maximum value N MAX Increment by one (for example, N MAX =N MAX +1). As described in this article, the maximum value N MAX The maximum number of secondary parent devices to which the control device can be attached may be indicated.

[0172] If the secondary parent device to be added to the secondary parent list does not have a link quality equal to a predefined value (e.g., a link quality of 3), then at 854 the control device may associate with the secondary parent device in the secondary parent list having the lowest received signal strength indicator (RSSI AUX-LO ) of the auxiliary parent device. In addition, at 856, the control device may initiate an attachment procedure to attach to the potential auxiliary parent device and send the router identifier and received signal strength identifier RSSI of the potential auxiliary parent device to the control device. UPDATED As described herein, during execution of procedure 820 (eg, at 822 of procedure 820), the router identifier and received signal strength identifier RSSI of the potential parent device may have been determined. UPDATED .

[0173] The role of the control device attached to the network can be adjusted over time. For example, a terminal device that meets the router condition can be adjusted to the role of a router device. When the number of router devices added to the network is below a threshold, the terminal device that meets the router condition can be adjusted to the role of a router device. In addition, when another device requests the terminal device that meets the router condition to be adjusted to the role of a router device (for example, when other devices cannot be attached to the router device added to the network), the terminal device that meets the router condition can be adjusted to the role of a router device. When other devices fail to attach to the parent device, the other devices may request the terminal device that meets the router condition to be adjusted to the role of a router device, which may cause the other devices to be unable to join the network. As described herein, when other devices fail to receive a response to a parent request message, for example, due to a message conflict in the network, the other devices may not be able to attach to the parent device. In response to failing to receive a response to the parent request message, the control device may attempt to form a new network or network partition (for example, as described herein, this can increase the time to form a single network), or request another device to upgrade to the role of a router device so that the control device can initiate an attachment procedure with the newly upgraded router device. When a terminal device that meets the router condition receives a request to adjust to the role of a router device, the terminal device that meets the router condition may, for example, request permission to adjust to the role of a router device from the leader device. The leader device may accept the request to adjust to the role of a router device by providing a router identifier to the terminal device that meets the router condition.

[0174] A router device that has joined a network or network partition may attach to another network and maintain the role of the router device on the other network. For example, the router device may attach to the other 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, the child devices of the router device may also attach (e.g., migrate) to the other network, for example, without transmitting additional messages (e.g., additional parent request messages to attach to the other network).

[0175] During the previous formation of the network, the network may be re-formed using information stored at the control device. Fig. 9A and Fig. 9C An exemplary procedure for reforming a previously formed network (eg, a network reforming procedure) is shown. For example, Fig. 9A and Fig. 9CThe procedures shown in may be executed after a power outage or another event that causes power to be supplied to 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, control devices attached to the network (e.g., attached to the network before the loss of power) may attempt to reattach to the previously formed mesh network and / or reform the previously formed mesh network. However, because the control devices may regain power simultaneously or substantially simultaneously, each of the corresponding control devices may attempt to reattach to the network and / or reform the network simultaneously, which may increase the likelihood of message conflicts and increase the amount of time until network formation is complete.

[0176] In order to reduce the possibility of message conflicts and the amount of time until the network formation is completed, 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 role in the previously formed network. The previous role may be stored locally on each of the control devices. The control device that is the leader device of the previously formed network may start the startup procedure before other control devices in the load control system. The control device that is a non-leader router device in the previously formed network may delay its startup procedure to allow the leader device to start and start transmitting notification messages to other router devices. Other router devices may start 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 start their startup procedures at random times during the interval after the leader initiates its startup procedure. During the startup procedure at the router device, each router device may attempt to attach to the leader device or another router device to which the router device is attached in the previously formed network. The terminal device may start its startup procedure during a predefined interval after power-on to allow the router to perform its startup procedure and attach to the leader device or other router devices. For example, the terminal device may start its startup procedure at a random time during the interval after the router initiates its startup procedure. The predefined interval at the terminal device may be longer than the predefined interval at which the router device delays its boot procedure to allow the router device time to perform an attach and re-form a previously formed network.

[0177] Fig. 9A 900 is a flow chart of an exemplary process 900 for a device to reattach to a parent device and / or re-form a previously formed network after a power loss and / or reset. The process 900 may be performed by a control device that was previously attached to a network before a power loss and / or reset. Fig. 9A As shown, routine 900 may begin at 901. For example, as described herein, routine 900 may be performed following a network power loss and / or reset, which may occur following a power outage or another event that results in a disruption of power supplied to respective control devices attached to a previously formed network.

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

[0179] At 914, a control device (e.g., a leader device of 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 may be used to determine whether the network has been formed with another leader device. In one example, the previously formed network may have been powered off and additional devices may have been added to the system, the location of the device may have been moved, and / or the space may have been reconfigured to cause interference sources between devices to be added or removed. Due to potential changes in the network and / or the space in which the network is located, the leader device may transmit a link request message to determine whether there is another leader device on the network. For example, a link request message may be transmitted to identify whether there is an already formed network being implemented. Therefore, the leader device may transmit a link request message to determine whether other devices have been powered on and have formed a network with another leader device. If the leader device receives a response to the link request message, the leader device may not be able to become a leader device on the network and may revert to being an end device or another role on the network. Other control devices of the previously formed network may not be able to respond to the link request because they may be waiting for a leader announcement from the leader device and / or a coordinated startup time after powering on and turning on.

[0180] At 916, the control device may determine whether one or more other network partitions exist, for example, based on receiving a response to the link request. For example, 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 other network partitions exist 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 initiate another attachment procedure (e.g., as described herein in conjunction with Figure 5 The attach procedure at 918 may be performed to form a network that may be configured differently than a previously formed network.

[0181] However, if a response to the link request message is not received, the control device may determine that another network partition does not exist, and at 920, may transmit a leader advertisement message. The leader advertisement message may be used to re-form a previously formed network, for example, by triggering a router device of the previously formed network to attach to the leader device (e.g., transmitting a link request message to the leader device) and re-form the mesh of the previously formed network. The router device attached to the leader device in the previously formed network may listen to the leader advertisement before initiating its attachment procedure.

[0182] At 922, the control device may determine whether the control device is a router device of a previously formed network. The determination at 922 may be based on a role identifier stored in a memory at the control device, the role identifier indicating the role of the router device in the previously formed network. At 924, the control device (e.g., the router device of the previously formed network) may wait for a coordinated startup time of the router device (e.g., a coordinated router startup time). The coordinated startup time may be unique to the device and / or may be based on the role identifier. For example, the coordinated startup time may be based on the time when 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 basic 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 a hop count between the corresponding router device and the leader device. For example, the basic delay time may be the same for each router previously attached to the previously formed network, and may allow the leader device of the previously formed network to re-form into a network and be available for the router device to re-attach. The offset delay time may be based on a hop count back to the leader device, and may be such that the offset delay time of a router device that is farther from the leader device is longer than the offset delay time of a router device that is closer to the leader device. Figure 2EFor example, the offset delay time of router devices 225a and 225c directly attached to the leader device 215 may be shorter than the offset delay time of router devices 225b, 225d, and 225e not directly attached to the leader device 215. Therefore, the coordinated router start time of router devices 225a and 225c may end before the coordinated start time of router devices 225b, 225d, and 225e.

[0183] The offset delay time of each device can be a predefined time period multiplied by the hop count of the control device. The hop count can be determined from a 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, and the offset delay time 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 from the leader device can allow a router device with a lower hop count from the leader device or closer to the leader device to perform the attachment procedure before a router device with a higher hop count from the leader device or farther from the leader device. In an example, the predefined time period multiplied by the hop count to calculate the offset delay time can be in the range of ten seconds to thirty seconds. However, this time can be changed to allow other delays so that the router device can have time to power on, perform the attachment procedure and / or start sending announcements.

[0184] In another example, when calculating the offset delay time for a control device, a different amount of time may be added for each hop count. As the hop count increases, the amount of time added for each hop count may be more or less. For example, as the hop count increases, the amount of time added to the offset delay time may 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 may vary based on the number of control devices with the same hop count. This may allow for shorter delays when fewer control devices perform the attachment procedure, and larger delays when more devices perform the attachment procedure. The control device may store thereon control devices with the same hop count from a previously formed network, or this may be transmitted to the control device from a central computing device or a debugging device.

[0185] Return to reference Fig. 9A, after waiting for the coordinated startup time of the router device at 924, the control device may transmit a request to resume its role in the previously formed network at 926. For example, the control device may transmit an attach message as a unicast message to one of the router device and / or the leader device at 926. The control device may store thereon in a memory an identifier of a router device through which network communications are 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 of the previously formed network or to another router device). For example, if the control device is directly attached to the leader device in the previously formed network (e.g., Figure 2E If the control device is not directly attached to the leader device (e.g., Figure 2E If the control device has a router device 225b, 225d, 225e, 225f (e.g., a router device 225b, 225d, 225e, 225f), the control device may transmit a link request message (e.g., as a unicast message) to the router device through which the control device may communicate to communicate with the leader device. For example, router device 225b may store an identifier of router device 225c, which may represent a next hop back to leader device 215. Router device 225b may transmit the link request message as a unicast message to router device 225c after waiting for the coordinated start time.

[0186] At 928, the control device may determine whether a response to the link request message transmitted at 926 is received. As described herein, the response to the link request message may be a link accept message, which may indicate that a communication link is established for communication with the control device in the previously formed network. The link accept message may include information (e.g., a frame counter) that allows the control device to decrypt messages from the device with which the communication link is established.

[0187] If a response to the link request message is not received at 928, the control device may abandon its role in the previously formed network and begin another attachment procedure at 930. The control device may wait for a response within 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 notifies other router devices on the network that the control device is now operating as a router device.

[0188] Reference again Fig. 9A, the control device may determine that the control device is a terminal device. For example, if the control device determines at 932 that the control device is not a router device in a previously formed network, the control device may determine that the control device is a terminal device. The role identifier stored thereon in the memory may indicate that the control device is a terminal device of a previously formed network. If the control device is a terminal device, then at 934, the control device may wait for the coordinated startup time of the terminal device (e.g., coordinated terminal device startup time). The coordinated startup time of the terminal device may 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 may be later than the coordinated startup time of the leader device (e.g., a predetermined time / offset may be added to the coordinated startup time of the leader device). In addition, the coordinated startup time of the terminal device may be calculated, for example, in a manner similar to or different from the manner in which the coordinated startup time of the router device is calculated. For example, the coordinated startup time of the terminal device may be calculated based on the hop count of the terminal device as described herein. The coordinated startup time of the terminal device may be longer than the coordinated startup time of the router device. For example, the router device may be given priority over the terminal device to perform attachment to a device on a previously formed network.

[0189] After waiting for the coordination start time to expire, 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 thereon in a memory. The parent request message may be transmitted to the previous parent device as a unicast message to reattach to the parent device. At 938, the control device may determine whether a response to the parent request message is received. The response to the parent request message may be a parent response message. If a response to the parent request message is not received (e.g., within a predefined time period), at 930, the control device may abandon its role in the previously formed network and start another attachment procedure. The attachment procedure may be executed to attach to another network or network partition as described herein.

[0190] Fig. 9B is a sequence flow diagram illustrating exemplary messages communicated between devices in network 940 when performing a boot and / or attach procedure to attach to a device in a previously formed network. Fig. 9B The startup and / or attachment process shown in the sequence flow diagram shown may reflect the process when a device in the network 940 executes Fig. 9A One or more portions of flowchart 900 shown and described herein are sequence flows of messages in network 940. Referring again to Fig. 9B , an exemplary network 940 may include Figure 2EThe subset of devices in network 200c is shown as an example, but other networks with other 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.

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

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

[0193] The router device 225a may wait for the coordinated router device startup time 941 before transmitting the unicast request message 944. The coordinated startup time 941 of the router device 225a may be equal to the base delay time (e.g., which may be the same for each router device 225a, 225d, 225f) plus the offset delay time. The offset delay time of the coordinated router device startup time 941 may be based on the hop count between the router device 225a and the leader device 215. For router devices with a larger number of hops from the 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 (e.g., hop count=1) returned to the leader device 215. During the formation of the previously formed network, the hop count may be stored locally at the router device 225a.

[0194] After the router device 225a waits for the coordinated router device startup time 941, the router device 225a may send a unicast request message 944. The unicast request message 944 may be transmitted by the router device 225a so that the router device 225a attempts to resume its role in the previously formed network. The unicast request message 944 may be a link request message used to re-form a communication link between the router device 225a and the leader device 215. The router device 225a may identify in a memory the leader device 215 to which the router device 225a is attached in the previously formed network. The router device 225a may transmit the unicast request message 944 to the leader device 215 to which the router device 225a is attached in the previously formed network. The unicast request message 944 may include a router identifier of the other unique identifier of the leader device 215.

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

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

[0197] After the router device 225d waits for the coordinated router device startup time 941a, the router device 225d may send a unicast request message 946. The unicast request message 946 may be transmitted by the router device 225d so that the router device 225d attempts to resume its role in the previously formed network. The unicast request message 946 may be a link request message used to re-form a communication link between the router device 225d and the router device 225a. The router device 225d may identify in a memory the router device 225a to which the router device 225d is attached in the previously formed network for transmitting a message to the leader device 215. For example, the identifier of the router device 225a may represent the next hop back to the leader device 215. The router device 225d may transmit the unicast request message 946 to the router device 225a to which the router device 225d is attached in the previously formed network. The unicast request message 946 may include a router identifier of the other unique identifier of the router device 225a.

[0198] 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 that may indicate the formation of a communication link for communication between router device 225d and router device 225a, such 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 a communication link is established. After receiving unicast response message 947 at router device 225d, router device 225d may transmit a router advertisement message in network 940.

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

[0200] After the router device 225f waits for the coordinated router device startup time 941b, the router device 225f may send a unicast request message 948. The unicast request message 948 may be transmitted by the router device 225f so that the router device 225f attempts to resume its role in the previously formed network. The unicast request message 948 may be a link request message used to re-form a communication link between the router device 225f and the router device 225d. The router device 225f may identify in a memory the router device 225d to which the router device 225f is attached in the previously formed network for transmitting a message to the leader device 215. For example, the identifier of the router device 225d may represent the next hop back to the leader device 215. The router device 225f may transmit the unicast request message 948 to the router device 225d to which the router device 225f is attached in the previously formed network. The unicast request message 948 may include a router identifier of the other unique identifier of the router device 225d.

[0201] 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 that may indicate the formation of a communication link for communication between router device 225f and router device 225d, such 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 a communication link is established. After receiving unicast response message 949 at router device 225f, router device 225f may transmit a router advertisement message in network 940.

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

[0203] After the terminal device 260 waits for the coordinated 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 attempts to resume its role in the previously formed network. The parent request message 950 may be a request to re-form a communication link between the terminal device 260 and the router device 225f. The terminal device 260 may identify in a memory the router device 225f to which the terminal device 260 is attached in the previously formed network for transmitting a message to the leader device 215. For example, the identifier of the router device 225f may represent the next hop back to the leader device 215. The terminal device 260 may transmit the parent request message 950 to the router device 225f to which the terminal device 260 is attached in the previously formed network. The parent request message 950 may include a router identifier of other unique identifiers of the router device 225f.

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

[0205] In addition to delaying startup during a predefined interval to allow the leader device and / or other router devices to perform their startup procedures and / or attach to other devices on the network, the router device and the terminal device may wait to receive an announcement message from the router device or the router device to which the terminal device is attached on the previously defined network. Again, the control device that is the leader device of the previously formed network may start the startup procedure before other control devices in the load control system. The control device that is a non-leader router device in the previously formed network may delay its startup procedure to allow the leader device to start and start transmitting announcement messages to other router devices. Other router devices may start 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 start their startup procedures at a random time during the interval after the leader initiates its startup procedure. During the startup procedure at the router device, each router device may wait for an announcement message from the leader device or another router device to which the router device is attached in the previously formed network. The receipt of the announcement message may indicate that the device to which the router device is attached in the previously formed network is powered on and establishes its previous role in the previously formed network. After receiving an announcement message from a leader device or other router devices to which a router device is attached in a previously formed network, the router device may attempt to attach to the device. The terminal device may start its startup procedure during a predefined interval after power-on to allow 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 at which the router device delays its startup procedure to allow the router device to have 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 announcement message from a leader device or another router device to which the terminal device is attached in a previously formed network. Receipt of an announcement message may indicate that the device to which the terminal device is attached in the previously formed network is powered on and establishes its previous role in the previously formed network. After receiving an announcement message from a leader device or other router devices to which the terminal device is attached in the previously formed network, the terminal device may attempt to attach to the device.

[0206] Fig. 9C 1 is a flow chart of an example reattachment procedure 952 for reattaching devices in a previously formed network and / or re-forming a previously formed network (e.g., after a power loss or another network reset). The procedure 952 may be performed by a control device of other devices that were attached to a previously formed network prior to a power loss or other network reset. Fig. 9CAs shown, routine 952 may begin at 953. For example, as described herein, routine 953 may be performed after a control device reset, which may occur after a power outage or another event that results in a disruption of power supplied to respective control devices attached to a previously formed network.

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

[0208] At 955, a control device (e.g., a leader device of 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 may be used to determine whether the network has been formed with another leader device. In one example, the previously formed network may have been powered off and additional devices may have been added to the system, the location of the device may have been moved, and / or the space may have been reconfigured to cause interference sources between devices to be added or removed. Due to potential changes in the network and / or the space in which the network is located, the leader device may transmit a link request message to determine whether there is another leader device on the network. For example, a link request message may be transmitted to identify whether there is an already formed network being implemented. Therefore, the leader device may transmit a link request message to determine whether other devices have been powered on and have formed a network with another leader device. If the leader device receives a response to the link request message, the leader device may not be able to become a leader device on the network and may revert to being an end device or another role on the network. Other control devices of the previously formed network may not be able to respond to the link request because they may be waiting for a leader announcement from the leader device and / or a coordinated startup time after powering on and turning on.

[0209] At 956, the control device may determine whether one or more other network partitions exist, for example, based on receiving a response to the link request message. If another leader device receives the link request message and transmits a response to the link request message, then at 958 the control device may determine that another network partition exists, relinquish the previous role of the control device (e.g., the role of the leader device in the previously formed network), and initiate another attachment procedure (e.g., as described herein in conjunction with Figure 5 As described herein, a control device may relinquish a previous role to form a network that may be configured differently from a previously formed network. The fact that a 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 was previously the leader device).

[0210] At 956, the control device may determine whether there are one or more other network partitions, for example, based on receiving a response to the link request. If another leader device receives the link request message and transmits a response to the link request message, the control device may determine that there are other network partitions and may relinquish the previous role of being the leader device of the previously formed network. At 958, the control device may relinquish the previous role of being the leader device of the previously formed network to initiate another attachment procedure (e.g., as described herein in conjunction with Figure 5 The attach procedure at 958 may be performed to form a network that may be configured differently from a previously formed network. The fact that the leader device responds to the 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 controlling device that was previously the leader device).

[0211] However, if no response to the link request message is received, the control device may determine that another network partition does not exist, and at 960, may transmit a leader advertisement message. The leader advertisement message may be used to re-form a previously formed network, for example, by triggering a router device of the previously formed network to attach to the leader device (e.g., transmitting a link request message to the leader device) and re-form the mesh of the previously formed network. The router device attached to the leader device in the previously formed network may listen to the leader advertisement before initiating its attachment procedure.

[0212] At 962, the control device may determine whether the control device is a router device of a previously formed network. The determination at 962 may be based on a role identifier stored in a memory at the control device, the role identifier indicating the role of the router device 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 a coordinated startup time (e.g., a coordinated router startup time) to wait for the router device. As described herein, the coordinated startup time of the router device may be equal to a basic 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 a hop count between the corresponding router device and the leader device. For example, the basic delay time may be the same for each router that was previously attached to the previously formed network, and may allow the leader device of the previously formed network to reform into a network and be available for router device reattachment. The offset delay time may be based on a hop count back to the leader device, and may make the offset delay time of a router device that is farther away from the leader device longer than the offset delay time of a router device that is closer to the leader device. Reference Figure 2E For example, the offset delay time of the router devices 225a and 225c directly attached to the leader device 215 may be shorter than the offset delay time of the router devices 225b, 225d, and 225e not directly attached to the leader device 215. Therefore, the coordinated router start time of the router devices 225a and 225c may end before the coordinated start time of the router devices 225b, 225d, and 225e.

[0213] The offset delay time of each device can be a predefined time period multiplied by the hop count of the control device. The hop count can be determined from a 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, and the offset delay time 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 from the leader device can allow a router device with a lower hop count from the leader device or closer to the leader device to perform the attachment procedure before a router device with a higher hop count from the leader device or farther from the leader device. In an example, the predefined time period multiplied by the hop count to calculate the offset delay time can be in the range of ten seconds to thirty seconds. However, this time can be changed to allow other delays so that the router device can have time to power on, perform the attachment procedure and / or start sending announcements.

[0214] In another example, when calculating the offset delay time for a control device, a different amount of time may be added for each hop count. As the hop count increases, the amount of time added for each hop count may be more or less. For example, as the hop count increases, the amount of time added to the offset delay time may 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 may vary based on the number of control devices with the same hop count. This may allow for shorter delays when fewer control devices perform the attachment procedure, and larger delays when more devices perform the attachment procedure. The control device may store thereon control devices with the same hop count from a previously formed network, or this may be transmitted to the control device from a central computing device or a debugging device.

[0215] Return to reference Fig. 9C After waiting for the coordinated startup time of the router device at 963, the control device may determine whether it has received an announcement message at 964 from another control device to which the control device is attached in the previously formed network. The control device may receive an announcement message from a leader device (e.g., the announcement message transmitted at 960), or receive an announcement message from another router device (e.g., the announcement message transmitted at 974). For example, the control device may wait to receive an announcement message from any of the leader device and / or router devices in the network at 964. In addition, the control device may wait to receive an announcement message from a selected router device at 964. For example, the selected router device may be a router device through which network communications are transmitted through the network to reach the leader device in the previously formed network, which may be a leader device or a router device (e.g., depending on whether the control device was previously attached to the leader device of the previously formed network or another router device). The unique identifier of the selected router device (e.g., the router device through which network communications are transmitted through the network to reach the leader device in the previously formed network) may be stored in a memory. The control device may wait for an advertisement message from the selected router device whose unique identifier is stored in the memory. If the control device has not received an advertisement message from the selected router device, the control device may determine whether a timeout period has passed at 966. If the timeout period has passed and an advertisement message has not been received, the control device may abandon its previous role and begin another attachment procedure at 968. If the control device receives an advertisement message from the selected router device, the control device may attempt to attach to the router device at 970 (e.g., as described in more detail below).

[0216] After waiting for the coordinated router device startup time at 963, the control device may wait 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 the memory at 964. When the control device receives the advertisement message from the selected router device during the first time period, the control device may attempt to attach to the selected router device at 970. If the control device does not receive the 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., in addition to and / or including the selected router device). For example, the control device may wait to receive an advertisement message from any of the leader device and / or router devices in the network during the second time period. When the control device receives the advertisement message from the router device during the second time period, the control device may attempt to attach to the router device from which the advertisement message was received at 970. For example, when the control device receives the advertisement message during the second time period, the control device may attempt to attach to any of the leader device and / or router devices in the network. In addition, when the control device receives an announcement message from the router device during the second time period and the received signal strength magnitude (e.g., RSSI) of the received announcement message exceeds the threshold, the control device attempts to attach to the router device. If the control device does not receive an announcement message from the router device before the end of the second time period, the control device may abandon its previous role and start another attachment procedure at 968.

[0217] If the control device receives an advertisement message from a selected router device whose unique identifier is stored in memory at 964, the control device may attempt to attach to the selected router device by transmitting a unicast request to the selected router device at 970. At 970, the control device may 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 may use to resume its role in the previously formed network. The control device may select the previous leader device or router device based on whether the control device is attached to the leader device of the previously formed network or to another router device. For example, if the control device is directly attached to a leader device in the previously formed network (e.g., Figure 2E If the control device is not directly attached to the leader device (e.g., a router device 220a, 220c), the control device may transmit an attachment message, such as a link request message (e.g., as a unicast message), configured to establish a router-to-router link to the leader device of the previously formed network. Figure 2EIf the control device is a router device 220b, 220d), the control device may transmit a link request message (e.g., as a unicast message) to the router device through which the control device may communicate to communicate with the leader device. Figure 2E , router device 225b may store an identifier of router device 225c, which may represent a 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 coordinated start time. At 972, the control device may determine whether a response to the link request message transmitted at 970 is received. As described herein, a response to the link request message may be a link accept message, which may indicate establishment of a communication link for communication with a control device in a previously formed network. The link accept message may include information (e.g., a frame counter) that allows the control device to decrypt messages from a device with which the communication link is established.

[0218] 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 abandon its role in the previously formed network and begin another attachment procedure. The response to the link request message may indicate that the leader or other router device of the previously formed network is powered on and accepting 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 a 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 reform the previously formed network. For example, referring to Figure 2A , if the router device 220a sends a router advertisement message, the terminal device 230a and the dormant terminal device 250 may be triggered to reattach to the router device 220a. Figure 2E , if router devices 225a, 225c transmit router advertisement messages, router devices 225e, 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, 225e may wait for router advertisements from their respective router devices to which they were previously attached during their coordinated startup time.

[0219] Reference again Fig. 9C, the control device may determine that the control device is a terminal device. For example, if the control device determines at 962 that the control device is not a router device in a previously formed network, the control device may determine at 976 that it is a terminal device and wait for the coordination startup time. The coordination startup time of the terminal device may be a predetermined time. The coordination startup time of the terminal device may be longer than the coordination startup time of the router device. The coordination startup time of the terminal device may 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 coordination startup time of the router device (e.g., the coordination startup time at 963) may be a random time between zero seconds and one second, while the coordination startup time of the terminal device (e.g., the coordination startup time at 976) may be a random time between ten seconds and twenty-five seconds. In addition, the coordination startup time may be calculated as described herein.

[0220] The coordination start time may end after the router device of the previously formed network has reattached to other devices in the network. After waiting for the coordination start time to end at 976, the control device may determine at 975 whether a notification message is received from the parent device of the control device on the previously formed network.

[0221] The control device may receive a notification message from its previous parent device. For example, the control device may wait to receive a notification message from a router device at 975, through which network communications are transmitted in a previously formed network (e.g., a previous parent device). The unique identifier of the router device to which the control device is attached in the previously formed network may be stored in a memory. The control device may wait for a notification message from a previous parent device whose unique identifier is stored in the memory so that it can communicate in the previously formed network. If the control device has not received a notification message from a previous parent device whose unique identifier is stored in the memory so that it can communicate in the previously formed network, the control device may determine at 977 whether a timeout period has passed. If the timeout period has passed and a notification message has not been received, the control device may abandon its previous role at 968 and start another attachment procedure.

[0222] If the control device receives a notification message from a previous parent device whose unique identifier is stored in memory, 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. At 978, the control device may transmit a 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 may use to resume its role in the previously formed network. The control device may select the previous parent device based on whether the control device is attached to a child device of 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 a leader device in the previously formed network (e.g., Figure 2C and Figure 2D The terminal device 234a and Figure 2B 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. However, if the control device is not directly attached to the leader device (e.g., Figure 2A If the control device is a dormant end device 250 and / or a REED device 240, the control device may transmit a parent request message (e.g., as a unicast message) to a router device through which the control device may communicate to communicate on the network (e.g., with a leader device). Figure 2A , end device 230a may store an identifier of router device 220a, which may represent a next hop back to leader device 210. End device 230a may transmit the parent request message as a unicast message to router device 220a after waiting for the coordinated start time.

[0223] Reference again Fig. 9C At 980, the control device may determine whether a response to the parent request message transmitted at 978 is received. The response to the parent request message may be a parent response message. If a response to the parent request message is not received (e.g., within a predefined time period), at 968, the control device may abandon its role in the previously formed network and begin another attachment procedure. The response to the unicast message may indicate that the parent device of the previously formed network is powered on and accepts the child device. The attachment procedure may 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 may continue to communicate with the same parent device of the previously formed network.

[0224] Fig.9D is a sequence flow diagram illustrating exemplary messages communicated between devices in network 940a when performing a boot and / or attach procedure to attach to a device in a previously formed network. Fig.9DThe startup and / or attachment process shown in the sequence flow diagram shown may reflect the process when a device in network 940a executes Fig. 9C One or more portions of the flowchart 952 shown and described herein are sequence flows of messages in the network 940a. Fig.9D , exemplary network 940a may include Fig. 9B The network 940a may include a similar device configuration as shown in FIG. Figure 2E The subset of devices in network 200c is shown as an example, but other networks with other configurations may operate similarly.Network 940a may include a leader device 215, router devices 225a, 225d, 225f, and an end device 260 attached to a parent device (e.g., router device 225f).

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

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

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

[0228] The coordination start time 982 of the router device 225a may be different from the coordination start time 982a, 982b of the other router devices 225d, 225f. For example, the coordination start time 982 may be equal to the basic delay time (e.g., which may be the same for each router device 225a, 225d, 225f) plus the offset delay time. The offset delay time of the coordination router device startup time 982 may be based on the hop count between the router device 225a and the leader device 215. For router devices with a larger number of hops from the 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 (e.g., hop count=1) returned to the leader device 215. During the formation of the previously formed network, the hop count may be stored locally at the router device 225a.

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

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

[0231] The router device 225d may wait for the coordinated router device startup time 982a before listening to the announcement message transmitted from the router device 225a to which the router device 225d is attached in the previously formed network. As described herein, the coordinated router device startup time of the router device 225d may be the same or different from the coordinated router device startup times 982, 982b of other router devices 225a, 225f in the network 940a. The coordinated startup time 982a of the router device 225d may be equal to the basic delay time (e.g., it may be the same for each router device 225a, 225d, 225f) plus the offset delay time. The offset delay time of the coordinated router device startup time 982a may be based on the hop count between the router device 225d and the leader device 215. For router devices with a larger number of hops from the leader device 215, the offset delay time may be weighted higher. For example, the offset delay time may be a multiple of the hop count (e.g., hop count=2) based on the return to the leader device 215. 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 greater hop count from leader device 215. During formation of the previously formed network, the hop count may be stored locally at router device 225d.

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

[0233] In response to the announcement message 988, the router device 225d may transmit a unicast request message 989 to the router device 225a. The unicast request message 989 may be transmitted by the router device 225d so that the router device 225d attempts to resume its role in the previously formed network. The unicast request message 989 may be a link request message to re-form a communication link between the router device 225d and the router device 225a. The unicast request message 989 may include a router identifier of the other unique identifier of the router device 225a.

[0234] 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 that may indicate the formation of a communication link for communication between router device 225d and router device 225a, such 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 a communication link is established. After receiving unicast response message 990 at router device 225d, router device 225d may transmit a router advertisement message in network 940a.

[0235] The router device 225f may wait for the coordinated router device startup time 982b before listening to the announcement message transmitted from the router device 225d to which the router device 225f is attached in the previously formed network. As described herein, the coordinated router device startup time of the router device 225f may be the same or different from the coordinated router device startup times 982, 982a of the other router devices 225a, 225d in the network 940a. The coordinated startup time 982b of the router device 225f may be equal to the basic delay time (e.g., it may be the same for each router device 225a, 225d, 225f) plus the offset delay time. For router devices with a larger number of hops from the 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 the router device 225f and the leader device 215. For example, the offset delay time may be a multiple based on the hop count (e.g., hop count=3) returned to the leader device 215. The offset delay time of router device 225f may be longer than the offset delay times of router devices 225a, 225d because router device 225f has a greater hop count from leader device 215. During formation of the previously formed network, the hop count may be stored locally at router device 225f.

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

[0237] In response to the announcement message 991, the router device 225f may transmit a unicast request message 992 to the router device 225d. The unicast request message 992 may be transmitted by the router device 225f so that the router device 225f attempts to resume its role in the previously formed network. The unicast request message 992 may be a link request message to re-form a communication link between the router device 225f and the router device 225d. The unicast request message 992 may include a router identifier of the other unique identifier of the router device 225d.

[0238] Router device 225d may receive unicast request message 992 and respond with unicast response message 993. As described herein, unicast response message 993 may be a link acceptance message that may indicate the formation of a communication link for communication between router device 225f and router device 225d, such 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 a communication link is established. After receiving unicast response message 993 at router device 225f, router device 225f may transmit a router advertisement message in network 940a.

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

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

[0241] In response to the announcement message 994, the terminal device 260 may transmit a parent request message 995 to the router device 225f. The parent request message 995 may be transmitted as a unicast message. The parent request message 995 may be transmitted by the terminal device 260 so that the terminal device 260 attempts to restore its role as a child device of the router device 225f in the previously formed network. The parent request message 995 may be a request to re-form a communication link between the terminal device 260 and the router device 225f. The terminal device 260 may identify in a memory the router device 225f to which the terminal device 260 is attached in the previously formed network for transmitting a message to the leader device 215. For example, the identifier of the router device 225f may represent the next hop back to the leader device 215. The terminal device 260 may transmit the parent request message 995 to the router device 225f to which the terminal device 260 is attached in the previously formed network. The parent request message 995 may include a router identifier of other unique identifiers of the router device 225f.

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

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

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

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

[0246] If a response to the message to become a router device is received at 1006, the control device may transmit a link request message at 1010. As described herein, a router device within the network may respond to the link request message with a link acceptance message, and the control device may now be assigned the role of a router device. After the router device is upgraded, other devices may attach to the control device and establish parent-child links with the control device, which may reduce the likelihood that the control device will form a new network partition because the control device fails to attach to a device on an already formed network or network partition. Therefore, at 1012, the control device executing procedure 1000 may communicate with the router device that responded to the link request transmitted at 1010, and procedure 1000 may exit.

[0247] Reference again Figure 2B , multiple network partitions 201, 202, 203 may be formed in a single network 200b. However, a device in one partition (e.g., the first network partition 201) may not be able to communicate with a device 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 the network device 190 is attached to a different network partition than the floor lamp 142, the network device 190 may not be able to communicate with the floor lamp 142 (e.g., send load control instructions to the floor lamp). Similarly, if the system controller 110 is attached to a different network partition than the electric window treatment 150, the system controller 110 may not be able to communicate with the electric window treatment 150. However, returning to reference Figure 2B , when each of the devices in a network such as network 200b is in a single network partition, the devices may eventually be able to communicate with each other (e.g., Figure 2A ). Therefore, in order to merge multiple network partitions into a single network partition, the device may attempt to attach to a network partition with a higher priority. For example, a network partition with a higher priority value may be a network partition with a higher partition identifier. Again referring to Figure 2B , network partition 201 may have a higher priority than network partitions 202, 203 (e.g., because network partition 201 has partition identifier 3, and network partitions 202, 203 have partition identifiers 1 and 2, respectively). In addition, 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 higher priority network partition than a network partition that does not include a router device, regardless of the priority value of the network partition. For example, referring to Figure 2B, since network partition 202 includes router devices 222a, 222b, 222c, 222d, network partition 202 may have a higher priority than network partition 203 (e.g., even though network partition 203 has a higher priority value of 2). Therefore, if leader device 213 hears an announcement message from a control device in network partition 202, leader device 213 may attempt to attach to network partition 202.

[0248] As described herein, a router device in a network partition may be assigned a router identifier (e.g., a router ID) by a leader device of the corresponding network partition. When a control device attempts to attach to another control device on the network partition and then attempts to become a router device, a router identifier may be randomly assigned to the device (e.g., from a range of predefined router identifiers). Additionally or alternatively, when a control device attempts to attach to another control device on the network partition and then attempts to become a router device, the device may request to be assigned a specific router identifier. For example, when a router device was assigned a requested router identifier in a network partition to which the device was previously attached, the router device may request to be assigned a specific router identifier. Furthermore, if the router device subsequently attaches to another network partition and uses the router identifier assigned in the previous network partition, a child device of the router device from the previous network partition may automatically attach to a router device in the other network partition (e.g., by using an attachment procedure) (e.g., without attempting to attach to another router device on the network partition, as described herein in conjunction with Figures 6 to Figure 8B However, if the router device is attached to another network partition and cannot use the requested router identifier (e.g., the router device is assigned a different router identifier), the sub-device of the router device may not automatically attach to the other network partition. Instead, the sub-device may have to use the router identifier described in conjunction with FIG. Figure 8B The described procedures are used to attach to another router device on a network partition (eg, using the attach procedure to establish a parent-child link).

[0249] A child device of a parent device that is separated from a network partition may be unable to communicate with other devices on the network partition (e.g., because the parent device facilitates communication of the child device), and the child device may attempt to attach to another router device in the partition and establish a parent-child link with the other router device. In some instances, the parent device that is separated from the network partition to attach to another network partition may be a leader device of the network partition. As described herein, when the leader device is separated from the 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 the leader device is separated from the 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 the device to another partitioned network may be delayed (e.g., due to a backoff period as described herein). However, if the device initiates the attachment procedure earlier, the formation of a single network partition in the network can be accelerated.

[0250] Fig. 10B 1 is a flow chart of an exemplary procedure 1020 performed 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 performed by a control device that is 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., an end device, a dormant end device, and / or an end device that meets router conditions). Fig. 10B As shown, procedure 1020 may be executed by the control device in response to receiving a message at 1021. At 1022, the parent device may determine whether the received message is 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 may process the message accordingly at 1028. For example, the message received at 1021 may be an advertisement message from a router device attached to another network partition. In addition, the control device may process the router advertisement message at 1028 to determine the priority associated with the other network partitions (e.g., to determine whether the other network partitions have a higher priority), and / or to determine whether there is a conflict on the other network partitions (e.g., a router ID conflict). After processing the message at 1028, procedure 1020 may exit.

[0251] As shown in FIG. 10 , a control device that is a parent device of at least one child device may ignore messages from its child device when it detects a conflict (e.g., a router ID conflict) on a higher priority network. For example, if the message received at 1022 is from a child device, then at 1024 the parent device may determine 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 announcement message from a router device attached to a higher priority network partition and assigned the same router identifier as the device receiving the announcement message (e.g., when a received message that is not received from a child device of the control device is processed at 1028 of the previous caller 1020), the control device may determine that there is a router ID conflict. For example, an announcement message received from a control device attached to another network or network partition may include an indication of the router ID of each router device in the corresponding router devices attached to the other network or network partition, which may provide the control device with the ability to determine whether there is a router ID conflict. If there is no router ID conflict at 1024, then at 1028 the control device may process the message from its child device accordingly. For example, the control device may respond to or route a message received from a sub-device. Again, after processing the message at 1028, the program 1020 may exit.

[0252] However, if the control device determines that a router ID conflict does exist (e.g., when processing a received message that was not received from a child device of the control device 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 not be able to attach to a higher priority network partition and continue to use the same router identifier. In addition, a child device of a parent device may not be able to 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 of Figures 3 to 5 B), which can reduce the time it takes to form a single network partition. An updated router identifier (e.g., a router identifier that is different from the router identifier assigned in the previous network partition) can be assigned to the parent device by the higher priority network partition. When the parent device is separated from the 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 communicates in the network partition via the parent device), and trigger 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 for data from the corresponding parent device, and when the parent device does not respond when the child device registers or polls for data, the child device may be triggered to attempt to attach to another network partition.

[0253] When a higher priority network partition exists, the growth of lower priority network partitions (e.g., the growth of the number of devices attached to the lower priority network partitions) can increase the amount of time it takes to form a single network partition. For example, devices attached to the lower priority network partitions may eventually attach to the highest priority network partition. In addition, if the leader device of each of the respective lower priority network partitions is separated from its respective network partition, the lower priority network partition may no longer exist, as described herein, which may cause the devices attached to the lower priority network partitions to lose network connectivity and attempt to attach to the higher priority network partition. Therefore, devices attached to the lower priority network partitions may attempt to attach to the higher priority network partition at the same time or substantially at the same time, which may cause the attachment of the devices to the higher priority network partition to be delayed (e.g., due to a backoff period as described herein).

[0254] Fig. 10C 1 is a flow chart 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., an end device that meets the router conditions) to the role of a router device. Fig. 10C As shown, procedure 1050 may be executed in response to receiving a message at 1051. At 1052, the leader device may determine whether the message is an attachment message (e.g., a router upgrade request message and / or an address solicitation message) configured to request an upgrade to a router device. As described herein, certain devices in a network partition (e.g., terminal devices that meet router conditions) may be upgraded to the role of a router device. In order to upgrade to the role of a router device, the device may transmit a message to the leader device of the network partition. If the leader device accepts the request to upgrade the role of the device 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.

[0255] At 1054, the leader device (e.g., leader device 211) may determine whether the higher priority network partition has exited. As described herein, the device may 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, the leader device may refuse to upgrade the device to the role of a router device (e.g., reject a router upgrade request message) at 1062. For example, if the leader device refuses to allow the device to be upgraded to the role of a router device, the additional device may not be able to attach to the lower priority network partition to which the leader device is currently attached (e.g., because the additional sub-device may not be able to attach to the network partition by attaching to the device that is requested to be upgraded to the role of a router device). If the additional device cannot attach to the lower priority network partition, the time it takes to form a single network partition in the network can be reduced.

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

[0257] Many implementations of networks such as Thread networks may, for example, continue to allow child devices that have been attached to a parent device to establish a communication link through the network and maintain the communication link until the communication link fails. 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 link between the router device and the initially added child devices may become fragile as the network grows. For example, the devices attached to the network may be child devices of the leader device. As the network grows and advances in formation, the leader device may upgrade the role of one or more of its child devices (e.g., end devices that qualify as routers) to the role of a router device, for example, to account for the attachment of additional devices. Thus, as time passes and 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 communication range of the network.

[0258] After the number of routers attached to the network is increased, the increased number of routers to attach to may be provided to a device attempting to attach to the network, which may allow the device to attach to a router that shares a stronger communication link with the respective device (e.g., messages between the router and the respective device have a higher RSSI). For example, if two devices are located proximally (e.g., located close to each other so that communication between each other is likely to be successful), the two respective devices may share a strong communication link. Similarly, the increased number of routers to attach to may be provided to a device attempting to attach to a secondary parent device, which may allow the device to attach to a router that shares a stronger communication link with the device.

[0259] If a child device is attached to a parent device with a stronger communication link, the device's communication through the network may be improved (e.g., the likelihood of a message being successfully sent and / or received may be increased). For example, because the communication link between the corresponding child device and the parent device may be stronger (e.g., messages may be sent and / or received with a stronger or higher received signal strength indicator), the device's communication through the network may be improved. However, as described herein, during the initial stages of network formation (e.g., when the network includes less than three routers), the child device may not be able to attach to a parent device with a stronger communication link. For example, the child device may not be able to attach to a parent device with a stronger communication link because the parent device may not exist (e.g., the network may not be able to upgrade the device that shares a strong communication link with the child device). In addition, the child device may remain attached to the parent device as long as a threshold number of communications are successfully sent and / or received (e.g., communications are successfully sent and / or received 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 another parent device, which may reduce the success of communications performed for the device over the network (e.g., the likelihood that messages may fail to be sent and / or received may increase).

[0260] However, if a child device is attached to a parent device that has a weaker communication link than other available parent devices, the child device's communication through the network may be degraded (e.g., the likelihood that a message fails to be sent and / or received may increase). However, the child device may remain attached to the parent device with the weaker communication link. For example, the child 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 threshold number of transmission failures (e.g., 5). In addition, when a message transmission fails, the child device's communication may be delayed, which may result in the load control system being unable to quickly respond to commands for implementing load control within the system.

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

[0262] The control device may attempt to attach to another parent device, for example, attempting to attach to a router device located at or near the device. In addition, because routers may be occasionally upgraded by the network during the initial stages of network formation, the routers located at 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 may 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 the auxiliary parent table. The parent update timer may be used to determine whether to attach to an updated parent device. When the auxiliary parent table is updated, the parent update timer may be reset (e.g., as Fig. 9B 940 of procedure 920).

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

[0264] Fig.11 is a flow chart of an exemplary procedure 1100 performed by a control device to attach to an updated parent device. Procedure 1100 may be performed by a control device after the control device has 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 performing procedure 1100 may be a child device attached to a parent device on the network. Procedure 1100 may be performed when at least one secondary parent device is identified in a secondary parent table (e.g., the secondary parent table has a non-null value) to potentially be added as an updated parent device and / or when the secondary parent device has a stronger average received signal strength identifier than the current parent device over a period of time. Referring now to Figure 2A The process 1100 may be executed by the terminal devices 230a, 230b, the terminal device 240 that meets the router conditions, and / or the dormant terminal device 250.

[0265] like Fig.11 As shown, procedure 1100 may be executed after the attachment timer expires at 1101. The parent update timer may be reset when the auxiliary parent table is updated. The auxiliary parent table may be updated each time an auxiliary parent device is added to the auxiliary parent table. The auxiliary parent device may be added to the auxiliary parent table when the control device is attached to the auxiliary parent device. The addition to the auxiliary parent table may indicate that the network is in the initial stages of network formation (e.g., the control device is still attached to the network and / or the leader device is still upgrading the router device on the network), the control device has been added to the network, and / or some form of interference (e.g., partitions or other communication devices) has been removed. The update to the auxiliary parent table may indicate that the leader device of the network recently upgraded the terminal device to a router device located near the control device, which may also indicate that the leader device of the network may update other router devices located near the control device.

[0266] At 1102, the control device may determine a communication metric, such as a received signal strength indicator value of a current parent device of the control device. For example, at 1102, the control device may determine a received signal strength indicator RSSI value of a current parent device of the control device. PARAs described herein, the control device may be attached to a parent device, which may facilitate communication of the control device over a network. At 1104, the control device may determine the secondary parent table having the highest received signal strength indicator RSSI AUX-HI A control device may be attached to one or more auxiliary parent devices. 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) may operate as an auxiliary parent device.

[0267] The control device may 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. Fig.11 As shown, at 1106, the control device may determine the highest received signal strength indicator RSSI of the auxiliary parent device in the auxiliary parent table. AUX-HI The received signal strength indicator RSSI of the current parent device PAR Is the difference between the two values ​​greater than or equal to the hysteresis threshold TH? PAR-HYS (For example, RSSI AUX-HI –RSSI PAR ≥TH PAR-HYS ). Hysteresis threshold TH PAR-HYS can be implemented to ensure that the communication between the control device and the auxiliary parent device being considered for the updated parent device is stronger than the communication between the control device and the current parent device by at least a hysteresis threshold TH PAR-HYS . Hysteresis threshold TH PAR-HYS A child device may be prevented from updating its parent device too frequently, for example, between multiple parent devices having similar received signal strength indicators for communications, which may avoid additional network communications and processing for similar or nominal communication gains.

[0268] Hysteresis threshold TH PAR-HYS It can be predefined (e.g., about 10 dB). PAR-HYS Can be variable. For example, the hysteresis threshold TH PAR-HYS The highest received signal strength indicator RSSI in the auxiliary parent table can be AUX-HI . Hysteresis threshold TH PAR-HYS Can be set to the highest received signal strength indicator RSSI of the auxiliary parent device in the auxiliary parent table AUX-HI If at 1100 the highest received signal strength indicator RSSI of the auxiliary parent device AUX-HI The received signal strength indicator RSSI of the current parent device PAR The difference between them is less than the hysteresis threshold TH PAR-HYS , then program 1100 can exit.

[0269] If at 1106 the highest received signal strength indicator RSSI of the auxiliary parent device AUX-HI The received signal strength indicator RSSI of the current parent device PAR The difference between the PAR-HYS , then at 1108 the control device may 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 may be the one with the highest received signal strength indicator RSSI AUX-HI This can improve the communication of the control device on the network. The control device can attach to the device with the highest received signal strength indicator RSSI by AUX-HI The auxiliary parent device of the secondary parent device: transmits one or more attachment messages configured to establish a parent-child link, such as a parent request message (e.g., as a unicast parent request message) to the auxiliary parent device. The secondary parent device having the highest received signal strength indicator RSSI AUX-HI The auxiliary parent device may transmit a response to the parent request message, which may include an indication of the received signal strength indicator of the parent request message. For example, the received signal strength indicator of the parent request message may be used to describe the response from the control device to the device with the highest received signal strength indicator RSSI. AUX-HI The strength of the communication with the secondary parent device.

[0270] If the control device cannot attach to the signal with the highest RSSI AUX-HI The secondary parent device and / or the one with the highest RSSI AUX-HI If the received signal strength indicator of the secondary parent device of the control device indicates that it cannot receive communication from the control device with a higher received signal strength identifier than the current parent device or above the threshold level of the current parent device, the control device may attempt to attach to another secondary parent device in the secondary parent list. For example, the control device may move to a secondary parent device with the next priority order in the secondary parent list to attempt to attach.

[0271] At 1110 , the control device may reset the parent update timer before the routine 1100 exits, so that the routine 1100 may be executed again when the parent timer expires to see if the control device should attempt to attach to the updated parent device.

[0272] Fig.1212 is a flow chart of an exemplary procedure 1200 performed by a control device to transmit a unicast message to a parent device. The procedure 1200 may be performed by the control device after the control device has attached to another device on the network (e.g., an initial parent device). For example, the control device performing the procedure 1200 may be a child device attached to a parent device on the network. When performing the procedure 1200, the control device may determine when to attempt to attach to an updated parent device or not to attach to an updated parent device. Referring now to Figure 2A The process 1200 may be executed by the terminal devices 230a, 230b, the terminal device 240 that meets the router conditions, and / or the dormant terminal device 250.

[0273] like Fig.12 As shown, the process 1200 may start at 1201. For example, at 1201, the control device may execute the process 1200 in response to the actuation of a button of the user interface. At 1202, the control device may transmit a unicast message to the parent device (e.g., a unicast message indicating the actuation of the button detected at 1201). At 1204, the control device may determine whether a response to the unicast message (e.g., a response message) is received. For example, the response message may provide an indication that the parent device has received the unicast message (e.g., a confirmation message) and / or may otherwise indicate that the transmission of the unicast message is successful. The response message may include an indication of a received signal strength indicator when the unicast message is received at the parent device. If the 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 the response message is not received at 1204, the control device may determine whether a timeout period has passed at 1206. When the timeout period elapses at 1206 without receiving a response at 1204, the control device may increment the number of failed transmissions N of the unicast message to the parent device at 1210. FAILED The timeout period may be predefined and may indicate a period of time during which a response message is to be received. At 1212, the control device may determine the number of failed transmissions to the parent device, N. FAILED Is greater than or equal to the maximum threshold number N of transmissions to be performed by the control device before the control device stops retrying to transmit unicast messages to the parent device MAX (e.g., initial transmission plus retransmissions). Maximum threshold number of transmissions N MAX may be predefined or preconfigured to a value of, for example, twelve (12). FAILED Not greater than or equal to the maximum threshold number N of transmissions MAX , then at 1202 the control device may retransmit the unicast message to the parent device.

[0274] 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 attached to the parent device during an initial stage of network formation (e.g., when the number of available router devices to attach to is low) and / or the control device and the parent device are not located close to each other. At 1214, the control device may determine the number of failed transmissions to the parent device, N. FAILED Is greater than or equal to the maximum number of transfers N that can fail before the controlling device attempts to attach to the updated parent device? BAD-LINK . Maximum number N BAD-LINK? may indicate the maximum number of failed transmissions or retransmissions, which may indicate that the communication link between the control device and the parent device is weak. As a result, if the number of failed transmissions to the parent device N FAILED Greater than or equal to the maximum number N BAD-LINK , 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) at 1216. For example, the control device may initiate an attachment procedure to establish a parent-child link with a secondary parent device that has the next priority order in the secondary parent table (e.g., to set the secondary parent device as the parent device).

[0275] As described herein, a control device may attempt to attach to an updated parent device to improve the control device's communication quality over a 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 the control device's current parent device. Fig.13 is a flow chart of an exemplary procedure 1300 executed by a control device to attempt to attach to an updated parent device. The procedure 1300 may be executed by the control device after the control device has attached to the current parent device. For example, the control device executing the procedure 1300 may be a child device of the current parent device. Figure 2A The procedure 1300 may be executed by the terminal devices 230a, 230b, the terminal device 240 that meets the router conditions, and / or the dormant terminal device 250. Fig.13 As shown, the process 1300 can start at 1301. For example, the process 1300 can be performed as an attempt to attach to an updated parent device, for example, during the execution of the process 1150 (e.g., at 1158 of the process 1150) or the execution of the process 1200 (e.g., at 1216 of the process 1200).

[0276] At 1302, the control device may determine the secondary parent table having the highest received signal strength indicator RSSI AUX>CH(e.g., the highest received signal strength indicator of messages transmitted by the secondary parent device to the child device). For example, at 1302, the control device may simply call the secondary parent device having the highest received signal strength indicator RSSI as determined during execution of the routine 1100 (e.g., at 1104 of the routine 1100). AUX-HI At 1304, the control device may determine the highest received signal strength indicator RSSI of the auxiliary parent device in the auxiliary parent table. AUX>CH The received signal strength indicator RSSI of the current parent device PAR Is the difference between the two values ​​greater than or equal to the hysteresis threshold TH? PAR-HYS .

[0277] If at 1304 the highest received signal strength indicator RSSI of the auxiliary parent device in the auxiliary parent table AUX>CH The received signal strength indicator RSSI of the current parent device PAR The difference between the PAR-HYS , then at 1306 the control device may initiate a connection with the secondary parent table having the highest received signal strength indicator RSSI AUX>CH 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 secondary parent device in the secondary parent list with the highest received signal strength indicator RSSI. AUX>CH The secondary parent device (e.g., the one with the highest received signal strength indicator RSSI AUX>CH The parent request message may be a message configured to inquire the secondary parent device whether the device is a possible option for attachment. The parent request message may be part of a two-message exchange in which the secondary parent device sends a response message indicating whether the secondary parent device is available to operate as a parent device for controlling the device. The secondary parent device may determine whether the secondary parent device has any openings available for attaching a child device or whether the secondary parent device is already a parent device for a threshold number of child devices as defined on the network.

[0278] The control device may attempt to use the signal having the highest received signal strength indicator RSSI AUX>CH The child device of the auxiliary parent device is attached (for example, the child device with the highest received signal strength indicator RSSI AUX>CH The auxiliary parent device of the control 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 may determine whether a response to the confirmation parent request message is received. For example, the control device with the highest received signal strength indicator RSSI AUX-HIThe auxiliary parent device may transmit a response in response to receiving the parent request message to confirm that the auxiliary parent device is capable of becoming the parent device of the control device (e.g., accepting the parent request message). In addition, the response may include a received signal strength indicator RSSI for a message (e.g., a parent request message) received by the auxiliary parent device from the control device. CH>AUX instructions.

[0279] 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 than the current parent device. For example, at 1310, the control device may determine a received signal strength indicator 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 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. I...

Claims

1. A method for controlling communication of a device on a network, the network comprising at least one leader device, a group of router devices and one or more terminal devices, the control device being configured to communicate as a terminal device, the method comprising: determining a destination device to which the message is to be transmitted; responsive to the determination, identifying a primary parent device through which the message is to be transmitted over a network, wherein the primary parent device is a first router device in the group of router devices, and wherein an identifier of the primary parent device is stored in a memory of the control device; transmitting the message to the destination device via the primary parent device; receiving messages from one or more secondary parent devices and the primary parent device, wherein identifiers of the one or more secondary parent devices are stored in memory as router devices in the group of router devices from which network communications can be received, wherein at least one of the messages received from the one or more secondary parent devices originates from the at least one leader device; storing a respective received signal strength indicator RSSI associated with the primary parent device and each of the one or more secondary parent devices; identifying a first secondary parent device among the one or more secondary parent devices as a second primary parent device through which network communications are to be transmitted instead of the primary parent device based on the RSSI of the primary parent device and a corresponding RSSI of the first secondary parent device, wherein the control device transmits and receives messages with other devices through the first secondary parent device; and An attach message is transmitted to the first secondary parent device, wherein the attach message is configured to update the primary parent device to the first secondary parent device.

2. The method of claim 1, further comprising: The first secondary parent device is set as the second primary parent device of the controlling device when the corresponding RSSI associated with the first secondary parent device indicates that the communication link between the controlling device and the second primary parent device is stronger than the communication link between the controlling device and the primary parent device.

3. The method of claim 2, wherein the RSSI of the primary parent device comprises an average received signal strength indicator of messages received from the primary parent device, and the corresponding RSSI of each of the one or more secondary parent devices comprises an average received signal strength indicator of messages received from the secondary parent device.

4. The method of claim 3, further comprising: Determining that the average received signal strength indicator of the first secondary parent device is greater than the average received signal strength indicator of the primary parent device determines that the corresponding RSSI of the first secondary parent device indicates that the communication link between the control device and the second primary parent device is stronger than the communication link between the control device and the primary parent device.

5. The method of claim 4, further comprising: It is determined that the average received signal strength indicator of the first secondary parent device is greater than the average received signal strength indicator of the primary parent device by a certain margin.

6. The method of claim 5, further comprising: storing a received signal strength when the primary parent device receives a message from the control device; transmitting an attach message to the first auxiliary parent device; receiving a response message from the first auxiliary parent device, the response message comprising a received signal strength indicator when the first auxiliary parent device receives the attach message; determining whether the received signal strength indicator when the first secondary parent device receives the attach message is greater than the received signal strength indicator when the primary parent device receives the message from the control device; and When the RSSI when the first auxiliary parent device receives the attach message is greater than the RSSI when the primary parent device receives a message from the control device, the first auxiliary parent device is set as the second primary parent device of the control device.

7. The method of claim 6, further comprising: When no response message is received from the first auxiliary parent device, or when the received signal strength indicator when the first auxiliary parent device receives the attachment message is not greater than the received signal strength indicator when the primary parent device receives the message from the control device, it is determined not to set the first auxiliary parent device as the second primary parent device.

8. The method of claim 7, wherein after determining not to set the first secondary parent device as the primary parent device, the method further comprises: determining that a corresponding RSSI of a second auxiliary parent device of the one or more auxiliary parent devices indicates a stronger potential communication link than the RSSI of the primary parent device; and When a received signal strength indicator when the second auxiliary parent device receives the attach message is greater than the received signal strength indicator when the second primary parent device receives a message from the control device, the second auxiliary parent device is set as a third primary parent device of the control device.

9. The method of claim 1, further comprising: transmitting a unicast message to the primary parent device; and When the primary parent device receives the unicast message from the primary parent device, a confirmation message is received from the primary parent device.

10. The method of claim 9, further comprising: The number of times the control device transmits a unicast message to the primary parent device without receiving an acknowledgement message from the primary parent device is counted.

11. The method of claim 10, wherein when the number exceeds a threshold, the method further comprises setting the first auxiliary parent device as the second primary parent device of the control device based on the RSSI of the primary parent device and the corresponding RSSI of the first auxiliary parent device.

12. The method of claim 1, further comprising: A secondary parent table is maintained that includes a unique identifier associated with each of one or more secondary parent devices and the corresponding RSSI.

13. The method of claim 12, further comprising: determining an RSSI of a router device that is not one of the one or more auxiliary parent devices of the control device; determining that a corresponding RSSI of a second auxiliary parent device indicates a weakest communication link of the one or more auxiliary parent devices in the auxiliary parent table; determining that the RSSI of the router device indicates a stronger potential communication link than the RSSI of the second auxiliary parent device; removing the unique identifier of the second auxiliary parent device and the RSSI from the auxiliary parent table; and The unique identifier of the router device and the RSSI are added to the auxiliary parent table.

14. The method of claim 1, further comprising automatically setting the first secondary parent device as the primary parent device upon determining that the corresponding RSSI of the first secondary parent device indicates a stronger potential communication link than the corresponding RSSI of the primary parent device.

15. The method of claim 1, further comprising receiving at least one multicast message from the one or more secondary parent devices.

16. A non-transitory computer-readable storage medium having program instructions stored thereon, the program instructions, when executed by a control circuit, causing the control circuit to perform the method according to any one of claims 1-15.

17. An apparatus comprising: Control circuit; and A memory coupled to the control circuit for storing instructions, which, when executed from the memory, cause the control circuit to perform the method according to any one of claims 1-15.

18. An apparatus comprising means for performing the method according to any one of claims 1-15.

19. A method for updating a set of secondary parent devices maintained by a terminal device in a network including a plurality of router devices, one of the plurality of router devices being a primary parent device to which the terminal device is attached for sending and receiving messages to other devices in the network, and at least another of the plurality of router devices being a secondary parent device to which the terminal device is attached for processing messages received from the secondary parent device, the method comprising: receiving a message directly from a router device among the plurality of router devices in the network that is not a secondary parent device of the terminal device; measuring a first communication metric based on receipt of the message, wherein the first communication metric indicates a quality of communication between the terminal device and the router device from which the message was received; identifying, based on the set of auxiliary parent devices maintained by the terminal device, an auxiliary parent device in the set of auxiliary parent devices that is linked to the terminal device and has a second communication metric, the second communication metric being a lowest communication metric in the set of auxiliary parent devices maintained by the terminal device, wherein the second communication metric indicates a communication quality between the terminal device and the identified auxiliary parent device; determining that the first communication metric indicates a higher quality than the second communication metric; as well as Attached to the router device as a secondary parent device to enable the terminal device to process messages received from the router device.

20. The method of claim 19, wherein the set of secondary parent devices is maintained in a secondary parent device table, and wherein the method further comprises updating the secondary parent device table to replace the secondary parent device and the second frequency channel metric with the router device and the first communication metric.

21. A method as claimed in claim 20, wherein the first communication metric is a received signal strength indicator of a communication link between the terminal device and the router device from which the message is received, and the second communication metric is a received signal strength indicator of a communication channel between the terminal device and the auxiliary parent device in the set of auxiliary parent devices that is synchronized with the terminal device.

22. A method as claimed in claim 19, wherein determining that the first communication metric indicates a higher quality than the second communication metric includes determining that the first communication metric indicating the first communication quality between the device and the router device from which the message is received is greater than the second communication metric which is the lowest communication metric in the set of auxiliary parent devices maintained by the terminal device plus a margin.

23. The method of claim 19, further comprising: measuring a communication metric between the terminal device and one or more other router devices to which the terminal device is not attached, wherein the communication metric indicates a quality of communication between the terminal device and each of the one or more router devices to which the terminal device is not attached; as well as identifying a second router device of the one or more router devices to which the terminal device is not attached, wherein the second router device is associated with a third communication metric indicative of a quality of communication between the terminal device and the second router device, and wherein the third communication metric is a highest communication metric of the communication metrics between the terminal device and one or more other router devices to which the terminal device is not attached; as well as The second router device is attached to the second router device as a secondary parent device to enable the terminal device to receive messages through the network through the second router device.

24. The method of claim 19, further comprising: measuring a communication metric between the terminal device and one or more other router devices to which the terminal device is not attached, wherein the communication metric indicates a quality of communication between the terminal device and each of the one or more router devices to which the terminal device is not attached; as well as identifying a second router device of the one or more router devices to which the terminal device is not attached, wherein the second router device is associated with a third communication metric indicative of a quality of communication between the terminal device and the second router device, and wherein the third communication metric is a highest communication metric of the communication metrics between the terminal device and one or more other router devices to which the terminal device is not attached; as well as determining whether the number of the one or more auxiliary parent devices attached to the terminal device is less than a limit associated with the set of auxiliary parent devices maintained by the terminal device, wherein when the number of the one or more auxiliary parent devices synchronized with the device is not less than a threshold number of synchronized auxiliary parent devices, the terminal device determines not to synchronize with the second router device.

25. The method of claim 24, further comprising: determining a link quality of a communication link between the terminal device and the second router device based on the third communication metric, wherein the link quality is determined as a number having a range of link qualities; determining that the link quality of the communication link between the terminal device and the second router device is greater than a threshold link quality; as well as In response to determining that the link quality of the communication link between the terminal device and the second router device is greater than the threshold link quality, the limit associated with the set of secondary parent devices maintained by the terminal device is incremented.

26. A non-transitory computer-readable storage medium having stored thereon program instructions, which when executed by a control circuit cause the control circuit to perform the method according to any one of claims 19-25.

27. An apparatus comprising: Control circuit; and A memory coupled to the control circuit for storing instructions which, when executed from the memory, cause the control circuit to perform the method according to any one of claims 19-25.

28. An apparatus comprising means for performing the method according to any one of claims 19-25.

29. A method for updating a primary parent device to which a child device is attached, wherein the child device is capable of transmitting and receiving messages through the primary parent device over a network, and wherein the child device is attached to one or more secondary parent devices, and the child device is capable of processing messages received directly from each of the one or more secondary parent devices, the method comprising: determining a first communication metric indicative of a quality of communication between the child device and the primary parent device; identifying a secondary parent device of the child device, the secondary parent device being associated with a second communication metric indicative of a quality of communication between the child device and the secondary parent device, wherein the one or more secondary parent devices are each associated with a communication metric indicative of a quality of communication between the child device and each of the one or more secondary parent devices to which the child device is attached, and wherein the second communication metric is a highest communication metric in a secondary parent table; determining that the first communication metric indicates a higher quality than the second communication metric; as well as The secondary parent device is set as the primary parent device to enable the device to transmit and receive messages over the network through the secondary parent device.

30. The method of claim 29, further comprising maintaining an auxiliary parent table, the auxiliary parent table comprising the one or more auxiliary parent devices to which the child device is attached and associated communication metrics indicating the communication quality between the child device and each of the one or more auxiliary parent devices to which the child device is attached, wherein identifying the auxiliary parent device associated with the second communication link and synchronized with the child device is based on the auxiliary parent table.

31. The method of claim 29, wherein the first communication metric is a received signal strength indicator of a communication link between the child device and the primary parent device, and the second communication metric is a received signal strength indicator of a communication link between the child device and the secondary parent device of the child device.

32. The method of claim 29, wherein comparing the first communication metric to the second communication metric comprises determining whether the second communication metric is greater than the first communication metric plus a margin.

33. A non-transitory computer-readable storage medium having stored thereon program instructions, which when executed by a control circuit cause the control circuit to perform the method according to any one of claims 29-32.

34. An apparatus comprising: Control circuit; and A memory coupled to the control circuit for storing instructions which, when executed from the memory, cause the control circuit to perform a method according to any one of claims 29-32.

35. An apparatus comprising means for performing a method according to any one of claims 29-32.

36. A method for updating a primary parent device to which a control device is attached, wherein the control device is capable of transmitting and receiving messages through the primary parent device over a network, and wherein the control device is attached to one or more secondary parent devices, the one or more secondary parent devices being configured to enable the control device to process messages received from the secondary parent devices, the method comprising: maintaining an indication of each of the one or more auxiliary parent devices to which the control device is attached and an associated communication metric, wherein each of the associated communication metrics measures a quality of communication between the control device and each of the one or more auxiliary parent devices to which the control device is attached; as well as Determining that one of the one or more auxiliary parent devices to which the control device is attached is set as the primary parent device to which the control device is attached, wherein the auxiliary parent device is determined based on the associated communication metrics of each of the one or more auxiliary parent devices to which the control device is attached.

37. The method of claim 36, wherein the associated communication metric is a received signal strength indicator of a communication link between the control device and each of the one or more secondary parent devices to which the control device is attached.

38. The method of claim 37, wherein the determined auxiliary parent device is associated with a highest communication metric among the associated communication metrics of each of the one or more auxiliary parent devices to which the control device is attached.

39. The method of claim 37, wherein the determined auxiliary parent device is associated with a highest communication metric among the associated communication metrics of each of the one or more auxiliary parent devices to which the control device is attached, the method further comprising: determining a communication metric indicative of a quality of communication between the control device and the primary parent device to which the control device is attached; comparing the highest communication metric to the communication metric indicative of the quality of the communication between the control device and the primary parent device; as well as The secondary parent device is set as the primary parent device based on a comparison between the highest communication metric and the communication metric indicative of the communication quality between the control device and the primary parent device.

40. A method as claimed in claim 39, wherein comparing the highest communication metric with the communication metric indicating the communication quality between the control device and the primary parent device includes determining that the highest communication metric is greater than the communication metric indicating the communication quality between the control device and the primary parent device.

41. A method as claimed in claim 39, wherein comparing the highest communication metric with the communication metric indicating the communication quality between the control device and the primary parent device includes determining that the highest communication metric is greater than the communication metric indicating the communication quality between the control device and the primary parent device plus a threshold.

42. A non-transitory computer-readable storage medium having stored thereon program instructions, which when executed by a control circuit cause the control circuit to perform the method of any one of claims 36-41.

43. An apparatus comprising: Control circuit; and A memory coupled to the control circuit for storing instructions which, when executed from the memory, cause the control circuit to perform a method according to any one of claims 36-41.

44. An apparatus comprising means for performing a method according to any one of claims 36-41.

Citation Information

Patent Citations

  • Method of building a database of a lighting control system

    US20080092075A1

  • Load Control Device Having Internet Connectivity

    US20130030589A1

  • Comissioning load control systems

    US20140265568A1

  • Handheld programmer for lighting control system

    US7391297B2

  • Motorized window treatment

    US8950461B2