Handling Loss or Removal of Devices in a Mesh Network
By introducing the concepts of router devices and leadership devices in the load control system, optimizing the network joining/leaving operation of the network re-formation process and control devices, solving the problems of network delay and operation complexity in existing systems, and improving the efficiency and stability of the system.
Patent Information
- Application Number
- CN202080095240.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-03-31
- Filing Date
- 2020-12-18
- Publication Date
- 2025-05-27
- Estimated Expiration
- 2040-12-18
AI Technical Summary
Existing load control systems may cause delays when the network is reformed, and the control device requires complex program processing when joining or leaving the network, affecting system efficiency.
By introducing the concepts of router devices and leadership devices in the load control system, the network re-formation process is optimized using advertising messages and backup leadership mechanisms, and the procedures for joining and leaving the network are simplified.
It effectively reduces the delay during network reformation, improves the efficiency of the control device joining or leaving the network, and ensures the stability and responsiveness of the system.
Smart Images

Figure CN115023927B_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 951,433, filed on December 20, 2019, and U.S. Provisional Patent Application No. 63 / 002,925, filed on March 31, 2020, the entire disclosure of each of which is hereby incorporated by reference herein. Background Art
[0003] For example, various types of load control systems can be used to configure a user environment such as a residence or an office building. A lighting control system can be used to control lighting loads that provide artificial light in the user environment. An electric curtain control system can be used to control natural light provided to the user environment. A heating, ventilation, and air conditioning (HVAC) system can be used to control the temperature in the user environment.
[0004] Each load control system can include various control devices, including input devices and load control devices. The control device can receive messages for controlling an electrical load from one or more of the input devices, and the messages can include load control instructions. The control device may be capable of directly controlling the electrical load. The input device may be capable of indirectly controlling the electrical load via the load control device. Examples of load control devices can include lighting control devices (e.g., dimmer switches, electronic switches, ballasts, or light - emitting diode (LED) drivers), electric curtains, temperature control devices (e.g., thermostats), AC plug - in load control devices, etc. Examples of input devices can include remote control devices, occupancy sensors, daylight sensors, glare sensors, color temperature sensors, temperature sensors, etc. The remote control device can receive user input for performing load control. The device can communicate in a network using radio frequency (RF) communication such as communication, communication, and / or communication. The RF communication can also be via a proprietary protocol such as CLEAR CONNECT TM protocol. Summary of the Invention
[0005] A load control system can include a control device configured to communicate via a network. The load control system can include one or more control devices that operate as router devices in the network to enable message transfer throughout the network. When the network is being formed, the network can include one or more network partitions. A single router device in each network partition of the load control system can operate as a leader device capable of coordinating specific network functionality. The leader device can support and be attached to a plurality of router devices that receive messages and route the messages to other devices on the network.
[0006] A control device assigned the role of router device in the network can receive advertisement messages from the leader device. Based on the advertisement messages received from the leader device, the control device can determine the health status of the network. When the leader device fails to transmit the advertisement messages to other control devices operating as router devices in the network within a predefined period of time, the router device can separate from the network partition and start network reformation.
[0007] To prevent delays that may be associated with network reformation, one or more router devices can be identified as backup leader devices to take over the operation as the leader device on the network partition in case the current leader device is lost. One or more router devices can be identified as backup leader devices based on backup leader criteria. For example, a router device can identify itself as a backup leader device based on the link quality of the network link between the router device and the current leader device and / or its router identifier or other unique identifier.
[0008] When a router device fails to receive an advertisement message from the leader device after a first threshold period, the router device identified as a backup leader device on the network can determine to start operating as the leader device on the network. The first threshold period can be the period within which the router device should receive one or more advertisement messages. The first threshold period can be shorter than a second threshold period, after which other control devices in the network can start separating from the network. The ability of the backup leader device to detect that the leader device has failed to transmit the advertisement message and start operating as the leader device on the network before other devices separate from the network can maintain the network.
[0009] A control device can be declared to join the network using a declaration procedure. The declaration procedure can be used to discover and declare control devices to be added to the network. A user's mobile device, such as a smart phone, laptop computer, or other mobile computing device, can be used to declare a control device in the load control system. The declared device can join the network during the joining procedure. When joining the network, the control device that has been declared to join the network can be attached to another device on the network, such as the leader device or router device on the network, to enable communication on the network through the attached device.
[0010] During an association procedure, a control device can be associated with one or more other devices. For example, a control device can be associated with the unique identifier of another device, and the association can be stored in a memory so that a receiving device can identify messages transmitted from the sending device associated with it (e.g., to enable load control based on messages from the associated device). A control device can be associated with a group identifier that indicates a group of devices (e.g., a region or location) that are to be controlled together.
[0011] To join a network, a control device in a load control system can be activated to perform functions in the load control system. For example, the control device can be activated to perform load control in the load control system. Since the control device can communicate over the network to send or receive messages for enabling load control in the load control system, an activation procedure for activating the control device in the load control system can include: discovering the control device; declaring the control device to join the network; the control device joining the network; and / or associating the control device with other activated control devices in the load control system.
[0012] A user may want to intentionally deactivate a previously activated control device to disconnect the control device from the network or a network partition. For example, the user can select a control device that has been declared and / or joined the network on the user's mobile device for deactivation. After selecting the control device, the control device can enter a deactivation procedure to be deactivated to leave the network. Since the user may intentionally deactivate a previously activated control device on the network, proactive steps can be taken in response to an indication from the user or the user's mobile device to prevent delays that may result from losing a leadership device or a router device in the network. For example, the deactivation procedure can consider the role of the deactivated control device on the network. The control device can be deactivated differently based on its role. When deactivating an activated control device on the network, the control device can execute an appropriate procedure to effectively revoke the joining procedure. When deactivated from the network, the control device can delete the certificates for the network that it stored during the joining procedure.
[0013] In response to an indication to deactivate the current leadership device from the network, the control device assigned the leadership device role can be seamlessly transferred to another control device, which can take over the responsibilities of the leadership device. Similarly, in response to an indication to deactivate a router device, the router device can be removed from the router table maintained at the leadership device, which can allow other devices to update the communication paths in the network to avoid communicating through the removed router device and / or attach to another router device on the network. After the deactivation procedure, the deactivated control device may need to be rediscovered, redeclared, re-associated, and / or rejoined to the network to enable communication on the network, or be discovered, declared, associated, and joined to another network or network partition to enable communication thereon. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 is a diagram of an exemplary load control system.
[0015] Figure 2A is an exemplary network that allows Figure 1 communication between devices in a load control system.
[0016] Figure 2B is an illustration of an exemplary network or network partition (e.g., a network or sub-network) that permits communication between devices in a load control system Figure 1
[0017] Figure 2C and Figure 2D is an illustration of another exemplary network that permits communication between devices in a load control system Figure 1
[0018] Figure 2E is an illustration of another exemplary network that illustrates the costs and network overhead associated with communication between devices in a load control system Figure 1
[0019] Figure 2F is a table that illustrates exemplary link costs that may correspond to different link qualities
[0020] Figure 3A and Figure 3B is a sequence flow diagram that illustrates exemplary advertisement messages transmitted between devices in a network
[0021] Figure 4A and Figure 4B is a flowchart of an exemplary program that may be executed by a router device
[0022] Figure 5A is a flowchart of an exemplary program that may be executed by a router device to determine whether the router device is a backup leader device
[0023] Figure 5B is a flowchart of another exemplary program that may be executed by a router device to determine whether the router device is a backup leader device
[0024] Figure 6 is a flowchart of an exemplary program that a router device may execute to determine whether the router device will become the next leader device or separate from the old leader device
[0025] Figure 7A and Figure 7B is a flowchart of an exemplary program that may be executed by a leader device to resolve a conflict with another leader device on the network
[0026] Figure 8 is a flowchart of an exemplary debugging program that may be executed by a device
[0027] Figure 9 is a flowchart of an exemplary deactivation program that may be executed by a control device
[0028] Figure 10 is a block diagram of an exemplary mobile device
[0029] Figure 11 It is a block diagram of an exemplary system controller.
[0030] Figure 12 It is a block diagram of an exemplary load control device.
[0031] Figure 13 It is a block diagram of an exemplary input device. Detailed implementation
[0032] Figure 1 It is a diagram of an exemplary load control system 100 for controlling the amount of power delivered from an alternating current (AC) power source (not shown) to one or more electrical loads. The load control system 100 can be installed in a room 102 of a building. The load control system 100 can include a plurality of control devices configured to communicate with each other via wireless signals (e.g., radio frequency (RF) signals 108). Alternatively or additionally, the load control system 100 can 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 can include a certain number of control source devices (e.g., input devices operable to transmit messages in response to user input, occupancy / vacancy conditions, changes in measured light intensity, etc.) and a certain number of control target devices (e.g., load control devices operable to receive messages and control the corresponding electrical loads in response to the received messages). A single control device of the load control system 100 can operate as both a control source device and a control target device.
[0033] The control source device can be configured to directly transmit messages to the control target device. In addition, the load control system 100 can include a system controller 110 (e.g., a central processor or a load controller) operable to transmit messages to and from the control devices (e.g., control source devices and / or control target devices). For example, the system controller 110 can be configured to receive messages from the control source device and transmit messages to the control target device in response to the messages received from the control source device. The control source device, the control target device, and the system controller 110 can be configured to transmit and receive RF signals 108 using a proprietary RF protocol such as the CLEAR CONNECT protocol (e.g., CLEAR CONNECT TYPE A protocol and / or CLEAR CONNECT TYPE X protocol). Alternatively, different RF protocols can be used to transmit RF signals 108, such as standard protocols, e.g., WIFI, Bluetooth, Bluetooth Low Energy (BLE), ZIGBEE, Z-WAVE, THREAD, KNX-RF, ENOCEAN RADIO protocol, or one of different proprietary protocols.
[0034] The load control system 100 may include one or more load control devices, such as a lighting control device 120 for controlling a lighting load, such as the lighting load 122 in a lighting fixture 124. For example, the lighting control device 120 may include a light-emitting diode (LED) driver and the lighting load 122 may include an LED light source. Although each lighting fixture 124 is shown as having a single lighting load 122, each lighting fixture may include one or more individual light sources (e.g., lamps and / or LED emitters) that may be controlled individually and / or uniformly by corresponding lighting control devices.
[0035] The load control system 100 may include one or more load control devices or appliances capable of directly receiving an RF signal 108 (e.g., a wireless signal) 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 alerts, music, intercom functionality, etc.
[0036] 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 a room 102. Each motorized window treatment 150 may include a window treatment fabric 152 that hangs on a valance 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 valance 154 for raising and lowering the window treatment fabric 152 to control the amount of daylight entering the room 102. The motor drive unit of the motorized window treatment 150 may be configured to receive a message 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 message. For example, the motorized window treatment may be battery-powered. The load control system 100 may include other types of daylight control devices, such as cellular shades, drapes, roman shades, blinds, persian shades, pleated shades, tension roller shade systems, electrochromic 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 No. 8,950,461, issued February 10, 2015, entitled MOTORIZED WINDOW TREATMENT, and U.S. Patent No. 9,488,000, issued November 8, 2016, entitled INTEGRATED ACCESSIBLE BATTERY COMPARTMENT FOR MOTORIZED WINDOW TREAT MENT, the entire disclosures of which are incorporated herein by reference.
[0037] The load control system 100 may include a plug-in load control device 140 for controlling plug-in electrical loads, such as, for example, plug-in lighting loads (such as floor lamp 142 or table lamp) and / or appliances (such as a television or computer monitor). For example, the floor lamp 142 may be plugged into the plug-in load control device 140. The plug-in load control device 140 may be plugged into a standard power outlet 144 and may thus be coupled in series between an AC power source and the plug-in lighting load. The plug-in load control device 140 may be configured to receive messages via an RF signal 108 (e.g., from the system controller 110) and, in response to the received messages, turn on and off the floor lamp 142 or adjust the intensity of the floor lamp.
[0038] The load control system 100 may include one or more temperature control devices, such as, for example, a thermostat 160 for controlling the room temperature in 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 transmit messages to the controller of the HVAC system 162. The thermostat 160 may include a temperature sensor for measuring the room temperature of room 102 and may control the HVAC system 162 to adjust the temperature in the room to a set point temperature. The load control system 100 may include one or more wireless temperature sensors (not shown) located in room 102 for measuring the room temperature. The HVAC system 162 may be configured to turn on and off a compressor to cool room 102 in response to control signals received from the thermostat 160 and turn on and off a heating source to heat the room. The HVAC system 162 may be configured to turn on and off a fan of the HVAC system in response to control signals received from the thermostat 160. The thermostat 160 and / or the HVAC system 162 may be configured to control one or more controllable air flow regulators to control the air flow in room 102. The thermostat 160 may be configured to receive messages via an RF signal 108 (e.g., from the system controller 110) and, in response to the received messages, adjust heating, ventilation, and cooling.
[0039] The load control system 100 may include one or more other types of load control devices, such as a screw-in type luminaire including a dimmer circuit and an incandescent or halogen lamp; a screw-in type luminaire including a ballast and a compact fluorescent lamp; a screw-in type luminaire including an LED driver and an LED light source; an electronic switch, a controllable circuit breaker, or other switching devices for turning on and off electrical appliances; 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 an exhaust fan); a drive unit for controlling an electric curtain or a projection screen; electric interior and / or exterior blinds; a thermostat for a heating and / or cooling system; a temperature control device for controlling the set point temperature of an HVAC system; an air conditioner; a compressor; an electric baseboard heater controller; a controllable damper; a variable air volume controller; a fresh air intake controller; a ventilation controller; a hydraulic valve in a radiator and a radiant heating system; a humidity control unit; a humidifier; a dehumidifier; a water heater; a boiler controller; a pool pump; a refrigerator; a freezer; a television and / or a computer monitor; a camera; an audio system or an amplifier; an elevator; a power supply; a generator; a charger, such as an electric vehicle charger; and an alternative energy source controller.
[0040] The load control system 100 may include one or more input devices, such as a remote control device 170 and / or a sensor device 141. The input device may be a fixed or a movable input device. The system controller 110 may be configured to transmit one or more messages to the load control devices (such as the lighting control device 120, the plug-in load control device 140, the electric curtain 150, and / or the thermostat 160) in response to a message received from the remote control device 170. The remote control device 170 may be configured to directly transmit messages to the lighting control device 120, the plug-in load control device 140, the electric curtain 150, and / or the temperature control device 160.
[0041] 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, cloud sensors, shadow sensors, pressure sensors, smoke detectors, carbon monoxide detectors, air quality sensors, motion sensors, security sensors, proximity sensors, fixed sensors, zoning sensors, keypads, multi-zone control units, slider control units, motion or solar-powered remote controls, key fobs, mobile 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 sub-meters, utility rate meters, etc.), central control transmitters, residential, commercial or industrial controllers, and / or any combination thereof.
[0042] The system controller 110 may be coupled to a network such as a wireless or wired local area network (LAN), e.g., 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 computing devices via the network, the one or more computing devices being, for example, the mobile device 190 such as a personal computing device and / or a wearable wireless device. The mobile device 190 may be located on the occupant 192, e.g., 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 thus uniquely identifies the occupant 192. Examples of personal computing devices may include smart phones, laptop computers, and / or tablet computer devices. Examples of wearable wireless devices may include activity tracking devices, smart watches, smart clothing, and / or smart glasses. Additionally, the system controller 110 may be configured to communicate with one or more other control systems (e.g., building management systems, security systems, etc.) via the network.
[0043] 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 transmit messages to an external service over the Internet, and then the messages may be received by the system controller 110. The mobile device 190 may transmit and receive RF signals 109. The RF signals 109 may be of the same signal type and / or transmitted using the same protocol as the RF signal 108. Alternatively, or in addition, 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 computing devices coupled to the network, such as a desktop personal computer (PC), a television having wireless communication capabilities, or any other suitable Internet protocol-enabled device. Examples of load control systems operable to communicate with mobile and / or computing devices on a network are described in more detail in co-owned 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 incorporated herein by reference.
[0044] The operation of the load control system 100 can be programmed and configured using, for example, a mobile device 190 or other computing device (e.g., when the mobile device is a personal computing device). The mobile device 190 can execute graphical user interface (GUI) configuration software to allow a user to program how the load control system 100 will operate. For example, the configuration software can run as a PC application or a web interface. The configuration software and / or 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 can include information about the operation settings of different load control devices of the load control system (e.g., lighting control devices 120, plug-in load control devices 140, motorized window coverings 150, and / or thermostats 160). The load control database can include association information that identifies the association between the load control devices and input devices (e.g., remote control devices 170, etc.). The association can include device identifiers stored together such that a device can recognize the identifier of an associated device to enable communication between devices in the load control system. A device can recognize the stored identifier of an associated device and send a message to the associated device and / or identify a message received from the associated device. The load control database can include information about how the load control devices respond to inputs received from the input devices. Examples of the configuration program of the load control system are described in more detail in the following documents: U.S. Patent No. 7,391,297, commonly assigned, entitled HANDHELD PROGRAMMER FOR A LIGHTING CONTROL SYSTEM, issued on June 24, 2008; U.S. Patent Application Publication No. 2008 / 0092075, entitled METHOD OF BUILDING A DATABASE OF A LIGHTING CONTROL SYSTEM, published on April 17, 2008; and U.S. Patent Application Publication No. 2014 / 0265568, entitled COMMISSIONING LOAD CONTROL SYSTEMS, published on September 18, 2014, the entire disclosures of which are incorporated herein by reference.
[0045] The control devices of the load control system 100 can communicate with each other via a network by joining the network and attaching to another device on the network (e.g., to form a mesh network). During a commissioning process, a declaration process can be used to discover and declare the control devices so that the control devices are selected and configured to join the network. For example, during the declaration process, the user 192 can use the mobile device 190 to discover and declare the control devices in the load control system 100. Each control device in the load control system 100 can transmit a control device beacon message via a short-range wireless communication link (e.g., using Bluetooth Low Energy (BLE) technology, Near Field Communication (NFC) technology, or other short-range wireless technologies). The mobile device 190 can discover (e.g., receive) the control device beacon messages transmitted by the control devices in the load control system 100. The mobile device 190 can identify one or more of the control device beacon messages (e.g., having the strongest Received Signal Strength Indicator (RSSI) value) and transmit a connection message to the control device. The declared control device can receive the connection message from the mobile device and can establish a connection (e.g., a two-way communication connection) with the mobile device 190. After executing the declaration process, the control device can execute a joining process to join the network (e.g., by exchanging certificates with a network commissioning device). Then, the declared control devices can each attach to another device on the network (e.g., a router device using the exchanged certificates) to form a mesh network (e.g., formation of the network).
[0046] To join the network, the control devices in the load control system can be activated to perform functions in the load control system. For example, the control devices can be activated to perform load control in the load control system. The control device can execute an activation process to be activated in the load control system. Since the control devices can communicate on the network to send or receive messages with other devices in the load control system, as described herein, the activation process can include: discovering the control device; declaring the control device to join the network; and / or making the control device join the network.
[0047] The activation procedure may include an association procedure for associating control devices within the load control system. During the association procedure, a control device may be associated with one or more other devices. For example, a control device may be associated with a unique identifier of another device, and the association may be stored in a memory at the device itself and / or at other devices in the load control system (e.g., a system controller) such that a control device receiving a message from other devices in the load control system can identify a message transmitted from a sending device associated with them (e.g., enabling load control based on a message from an associated device). During the activation procedure, a control device may have a unique identifier assigned in the load control system (e.g., by a system controller or other computing device), which is different from a router identifier or other unique identifier assigned to a device in the network for performing communication on a network link. The control device may also or alternatively be associated with a group identifier, which indicates a group of devices (e.g., a zone or location) that are to be controlled jointly. The activated control device may be configured and / or controlled in other ways in the load control system. For example, user 192 may select an activated control device via mobile device 190 for configuration and / or control, and the configuration and / or control instructions may be
[0048] After activating a control device in the load control system, user 192 may want to deactivate a previously activated control device in order to deactivate and / or disconnect from the network in the load control system. For example, user 192 may select a control device identified on mobile device 190 that has been activated as a control device in the load control system, and may select to deactivate the control device. User 192 may wish to deactivate a control device that has been inappropriately joined to the network or inappropriately configured in load control system 100. Deactivating the control device may allow user 192 to restart the activation procedure (e.g., including a declaration procedure and / or a joining procedure) to add the control device to load control system 100 and / or the network (e.g., via the user's mobile device 192 using an application or other software). For example, user 192 may be able to use mobile device 190 to restart a commissioning procedure to join the control device to the network or a network partition; and to associate the control device with a zone in load control system 100 and / or other control devices communicating on the network or network partition.
[0049] Figure 2AFIG. 0 is a diagram of an exemplary network 200 that enables communication between control devices in an admissible load control system (e.g., load control system 100). Network 200 can include any suitable network to facilitate communication in the load control system. For example, network 200 can be a mesh network, and control devices communicate over the mesh network using a mesh network wireless communication protocol (e.g., the THREAD protocol or other suitable protocol). Various control devices of load control system 100 can communicate with each other via network 200. As Figure 2A shown, network 200 can include a single network partition. Additionally, network 200 can be an example of a network partition (e.g., a sub-network or a branch network) within a larger network. For example, network 200 can be an example of a network partition within a larger network composed of multiple network partitions. Network 200 is an exemplary network, and the techniques described herein can be applied to other networks that include, for example, more or fewer control devices than network 200.
[0050] Figure 2A The circular nodes of can represent devices (e.g., various control devices of load control system 100) attached to other devices on network 200. A control device attached to at least one other control device on network 200 can communicate with other control devices (e.g., other control devices attached to another control device on network 200). Communication within network 200 can be facilitated by network links (e.g., attachments) established within network 200. Referring to Figure 2A , the network links between devices can be indicated by lines (e.g., solid lines and dashed lines) connecting the corresponding control devices.
[0051] A control device attached to at least one other device on network 200 can assume a corresponding role and / or be assigned a corresponding role in the network. For example, the roles can include: a leader device (e.g., leader device 210), a router device (e.g., router devices 220a - 220d), a terminal device (e.g., terminal devices 230a and 230b), a router eligible end device (REED) (e.g., router eligible end device 240), a parent device, a child device, and / or a sleeping terminal device (e.g., sleeping terminal device 250). The role of a control device can indicate the function and / or capability of the control device relative to network 200. As described herein, terminal devices can include terminal devices (e.g., terminal devices 230a and 230b), router eligible end devices (e.g., router eligible end device 240), and / or sleeping terminal devices (e.g., sleeping terminal device 250).
[0052] As Figure 2AAs shown, network 200 may include a leader device 210 and one or more router devices 220a - 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., 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 - 220d. The leader device 210 may assign and maintain the roles of other devices. The leader device 210 may be configured as the gateway of the network 200. For example, the leader device may be a control device that facilitates communication (e.g., routes and receives messages back and forth) between the network 200 and other networks or network partitions. Refer to Figure 1 , the system controller (e.g., the system controller 110 shown in Figure 1 ) 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 the leader device.
[0053] The leader device 210 may support and be attached to multiple router devices (e.g., 64 router devices, 32 router devices, or another number of router devices may be defined for the network 200). The leader device 210 may operate as a router device. The router devices 220a - 220d on the network 200 (e.g., attached to the leader device 210 on the network 200) may communicate with each other, for example, to form a mesh network. The router devices 220a - 220d may communicate with each other via network links (e.g., as indicated by the solid lines connecting the router devices 220a - 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 200 (e.g., terminal devices 230a, 230b, router - eligible terminal devices 240, and / or sleeping terminal devices 250). For example, the router devices 220a - 220d may receive and / or transmit messages between devices or to each other in order to deliver messages received from an attached device to another device attached to another router device. Now referring to the load control system 100, devices that are externally powered (e.g., non - battery - powered devices), such as the system controller 110, the dimming switch 120, the LED driver 130, the plug - in load control device 140, the motorized curtain 150, and / or the thermostat 160, may be assigned to the role of a router device.
[0054] Network 200 may include one or more terminal devices 230a, 230b (e.g., all or at least some of the terminal devices). The terminal devices 230a, 230b may be attached to another device on the network 200 (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 their attached parent device (e.g., the leader device and / or router device). Although two terminal devices 230a, 210b are shown in Figure 2A and each terminal device is attached to a different router device, each router device 220a - 220d may support multiple terminal devices (e.g., more than 500 terminal devices). The system controller 110, input device (e.g., the remote control device 170), and / or load control devices (e.g., the dimmer switch 120, LED driver 130, plug-in load control device 140, power window 150, and / or thermostat 160) may be examples of the terminal devices 230a, 230b.
[0055] Referring again to Figure 2A , network 200 may include a terminal device 240 that meets the router criteria. A terminal device 240 that meets the router criteria may be a terminal device that is capable (e.g., has the hardware and / or software capabilities) of becoming a leader device and / or a router device. In some cases, the role of the terminal device 240 that meets the router criteria may be updated to a leader device and / or a router device. For example, when the terminal device 240 that meets the router criteria identifies itself as being within the range of a terminal device attempting to attach to the network 200, the terminal device 240 that meets the router criteria may upgrade itself to the role of a router device. The terminal device 240 that meets the router criteria may transmit and / or receive messages via the attached router device 220d. As shown in Figure 2A , the terminal device 240 that meets the router criteria may be one of the terminal devices attached to the router device 220d. The system controller 110, dimmer switch 120, LED driver 130, plug-in load control device 140, motorized curtain 150, and / or thermostat 160 may be examples of the terminal device 240 that meets the router criteria. Now referring to the load control system 100, an externally powered control device (e.g., a non - battery - powered control device) may be assigned to the role of a terminal device that meets the router criteria, such as the system controller 110, dimmer switch 120, LED driver 130, plug-in load control device 140, motorized curtain 150, and / or thermostat 160.
[0056] Network 200 may include a sleeping terminal device 250. The sleeping terminal device 250 may include or may be similar to a terminal device. For example, the sleeping terminal device 250 may be a terminal device powered by a limited power source (e.g., a battery). The sleeping terminal device 250 may be aware of its role as a sleeping terminal device based on, for example, an indication stored at the sleeping terminal device 250. Communication with the sleeping terminal device 250 may be performed such that the limited power source is conserved and / or consumed efficiently. For example, the sleeping terminal device 250 may periodically disable its communication circuitry between message transmissions. The sleeping terminal device 250 may transmit and / or receive messages via an attached router device 220a. As Figure 2A shown, the sleeping 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 motorized curtain 150 when battery-powered) may be examples of the sleeping terminal device 250. Additionally, sensors and / or battery-powered devices may be examples of the sleeping terminal device 250.
[0057] The leadership device 210 may update (or confirm a role update of) the roles of the devices communicating within the network 200 based on, for example, a change to the network 200. In one example, when a control device is attached to the network 200, the device may be assigned a specific role, and the leadership device 210 may update the role of the device based on a change in network conditions. The change in network conditions may include: increased message traffic, attachment of other devices, change 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 leadership 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 eligible to perform the role of a router device). The leadership device 210 may update the role of the device to a router device by assigning a router identifier (ID) to the control device.
[0058] As the leader device 210 updates the roles of the devices in network 200, the leader device may maintain the number of router devices in network 200 and / or the router identifiers used in 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 router devices used in network 200 and / or the router identifiers. The bitmap 217 may include a number of bits, each bit corresponding to a different router identifier used in network 200. In an 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 network 200. Each bit in the bitmap may indicate whether the router identifier is recognized by the leader device 210 as being in use (e.g., having a value of "1") or not in use (e.g., having a value of "0"). The leader device 210 may determine that a 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 downgrade a router device (e.g., to a terminal device) or remove a router device from network 200. As router devices are added or removed, the bitmap 217 may be updated to indicate the number of router devices used in network 200 and / or the router identifiers.
[0059] The leader device 210 may send the bitmap 217 to other router devices in network 200. Each router device, including the leader device 210, may maintain network information about each of the router devices recognized as being in use in network 200. For example, each router device may maintain network information about each of the router devices in a router table such as router table 219. For example, the network information in router table 219 may identify the router devices in network 200 and the communication quality between the corresponding router devices and other router devices maintained in the router table stored locally thereon. Each router table, such as 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 network 200 based on the network information stored and maintained in the locally stored router table. For example, router devices such as router devices 220a - 220d and / or the leader device 210 may transmit messages in different ways within network 200 based on the communication quality with the corresponding router devices identified in the locally stored router table.
[0060] The control device attached to the network 200 can also operate as a parent device and / or a child device. A leading device (e.g., leading device 210) and router devices (e.g., router devices 220a - 220d) attached to one or more terminal devices (e.g., terminal devices 230a, 230b, terminal device 240 that meets the router condition, and / or sleeping terminal device 250) can operate as parent devices. Terminal devices (e.g., terminal devices 230a, 230b, terminal device 240 that meets the router condition, and / or sleeping terminal device 250) attached to a leading device (e.g., leading device 210) or a router device (e.g., one of the router devices 220a - 220d) can operate as child devices. As parent devices, the leading device 210 and the router devices 220a - 220d can each be attached to one or more child devices (e.g., one or more of the terminal devices 230a, 230b, terminal device 240 that meets the router condition, and / or sleeping terminal device 250, as described herein). In addition, the leading device 210 and the router devices 220a - 220d can store and / or relay messages sent by their respective attached child devices. For example, the leading device 210 and the router devices 220 can receive messages from their respective child devices and route the received messages to the intended recipient device (e.g., directly route the received message to the intended recipient device via the corresponding parent device of the intended recipient device, and / or route the message to a router device or a leading device on the path to the intended recipient). Similarly, the leading device 210 and the router devices 220a - 220d can receive messages for their respective child devices and route the messages to the appropriate child devices. When the communication circuit of a sleeping terminal device is enabled, the parent device of the corresponding sleeping terminal device can schedule communication with the sleeping terminal device.
[0061] As Figure 2Aindicates that the relationship (e.g., attachment) between a sub-device and its corresponding parent device can be indicated by a dashed line. For example, the router device 220a can be configured as the parent device of the terminal device 230a and the dormant terminal device 250. Similarly, the router device 220b can be configured as the parent device of the terminal device 230b. The router device 220a can receive a message for the terminal device 230a and forward the message to the terminal device 230a. Since the router device 220a is configured as the parent device of the terminal device 230a, the terminal device 230a can transmit a message to the router device 220a, and the router device 220a can 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 can initially transmit the message to the router device 220a. The router device 220a can route the message to the router device 220b (e.g., the parent device of the terminal device 230b). For example, the router device 220a can route the message to the router device 220b via the router device 220c or the router device 220d, and then the router device 220b can forward the message to the terminal device 230b. Additionally, as described herein and in Figure 2A illustrated, the router device 220a can route a message to the terminal device 230b via the router device 220c (e.g., the secondary parent device of the router device 230b).
[0062] Sub-devices can be configured to transmit unicast messages to their corresponding parent devices. A control device can transmit a unicast message directly or via hopping through other devices in the network to another control device in the network. By including the unique identifier of the control device to which the unicast message is transmitted, each unicast message can be individually addressed to another control device. A control device can generate a separate unicast message for each control device with which it is communicating and address the unicast message independently to each control device. The unicast message can also include the unique identifier of the control device transmitting the unicast message. A control device can determine that it is the intended recipient of a unicast message by identifying its own unique identifier in the unicast message.
[0063] Multicast messages and / or broadcast messages can be used to send messages in the network. A multicast message can be sent to a group of control devices in the network. The multicast message can include a group identifier. Control devices that are members of the group can recognize the group identifier and process the message accordingly. A broadcast message can be sent to each control device in the network that is capable of receiving the message. The broadcast message can include an indication that the message is a broadcast message (e.g., a broadcast address). Each device that receives the broadcast message can process the message accordingly. The network can use multicast messages or broadcast messages, and the two terms can be used interchangeably herein.
[0064] The messages transmitted by the sub-devices to their respective parent devices may include an indication of the intended recipient (e.g., a unique identifier), and the parent device may route the messages accordingly. Referring again to Figure 2A , the terminal device 230a may transmit a message to the router device 220a (e.g., the parent device of the terminal device 230a), and the router device 220a may route the message based on the intended recipient. For example, if the terminal device 230a transmits a message for the terminal device 230b, the router device 220a may route the message to the router device 220b (e.g., the parent device of the terminal device 230b that meets the router condition) via the router device 220c or the router device 220d. For example, if the router device 220a routes a message via the router device 220d, the router device 220d may forward the message to the router device 220b, which may forward the message to the terminal device 230b. The router device 220a may identify the router device 220b as the parent device to which the terminal device 230b is attached via a lookup table. As Figure 2A illustrated, there may be multiple paths to route messages on the network 200, and the router device may identify the shortest path (e.g., the least number of hops) to transmit the message to the corresponding device.
[0065] The sub-device may be configured to communicate with a secondary parent device (e.g., configured to communicate with more than one parent device). Referring to Figure 2A , for example, the terminal device 230b may be configured to communicate (e.g., transmit messages to and receive messages from) with a parent device (e.g., a primary parent device) such as the router device 220b. The terminal device 230b may also be configured to communicate (e.g., receive messages from) with a secondary parent device such as the router device 220c (e.g., as illustrated by the long and short dashed lines in Figure 2A ). The sub-device may receive unicast messages from its parent device (e.g., the primary parent device). The sub-device may also receive multicast messages (e.g., and / or broadcast messages) from its parent device (e.g., the primary parent device) and one or more secondary parent devices, which may increase the efficiency and reliability of the sub-device receiving messages. For example, the sub-device may receive network advertisement messages via the secondary parent device. The number of secondary parent devices synchronized with the sub-device may be limited to a threshold number of secondary parent devices (e.g., 3, 5, 10, etc.).
[0066] A sub-device can be attached to a single parent device and synchronized with one or more secondary parent devices. For example, the sub-device can send and / or receive unicast messages via the parent device. Similarly, the sub-device can receive multicast messages via one or more synchronized secondary parent devices. The number of secondary parent devices synchronized with the corresponding sub-device can be limited to a threshold number of synchronized secondary parent devices, which can be predefined and / or configured. The sub-device can attempt to synchronize with a secondary parent device by transmitting a message (referred to herein as a link request message) to the secondary parent 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 can be used to request a network link between two devices. As described herein, messages can be transmitted between devices sharing a network link. In response to receiving the link request message, the router device 220c can transmit a message (referred to herein as a link acceptance message) to the terminal device 230b. The link acceptance message can include information (e.g., frame count) that allows the corresponding sub-device to decrypt messages from the secondary parent device. As described herein, when the sub-device is synchronized with the secondary parent device, the sub-device can receive multicast messages via the synchronized secondary parent device. For example, referring to Figure 2A , the terminal device 230b can receive multicast messages via the parent device (e.g., the router device 220b) and the secondary parent device (e.g., the router device 220c), which can improve the efficiency and reliability of the sub-device 230b receiving multicast messages.
[0067] The sub-device can receive advertisement messages from a router device other than the parent device of the sub-device or a router device other than the secondary parent device of the sub-device. For example, the router device can transmit advertisement messages to enable other control devices to determine that a network has been formed, and a device listening for the advertisement messages can attempt to attach to the router device (e.g., communicate via the network). The device can receive and track the advertisement messages transmitted by the router device to determine whether the device can communicate via the network. Moreover, or alternatively, the advertisement messages transmitted by the corresponding router device can provide other router devices with the ability to measure a communication quality metric (e.g., via a received signal strength indicator value) of the communication signal between the corresponding routers attached to the network (e.g., which the router devices can use to update their respective routing tables or routing information). As described herein, the sub-device can measure the received signal strength indicator (RSSI) or another communication quality metric of the received advertisement message.
[0068] A particular message can be propagated and broadcast by multiple devices in network 200, which can increase the likelihood that a corresponding sub-device hears the message. For example, instead of sending multiple transmissions, a substantially similar multicast message (e.g., a message including the same load control instructions sent to multiple load control devices) can be broadcast. Referring again to load control system 100, actuation of a button on remote control device 170 can adjust the intensity of multiple lighting loads (e.g., lighting load 122 and plug-in lighting load 142) and can broadcast a message to adjust the corresponding lighting loads. Additionally, a device receiving a broadcast transmission can be configured to process and repeat the message in response to receiving the broadcast transmission (e.g., forward the message on the network or otherwise act as a repeater).
[0069] A sub-device can create and maintain an auxiliary parent table. The auxiliary parent table can include a list of auxiliary parent devices with which the corresponding sub-device is configured to communicate (e.g., synchronize with and / or be able to receive multicast messages from). Additionally, the auxiliary parent table can include an indication of the received signal strength (e.g., RSSI) of each of the sub-device's auxiliary parent devices. For example, the auxiliary parent table can include a moving average of the received signal strength indicators of each of the sub-device's auxiliary parent devices. A sub-device can similarly create and / or maintain a router table. The router table can include router devices from which the corresponding sub-device has received a message (e.g., an advertisement message). Additionally, the router table can include an indication of the RSSI or other communication quality metric of the message received from each of the router devices in the router table. Moreover, or alternatively, a sub-device can maintain a general router table. The router table can include each of the routers from which the corresponding sub-device has received a message and the received signal strength indicator of each of the corresponding router devices. The router table can also include an indication of whether the corresponding router device is the parent device or an auxiliary parent device of the sub-device. As used herein, the term auxiliary parent table can refer to a table separate from the router table or a subset of the router table that includes router devices that are auxiliary parent devices for synchronization of the sub-device.
[0070] As described herein, network 200 can permit communication between devices in a load control system (e.g., load control system 100 as shown Figure 1 in). Terminal devices 230a, 230b can include load control devices (e.g., control target devices) and / or input devices (e.g., control source devices) that communicate with other devices in the load control system. For example, terminal device 230a can communicate with another terminal device and / or a router device in the load control system via RF communication.
[0071] Referring to Figure 1, the remote control device 170 can operate as a terminal device or a sleeping terminal device for transmitting messages including instructions of user input and / or control commands for controlling another terminal device (e.g., the dimming switch 120, the LED driver 130, the plug load control device 140, the motorized window covering 150, and / or the thermostat 160). For example, the remote control device 170 can communicate via one or more intermediate parent devices such as a leader device and / or a router device. The leader device and / or the router device can communicate with one or more other leader devices and / or router devices in the network to route the message to another terminal device (e.g., the dimming switch 120, the LED driver 130, the plug load control device 140, the motorized window covering 150, and / or the thermostat 160) for performing load control.
[0072] The control device can be attached to another control device on a network or a network partition (e.g., the network 200 shown in Figure 2A ) to enable the device to communicate via the network (e.g., transmit and / or receive messages). The control device can initiate the attachment to another control device on the network by transmitting a parent request message (e.g., a multicast parent request message) to discover potential parent devices. The parent request message can 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 can transmit the parent request message as a multicast message, for example, to identify the devices attached to the network that can act as parent devices for the control device.
[0073] A potential parent device (e.g., the leader device 210 and / or the router device 220 of the network 200) that receives the parent request message (e.g., the multicast parent request message) can respond by transmitting a parent response message. For example, each of the potential parent devices that receives the multicast parent request message can transmit the parent response message (e.g., as a unicast message) to the control device that transmitted the parent request message. The parent response message can indicate that the control device transmitting the parent response message is available as a parent device. Thus, the control device that transmitted the parent request message can receive multiple responses to the parent request message and determine the parent to synchronize with based on the received parent response messages. The control device that transmitted the parent request message can identify the received signal strength indicator (RSSI) associated with the response message and attempt to attach to the parent device with the maximum received signal strength indicator of the response message.
[0074] Since multiple control devices transmit the parent request message as a multicast message within the same time period, the parent devices may each receive multiple parent request messages simultaneously or within 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 previously received attachment request messages. In addition, the parent response messages transmitted by each of the parent devices that receive the parent request message may be transmitted simultaneously or substantially simultaneously. Due to the many devices in the network, the number of parent request messages and parent response messages transmitted within the same time period may cause network congestion (e.g., each leading device may support more than 30 router devices, and each router device may support more than 500 terminal devices) and / or cause messages to conflict with each other, which may result in one or more of the parent request messages or parent response messages not being received properly. When a control device attempting to attach to another control device on the network fails to receive the parent response message, the control device may be unable to attach to the other control device on the network, which may increase the amount of time it takes for the network formation to complete. When each of the devices in the load control system is powered on, many control devices may attempt to attach to other control devices on the network by transmitting parent request messages simultaneously or within the same time period.
[0075] A control device attempting to attach to another control device on the network may be configured to delay network attachment to allow other control devices to attach to the control device on the network. As described herein, when a control device attempts to attach to another control device on the network, multiple messages may be transmitted simultaneously or substantially simultaneously, which may increase the likelihood of message conflicts on the network. Therefore, when a control device attempting to attach to another control device on the network determines that another control device is attempting to attach to the control device on the network, the control device may delay attaching to the network. For example, the control device may delay network attachment by adding time to a backoff timer, after which time expires, the control device may attempt to attach to the control device on the network.
[0076] A control device may reduce the frequency at which the control device attempts to synchronize with a secondary parent device and / or reduce the number of secondary parent devices that are synchronized, to increase the likelihood of attachment and / or synchronization when sending a request. Similar to network attachment, when a control device attempts to synchronize with 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 at which the control device attempts to synchronize with a secondary parent device (e.g., reduce the execution rate of the procedure for synchronizing with the secondary parent device), which may reduce the likelihood of message conflicts. In addition, the control device may reduce the number of secondary parent devices that are synchronized, which may also reduce the likelihood of message conflicts.
[0077] Figure 2Bis an exemplary illustration of a network 200a having multiple network partitions 201, 202, 203 (e.g., separate network partitions). As Figure 2B shown, network partition 201 may include the following parent devices: a leader device 211 and router devices 221a, 221b, 221c, 221d. Additionally, network 201 may include sub-devices such as: terminal devices 231a, 231b; terminal devices 241 that meet router conditions; and dormant terminal devices 251. For example, a unique router identifier may be assigned to each of the router devices 221a - 221d in network partition 201. Network partition 202 may include the following parent devices: a leader device 212 and router devices 222a, 222b, 222c, 222d. Additionally, network 202 may include sub-devices such as: terminal devices 232a, 232b; terminal devices 242 that meet router conditions; and dormant terminal devices 252. For example, a unique router identifier may be assigned to each of the router devices 222a - 222d in network partition 202. Network partition 203 may include a single parent device, a leader device 213 and a single terminal device, terminal device 223.
[0078] As Figure 2B shown, network partition 203 may include a leader device 213 and a terminal device 223. However, network partition 203 may not be able to include router devices. Instead, the leader device 213 may be used as the only router device within network partition 203. A leader device that is not connected or synchronized with a router device may be referred to as a singleton device. For example, the leader device 213 may be a singleton device. As Figure 2B 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. As Figure 2B shown, a singleton partition may include a leader device (e.g., leader device 213). Additionally, a singleton partition may include one or more terminal devices (e.g., terminal device 223). However, as Figure 2B shown, a singleton partition may not include router devices.
[0079] Network 200a may permit communication between control devices in a load control system (e.g., load control system 100). Additionally, network partitions 201, 202, 203 may form due to some control devices being unable 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., a multicast parent request message). However, if the control device fails to receive a response to the parent request message (e.g., because the control device is outside the communication range of the router device of the already formed network partition), the control device may attempt to form its own network partition (e.g., become the leader device of a new network partition).
[0080] A control device that cannot attach to a network partition may form another network partition. For example, referring to Figure 2B , leader device 213 may not be able to attach to the router devices on network partitions 201, 202 (e.g., because leader device 213 is outside the communication range of the router devices on network partitions 201, 202). Thus, leader device 213 may form network partition 203 and terminal device 223 may attach to network partition 203. Similarly, leader device 212 may not be able to attach to network partitions 201, 203 (e.g., because leader device 212 is outside the communication range of the router devices on network partitions 201, 203) and forms network partition 202.
[0081] 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. The partition identifier may be selected at the leader device and transmitted in an advertisement message to other devices that can attach to the leader device. 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 consecutive (e.g., for simplicity of explanation), the assignment of partition identifiers to network partitions may be consecutive, non - consecutive, and / or random. As described herein, the partition identifier may also be an indication of the priority of the corresponding network partitions 201, 202, 203. For example, the partition identifier may also be a priority value of the corresponding network partitions 201, 202, 203 (e.g., the corresponding priorities of network partitions 201, 202, 203 may be 3, 1, and 2). A higher or lower partition identifier may indicate a higher priority value of the network partition priority (e.g., based on the partition identifier, network partition 201 may be a network partition with a higher priority than network partitions 202, 203).
[0082] The priority may be assigned to the corresponding network partitions based on control devices (e.g., router devices and / or terminal devices) in the network partition. For example, a network partition having at least one router device in addition to a leading device may be given a higher priority than a network partition having only a leading device and no other router devices. See Figure 2B , network partition 201 may be given a higher priority than network partition 203 because network partition 201 has router devices 221a - 221d, while network partition 203 has no router devices other than the leading device. Additionally, the priority may be assigned to the corresponding network partitions based on the number of control devices (e.g., router devices and / or terminal devices) in the network partition. See 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 locally store the number of control devices in the network partition on it. As described herein, different partition identifiers may be used to give different priorities to network partitions having the same number of control devices. For example, as Figure 2B shown, network partition 201 and network partition 202 may have the same number of control devices (e.g., router devices and / or terminal devices). Based on network partition 201 having a higher or lower partition identifier, network partition 201 may have a higher priority.
[0083] When the control device is attached to each of the network partitions 201, 202, 203, the effective communication range of each of the network partitions can 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, compared to when multiple network partitions are formed (e.g., as shown in Figure 2B where the network 200 has multiple network partitions 201, 202, 203), communication within the load control system can be better facilitated when a single network partition is formed (e.g., as shown in Figure 2A where the network 200 has a single network partition). For example, communication within the load control system can be better facilitated when a single network partition is formed because devices in a network partition may not be able to transmit messages to a control device attached to another network partition (e.g., devices in a network partition may not be able to communicate with other devices outside of that network partition). Thus, 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 can detach from the first network partition and attach to the second network partition.
[0084] Each of the router devices attached to each of the network partitions 201, 202 can be associated with a communication range. The communication range of each of the corresponding router devices can be predefined and / or preconfigured. For example, the communication range of each of the corresponding router devices can be predefined and / or preconfigured based on the hardware components of each of the corresponding router devices. The effective communication range of the corresponding network or network partition can be based on the communication range of the router devices attached to the corresponding network (e.g., the sum of the communication ranges of each of the router devices attached to the corresponding network). Thus, the communication range of the corresponding network or network partition can increase as the number of router devices attached to the corresponding network increases.
[0085] 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., because network partition 201 has a priority value of 3 and network partition 202 has a priority value of 1). Router device 222a may receive an advertisement message from a device attached to network partition 201 (e.g., from router device 221d). The advertisement message may include an indication of the partition identifier of network 201 (e.g., 3), which 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., because network partition 201 has a higher priority).
[0086] Router device 222a may attempt to attach to network partition 201 by transmitting a request to the leader device of network partition 201 (e.g., leader device 211). The request may include, for example, a request to attach to network partition 201 and be assigned a specific router identifier as a router device. For example, router device 222a may request to attach to network partition 201 and be assigned the router identifier that router device 222a was assigned in network partition 202. In response, if another router device 212a - 212d attached to network partition 201 has already been assigned the requested router identifier, leader device 211 may reject the request. If none of the router devices 212a - 212d attached to network partition 201 have been assigned the requested router identifier, leader device 211 may accept the request. If router device 222a attaches to network partition 201 and is assigned the requested router identifier, the sub-devices of router device 222a (e.g., terminal device 232a and dormant terminal device 252) may automatically attach to network partition 201. For example, when the sub-devices communicate with router device 222a using the router identifier. If the leader device 211 of network partition 201 assigns the requested identifier (e.g., the router identifier assigned in network partition 202) to router device 222a, the sub-devices may continue to communicate with router device 222a using the same router identifier.
[0087] Figure 2C and Figure 2D is a diagram of an exemplary network 200b as network 200b progresses or develops during network formation. As Figure 2CAs shown, network 200b may include a leader device 214 and a terminal device 234a. Since network 200b is in the initial stage of network formation, network 200b may not yet include a router device. Thus, the terminal device 234a may be attached to the leader device 214 (e.g., because no other router device exists yet on network 200b). However, the network link (e.g., parent / child link) between the leader device 214 and the terminal device 234a may be weak (e.g., the received signal strength indicator of the message received by the terminal device 234a may be about -60 dB). For example, the network link between the leader device 214 and the terminal device 234a may be weak because the leader device 214 and the terminal device 234a are not positioned close to each other. If the network link between the leader device 214 and the terminal device 234a is weak, the possibility of message transmission and / or reception failure between the leader device 214 and the terminal device 234a may increase.
[0088] Figure 2D is shown during a network formation stage later than the network formation stage shown in Figure 2C As shown in Figure 2D As network formation progresses (e.g., as time goes on), network 200b may grow to include additional control devices. For example, network 200b may grow to include router devices 224a, 224b. In addition, the router devices 224a, 224b may be positioned close to the terminal device 234a (e.g., positioned closer to the terminal device 234a than the leader device 214). Further, the received signal strength indicator of the message transmitted by the router devices 224a, 224b and received by the terminal device 234a may be stronger (e.g., stronger than the received signal strength indicator transmitted by the leader device 214 and received by the terminal device 234a, such as -35 dB and -30 dB respectively). Thus, the potential network link (e.g., potential parent / child link) between the router devices 224a, 224b and the terminal device 234a may be stronger than the network link between the leader device 214 and the terminal device 234a. In addition, as shown in Figure 2D the potential network link between the router device 224b and the terminal device 234a may be stronger than the potential network link between the router device 224a and the terminal device 234a (e.g., because the router device 224b is positioned closer to the terminal device 234a than the router device 224a).
[0089] As the network formation develops or progresses, additional devices may be attached to the network. As a result, if the terminal device 234a determines to separate from the initial parent device (e.g., the leader device 214) and attach to an updated parent device (e.g., the router device 224a or the router device 224b), the terminal device 234a may experience better communication on the network 200b. 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., such that the updated parent device and the terminal device 234a may have a stronger network link), which may increase the likelihood of successful message transmission and / or reception. As a result, as the network formation progresses, the terminal device may determine whether to attach to an updated parent device. Although examples where the relative positioning of the devices may increase or decrease the network link shared between two devices are used to describe Figure 2C and Figure 2D , other conditions may affect the network link shared between two devices (e.g., line of sight, interference, signal obstacles, etc.). To that extent, Figure 2C and Figure 2D scenarios are merely examples of how the network may change over time and how changes in the network may be considered to attempt to improve communication on the network.
[0090] Figure 2E is a diagram of an exemplary network 200c. As shown in Figure 2E , the network 200c may include a leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f. In the network 200c, the router devices (e.g., the leader device 215 and the router devices 225a, 225b, 225c, 225d, 225e, 225f) may periodically transmit advertisement messages, which may be used to calculate the communication cost and / or quality in the network 200c. For example, the router device 225c may send an advertisement message received by the leader device 215, and the leader device 215 may send an advertisement message received by the router device 225c. Each router device may measure the received signal strength indicator (RSSI) of the received advertisement message and calculate the link quality of the received advertisement message (e.g., link quality (LQI)).
[0091] Each router device (e.g., the leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) may send the advertisement message as a multicast message. The advertisement message transmitted by the router device may be received by an adjacent router device sharing a single-hop network link with the router device transmitting the advertisement message. The single-hop network link may be capable of directly delivering a message from the router device to another router device via unicast and / or multicast communication. For example, router devices 225a, 225c may be adjacent devices sharing a single-hop network link with the leader device 215 because router devices 225a, 225c are capable of directly sending a message to the leader device 215 and / or directly receiving a message from the leader device. The single-hop network link may be a network link on which the router device may be capable of directly receiving the advertisement message above a given link quality (e.g., LQI greater than 0).
[0092] After a router device receives a periodic advertisement message from another router device, the router device may calculate the link quality (e.g., LQI) of the network link over which the advertisement message was received. The LQI may be calculated as a predefined number within a range indicating different link qualities of the network link between 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 receive level. The receive level may be a predefined minimum receive level. The receive level may be established as a predefined RSSI value for communication on the network. For example, the receive level may be defined by the background noise that is set to the average RSSI value of the noise generated on the network over a period of time. In an example where the receive level is used as the background noise, 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 at least a link margin of 2 dB higher than the background noise, the router device (e.g., the leader device 215 or the router device 225c) may calculate an LQI of 1 for the communication received from the neighboring router device on the network link. 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 at least a link margin of 10 dB higher than the background noise, the router device (e.g., the leader device 215 or the router device 225c) may calculate a link quality of 2 for the communication received from the neighboring router device on the network link. When the RSSI value of one or more advertisement messages (e.g., the average RSSI value of the advertisement messages over a period of time) is at least a link margin of 20 dB higher than the background noise, the router device (e.g., the leader device 215 or the router device 225c) may calculate a link quality of 3 for the communication received from the neighboring router device on the network link. When the RSSI value of one or more advertisement messages (e.g., the average RSSI value of the advertisement messages over a period of time) cannot be determined to be higher than the background noise, a link quality value of zero may indicate that the link quality is unknown or infinite. Although examples are provided of predefined numbers for indicating different levels of link quality and / or different link margins that may be assigned to those levels, other indicators and / or values may be used to define the link quality between two routing devices. Additionally, although individual routing devices are provided as examples (e.g., the leader device 215 or the router device 225c), other routing devices may similarly calculate the link quality of the network link between neighboring routing devices.
[0093] The LQI of a network link measured locally at each control device (e.g., the leader device 215 and the router device 225c) can be exchanged with other devices on the network link. For example, the LQI can be measured locally at each control device and transmitted to other devices via an advertisement message. The LQI measured by another router device (e.g., on the other side of the network link) and received at the router device can be stored as the link quality output (LQO) of the network link. The LQI and / or LQO can be stored in the local router table at each routing device. For example, the leader device 215 can store the LQI and / or LQO of the network link with each router device in network 200c in the router table 229. Similarly, the router device 225c can store the LQI and LQO for communicating with each router device in network 200c in the router table 261.
[0094] As described herein, from the perspective of the devices storing the router tables 229, 261, the router tables 229, 261 can each identify network information for communicating with each router in network 200c. As described herein, the number of router devices in network 200c and / or the router identifiers used in network 200c can be determined from the bitmap 227. The bitmap 227 can be maintained by the leader device 215 and distributed to other routing devices for locally maintaining 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 identified router devices 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 can include the LQI and / or LQO of the network link between the router devices identified in the bitmap 227. For example, the router 225c can receive the bitmap 227 from the leader device 215 and update the router table 261 to include the router devices in table 261 indicated in the bitmap 277, or remove from table 261 the router devices indicated in the bitmap 277 as not being usable in the network.
[0095] The leading device 215 and the router devices 225a, 225b, 225c, 225d, 225e, 225f can each use the LQI and LQO in their respective router tables to calculate the link cost for communicating with other router devices on the network link. The link quality of the network link between two router devices can be the value of the link quality of the transmitted message (e.g., LQO) and the value of the link quality of the received message on the single-hop network link between the two devices (e.g., LQI), whichever is smaller. An LQO or LQI of zero can indicate that the router device cannot have a direct network link with the router device listed in the router table.
[0096] The link cost for sending communication between devices on the network link can directly correspond to the link quality of the communication on the network link. The link cost can indicate the relative cost or loss of the communication on the network link. Figure 2F Exemplary Table 262 illustrates exemplary link costs that can correspond to different link qualities. As Figure 2F shown, for communication on the network link between two adjacent devices, a higher link quality can correspond to a lower link cost.
[0097] The router device can use the link cost of each network link to calculate the path cost of the communication between the router device and another device in the network 200c. The path cost can indicate the relative cost or loss of the communication on the entire communication path that can include one or more router devices. The path cost of one communication path can be compared with that of another communication path to determine a higher-quality communication path for sending digital communication that can have a lower relative cost associated with the message transmission.
[0098] The path cost can indicate the total cost of transmitting a message from the originating router device to the destination router device. For example, the path cost can be calculated as the sum of the link costs of each hop between the originating router device from which the message may originate and the destination router device in the network 200c that can receive the message. Each router device can calculate the path cost to an adjacent device on the single-hop network link as equal to the link cost and store the path cost in the locally stored router table. For example, the router device 225c can set the path cost for communicating with the leading device 215 to be equal to the link cost on the network link (e.g., the smaller of LQI and LQO) and store the path cost in the router table 261. Similarly, the router device 225c can set the path cost for communicating with the router device 225b to be equal to the link cost on the network link (e.g., the smaller of LQI and LQO) and store the path cost in the router table.
[0099] Each router device (e.g., the leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) can update the path costs for transmitting messages to / from each router device in their respective router tables 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 the leader device 215, router device 225b can receive path cost information for transmitting messages through another router in network 200c. Router 225c can transmit the path costs for transmitting messages to / from the leader device 215 (e.g., path cost = 2) in a multicast message received by other router devices. For example, the multicast message can be an advertisement message. Router device 225b can receive the path cost for transmitting messages between the leader device 215 and router device 225c (e.g., path cost = 2). To calculate the total path cost for transmitting a message between router device 225b and the leader device 215 through router device 225c, router device 225b can add the link cost of the communication between router device 225b and router device 225c (e.g., link cost = 1) to the path cost received from router device 225c (e.g., path cost = 1) to obtain the total path cost (e.g., path cost = 3). The communication link cost between router device 225b and router device 225c can be determined based on the link quality of the network link between router device 225b and router device 225c, which can be the smaller of the LQI and LQO of the network link (e.g., link quality = 3).
[0100] Each router device may send / broadcast an advertisement message including a path cost to one or more other router devices in network 200c. A router device that receives path cost information from a router device that has sent an advertisement message may update their respective path cost information in their local router table (e.g., by adding the link cost of the link through which they communicate with the router device that has sent the advertisement message to the path cost in the received message). Each router device may use the locally stored path cost information to identify a path by which a message may be transmitted. For example, a message transmitted from router device 225b to the leader device 215 may be transmitted through router device 225a or router device 225c. Router device 225b may receive respective advertisement messages from router device 225a and router device 225c, the advertisement messages indicating that the path cost of message communication between router device 225a and the leader device 215 is the same as the path cost of message communication between router device 225c and the leader device 215 (e.g., the path cost on each network link = 2). Router device 225b may add the link cost calculated for transmitting a message 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 the total path cost of communicating with the 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 a message 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 the total path cost of communicating with the leader device 215 through router device 225a (e.g., total path cost = 4). Router device 225b may use the calculated lowest path cost of communicating with the leader device 215 and / or the identifier of the router device (e.g., router 225c) through which the message is to be transmitted to update the locally stored router table. Each router device may similarly use the calculated lowest path cost of communicating with other router devices in network 200c to update their respective locally stored router tables. For example, as Figure 2E shown, the leader device 215 and the router device 225c may each calculate the lowest path cost for communicating with other router devices in network 200c 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 devices 215, 225c through which the message is transmitted to implement the calculated path cost of communication to the destination router device.
[0101] By periodically updating link quality (e.g., LQI and / or LQO), link cost, and / or path cost, and transmitting the path cost in a periodic advertisement message to other router devices, each router device can have up-to-date path cost information for transmitting messages to other router devices in network 200c. The router device can use the best communication path (e.g., the lowest cost path) to transmit a message to another device. This routing mechanism can allow the router device to detect when another router device has dropped off the network 200c, 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 200c.
[0102] To distinguish relatively older data transmitted in a periodic advertisement message from relatively newer data transmitted in the periodic advertisement message, the advertisement message can be transmitted with a sequence number. A leader device, such as leader device 215, can 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 network 200c). For example, leader device 215 can 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 can be updated to allow router devices in the network (e.g., leader device 215 and / or router devices 225a, 225b, 225c, 225d, 225e, 225f in network 200c) to identify updated network information transmitted in the advertisement message. For example, since router devices (e.g., leader device 215 and / or router devices 225a, 225b, 225c, 225d, 225e, 225f in network 200c) can periodically transmit advertisement messages including path cost information indicating the path cost for communicating with other router devices in the network, the sequence number can be updated to identify updated path cost information.
[0103] 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 for 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 for the router device until the leader device 215 distributes a subsequent sequence number. For example, the router device 225c may receive the sequence number directly from the leader device 215 and use the sequence number in subsequent advertisement messages. The router device 225b may receive the sequence number in the advertisement message transmitted from the router device 225c and use the sequence number in subsequent advertisement messages transmitted from the router device 225b. Each router may use the current sequence number until it receives an updated sequence number originated from and distributed by the leader device 215. When a router device receives an advertisement message with an updated sequence number from a non-leader router device (e.g., router devices 225a, 225b, 225c, 225d, 225e, 225f), each router device may update the locally stored network information in the router table. If a router device receives an advertisement message with the same sequence number as a previously received advertisement message and / or an advertisement message previously received from the same non-leader router device, the router device may not be able to process the advertisement message. If a router device fails to receive an updated sequence number within a predefined period of time (e.g., several minutes, several seconds, etc.), the router may consider the leader device 215 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.
[0104] Figure 3A and Figure 3B FIGS. are diagrams showing a sequence flow chart of exemplary advertisement messages that use sequence numbers to transfer between devices in networks 300a and 300b, respectively, to process advertisement messages. The exemplary networks 300a and 300b each include a subset of the devices in network 200c shown as an example in Figure 2E but other networks with other configurations may operate similarly. For example, networks 300a and 300b include a leader device 215 and router devices 225a, 225b, 225c, and 225e. As Figure 2E shown in, the router device 225a and the router device 225c may each share a single-hop network link with the leader device 215. The router 225b may share a single-hop network link with each of the router devices 225a and 225c. The router device 225e may share a single-hop network link with the router 225a.
[0105] In an exemplary network 300a illustrated in Figure 3A , the leader device 215 and other router devices 225a, 225b, 225c, and 225e may process advertisement messages based on a sequence number. As shown in Figure 3A , the leader device 215 may generate a sequence number for use in advertisement messages transmitted by other router devices. As described herein, the leader device 215 may generate and update the sequence number for use in advertisement messages in network 300a to distinguish data transmitted by router devices in the network. For example, the sequence number may be incremented periodically by the leader device 215 (e.g., after transmitting one or more advertisement messages) and / or after adding a router device to the network to allow router devices in the network (e.g., the leader device 215 and / or router devices 225a, 225b, 225c, 225e in network 300a) to identify updated network information transmitted in the advertisement messages. The updated network information may include updated link quality information (e.g., LQI and / or LQO) and / or path cost information indicating a path cost for communicating with other router devices in network 300a.
[0106] The leader device 215 may use the sequence number in advertisement message 302 transmitted from the leader device 215. The advertisement message 302 may be received by router devices 225a and 225c that each share a single-hop network link with the leader device 215. Router devices 225a and 225c may each process the advertisement message 302 at 304 and 304a, respectively. Router devices 225a, 225c may each identify the advertisement message 302 as including an updated sequence number from the leader device 215 (e.g., sequence number SN = 1). Router devices 225a, 225c may update their locally used sequence numbers to reflect the sequence number received from the leader device 215.
[0107] Router devices 225a, 225c may use the sequence number from the leader device 215 in their own advertisement messages. Router devices 225a, 225c may also each process another advertisement message subsequently received from another non-leader router device (e.g., a router device other than leader 215). Router devices 225a, 225c may identify the sequence number as received in the advertisement message from the leader device 215 and allow the processing of another advertisement message received from another non-leader router device.
[0108] Each of the router devices 225a, 225c may periodically transmit their own advertisement messages towards the leader device 215 to the "upstream routers" and / or from the leader device 215 to the "downstream routers" using the sequence number received from the leader device 215. The advertisement messages from each router device may be transmitted randomly within a predefined period of time. As Figure 3A shown, the router device 225a may transmit the advertisement message 306 as a multicast message. The advertisement message 306 may be received by the leader device 215, the router device 225b, and / or the router device 225e. The leader device 215 and / or the router devices 225b, 225e may each share a single-hop network link with the router device 225a. The leader device 215 may identify the sequence number in the advertisement message 306 (e.g., sequence number = 1). Since the leader device 215 has to process the advertisement message 306 including the identified sequence number from the non-leader router device, the leader device 215 may process the advertisement message 306 at 308. Since the leader device 215 may be the single leader device in the network, each advertisement message received by the leader device 215 may be received from a non-leader router device. The router devices 225b, 225e may each identify the sequence number in the advertisement message 306 (e.g., sequence number = 1). Since each of the router devices 225b, 225e has to process the advertisement message including the identified sequence number (e.g., sequence number = 1) from the non-leader router device, the router devices 225b, 225e may each process the advertisement message 306 at 308a and 308b respectively. The processing of the advertisement message 306 may include identifying updated network information. For example, the processing of the advertisement message 306 may include identifying updated link quality information (e.g., LQI and / or LQO) and / or path cost information in the advertisement message 306, which may lead to an update of the network information in the locally stored router table at the router devices 225b, 225e to improve network communication.
[0109] After receiving the advertisement message 306 at the router devices 225b, 225e, the router devices 225b, 225e may identify the updated sequence number used in the advertisement message 306. The router devices 225b, 225e may each store the updated sequence number for use in their own advertisement messages. Each of the router devices 225b, 225e may periodically transmit their own advertisement messages using the sequence number. The sequence number is used in the advertisement messages sent by the router devices 225b, 225e to the "downstream routers" (not shown) and / or the "upstream routers" (e.g., the leader device 215, the router device 225a, the router device 225c) in the network 300a.
[0110] As Figure 3AAs shown, the router device 225c can transmit an advertisement message 310. The advertisement message 310 can be transmitted as a multicast message after a random period. The advertisement message 310 can be received by the leader device 215 and the router device 225b. The leader device 215 and / or the router device 225b can each share a single-hop network link with the router device 225c. The leader device 215 can identify the sequence number in the advertisement message 310 (e.g., sequence number = 1). Since the leader device 215 has already processed an advertisement message including the identified sequence number from a non-leader router device (e.g., the advertisement message 306 processed at 308), the leader device 215 may not be able to process the advertisement message 310 at 311. For example, the leader device 215 can ignore and / or discard the advertisement message 310 at 311. The router device 225b can similarly identify the sequence number in the advertisement message 310 (e.g., sequence number = 1). Since the router device 225b has already processed an advertisement message including the identified sequence number from a non-leader router device (e.g., the advertisement message 306 processed at 308a), the router device 225b may not be able to process the advertisement message 310 at 311a. For example, the router device 225b can ignore and / or discard the advertisement message 310 at 311a. The inability of the leader device 215 and / or the router device 225b to process the advertisement message 310 from the router device 225c can save local memory and / or processing resources. However, the inability to process the advertisement message 310 may cause the leader device 215 and / or the router device 225b to be unable to process the network information in the advertisement message 310. For example, the leader device 215 and / or the router device 225b may not be able to identify the updated link quality information (e.g., LQI and / or LQO) and / or path cost information in the advertisement message 310, which may result in the inability to update the locally stored router table at the leader device 215 and / or the router device 225b to improve network communication.
[0111] The router device 225b can use the serial number identified in the advertisement message 306 to periodically transmit the advertisement message. The router device 225b can transmit the advertisement message 312 as a multicast message. The advertisement message 312 can be received by the router device 225a and / or the router device 225c. The router device 225a and the router device 225c can each share a single-hop network link with the router device 225b. The router device 225a and the router device 225c can each identify the serial number in the advertisement message 312 (e.g., serial number = 1). Since the router device 225a has an advertisement message including the identified serial number from a non-leader router device to process, the router device 225a can process the advertisement message 312 at 314. Similarly, since the router device 225c has an advertisement message including the identified serial number from a non-leader router device to process, the router device 225c can process the advertisement message 312 at 314a. The processing of the advertisement message 312 can include identifying updated network information. For example, the processing of the advertisement message 312 can include identifying updated link quality information (e.g., LQI and / or LQO) and / or path cost information in the advertisement message 312, which may result in an update of the network information in the locally stored router table at each device (e.g., the router device 225a and the router device 225c).
[0112] As Figure 3A shown, the router device 225e can transmit the advertisement message 316. The advertisement message 316 can be transmitted as a multicast message after a random period. The advertisement message 316 can be received by the router device 225a. The router device 225a can each share a single-hop network link with the router device 225e. The router device 225a can identify the serial number in the advertisement message 316 (e.g., serial number = 1). Since the router device 225a has already processed an advertisement message including the identified serial number from a non-leader router device (e.g., the advertisement message 312 processed at 314), the router device 225a may not be able to process the advertisement message 316 at 317. For example, the router device 225a can ignore and / or discard the advertisement message 316 at 317. The router device 225a's inability to process the advertisement message 316 from the router device 225e can save local memory and / or processing resources. However, the inability to process the advertisement message 316 may cause the router device 225a to be unable to process the network information in the advertisement message 316. For example, the router device 225a may not be able to identify the updated path cost information in the advertisement message 310, which may result in the inability to update the locally stored router table at the router device 225a to improve network communication.
[0113] In addition, since the router device 225a is a router device in the path that allows the router 225e to communicate with the leader device 215, the leader device is also unable to receive the updated network information in the advertisement message 316. For example, the router device 225a may transmit the advertisement message 318 after being unable to process the advertisement message 316 at 317. The advertisement message 318 may not include the updated network information based on the network information in the advertisement message 316. In addition, since the advertisement message 318 includes the same sequence number as the advertisement messages previously received from non-leader router devices at the leader device 215 and the router devices 225b, 225e (e.g., sequence number = 1), the leader device 215 and the router devices 225b, 225e may be unable to process the advertisement message 318 at 319, 319a, and 319b, respectively. Therefore, the updated network information cannot be transmitted to and / or received by the leader device 215 to update the network information locally stored thereon to improve network communication.
[0114] The leader device 215 may transmit another advertisement message 320 (e.g., periodically or after a router device is added to the network 300a). The advertisement message 320 may include an updated sequence number (e.g., sequence number = 2). The advertisement message 320 may be received by the router device 225a and the router device 225c that each share a single-hop network link with the leader device 215. The router device 225a and the router device 225c may each process the advertisement message 320 at 322 and 322a, respectively. The router devices 225a, 225c may each identify the advertisement message 320 as including the updated sequence number from the leader device 215 (e.g., sequence number = 2), and may update the sequence numbers used locally by them to reflect the sequence number received from the leader device 215. The router devices 225a, 225c may use the updated sequence number from the leader device 215 in their subsequent advertisement messages. As described herein, the router devices in the network 300a may each continue to process the advertisement messages received from non-leader router devices (e.g., router devices other than the leader 215).
[0115] When a router device processes advertisement messages from other router devices as illustrated in network 300a, the router devices may compete with each other to use a given sequence number in the advertisement messages so that their advertisement messages and the network information therein are processed by other router devices. The router devices may compete to use the given sequence number in their router messages because once a router device receives an advertisement message with the sequence number from a non-leader router device, the router device may not be able to process the next advertisement message with the same sequence number. When the network information of a router device cannot be propagated through the network, the router device may lose to another competing router device because their advertisement messages with a specific sequence number happen to be transmitted / received after the advertisement messages of another router device with the same sequence number. Router devices that each share a single-hop network link with a common router device may directly compete for earlier use of a given sequence number. For example, router 225a and 225c may be competing for the leader device 215 to process the advertisement message; and router devices 225b and 225e may compete for router device 225a to process the advertisement message. A router device may also be multi-hop from another router device in the network, which may result in multiple router devices competing to use the sequence number to transmit advertisement messages to share updated network information (e.g., link quality information and / or path cost information) with an upstream router device. For example, in order for router device 225e to share updated network information with the leader device 215, router device 225e may compete with router 225b for earlier use of the sequence number in the advertisement message transmitted to router device 225a, and then router device 225a may compete with router 225c for earlier use of the sequence number in the advertisement message transmitted to the leader device 215.
[0116] Router devices closer to the leader device 215 (e.g., router devices with fewer hops from the leader device 215) may have the opportunity to receive and use the updated sequence number provided by the leader device 215 before router devices farther from the leader device 215 (e.g., router devices with more hops from the leader device 215). This may result in router devices closer to the leader device 215 having their advertisement messages processed more frequently by other router devices compared to router devices farther from the leader device 215. For example, router devices 225a, 225c may receive the updated sequence number before router devices 225b, 225e, which may result in router devices 225a, 225c having a greater chance of using the updated sequence number before router devices 225b, 225e. This means that compared to router devices 225b, 225e, router devices 225a, 225c may have a greater chance of propagating their network information to other router devices in the network.
[0117] Although network 300a is shown as an example, competition for the use of sequence numbers may increase as the network grows. As the number of single-hop network links between router devices and other router devices increases, the competition for the use of sequence numbers increases. For example, in a network where a router device has single-hop network links to 16 other routers, each of the 16 router devices that transmit periodic advertisement messages back to a router may have a 1 in 15 chance of being the advertisement processed by a router device.
[0118] The link quality on a given network link may affect the ability of a router device to send / receive advertisement messages with updated sequence numbers. For example, the link quality on the network link between router device 225a and leader device 215 may be worse than the link quality on the network link between router device 225c and leader device 215. Thus, router device 225a may receive an advertisement message with an updated sequence number later than router device 225c (e.g., due to packet loss), and may start using the updated sequence number in its own advertisement messages later. Due to similar link quality differences, an advertisement message sent from router device 225a and including a given sequence number may be received at leader device 215 later than an advertisement message sent from router device 225c and including the same sequence number, even if router device 225a may have started using the sequence number in advertisement messages earlier.
[0119] A router device that cannot transmit updated network information may delay or prevent improvement of the link quality of incoming communications to the router device and / or sub-devices of the router device. A router device may be able to update the network information stored locally thereon to improve the path cost of communications sent on the network, but the router device may not be able to transmit the updated network information outward to other router devices, which may result in the path cost not being improved for incoming communications from other router devices, or the improvement being delayed. Router devices with lower link quality and / or higher path cost of network communications may be those router devices, i.e., those that would benefit more from other router devices (e.g., "upstream" router devices) that have updated the network information stored locally to achieve an updated path for communications to router devices on the network. A decrease in the link quality of a network link may be caused by long-term interference or shorter-term interference (e.g., increased noise spikes on the network, such as streaming multimedia or other data on the network). A decrease in link quality caused by long-term interference may ultimately be resolved by an updated path of network communications, but a decrease in link quality caused by shorter-term interference may be more difficult to resolve because router devices cannot recognize short-term changes in link quality.
[0120] A router device that cannot transmit updated network information to the leadership device 215 may cause the leadership device 215 to be unable to update the bitmap on which the locally stored router tables of each of the router devices are based. As described herein, the leadership device 215 may be a device responsible for updating a bitmap indicating the number of router devices in the network and / or the router identifier of each of the router devices in the network. The router devices in the network may maintain link quality information and / or path cost information for each of the router devices indicated in the bitmap. An indication of a link quality or path cost below a given threshold (e.g., a poor link quality of 0 or 1) may be an implicit request for the leadership device 215 to downgrade the router device role, or that the router device has left the network, and allows the leadership device 215 to update the bitmap for distribution to other router devices. For example, due to a delay in receiving updated link quality information for the network link between receiving router devices, the leadership device 215 may delay the downgrading of a router device (e.g., to a terminal device) (e.g., to allow a sub-device of the router device to attach to another router, free up the router identifier in the bitmap for another device to upgrade, etc.) or the identification of a router device that has left the network (e.g., unplugged, out of battery, or otherwise powered off). In the absence of an updated bitmap, the router devices may each maintain network information for each router device, which may unnecessarily consume resources on the router devices. In the absence of an updated bitmap, it may prevent other devices in the network from upgrading to the router device role to improve network communication.
[0121] In the exemplary network 300b illustrated in Figure 3B the leadership device 215 and the other router devices 225a, 225b, 225c, and 225e may process advertisement messages based on a sequence number and a device identifier. For example, the leadership device 215 and the other router devices 225a, 225b, 225c, and 225e may each receive an advertisement and identify the sequence number and the router identifier or another unique identifier of the router device to determine whether a previous advertisement message with the same sequence number has been received from the same router device. An advertisement message received with the same sequence number and router identifier as a previously received advertisement message may not be processed (e.g., ignored and / or discarded).
[0122] Figure 3B The sequence flow in Figure 3AThe same advertisement messages 302, 306, 310, 316, 318 transmitted by the same router device shown in the figure. However, additional advertisement messages can be processed in network 300b. For example, the leader device 215 and the router device 225b can each receive the advertisement message 310 and identify the sequence number and router identifier (e.g., or other unique identifier of the router device 225c) in the advertisement message 310. The leader device 215 and the router device 225b can each compare the sequence number and router identifier in the advertisement message 310 with the information stored from previously received advertisement messages. As Figure 3B shown, the leader device 215 and the router device 225b can each process the advertisement message 310 at 351 and 351a respectively. Although the leader device 215 and the router device 225b may have previously each received an advertisement message 306 with the same sequence number as the sequence number in the advertisement message 310 (e.g., sequence number = 1), the advertisement message 310 can be processed when an advertisement message 306 is received from another non-leader router device (e.g., the router device 225a). Similarly, the router device 225a can receive the advertisement message 316 and compare the sequence number and router identifier in the advertisement message 316 with the information stored from previously received advertisement messages. As Figure 3B shown, the router device 225a can process the advertisement message 316 at 353. The ability of each router device (e.g., the leader device 215 and the router devices 225a, 225b, 225c, 225e) to process advertisement messages using sequence identifiers can allow other router devices to identify updated network information (e.g., link quality information and / or path cost information) to improve network communication.
[0123] A router device that identifies an advertisement message as having the same sequence number and router identifier (e.g., or other unique identifier of the router device 225c) as a previously received advertisement message from a non-leader router device may not be able to process the advertisement message. As Figure 3BAs shown, router device 225a and router device 225c may each receive advertisement message 354 transmitted from router device 225b. The advertisement message 354 may include the same sequence number as the advertisement message 312 previously transmitted from router device 225b (e.g., sequence number = 1). Router device 225a and router device 225c may each identify the sequence number and the router identifier (e.g., or other unique identifier of router device 225c) as being the same as the sequence number and the router identifier received in advertisement message 312, and may be unable to process advertisement message 354 at 355 and 355a, respectively. Since router device 225a and router device 225c have each already processed advertisement messages including the same identified sequence number from the same non-leader router device, they may be unable to process advertisement message 354. For example, router device 225a and router device 225c may each ignore and / or discard advertisement message 354 at 355 and 355a, respectively. The inability of router device 225a and router device 225c to process advertisement message 354 may save local memory and / or processing resources.
[0124] As Figure 3B shown, the leader device 215 and / or router devices 225a, 225b, 225c, 225e may perform additional processing of the advertisement messages by processing multiple advertisement messages having the same sequence number. Processing of the advertisement messages may be restricted by processing advertisement messages having the same sequence number from each non-leader router device in network 300b. The additional processing may allow updated network information to be propagated to the leader device 215 and / or router devices 225a, 225b, 225c, 225e in network 300b. In a relatively small network (e.g., a residential network having a relatively small number of devices) operating similarly to the network depicted in Figure 3A the updated network information may be propagated relatively quickly (e.g., even seamlessly) to other devices in the network because the number of devices competing to use the same sequence number over a period of time may be relatively low. In a relatively large network (e.g., a commercial network having a relatively large number of devices) operating similarly to the network depicted in Figure 3A the updated network information may be propagated relatively slowly to other devices in the network because the number of devices competing to use the same sequence number over a period of time may be relatively high, and the amount of delay in propagating the information to other devices may increase exponentially based on the location of the devices in the network. This additional processing of the advertisement messages shown in network 300b of Figure 3B may allow updated network information to be propagated in both larger and smaller networks.
[0125] As Figure 3BAs shown, the router device 225a may transmit the advertisement message 318 after processing the advertisement message 316 at 353. The advertisement message 318 may include updated network information based on the network information in the advertisement message 316 received from the router device 225e. Thus, the updated network information may be updated at the router device 225a and has a better chance of being transmitted to and / or received by the leader device 215 to update the network information locally stored thereon to improve network communication. Since the advertisement message 318 includes the same sequence number as the advertisement messages previously received from non-leader router devices at the leader device 215 and the router devices 225b, 225e (e.g., sequence number = 1) (e.g., the sequence number in the advertisement message 306), the leader device 215 and the router devices 225b, 225e may be unable to process the advertisement message 318 at 319, 319a, and 319b, respectively. However, the updated network information is locally stored in the router device 225a and may be distributed to the leader device 215 in the next successful advertisement message processed at the leader device 215 (e.g., when the leader device 215 updates the sequence number next time). As a result, the updated network information may spread throughout the network faster.
[0126] Figure 4A FIG. is a flowchart of an exemplary program 400 for processing advertisement messages. The program 400 may be executed by a router device (e.g., a leader device or another router device). For example, the router device may start the program 400 at 402 and may receive an advertisement message from another router device at 404. The advertisement message may include a sequence number. At 406, the router device may determine whether the sequence number in the received advertisement message is different from the sequence number currently used by the router device to transmit its own advertisement messages. If the received sequence number is different from the sequence number currently stored at the router device for inclusion in its own advertisement messages, the router device may store the sequence number at 408 for future advertisement messages transmitted from the router device.
[0127] If the sequence number is identified as having been previously received by the router device, the router device may determine at 410 whether the sequence number was previously received from a non-leader router device. If the sequence number in the advertisement message was previously received in an advertisement message from a non-leader router device, the advertisement message may be ignored and / or discarded at 412. If the sequence number was not previously received in an advertisement message from a non-leader router device (e.g., previously received by the leader device or previously unable to be received), the advertisement message may be processed at 414. The program 400 may end at 416.
[0128] Figure 4BFIG. 0 is a flowchart of another exemplary program 450 for processing advertisement messages. Program 450 may be executed by a router device (e.g., a leader device or another router device). For example, the router device may start program 450 at 452 and may receive an advertisement message from another router device at 454. The advertisement message may include a sequence number and / or a router identifier (e.g., or another unique identifier of the router device). At 456, the router device may determine whether the sequence number in the received advertisement message is different from the sequence number currently used by the router device to transmit its own advertisement message. If the received sequence number is different from the sequence number currently stored at the router device for inclusion in its own advertisement message, the router device may store the sequence number at 458 for future advertisement messages transmitted from the router device.
[0129] If the sequence number is recognized as having been previously received by the router device, the router device may determine at 460 whether the sequence number was previously received in an advertisement message from a non-leader router device. The sequence number may be compared with the sequence numbers previously received in advertisement messages from non-leader router devices. If the sequence number in the advertisement message could not have been previously received from a non-leader router device, the advertisement message may be processed at 464. If the sequence number in the advertisement message was previously received in an advertisement message from a non-leader router device, the router device may determine at 461 whether the non-leader router device is the same non-leader router device from which it received the previous advertisement message having the sequence number. For example, the router device may compare the router identifier (e.g., or another unique identifier of the router device) with the router identifier (e.g., or another unique identifier of the router device) of the router device from which it received the advertisement message having the same sequence number. The router device may compare the sequence number and router identifier received in the advertisement message with a table of sequence numbers and router identifiers received in previous advertisement messages. After each updated sequence number is identified, the table may be refreshed. If the sequence number was not previously received in an advertisement message transmitted by the same non-leader router device, the advertisement message may be processed at 464. If the sequence number was previously received in an advertisement message transmitted by the same non-leader router device, the advertisement message may be ignored at 462. Program 400 may end at 466.
[0130] A control device that receives an advertisement message can use the advertisement message to determine the health of the network. The health of the network can be determined from the perspective of each control device (e.g., each leader device and / or router device) based on whether the control device has received an advertisement message with an updated sequence number within a predefined period of time. As described herein, a leader device can generate an updated sequence number and transmit the updated sequence number to a router device with which the leader device shares a single-hop network link. If a router device that shares a single-hop network link with a leader device receives an updated sequence number within a predetermined period of time since receiving the previous sequence number, the router device can identify that the leader device is operating properly and determine that the network is healthy. The router device that shares a single-hop network link with the leader device can maintain the current network link with the leader device and start transmitting its own advertisement messages using the updated sequence number to inform "downstream" router devices of the health of the network.
[0131] If a router device in a network partition fails to receive an advertisement message with an updated sequence number within a period of time (e.g., 120 seconds, 240 seconds, or another threshold period), the router device can assume that the leader device has left the network or is otherwise unable to communicate properly. For example, the leader device may lose power or be otherwise unable to communicate for a period of time. Since each router device in the network determines that the leader device has left the network or is unable to communicate for a period of time (e.g., 120 seconds, 240 seconds, or another threshold period), the router devices can each separate from the network and attempt to attach to another network and / or network partition.
[0132] When another network and / or network partition is not available, the control devices can each attempt to create their own network and / or network partition. After the control devices separate from the network, the control devices can each set their roles to be the leader device and start transmitting advertisement messages including the partition identifier of the new network and / or network partition. For example, the control devices can each perform a process similar to that performed during initial network formation to identify the leader device of the network. Each control device can transmit its corresponding role as the leader device in the advertisement message with the partition identifier in an effort to allow other control devices to attach to the network partition.
[0133] As described herein, priorities may be assigned based on partition identifiers and / or the number of devices in a given network partition. Each leader device may include the partition identifier (e.g., partition ID) of their network partition and may be given a higher or lower partition identifier than other leader devices. Network partitions may be associated with partition identifiers. The partition identifiers 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. The partition identifier may be selected at the leader device and transmitted in an advertisement message to other devices that may be attached to the leader device.
[0134] Referring to Figure 2B , network partitions 201, 202, 203 may each be associated with a corresponding partition identifier. As described in another example herein, partition identifier 1 may be assigned to network partition 202, partition identifier 2 may be assigned to network partition 203, and partition identifier 3 may be assigned to network partition 201. A higher or lower partition identifier may indicate a higher priority value for 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).
[0135] Also as described herein, 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. Referring again to 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 device in the network partition may locally store the number of control devices in the network partition thereon. As described herein, different partition identifiers may be used to give different priorities to network partitions having the same number of devices. For example, as Figure 2B shown in, network partitions 201 and 202 may have the same number of devices (e.g., 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.
[0136] When reforming the network after losing a previous leading device, a control device attempting to form a network partition may transmit advertisement messages and receive advertisement messages from other control devices attempting to form another network partition. Each leading device may use the priority of each network partition to identify whether to maintain their role as a leading device on a higher-priority network partition or attach to a higher-priority network partition. For example, a leading device of a network partition may identify an advertisement message from a router device in another network partition and determine that the other network partition has a higher priority. When the leading device identifies that another network partition has a higher priority, the leading device may demote its role to a router device or a terminal device and attempt to attach to a router device with a higher priority in the network partition. The router devices and terminal devices in the network partition attached to the demoted leading device may also start network reformation. During this reformation process, the devices performing the reformation may not be able to send messages to other devices in the system and / or receive messages from other devices in the system. Therefore, as the network continues to reform, messages may only be delivered to devices that happen to be on the same partition as the transmitting device. This may reduce network functionality.
[0137] Since the leading device may be a single point of failure for each network, losing a leading device on a larger network may cause a greater amount of delay during network reformation compared to losing a leading device on a smaller network. In a smaller network, such as a network with five to ten devices in a network (e.g., a network in a residential facility), after losing the leading device, other devices can seamlessly perform network reformation within a relatively short amount of time. In a larger network, such as a network with one hundred or two hundred devices in a network (e.g., a network in a commercial facility), network reformation may take anywhere between fifteen minutes and two hours after losing the leader.
[0138] To prevent the delays that network reformation may cause, at least one router device in the network may identify itself as a backup leading device when the current leading device is communicating properly on the network. In one example, a router device with a single-hop network link to the leading device may be considered a backup leading device. The router device may identify itself as a backup leading device based on the link quality on the single-hop network link to the leading device. Each router device may receive an advertisement message from the leading device and, based on the network information in the advertisement message, compare the link quality of the network link between the router device and the leading device with the link quality of the network link between other router devices (e.g., router devices sharing a single-hop network link with the leading device) and the leading device. The router device with the highest link quality for communicating with the leading device may identify itself as the backup leading device.
[0139] Figure 5A FIG. 500 is a flow chart illustrating an exemplary program 500 that may be performed by a router device on a network to determine whether the router device is a backup leader device in the event of the loss of the current leader device. Program 500 may be performed periodically at 501 and / or in response to a triggering event. For example, program 500 may begin at 501 in response to receiving a message at the router device. Program 500 may be performed whenever the router device receives an advertisement from the leader device.
[0140] At 502, the router device may receive an advertisement message from the leader device of the network. The router device performing program 500 may be a router device that shares a single-hop network link with the leader device (e.g., because a router device that shares a single-hop network link with the current leader device may be the router device that receives the advertisement message from the leader device). The advertisement message may include information transmitted by the leader device on the single-hop network link. For example, the advertisement message may include information associated with the communication quality between the leader device and one or more other devices communicating with the leader device (e.g., router devices communicating with the leader device). As described herein, the received advertisement message may be used by the router device to determine the health of the network. For example, receiving an advertisement message from the leader device may indicate that the leader device is operating and / or communicating properly on the network (e.g., an operating leader device may transmit advertisement messages periodically).
[0141] In response to receiving the advertisement message from the leader device, the router device may reset a leader timer at 504. The leader timer may indicate the period of time since the last advertisement message was received from the leader device. Also, or alternatively, the router device may use the leader timer to determine the health of the network partition. For example, if the router device fails to receive an advertisement message from the leader device after a predefined period of time (e.g., 120 seconds), the router device may determine that the leader device has been lost.
[0142] At 506, the router device may determine a router identifier to be set as the backup leader based on a backup leader criterion. For example, the router device may determine at 506 the router identifier having the highest link quality for communicating with the leader device at 506. The link quality may be, for example, the LQO or LQI indicated in the network information in the advertisement message transmitted from the leader device. The link quality may be a combination of the LQO and the LQI (e.g., an average value). The link quality may be based on the network information in one or more advertisement messages received from the leader device. For example, the highest link quality may be based on the LQO and / or LQI in the network information in the last advertisement message and / or the average value of the LQO and / or LQI in the advertisement messages received from the leader device over a period of time. The highest link quality from the leader device may indicate the router device with which the leader device has the strongest network link for the advertisement message transmitted from the leader device. Although the link quality is indicated as the backup leader criterion, other backup leader criteria may also be implemented, such as the received signal strength indicator (RSSI) value of the advertisement message or other communication quality metrics.
[0143] At 508, the router device may determine whether its own identifier is the same as the identifier determined to be the backup leader device based on the backup leader criterion. If the router device determines that its identifier is the same as the identifier determined to be the backup leader device based on the backup leader criterion, the router device may set a backup leader flag at 510 and program 500 may end. If the router device determines that its identifier is not the same as the identifier determined to be the backup leader device based on the backup leader criterion, the router device may clear the backup leader flag at 512 and program 500 may end. The router device may use the backup leader flag to determine whether the router device is the backup leader device. Clearing the backup leader flag may include: setting the backup leader flag to false; deleting the indication of the backup leader flag from the memory; or otherwise indicating at the router device that the router device is not designated as the backup leader device.
[0144] One or more router devices may execute program 500 to identify the backup leader device. The router devices executing program 500 may be limited to the router devices sharing a single-hop network link with the current leader. Since multiple router devices may execute program 500, using one or more backup leader criteria may cause multiple router devices to identify themselves as the backup leader device (e.g., in the case where multiple router devices have the same link quality). Figure 5B Program 500 for implementing multiple backup leader criteria to select a single backup leader device is illustrated.
[0145] Figure 5BFIG. 520 is a flow diagram illustrating an exemplary process 520 that may be performed and implemented by a router device on a network to enforce multiple backup leadership criteria to determine whether the router device is a backup leadership device in the event of loss of the current leadership device. Process 520 may be performed periodically at 521 and / or in response to a triggering event. For example, process 520 may be performed at 521 in response to receiving a message at the router device. Process 520 may be performed whenever the router device receives an advertisement from the leadership device.
[0146] At 522, the router device may receive an advertisement message from the leadership device of the network. The router device performing process 520 may be a router device sharing a single-hop network link with the leadership device (e.g., because a router device sharing a single-hop network link with the current leadership device may be the router device receiving the advertisement message from the leadership device). The advertisement message may include information transmitted by the leadership device on the single-hop network link. For example, the advertisement message may include information associated with the communication quality between the leadership device and one or more other devices communicating with the leadership device (e.g., router devices communicating with the leadership device). As described herein, the received advertisement message may be used by the router device to determine the health of the network. For example, receiving an advertisement message from the leadership device may indicate that the leadership device is operating and / or communicating properly on the network (e.g., an operating leadership device may transmit advertisement messages periodically).
[0147] In response to receiving the advertisement message from the leadership device, the router device may reset a leadership timer at 524. The leadership timer may indicate the period of time since the last advertisement message was received from the leadership device. Additionally, or alternatively, the router device may use the leadership timer to determine the health of the network partition. For example, if the router device fails to receive an advertisement message from the leadership device after a predefined period of time (e.g., 120 seconds), the router device may determine that the leadership device has been lost.
[0148] At 526, the router device may determine a first backup leadership criterion. For example, the router device may determine, at 526, the highest Link Quality Output (LQO) of the communication from the leadership device. The highest LQO may be indicated, for example, in the network information in the advertisement message transmitted from the leadership device. The highest LQO may be based on the network information in one or more advertisement messages received from the leadership device. For example, the highest LQO may be based on the LQO in the network information in the last advertisement message and / or the average of the LQOs in the advertisement messages received from the leadership device over a period of time. The highest LQO from the leadership device may indicate the router device with which the leadership device has the strongest network link for advertisement messages transmitted from the leadership device.
[0149] At 528, the router device can determine whether its own identifier is the same identifier associated with the highest LQO in the network information received from the leader device. The advertisement message received from the leader device can include the router identifier or another unique identifier (e.g., the routing locator (RLOC) of each router device communicating with the leader device) of the router device communicating with the leader device and the LQO associated with the corresponding router device. The router device having an identifier associated with the highest link quality output (LQO) in the network information in the advertisement message received from the leader device can be a candidate to become a backup leader (e.g., becomes the leader device when the leader device is lost or the leader device otherwise cannot communicate properly on the network). At 528, the router device can determine whether its identifier is associated with the highest LQO in the network information from the leader device. If the router device determines, based on the network information in the advertisement message, that its identifier is not associated with the highest LQO at the leader device, the router device can clear the backup leader flag at 540 and the process 520 can end. The router device can use the backup leader flag to determine whether the router device is a backup leader device. Clearing the backup leader flag can include: setting the backup leader flag to false; deleting the indication of the backup leader flag from memory; or otherwise indicating at the router device that the router device is not designated as a backup leader device. The router device not associated with the highest LQO of the communication from the leader device can indicate that the router device fails to be considered a backup leader device. However, if the router device determines at 528 that its identifier is associated with the highest LQO in the network information received in the advertisement message from the leader device, the router device can determine that the router device can be considered a backup leader device and additional backup leader criteria can be considered.
[0150] Since the leader device may have the same LQO for messages transmitted on other single-hop network links to other router devices, additional criteria can be considered for selecting a backup leader device. At 530, the router device can determine a second backup leader criterion. For example, the router device can determine, at 530, the highest link quality input (LQI) of the router device having the highest LQO associated with the leader device. The advertisement message received from the leader device can include network information that indicates the LQI for the incoming message from the corresponding router device to the leader device. The router device having the highest LQI and the highest LQO can be a router device having a highly reliable network link to the leader device. The router device having a higher link quality to the leader device can have a similar link quality and / or path cost to other devices in the network, which can be suitable for identifying a backup leader device for the current leader device.
[0151] A router device having an identifier associated with the highest LQI in the network information in the advertisement message received from the leader device may still be a candidate to become a backup leader device (e.g., become the leader device when the leader device is lost or otherwise unable to communicate properly on the network). At 532, the router device may determine whether its router identifier or other unique identifier is associated with the highest LQI of the router device having the highest LQO identified in the network information from the leader device. If the router device determines that its identifier is not associated with the highest LQI among the router devices that also have the highest LQO identified in the network information from the leader device, the router device may clear the backup leader flag at 540 and procedure 520 may end.
[0152] If the router device determines that its identifier is associated with the highest LQI, the router device may determine a third backup leader criterion. For example, the router device may determine, at 534, the smallest identifier of the router identifier (or other unique identifier) of the router device having the highest LQO and / or LQI. The router identifier may be a numerical or alphanumeric identifier. Although procedure 520 may be described as using the smallest identifier of the router identifier as the backup leader criterion, the largest identifier of the router identifier or other criteria may be used to select the router to become the backup leader device. The router identifier may be listed in the network information that may be received in the advertisement message from the leader device. The router device may use the router identifier of the router device having the highest LQO and / or LQI to identify a single backup leader device (e.g., in a case where multiple router devices have a similar link quality for communicating with the leader device). For example, if the leader device is lost, the single backup leader device may replace the lost leader device. The single backup leader device may be identified by each of the router devices on the network, which may avoid a delay in selecting an alternative leader device when the leader device is lost.
[0153] At 536, the router device can determine whether its router identifier or other unique identifier is the smallest identifier among the router identifiers of the router devices having the highest LQO and / or LQI. If the router device determines that its identifier is not the smallest identifier among the router identifiers of the router devices having the highest LQO and / or LQI, the router device can clear the backup leader flag at 540 and program 520 can end. However, if the router device determines that its identifier is the smallest identifier among the router identifiers of the router devices having the highest LQO and / or LQI, the router device can set the backup leader flag at 538 and program 520 can end. Setting the backup leader flag can indicate that the router device executing program 520 is the single backup leader device in the network. The backup leader device can identify when the leader device of the network partition is lost (e.g., before other devices leave the partition) and take over the responsibilities of the leader device. Taking over the responsibilities of the leader device on the network partition may prevent other devices from reforming the network and result in a longer period of degraded functionality.
[0154] One or more router devices can execute program 520 to identify the backup leader device. The router devices executing program 520 can be limited to the router devices sharing a single-hop network link with the current leader. Although program 520 includes multiple backup leader criteria, more or fewer backup leader criteria can be used to execute a similar program 520. For example, for simplicity, the backup leader flag can be set based on the router identifier itself. Including the highest LQO of the communication from the leader device as a backup leader criterion can help ensure that the router device regarded as the backup leader device misses fewer advertisement messages (e.g., and the network information therein) from the current leader device. Similarly, including the highest LQI of the communication to the leader device as a backup leader criterion can help ensure that the leader device misses fewer advertisement messages (e.g., and the network information therein) from the router device regarded as the backup leader device. In addition, including the highest LQI of the communication to the leader device as a backup leader criterion can help ensure that the current leader device having problems communicating on the network has a better chance of receiving an advertisement that another router device is taking over as an alternative leader device (e.g., when the alternative leader device starts such advertisement).
[0155] As described, Figure 5BThe program 520 in [the device] can be used to select a single backup leader device. However, a similar program that allows for the identification of multiple backup leader devices can be implemented. The backup leader device can be a succession order. Backup leader criteria can be used to identify the succession order. For example, when a router device identifies its router identifier as being associated with the highest link quality (e.g., LQO / LQI) on the network link to the leader device and / or identifies its router identifier as the lowest router identifier, a first backup leader flag can be set at the router device. When another router device identifies its router identifier as being associated with the next highest link quality (e.g., LQO / LQI) on the network link to the leader device and / or identifies its router identifier as the next lowest router identifier, a second backup leader flag can be set at the router device. If there are multiple router devices with the same link quality (e.g., LQO and / or LQI), the succession of the backup leader flag can be set based on other backup leader criteria (e.g., LQO on the network link to the leader device, LQI on the network link to the leader device, the highest router identifier, the lowest router identifier, or another backup leader criteria). By similarly using the backup leader criteria, additional backup leader flags can continue to be set for the next backup leader device in the sequence. Each router device can be capable of determining its position in the sequence based on the backup leader criteria. Their positions in the sequence may be updated as the backup leader criteria change (e.g., the link quality to the leader changes) or when one or more of the backup leader devices in the sequence have been lost. When the leader device and / or each of the other previous backup leader devices in the sequence have been lost, the router device can replace the current leader device. Each of the router devices can store the sequence of backup leaders in a list and update the list when a device is lost and / or the backup leader criteria change to indicate the relative position of each of the router devices in the sequence for replacing the current leader device.
[0156] When there is a single backup leader device, the router device identified as the backup leader device can identify that other devices may be separated from the network (e.g., because the router device has not received a message from the leader device within 120 seconds) and promote itself to the replacement leader device to maintain network partitioning before the other devices are separated. The backup leader device may have a shorter threshold for upgrading its role to the leader device compared to when other devices are separated from the network partitioning.
[0157] Figure 6 is a flowchart of an exemplary program 600 that can be executed by a router device to determine whether the router device should become the next leader device or separate from the old leader device. For example, when a first timeout period T has elapsed since receiving an advertisement message from the leader device TO1(e.g., 120 seconds) later, if the router device has previously determined to become a backup leader device (e.g., via the Figure 5B program 520 shown), then the router device may determine to become the next leader device. Additionally, after a second timeout period T TO2 (e.g., 240 seconds) has elapsed since receiving the advertisement message from the leader device, the router device may determine to separate from the old leader device. As described herein, the leader timer may track the period since the last advertisement message was received from the leader device. The first timeout period T TO1 may include the period during which the leader device will transmit one or more advertisement messages (e.g., 120 seconds). The first timeout period T TO1 may be the period set for the backup leader device to identify the failure to receive one or more advertisement messages from the leader device. The second timeout period T TO2 may include the period during which the leader device will transmit one or more advertisement messages (e.g., 240 seconds). The second timeout period T TO2 may include a longer period than the first timeout period T TO1 such that the devices on the network partition will separate from the old leader device after this period (e.g., 240 seconds) without receiving an advertisement message. The second timeout period T TO2 may be a multiple of the first timeout period T TO1 . The second timeout period T TO2 may allow for the transmission of additional advertisement messages from the leader device in the event of the loss of one or more advertisement messages from the leader device. The second timeout period T TO2 may allow the backup leader device to start operating as an alternative leader device before the control device begins to separate from the old leader device.
[0158] At 601, program 600 may start. At 602, the router device may determine whether the leader timer is greater than or equal to the first timeout period T TO1 . At 602, if the leader timer is less than the second timeout period T TO2 , but greater than or equal to the first timeout period T TO1 (e.g., during the first timeout period T TO1 , the router device has not received an advertisement message from the leader device), then the router device may determine at 606 whether the backup leader flag is set. The backup leader flag may be set to true or another value indicating that the router device is a backup leader device. Setting the backup leader flag at the router device may indicate that the router device is identified as a backup leader device to be in the first timeout period T TO1After the period of , take over the responsibilities of the leading device in the absence of a leading device. For example, the backup leading flag can be set during the invocation of program 500 (e.g., at 518 of program 500). If the backup leading flag is not set at 606, program 600 can proceed at 604 to determine whether the leading timer is greater than or equal to the second timeout period T TO2 . If the leading timer is not greater than or equal to the second timeout period T TO2 at 604, then program 600 can end.
[0159] If the backup leading flag is set at 606, the router device can start operating as the leading device of the network partition at 608. When operating as the leading device, the router device can maintain the previous partition identifier for the network that was used in the advertisement message transmitted by the previous leading device. The use of the previous partition identifier can prevent the router device from having to generate and distribute updated partition identifiers. The use of the previous partition identifier can allow other devices transmitting on the network to recognize the advertisement message from the alternative leading device as being on the same network and maintain their roles in the network. The router device can operate as the next leading device on the network by: updating the sequence number; maintaining a bitmap for identifying router devices in the network; and / or performing other functions of the leading device as described herein. For example, the router device can update the sequence number when taking over as the leading device. The router device can update the bitmap to indicate the loss of the previous leading device. When the leading device is still in the network but is replaced due to loss of communication for a period of time, the router device can maintain the previous leading device as a router device in the bitmap. In addition, the router device can update the network information in the router table to reflect the link quality and / or path cost of communicating with the previous leading device.
[0160] At 610, the router device operating as the next leading device can transmit a leading advertisement message. The advertisement message can include the previous partition identifier used by the previous leading device, the sequence number (e.g., the updated sequence number), the bitmap (e.g., the updated bitmap), and / or network information (e.g., updated link quality and / or path cost information). The router device operating as the leading device can allow other devices on the network to continue communicating with other devices on the network without reforming the network.
[0161] If the router device determines at 602 that the leading timer is greater than or equal to the second timeout period T TO2 (e.g., the router device has not received an advertisement message from the leading device during the second timeout period T TO2 ), then at 612, the router device can separate from the old leading device. As described herein, the second timeout period TTO2 may include a period after which, upon not receiving an advertisement message (e.g., within a second timeout period T TO2 ), the router device will separate from the old leader device. After the router device separates from the old leader device, the router device may identify an advertisement message from another network partition and attach to a router device in the other network partition, or change its role to a leader device and start advertising on its own network partition as a leader. This is in the case where the router device fails to receive an advertisement message from another backup leader device during procedure 600 to maintain the network.
[0162] When multiple backup leader devices are identified in the network, each leader device may delay taking over the responsibilities of the leader device and advertising as a leader to allow an earlier backup leader device the opportunity to take over first. For example, when the leader device is lost, the first backup leader device may wait 120 seconds from the last advertisement message from the current leader, the second backup leader device may wait 150 seconds from the last advertisement message from the current leader, the third backup leader device may wait 180 seconds from the last advertisement message from the current leader, and so on. If the leader and the first backup leader device are on the same circuit and lose power simultaneously, then the second backup leader device may take over as the leader device and still allow the first backup leader device the opportunity to take over as the leader and start advertising as such. For example, multiple devices on the same circuit may lose power simultaneously because a user repairs a load control system and trips a circuit breaker to disconnect power to the lighting devices.
[0163] When a backup leader device becomes the next leader device of the network, the old leader device may start operating as a router device on the network. When the old leader device has not left the network (e.g., has not lost power and is still able to communicate on the network), but the backup leader device has within a first timeout period T TO1When the advertising message is not received from the old leader device within the network, the backup leader device can become the next leader of the network and transmit an advertising message (e.g., a leader advertising message) as the next leader device. When the old leader device receives the leader advertising message from the next leader device, the old leader device can relinquish its role as the leader device and start operating as a router device. In addition, when the old leader device is lost (e.g., not powered on or otherwise unable to communicate on the network), the backup leader device may become the next leader of the network in the absence of the old leader device. When the old leader device is powered on again, the old leader device can receive the advertising message from the new leader device and then start operating as a router device. When there are multiple backup leader devices, multiple router devices can upgrade their roles to leader devices and start transmitting advertising messages as leader devices. For example, multiple router devices can identify themselves as backup leader devices on the network before the current leader device is lost. After the current leader device is lost, each of these backup leader devices can start transmitting leader advertising messages. As described herein, each of the leader devices can resolve the leadership conflict between them.
[0164] Figure 7A is a flowchart of an exemplary program 700 that can be executed by a leader device to resolve a conflict with another leader device on the network. Program 700 can be executed periodically and / or in response to a triggering event. For example, program 700 can be executed in response to receiving a message (e.g., an advertising message) at the leader device. Program 700 can start at 701. At 702, the leader device can receive an advertising message (e.g., from a router device and / or from another leader device on the network. At 704, the leader device can determine whether an advertising message is received from another leader device. The leader advertising message from another leader device can include the same partition identifier and / or an updated sequence number used on the current network to which the router device is currently attached. For example, a device on the network that has identified itself as a backup leader device (e.g., based on as Figure 5A and Figure 5BAnother router device (e.g., the backup leadership criterion shown in FIG. 1) may start advertising as the leadership device on the same network after failing to receive an advertisement message from a previous leadership device (e.g., the leadership device executing Program 700). When the backup leadership device starts operating as the leadership device, the backup leadership device may increment the sequence number in its advertisement message by two or more digits to indicate that another leadership device has taken over and to avoid confusion at other control devices on the network (e.g., in the case of a missed advertisement message). If a leadership advertisement message has been received from another leadership device at 704, the leadership device may relinquish its role as the leadership device at 706 and operate as a router device on the network, and Program 700 may end. However, if an advertisement message has not been received from another leadership device at 704, Program 700 may simply end.
[0165] Figure 7B FIG. 4 is a flowchart of an exemplary Program 750 that may be executed by a control device (e.g., a leadership device) to resolve conflicts with another leadership device on a network. For example, Program 750 may be executed when the control device is powered on (e.g., after a power outage and / or after power has been disconnected from the circuit to which the leadership device is connected). Program 750 may start at 751 (e.g., when the control device is powered on). At 752, the control device may determine whether the control device previously operated as the leadership device of the network (e.g., before being powered off). For example, the control device may store a leadership device flag indicating whether the control device previously operated as the leadership device of the network in a memory. At 752, the control device may retrieve the leadership device flag from the memory to determine whether the control device previously operated as the leadership device of the network. If the control device determines at 752 that the control device did not previously operate as the leadership device of the network, Program 750 may end. If the control device determines at 752 that the control device previously operated as the leadership device of the network, the control device may transmit a link request message at 754. 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 reformed with another leadership device while the control device was powered off. When there is another leadership device on the network, the other leadership device may transmit a response to the link request message to the control device. If the control device receives a response to the link request message at 756, the leadership device may relinquish its role as the leadership device at 758 and operate as a router device on the network, and Program 750 may end. If the leadership device does not receive a response to the link request message at 756, the control device may continue to operate as the leadership device of the network at 760, and Program 750 may end.
[0166] As described herein, a network can be used to facilitate communication between corresponding devices of a load control system. To enable the corresponding control devices to communicate via the network, the control devices can be debugged. Figure 8 FIG. Figure 8 is a flowchart of an exemplary debugging program 800. The program 800 can be executed by a control device (e.g., a terminal device such as terminal devices 230a, 230b, a terminal device that meets the router condition 240, and / or a sleeping terminal device 250) that attempts to join or attach to a network (e.g., network 200, 200a, 200b, 200c, and / or network partitions 201, 202, 203). For example, when the control device is first powered on and attempts to attach / join the network, the control device can start the program 800 at 801. The debugging program 800 can include an activation program for activating control devices in the load control system. The activation program can include declaring the control devices and / or causing the control devices to join the network to enable communication within the load control system. The activation program can also include discovering control devices for joining the network and / or associating the control devices with one or more control devices in the load control system.
[0167] At 802, the control device can execute a declaration program. The declaration program can be used to discover and declare control devices to be added to the network. For example, a user's mobile device (e.g., mobile device 190) can be used to declare control devices in a load control system (e.g., the load control system 100 shown in Figure 1 ). The user's mobile device can declare each control device for joining the network and / or attaching to other devices on the network. Each control device can transmit a control device beacon message via a short-range wireless communication link (e.g., using BLE technology, NFC technology, or other short-range wireless technologies). The mobile device can discover (e.g., receive) the control device beacon messages transmitted by the control devices in the load control system. Each control device beacon message can include a unique beacon identifier of the control device that transmits the corresponding control device beacon message. The unique beacon identifier can be a beacon identifier. The unique beacon identifier can include a unique identifier (e.g., a serial number) of the control device itself.
[0168] The mobile device can identify one or more control device beacon messages that transmit the control device beacon messages with a received signal strength indicator (RSSI) higher than a predefined value. For example, the mobile device can identify one or more of the control device beacon messages that transmit the strongest RSSI, and the mobile device can transmit a connection message to the control device. The control device executing the debugging program 800 can receive the connection message from the mobile device, and the connection message can be configured to establish a connection (e.g., a two-way communication connection) with the mobile device.
[0169] The connection message may indicate to the control device that the control device has been selected for claim. 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 a control device that 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 cause the control device to join or attach to the network. For example, the configuration information may include a unique identifier of the control device (e.g., serial number) and / or a network certificate for joining the network or a network partition. The network certificate may include a network key of the network, a network address of the control device (e.g., Thread network address), and / or a joiner identifier of the control device. The network certificate may be used to program the control device by receiving the certificate of the network from a debugging device via radio frequency communication (e.g., Bluetooth or other short-range communication), or the certificate 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., serial number) of the control device may be sent in the claim confirmation message. The network address and / or the joiner identifier may be used during the join procedure to allow the control device to join the network.
[0170] During the claim procedure at 802, or alternatively during the debugging procedure 800, the mobile device may write information to the claimed control device. For example, the mobile device may write the time of claiming the control device, an identifier of the mobile device, and / or an application that executes the claim procedure on the mobile device, and / or channel information to assist the control device in getting on the Thread network through the join procedure. The 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 a claim confirmation message from the control device to which the mobile device is connected, the mobile device may store the unique identifier of the control device, the network address of the control device (e.g., Thread network address), and / or the joiner identifier of the control device in a memory.
[0171] The user can continue to move the mobile device around the space where the load control system is installed to execute the declaration procedure using additional control devices. When the user finishes declaring the control devices (e.g., the mobile device has declared all or part of the control devices of the load control system), the mobile device can upload the configuration information from the declared devices to a central computing device, such as a commissioning device. The uploaded configuration information can be used to identify the devices for joining a network or a network partition. The central computing device can be a system controller or other device capable of communicating with other control devices in the load control system. The central computing device can be installed at the space being commissioned or can be a remote computing device. Although the mobile device is described at 802 as the device that executes communication with the control devices during the declaration procedure, other computing devices can execute similar communication with the control devices during the declaration procedure. For example, another computing device such as a commissioning device or a system controller can execute communication with the control devices to execute the declaration procedure or a part thereof.
[0172] At 804, the control device can execute a joining procedure. During the joining procedure at 804, the control device can search for a network and / or a network partition to join (e.g., a Thread network and / or a network partition). The control device can periodically switch between the beacon mode declared during the declaration procedure at 802 and the beacon mode for listening for the network and / or the network partition to join during the joining procedure at 804. The control device can start the joining procedure at 804 after the declaration.
[0173] During the joining procedure, the control device can stop continuously transmitting (e.g., periodically transmitting) control device beacon messages on 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 can listen on the wireless communication network to determine whether a request to join the wireless communication network is being transmitted on the wireless communication network. In the case where the mobile device attempts to reconnect to the control device while the mobile device is executing the declaration procedure, the control device can continue to periodically transmit control device beacon messages via the first wireless communication medium (e.g., at a slower rate than in the declaration procedure).
[0174] During the enrollment process, the control device may receive an association request message from a central computing device or a debugging device. 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 using one or more portions of the configuration information obtained during the provisioning process. For example, the association request message or another message from the central computing device or the debugging device may include one or more portions that request a network certificate from the user device. In one example, the central computing device or the debugging device may identify a network address in the network certificate in the association request message and request an enrollee identifier from the control device. The control device may respond with the enrollee identifier or the network address and the enrollee identifier to join the network or a network partition. The central computing device or the debugging device may identify the control device as the provisioned device based on the unique identifier in the message and confirm the accuracy of the network certificate to enable the control device to join the network. After the control device joins the network and has a network certificate stored thereon, the control device may be activated on the network to perform communications.
[0175] At 806, the control device may execute an attachment process. After the control device joins the network, at 806, the control device may 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 the network). To attach to another device on the network, the control device may send and receive several messages via the network.
[0176] Although Figure 8 The provisioning process, the enrollment process, and the attachment process are described, one or more of these processes may be executed. For example, the provisioning process and / or the enrollment process may be omitted or modified because the control device may have a network certificate pre-stored thereon (e.g., at manufacturing or written to it by another device such as a mobile device). The control device may use the network certificate to directly attach to another device on the network. For example, as described herein, the computing device that the control device attempts to attach to may challenge the control device for the network certificate. As described herein, one or more of the provisioning process, the enrollment process, and / or the attachment process may be executed after power is provided to the control device and the device is turned on. One or more of these processes may also be executed to reform the network or reattach the control device to the network.
[0177] As described herein, a control device may join a network / network partition and / or attach to another device on the network in order to communicate with other control devices on the network. However, if the control device attempts to join the network or attach to another device on the network simultaneously or substantially simultaneously with other control devices, the likelihood of message collisions may increase and / or the control device may be unable to join the network or attach to another device on the network. To reduce the likelihood of message collisions, the control device may delay its respective join or attach procedure such that the control devices join the network and / or attach to other devices on the network sequentially (e.g., rather than simultaneously, which may increase the likelihood of message collisions and / or increase the likelihood that the respective control device is unable to join or attach to the network). For example, control devices attempting to join the network or attach to other devices on the network may delay their respective join and / or attach procedures based on a coordinated start time. Additionally, the coordinated start time may be personalized for the respective control device such that the coordinated start time triggers the control devices to sequentially initiate their respective join and / or attach procedures.
[0178] As part of an initial startup procedure, when the control device is initially powered on and / or attempts to initially attach to another device on the network or network partition (e.g., an initial attachment after being initially powered on after configuration and / or reconfiguration), the device may execute a startup procedure coordinated with other devices on the network or network partition. Since the initial startup procedure may be executed at the control device before the control device joins the network and / or establishes a role for performing communication on the network, a coordinated startup of the devices on the network may be performed to reduce latency and / or potential collisions of messages on the network when the devices attempt to execute join and / or attach procedures.
[0179] After activating a control device on the network, a user may desire to intentionally deactivate the control device to cause the control device to leave the load control system and / or the network. For example, the user may select a control device identified on the user's mobile device that has previously been activated in the load control system. The user may wish to deactivate a control device that has been inappropriately added to the network or inappropriately configured in the load control system. Deactivating the control device may allow the user to restart the activation procedure (e.g., discovery, claim, join, and / or association procedures) to add the control device to the load control system and cause the control device to join the network (e.g., using an application or other software via the user's mobile device). For example, the user may be able to restart a debugging procedure to activate the control device on the network or network partition; and associate the control device with a zone in the load control system and / or other control devices communicating on the network or network partition. Deactivating the control device may revoke the network certificate established during the join procedure for joining the network.
[0180] The control device can be deactivated during a deactivation procedure. During the deactivation procedure, the control device can be separated from other devices on the network and may leave the network, such that the control device may not be able to communicate on the network. As described herein, control devices with different roles in the network can perform differently and have different responsibilities in the network. Since the control device may be assigned a role that gives the control device responsibility for communication with other devices on the network, deactivating the control device may affect the communication of other control devices on the network.
[0181] A control device assigned the role of a terminal device may be able to separate from the network without affecting the communication of other devices on the network. Thus, a control device assigned the role of a terminal device in the network may be able to seamlessly leave the network without affecting other network communication. However, a control device assigned the role of a leader device and / or a router device may have additional network responsibilities that make it difficult to remove the leader device and / or the router device from the network without affecting other network communication. For example, as described elsewhere herein, if the leader device is removed from the network, the loss of the leader device may result in excessive latency in network communication (e.g., especially in larger networks, such as commercial facilities), which may be due to other router devices and / or terminal devices failing to recognize the loss of the leader device and / or the network reformation to replace the leader device for some period of time.
[0182] Similarly, when a router device is removed from the network, removing the router device may result in excessive latency in network communication to / from the leader device and / or terminal devices (e.g., especially in larger networks, such as commercial facilities), because the leader device and / or the terminal devices attached thereto may incorrectly assume that the router device is still active in the network and attempt to perform communication on the network via the router device. The leader device may not know that the router device has left the network and may maintain the router device in the routing table for some time after the router device has left the network. Since the router device is maintained in the routing table, other control devices (e.g., the leader device, other router devices, and / or terminal devices) that rely on the routing table to perform communication on the network may continue to attempt to transmit messages via the router device after the router device has left the network.
[0183] Since a user can use the user's mobile device to intentionally deactivate a previously activated control device, proactive steps can be taken in response to an indication from the user or the user's mobile device to prevent additional latency that may result from the loss of a leader device or a router device in the network. For example, a deactivation procedure can be performed taking into account the role of the control device being deactivated on the network. Control devices can be deactivated differently based on their role in the network. The deactivation procedure can consider the responsibilities of a given control device in the network based on the assigned role and take proactive steps to maintain network communication when deactivating the control device from the network. In response to an indication to deactivate a control device assigned the role of leader device in the network, the role of the leader device can seamlessly transfer from the control device being deactivated to another control device that can take over the responsibilities of the leader device. Similarly, in response to an indication to deactivate a control device assigned the role of router device in the network, the router device can be removed from the router table maintained by the leader device relied upon by other devices in the network, which can allow other devices to update their communication paths to avoid communicating through the removed router device and / or attach more quickly to another control device on the network. One or more devices in the load control system (e.g., the system controller and / or a control device associated with the deactivated device) can delete the unique identifier and / or association of the deactivated control device from memory in response to an indication that the device has been deactivated. After the deactivation procedure, the deactivated control device may need to be reclaimed and / or rejoined to the network to enable communication on the network, or be claimed and joined to another network or network partition to enable communication thereon.
[0184] Figure 9 is a flowchart illustrating an exemplary deactivation procedure 900 that can be performed by a control device on a network to deactivate a control device that has been claimed and / or joined to the network. Procedure 900 can be executed in response to a trigger event at the control device. For example, procedure 900 can be executed in response to receiving a deactivation request message at the control device. For example, a deactivation request can be sent from the user's mobile device in response to a user selection to deactivate the control device on the mobile device.
[0185] As Figure 9As described in [description], program 900 may start at 902. At 904, the control device may receive a deactivation request message (e.g., from the user's mobile device). The deactivation request message may be received via the system controller or another control device in the network. For example, the user may select a control device to be deactivated on the user's mobile device, and the mobile device may send a message to the system controller to trigger the system controller to send a deactivation request message. The deactivation request message may be sent directly to the control device as a multicast message or a unicast message. The deactivation request message may include the unique identifier or device type of the control device to be deactivated. The device type may indicate the type of the control device to be deactivated (e.g., such as a lighting control device, a remote control device, or another control device).
[0186] In response to receiving the deactivation request message, the control device may determine its role at 906. Each control device in the network may store its device role in the memory. The device role may be a part of the device address or unique identifier that can be stored in the memory. For example, the device role may be indicated in the identifier used to communicate with a given device (e.g., a leader device, a router device, or a terminal device). If the control device determines at 908 that it is assigned the role of the leader device, the control device may send a leadership handover message. For example, at 910, the control device may send the leadership handover message to the backup leader device in the network. As described herein, the leadership handover message may indicate to the backup leader device that the leader device is announcing the abandonment of its position as the leader device, and the backup leader device may take over the role of the leader device.
[0187] The router device sharing a single-hop network link with the leader device may maintain the router device as the backup leader device. For example, as described herein, the router device sharing a single-hop network link with the leader device may determine that it is the backup leader device and set a backup leader flag. The router device capable of identifying and maintaining the router device assigned as the backup leader device (e.g., on which the backup leader flag is stored) may prevent the current leader device from having to maintain the backup leader device in the local storage, because the backup leader device may change, as described herein.
[0188] Since the router device may maintain the router device designated as the backup leader device, the leadership handover message may be sent as a multicast message and received by the backup leader device. The leadership handover message may indicate for the backup leader device to take over as the leader device on the network. The backup leader device may receive the leadership handover message, identify itself as the backup leader device, and take over the responsibilities of the leader device on the network.
[0189] The leadership device itself may also or alternatively maintain the identity of the backup leadership device in local memory and send the leadership handover message as a unicast message at 910. In an example, as described herein, the backup leadership device may be determined by a router device, and the router device may provide its unique identifier and an indication that the router device is the backup leadership device to the leadership device. As the devices on the network change, or the communication quality on the network changes, the router device determined to be the backup leadership device may change. When another router device determines that it is the backup leadership device, it may provide its unique identifier to the leadership device, along with an indication that it is the backup leadership device. The leadership device may store the unique identifier of the backup leadership device in memory and send the leadership handover message as a unicast message that includes the unique identifier of the backup leadership device stored locally in memory.
[0190] Since the leadership device itself maintains the network information used by the router device to determine the backup leadership device, the leadership device itself can similarly use the network information to identify the backup leadership device and send the leadership handover message to the identified backup leadership device at 910. This handling of the backup leadership device at the leadership device can prevent maintaining the backup leadership device at the router device, but can maintain the backup leadership device at both the leadership device and the router device.
[0191] If the leadership device and / or the router device do not establish a backup leadership device (e.g., before executing program 900), the leadership device and / or the router device can determine another leadership device at 910. For example, the leadership device can identify, at 910, the next leadership device to which the leadership handover message will be sent based on backup leadership criteria, which can be similar to the determination performed at Figure 5A 506. The backup leadership criteria can include the link quality of the network link between the router device and the leadership device and / or the identifier of the router device (e.g., router identifier or other unique identifier). The leadership device can determine the backup leadership device by identifying, in the network information stored thereon, the router device associated with the highest LQO (e.g., based on the last message transmitted to the router device and / or the average of the LQOs of the messages transmitted to the router device over a period of time). For example, the determination of the highest LQO at 910 can be similar to the determination performed at Figure 5B 526. Since multiple router devices may have the same LQO from the leadership device, the leadership device can determine the backup leadership device by identifying, in the network information stored thereon, the router device associated with the highest LQI of the router device having the highest LQO (e.g., based on the last message received from the router device and / or the average of the LQIs of the messages received from the router device over a period of time). For example, the determination of the highest LQI at 910 can be similar to the determination performed atFigure 5B Determination performed at 530. Since multiple router devices may have the same LQI / LQO associated with communication to / from the leader device, the leader device may determine a backup leader device based on another criterion, such as the minimum or maximum identifier of the router device having the highest LQO and / or LQI. For example, determining the minimum / maximum identifier at 910 may be similar to the determination performed at Figure 5B 534. As described elsewhere herein, although certain backup leader criteria may be described, a portion of the identified criteria may be used or other criteria may be used to select the router device designated as the backup leader device. Similarly, the order of the backup leader criteria used to filter router devices may be changed. The local determination of the backup leader device may be performed periodically at the control device, in response to a deactivation request message at 904, in response to a change in the network (e.g., a router device in the network, the communication quality between router devices in the network, etc.), or in response to another triggering event.
[0192] In response to the control device sending a leadership handover message at 910, the backup leader device may receive the leadership handover message and assume the responsibilities of the leader device on the network. After the backup leader device takes over as the leader device on the network, the backup leader device will begin transmitting advertisement messages as the leader device and performing other leadership responsibilities described herein.
[0193] The control device may change its role at 912. For example, the control device may change its role at 912 after sending a leadership handover message and / or receiving an indication that the backup leader device has taken over as the leader device. At 912, the control device may demote its role to a router device or a terminal device.
[0194] At 914, the control device may determine whether its role in the network is the role of a router device. In one example, the control device may initially determine at 908 that its role is the leader device, and the control device may determine that after demoting its role at 912, the control device has been demoted to the role of a router device at 914. In another example, the control device may determine at 908 that its initial role is not the leader device and may determine at 914 that its role is a router device. If the control device determines at 914 that it is a router device, the control device may send a router release message at 916. The router release message may be sent directly to the leader device as a unicast message or as a multicast message. The router release message may be sent to the leader device as a request to release a router from the router table. The router release message may include the unique identifier of the router device to be released from the router table (e.g., a router identifier or other unique identifier).
[0195] The leader device can receive a router release message and release a router device from the router table. The leader device can remove the router identifier of the router device from the router table. The leader device can update the bitmap indicating routers in the router table to remove the indication of the router in the bitmap. Receiving a router release message at the leader device can allow the leader device to proactively release the router from the router table before the router device leaves the network, or the leader device can otherwise wait to determine that the router device has left due to non - responsiveness, which will allow the leader device to update the router table and / or bitmap instead of having to wait for a period of time to determine that the router device has been lost.
[0196] Proactively removing a router device from the router table and / or bitmap will allow the end devices to recognize the loss of the router device from the network earlier because they will receive the updated router table and / or bitmap and attempt to attach to another router device (e.g., as a parent device or a secondary parent device) without having to wait for a period of time to determine that the router device has been lost due to non - responsiveness. After receiving the router release message, the leader device can transmit an advertisement message including the updated router table, the updated router table having a bitmap indicating that the identified router device has been removed from the network. Router devices on the network can re - transmit the advertisement message until the advertisement message has been transmitted to every router device and end device on the network. An end device that is a child device of a parent router device that has been removed from the router table can recognize that its parent router device is no longer a router device in response to receiving the advertisement message (e.g., from the parent router device, a secondary parent device, or another router device) and send a parent request message to another router device on the network. The end device can send the parent request message to a secondary parent device in the secondary parent table. For example, the end device can send the parent request message to the secondary parent device with the strongest RSSI or link quality (e.g., LQI or LQO) on a network link associated with one or more messages.
[0197] A control device that sent a router release message at 916 can change its role at 918. For example, the control device can downgrade its role to a terminal device. After transmitting the router release message at 916, the control device can change its role at 918. Additionally, after receiving an indication that the router device has been removed from the router table, the control device can change its role at 918. The indication that the router device has been removed from the router table can be in the form of an acknowledgment message received from the leader device in response to the router release message sent at 916. When the control device receives an updated router table and / or bitmap in an advertisement message from the leader device, it can identify the indication that the router device has been removed from the router table. If the control device fails to receive an indication that it has been removed from the router table and / or bitmap as a router device after a predefined period of time, the control device can leave the network.
[0198] At 920, the control device can determine whether its role in the network is the role of a terminal device. In one example, the control device can determine at 914 that its role is a router device, and the control device can determine that after downgrading its role at 918, the control device has been downgraded to the role of a terminal device at 920. In another example, the control device can determine at 914 that its initial role is not a router device and can determine at 920 that its role is a terminal device. If the control device determines at 920 that it is a terminal device, the control device can leave the network at 922. Since a terminal device has no other device to rely on to perform communication on the network, the terminal device can freely leave the network. When leaving the network at 922, the control device can send a message (e.g., a unicast message) to its parent router device indicating that it is leaving the network or that the control device has just left the network. In response to the control device leaving the network, the parent router device can remove the terminal device from its stored attached devices. The control device can delete the network certificate stored during the joining process when it is deactivated and leaves the network.
[0199] After the control device has left the network, the deactivation process 900 can end. After being deactivated, the control device can no longer communicate on the network. The control device can be reactivated to join the network again to perform communication on the network. To be reactivated on the network, the control device may have to execute the activation process again (e.g., declare to join another network or network partition) to perform communication.
[0200] Figure 10is a block diagram illustrating an exemplary mobile device 1000 as described herein. The mobile device 1000 may include control circuitry 1002 for controlling the functionality of the mobile device 1000. The control circuitry 1002 may include one or more general-purpose processors, dedicated processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application-specific integrated circuits (ASICs), etc. The control circuitry 1002 may perform signal encoding, data processing, power control, input / output processing, or any other functionality enabling the mobile device 1000 to perform as described herein. The control circuitry 1002 may store information in and / or retrieve information from the memory 1004. The memory 1004 may include non-removable memory and / or removable memory. The non-removable memory may include random access memory (RAM), read-only memory (ROM), a hard disk, or any other type of non-removable memory storage device. The removable memory may include a subscriber identity module (SIM) card, a memory stick, a memory card, or any other type of removable memory.
[0201] The mobile device 1000 may include one or more communication circuits for transmitting and / or receiving information, such as communication circuit 1008. The communication circuit 1008 may perform wireless and / or wired communication. The communication circuit 1008 may include an RF transceiver or other circuitry capable of performing wireless communication via an antenna. The communication circuit 1008 may communicate with the control circuitry 1002 for transmitting and / or receiving information. The communication circuit 1008 may be configured to communicate using different wireless protocols or networks. When multiple communication circuits are implemented, they may each perform communication on different networks according to different wireless protocols.
[0202] The control circuitry 1002 may also communicate with the display 1006 for providing information to the user. The control circuitry 1002 and / or the display 1006 may generate a GUI for display on the mobile device 1000. The display 1006 and the control circuitry 1002 may be in two-way communication because the display 1006 may include a touchscreen module capable of receiving information from the user and providing such information to the control circuitry 1002. The mobile device 1000 may also include actuators 1012 (e.g., one or more buttons) that may be actuated by the user to convey a user selection to the control circuitry 1002.
[0203] Each of the modules within the mobile device 1000 may be powered by a power source 1010. For example, the power source 1010 may include an AC power supply or a DC power supply. The power source 1010 may generate a supply voltage V CC for powering the modules within the mobile device 1000.
[0204] Figure 11FIG. 0 is a block diagram illustrating an exemplary system controller 1100 as described herein. The system controller may be a gateway system controller, a target system controller, a remote system controller, and / or a combination thereof. The system controller 1100 may include control circuitry 1102 for controlling the functionality of the system controller 1100. The control circuitry 1102 may include one or more general-purpose processors, dedicated processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application-specific integrated circuits (ASICs), etc. The control circuitry 1102 may perform signal encoding, data processing, power control, input / output processing, or any other functionality enabling the system controller 1100 to perform as described herein. The control circuitry 1102 may store information in and / or retrieve information from the memory 1104. The memory 1104 may include non-removable memory and / or removable memory. The non-removable memory may include random access memory (RAM), read-only memory (ROM), a hard disk, or any other type of non-removable memory storage device. The removable memory may include a subscriber identity module (SIM) card, a memory stick, a memory card, or any other type of removable memory.
[0205] The system controller 1100 may include a first communication circuit 1106 for transmitting and / or receiving information. The first communication circuit 1106 may perform wireless and / or wired communication over a first wireless communication link and / or network (e.g., a network wireless communication link). The system controller 1100 may also or alternatively include a second communication circuit 1108 for transmitting and / or receiving information. The second communication circuit 1108 may perform wireless and / or wired communication over a second wireless communication link and / or network (e.g., a network wireless communication link). The first and second communication circuits 1106 and 1108 may communicate with the control circuitry 1102. The first and second communication circuits 1106 and 1108 may include RF transceivers or other communication modules capable of performing wireless communication via an antenna. The first communication circuit 1106 and the second communication circuit 1108 may be capable of performing communication via the same communication channel or different communication channels. For example, the first communication circuit 1106 may be capable of communicating (e.g., with a control device and / or other devices in a load control system) via a first wireless communication link and / or network using a first communication protocol (e.g., a wireless communication protocol such as CLEAR CONNECT and / or THREAD protocol). And the second communication circuit 1108 may be capable of communicating via a second wireless communication channel and / or network using a second wireless communication protocol.
[0206] The control circuit 1102 can communicate with the LED indicator 1112 to provide an indication to the user. The control circuit 1102 can communicate with the actuator 1114 (e.g., one or more buttons), which can be actuated by the user to convey a user selection to the control circuit 1102. For example, the actuator 1114 can be actuated to place the control circuit 1102 in an associated mode and / or transmit an associated message from the system controller 1100.
[0207] Each of the modules within the system controller 1100 can be powered by a power supply 1110. For example, the power supply 1110 can include an AC power supply or a DC power supply. The power supply 1110 can generate a supply voltage V CC for powering the modules within the system controller 1100.
[0208] Figure 12 is a block diagram illustrating an exemplary control target device such as the load control device 1200 described herein. The load control device 1200 can be a dimmer switch, an electronic switch, a lighting control device for a lamp, an LED driver for an LED light source or other lighting control device, an AC plug-in load control device, a temperature control device (e.g., a thermostat), a motor drive unit for electric curtains, or other load control device. The load control device 1200 can include one or more communication circuits, such as the communication circuit 1202. The communication circuit 1202 can include a receiver, an RF transceiver, or other communication module capable of performing wired and / or wireless communication via a network link 1210. The communication circuit 1202 can be configured to communicate using different wireless protocols or networks. When multiple communication circuits are implemented, they can each perform communication on different networks according to different wireless protocols.
[0209] The communication circuit 1202 can communicate with the control circuit 1204. The control circuit 1204 can include one or more general-purpose processors, dedicated processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application-specific integrated circuits (ASICs), etc. The control circuit 1204 can perform signal encoding, data processing, power control, input / output processing, or any other functionality that enables the load control device 1200 to perform as described herein.
[0210] The control circuit 1204 may store information in and / or retrieve information from the memory 1206. For example, the memory 1206 may maintain a registry of associated control devices and / or control configuration instructions. The memory 1206 may include non-removable memory and / or removable memory. The load control circuit 1208 may receive instructions from the control circuit 1204 and may control the electrical load 1216 based on the received instructions. The load control circuit 1208 may send status feedback regarding the status of the electrical load 1216 to the control circuit 1204. The load control circuit 1208 may receive power via the hot connection 1212 and the neutral connection 1214 and may provide a certain amount of power to the electrical load 1216. The electrical load 1216 may include any type of electrical load, such as a lighting load (e.g., LED, fluorescent lamp, etc.).
[0211] The control circuit 1204 may communicate with an actuator 1218 (e.g., one or more buttons), which may be actuated by a user to convey a user selection to the control circuit 1204. For example, the actuator 1218 may be actuated to place the control circuit 1204 in an association mode and / or transmit an association message from the load control device 1200.
[0212] Figure 13 is a block diagram illustrating an exemplary input device 1300 or control source device as described herein. The input device 1300 may be a remote control device, an occupancy sensor, a daylight sensor, a temperature sensor, etc. The input device 1300 may include a control circuit 1302 for controlling the functionality of the input device 1300. The control circuit 1302 may include one or more general-purpose processors, dedicated processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application-specific integrated circuits (ASICs), etc. The control circuit 1302 may perform signal encoding, data processing, power control, input / output processing, or any other functionality enabling the input device 1300 to perform as described herein.
[0213] The control circuit 1302 may store information in and / or retrieve information from the memory 1304. The memory 1304 may include non-removable memory and / or removable memory as described herein.
[0214] The input device 1300 may include one or more communication circuits for transmitting and / or receiving information, such as communication circuit 1308. The communication circuit 1308 may transmit and / or receive information via wired and / or wireless communication. The communication circuit 1308 may include a transmitter, an RF transceiver, or other circuitry capable of performing wired and / or wireless communication. The communication circuit 1308 may be configured to communicate using different wireless protocols or networks. When multiple communication circuits are implemented, they may each perform communication on different networks according to different wireless protocols. The communication circuit 1308 may communicate with the control circuit 1302 for transmitting and / or receiving information.
[0215] The control circuit 1302 may also communicate with the input circuit 1306. The input circuit 1306 may include actuators (e.g., one or more buttons) or sensor circuits (e.g., occupancy sensor circuit, daylight sensor circuit, or temperature sensor circuit) for receiving an input that may be sent to a device for controlling an electrical load. For example, the control source device may receive an input from the input circuit 1306 to place the control circuit 1302 in an associated mode and / or transmit an associated message from the control source device. The control circuit 1302 may receive information (e.g., an indication that a button has been actuated or sensed information) from the input circuit 1306. Each of the modules within the input device 1300 may be powered by a power source 1310.
[0216] Although features and elements are described herein in particular combinations, each feature or element may be used alone or in any combination with other features and elements. The methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable medium and executed by a computing device or a control circuit of a computing device. Examples of computer-readable media include electronic signals (transmitted via wired or wireless connections) and computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, read-only memory (ROM), random access memory (RAM), removable disks, and optical media such as CD-ROM disks and digital versatile disks (DVDs).
Claims
1. A method for identifying a router device in a network partition as a backup leader device, the method comprises: receiving, at the router device, an advertisement message from a leader device in the network; determining, at the router device, based on the advertisement message, at least one backup leader criterion for identifying whether the router device is a backup leader device, wherein the at least one backup leader criterion is based on the advertisement message received from the leader device and includes the link quality of the network link between the router device and the leader device; determining, at the router device, an identifier of a router to be set as a backup leader device based on the backup leader criterion; identifying, at the router device, the router device as the backup leader device if the identifier of the router device itself is the same as the identifier of the router determined to be set as the backup leader device; and setting, at the router device, a backup leader flag indicating that the router device is the backup leader device based on the router device being identified as the backup leader device.
2. The method according to claim 1, wherein the at least one backup leader criterion includes the highest link quality of communications transmitted to or from the leader device.
3. The method according to claim 1, wherein the router device is associated with a router identifier, and wherein the at least one backup leader criterion includes at least one of the following: the router identifier is associated with the highest link quality output of communications transmitted from the leader device; the router identifier is the highest link quality input for communications transmitted to the leader device; or the router identifier is the highest or lowest router identifier of routers communicating with the leader device.
4. The method according to claim 1, the method further comprises: resetting a leader timer at the router device after receiving the advertisement message from the leader device; failing to receive a second advertisement message at the router device within a first timer threshold, wherein the first timer threshold is shorter than a second timer threshold, and when other devices in the network partition also fail to receive an advertisement message from the leader device, the other devices separate from the network partition after the second timer threshold; when the router device fails to receive the second advertisement message, upgrading the router device to operate as a second leader device on the network partition based on the backup leader flag set at the router device; and transmitting an advertisement message from the second leader device.
5. The method according to claim 4, wherein the advertisement message transmitted from the second leader device includes the same partition identifier as the advertisement message transmitted from the leader device.
6. The method according to claim 5, wherein the advertisement message transmitted from the second leading device includes at least one of an updated sequence number or an updated bitmap from the advertisement message transmitted from the leading device.
7. The method according to claim 5, the method further comprises: receiving, at the second leading device, an advertisement message from a third leading device, wherein the advertisement message from the third leading device includes the same partition identifier; and abandoning, at the second leading device, the role of the leader.
8. The method according to claim 1, wherein the router device includes a control device in a load control system.
9. The method according to claim 8, wherein the control device includes a lighting control device.
10. The method according to claim 1, the method further comprises: identifying, based on the at least one backup leader criterion, the router device as a backup leader device in a sequence of backup leader devices configured to replace the leading device.
11. The method according to claim 10, the method further comprises: storing a list including the sequence of backup leader devices, the list indicating the relative position of the router device in the sequence for replacing the leading device.
12. The method according to claim 1, the method further comprises: clearing, at the router device, the backup leader flag based on the at least one backup leader criterion.
13. A control device in a load control system, the control device comprises: a memory, wherein the memory is configured to store the role of the control device in the network, and wherein the role of the control device includes a router device; a control circuit configured to perform the following operations: receiving an advertisement message from a leading device in the network; determining, based on the advertisement message, at least one backup leader criterion for identifying whether the control device is a backup leader device, wherein the at least one backup leader criterion is based on the advertisement message received from the leading device and includes the link quality of the network link between the router device and the leading device; determining, at the router device, an identifier of a router to be set as a backup leader device based on the backup leader criterion; identifying the control device as the backup leader device if the identifier of the control device itself is the same as the identifier of the router determined to be set as the backup leader device; setting a backup leader flag indicating that the control device is the backup leader device based on the control device being identified as the backup leader device; and storing the backup leader flag in the memory.
14. The control device according to claim 13, wherein the at least one backup leader criterion includes the highest link quality of communications transmitted to or from the leading device.
15. The control device according to claim 13, wherein the router identifier is stored in the memory, and wherein the at least one backup leadership criterion includes at least one of the following: the router identifier is associated with the highest link quality output of the communication transmitted from the leadership device ; The router identifier is the highest link quality input for the communication transmitted to the leadership device; Or the router identifier is the highest or lowest router identifier of the routers communicating with the leadership device.
16. The control device according to claim 13, wherein the control circuit is further configured to perform the following operations: Reset the leadership timer after receiving the advertisement message from the leadership device; Detect that the second advertisement message has not been received from the leadership device within a first timer threshold, wherein the first timer threshold is shorter than the second timer threshold, and when other devices in the network partition also fail to receive the advertisement message from the leadership device, the other devices separate from the network partition after the second timer threshold; When the control device fails to receive the second advertisement message from the leadership device, upgrade to operate as the second leadership device on the network partition based on the set backup leadership flag; And Transmit an advertisement message when operating as the second leadership device on the network partition.
17. The control device according to claim 16, wherein the advertisement message transmitted after upgrading to operate as the second leadership device includes the same partition identifier as the advertisement message transmitted from the leadership device, and wherein the advertisement message transmitted after upgrading to operate as the second leadership device includes at least one of an updated sequence number or an updated bitmap from the advertisement message transmitted from the leadership device.
18. The control device according to claim 17, wherein the control circuit is further configured to perform the following operations: Receive an advertisement message from a third leadership device, wherein the advertisement message from the third leadership device includes the same partition identifier; and Downgrade to stop operating as the second leadership device on the network partition.
19. The control device according to claim 13, wherein the control circuit is further configured to perform the following operations: Identify the control device as a backup leadership device in a sequence of backup leadership devices configured to replace the leadership device based on the at least one backup leadership criterion; and Store a list including the sequence of backup leadership devices, the list indicating the relative position of the control device in the sequence for replacing the leadership device.
20. The control device according to claim 13, wherein the control circuit is further configured to perform the following operations: Clear the backup leadership flag based on the at least one backup leadership criterion.
21. A computer-readable storage medium, the computer-readable storage medium including executable instructions stored thereon, the executable instructions causing the control circuit to perform the following operations when executed by the control circuit: Receive an advertisement message from a leader device in the network; Determine at least one backup leader criterion for identifying whether the control device is a backup leader device based on the advertisement message, where the at least one backup leader criterion is based on the advertisement message received from the leader device and includes the link quality of the network link between the router device and the leader device; Determine the identifier of the router to be set as the backup leader device based on the backup leader criterion; Identify the control device as the backup leader device if the identifier of the router device itself is the same as the identifier of the router determined to be set as the backup leader device; And Based on the control device being identified as the backup leader device, set a backup leader flag indicating that the control device is the backup leader device.
22. The computer-readable storage medium according to claim 21, wherein the at least one backup leader criterion includes the highest link quality of the communication transmitted to or from the leader device.
23. The computer-readable storage medium according to claim 21, wherein the at least one backup leader criterion includes at least one of the following: the router identifier is associated with the highest link quality output of the communication transmitted from the leader device; the router identifier is the highest link quality input for the communication transmitted to the leader device; or the router identifier is the highest or lowest router identifier of the routers communicating with the leader device.
24. The computer-readable storage medium according to claim 21, wherein the instructions stored thereon further cause the control circuit to perform the following operations: Reset the leader timer after receiving the advertisement message from the leader device; Detect that a second advertisement message is not received from the leader device within a first timer threshold, where the first timer threshold is shorter than a second timer threshold, and when other devices in the network partition also fail to receive the advertisement message from the leader device, the other devices separate from the network partition after the second timer threshold; When the control device fails to receive the second advertisement message from the leader device, upgrade to operate as the second leader device on the network partition based on the set backup leader flag; And Transmit an advertisement message when operating as the second leader device on the network partition.
25. The computer-readable storage medium according to claim 24, wherein the advertisement message configured to be transmitted after the control device upgrades to operate as the second leader device includes the same partition identifier as the advertisement message configured to be transmitted from the leader device.
26. The computer-readable storage medium according to claim 25, wherein the advertisement message configured to be transmitted after the control device upgrades to operate as the second leader device includes at least one of an updated sequence number or an updated bitmap from the advertisement message transmitted from the leader device.
27. The computer-readable storage medium according to claim 25, wherein the instructions stored thereon further cause the control circuit to perform the following operations: Receive an advertisement message from a third leading device, wherein the advertisement message from the third leading device includes the same partition identifier; and Demote the control device to stop operating as the second leading device on the network partition.
28. The computer-readable storage medium according to claim 21, wherein the control device includes a lighting control device in a load control system.
29. The computer-readable storage medium according to claim 21, wherein the instructions stored thereon further cause the control circuit to perform the following operations: Identify the router device as a backup leading device in a sequence of backup leading devices configured to replace the leading device based on the at least one backup leading criterion.
30. The computer-readable storage medium according to claim 29, wherein the instructions stored thereon further cause the control circuit to perform the following operations: Store a list including the sequence of backup leading devices, the list indicating the relative position of the router device in the sequence for replacing the leading device.
31. The computer-readable storage medium according to claim 21, wherein the instructions stored thereon further cause the control circuit to perform the following operations: Clear the backup leading flag based on the at least one backup leading criterion.
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