percentile base link qualification
By employing link quality threshold and percentile-based link identification techniques in the load control system, the role allocation of control devices and router selection in the network are optimized, solving the message collision and delay problems in the network formation process and improving the system installation and operation efficiency.
Patent Information
- Application Number
- CN202080095251.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-11-24
- Filing Date
- 2020-12-02
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2040-12-02
AI Technical Summary
In load control systems, delays and network partitioning caused by message collisions and device failures during network formation affect system installation and operation efficiency.
By using link quality thresholds, especially percentile-based link identification processes, the role allocation of control devices and the selection of router devices in the network can be optimized, reducing message collisions and improving network formation efficiency.
It improves the speed and efficiency of network formation, reduces device attachment delay, and ensures smooth installation and operation of the load control system.
Smart Images

Figure CN115023907B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 942,713, filed December 2, 2019; U.S. Provisional Patent Application No. 63 / 022,169, filed May 8, 2020; and U.S. Provisional Patent Application No. 63 / 117,759, filed November 24, 2020, the entire disclosure of each of which is incorporated herein by reference. Background Technology
[0003] User environments (such as residential or office buildings) can be configured using various types of load control systems. Lighting control systems can be used to control lighting loads that provide artificial light in the user environment. Electric window sill control systems can be used to control natural light provided to the user environment. HVAC systems can be used to control temperature in the user environment.
[0004] Each load control system may include various control devices, including input devices and load control devices. The control devices may receive messages from one or more input devices for controlling the electrical load, the messages including load control commands. The control devices may be able to directly control the electrical load. The input devices may be able to indirectly control the electrical load through the load control devices. Examples of load control devices may include lighting control devices (e.g., dimmer switches, electronic switches, ballasts, or light-emitting diode (LED) drivers), power window covers, temperature control devices (e.g., thermostats), AC plug-in load control devices, etc. Examples of input devices may include remote control devices, occupancy sensors, daylight sensors, glare sensors, color temperature sensors, temperature sensors, etc. Remote control devices may receive user input for performing load control. Summary of the Invention
[0005] Devices in control systems, such as load control systems and / or lighting control systems, can communicate with each other via a network (e.g., a mesh network). A control system may include load control devices, input devices, or other devices capable of communicating with each other to perform load control. Control devices may be configured to first join the network and then attach to one or more other devices on the network (e.g., to form a mesh network), which may be facilitated by a network leader. When a lighting control system is initially installed, devices may join the network (e.g., by exchanging credentials with a network commissioning device). The devices may then each attempt to attach to another device on the network to form a mesh network (e.g., network formation). To attach to another device on the network, the devices may send and receive multiple messages via the network.
[0006] Attachment can be performed using one or more link quality thresholds. For example, the control device can measure background communication quality metric values and the link quality threshold can represent the Nth percentile value (e.g., the 95th percentile value) of logged background communication quality metric values measured at the control device. For example, the background communication quality metric values can be received signal strength indicator (RSSI) values. The control device can calculate the link quality threshold by adding a respective link margin to a noise floor calculated from the background RSSI values.
[0007] The network can include router devices (e.g., leader devices and other router devices) for enabling message communication throughout the network. When assigning roles to control devices, the quality of the network links of the control devices to other devices can be considered. For example, the network can enter a router optimization mode to optimize the locations of the router devices in the network (e.g., to adjust the control devices assigned the roles of router devices). The router optimization mode can be initiated by a user through an application running on a computing device. Also, or instead, the router optimization mode can be triggered periodically, or by one of the control devices in the network upon detecting a change in network communication quality.
[0008] During the router optimization mode, the control devices communicating through the network can transmit (e.g., through unicast, multicast, and / or broadcast) one or more optimization messages. The control devices receiving these optimization messages can measure and store a communication quality metric of the optimization messages along with an indication of the device transmitting the optimization messages (e.g., optimization data). This optimization data can identify the number and quality of network links that the control device has established on the network. Each of the control devices can then transmit their respective optimization data to another device (e.g., a system controller) that processes the optimization data.
[0009] The system controller or another control device on the network can process and analyze the optimization data to determine the optimal roles of the control devices (e.g., to determine the optimal locations of the router devices of the network). Control devices having a greater number of network links including communication quality links above a defined quality threshold can be assigned as router devices in the network. BRIEF DESCRIPTION OF DRAWINGS
[0010] Figure 1 is a diagram of an example load control system.
[0011] Figure 2A is a diagram of an example network that can allow Figure 1 communication between devices in a load control system.
[0012] Figure 2B is a diagram of an example network that allows Figure 1A diagram of another example network of communication between devices in a load control system.
[0013] Figure 2C and Figure 2D is a diagram of another example network of communication between devices in a load control system. Figure 1
[0014] Figure 2E is a diagram of another example network illustrating costs and network overhead associated with communication between devices in a load control system. Figure 1
[0015] Figure 2F is a table illustrating example link costs that can correspond to different link qualities.
[0016] Figure 3A and Figure 3B illustrates a histogram showing the number of measurements (e.g., readings) of different background received signal strength indicator values recorded by control devices on a network over a period of time.
[0017] Figure 4A and Figure 4B illustrates values of link quality thresholds for control devices on a network over time, where the link quality thresholds can be determined using an averaging process.
[0018] Figure 5A and Figure 5B illustrates values of link quality thresholds for control devices on a network over time, where the link quality thresholds can be determined using a percentile floor link qualification process.
[0019] Figure 6 is a zoomed-in view of a plot of link quality thresholds determined using an averaging process and a percentile floor link qualification process in a high noise environment.
[0020] Figure 7 and Figure 8 is a flow diagram of an example configuration process (e.g., a link quality threshold configuration process).
[0021] Figure 9 is a flow diagram of an example commissioning process.
[0022] Figure 10 is a flow diagram of an example process for attaching to another device on a network.
[0023] Figure 11 is a flow diagram of an example attachment process (e.g., a parent attachment process) for attaching to another device on a network.
[0024] Figure 12 is a sequence flow diagram illustrating exemplary messages communicated between devices in a network.
[0025] Figure 13 is a flow diagram of an exemplary process for collecting optimization data to optimize selection of router devices in a network.
[0026] Figure 14 is a flow diagram of an exemplary process executable at a control device for determining its role in a network.
[0027] Figure 15 is a block diagram of an exemplary mobile device.
[0028] Figure 16 is a block diagram of an exemplary system controller.
[0029] Figure 17 is a block diagram of an exemplary load control device.
[0030] Figure 18 is a block diagram of an exemplary input device. DETAILED DESCRIPTION
[0031] Figure 1 is a diagram of an exemplary load control system 100 for controlling an 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 over 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 for communication between the load control devices. The control devices of the load control system 100 can include a plurality 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 plurality of control target devices (e.g., load control devices operable to receive messages and control a respective electrical load in response to the received messages). Individual control devices of the load control system 100 can operate both as control source devices and as control target devices.
[0032] Control source devices can be configured to transmit messages directly to control target devices. Additionally, the load control system 100 can include a system controller 110 (e.g., a central processor or load controller) that is operable to communicate messages to and from 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 control source devices and transmit messages to control target devices in response to messages received from control source devices. The control source devices, control target devices, and 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., the CLEAR CONNECT TYPE A and / or the CLEAR CONNECT TYPE X protocol). Alternatively, the RF signals 108 can be transmitted using a different RF protocol such as a standard protocol (e.g., one of WIFI, BLUETOOTH, BLUETOOTH LOW ENERGY (BLE), ZIGBEE, Z-WAVE, THREAD, KNX-RF, ENOCEAN RADIO protocol) or a different proprietary protocol.
[0033] The load control system 100 can include one or more load control devices, e.g., lighting control devices 120, for controlling lighting loads, e.g., lighting loads 122 in lighting fixtures 124. For example, the lighting control devices 120 can include light emitting diode (LED) drivers and the lighting loads 122 can include LED light sources. Although each lighting fixture 124 is shown as having a single lighting load 122, each lighting fixture can include one or more individual light sources (e.g., lamps and / or LED emitters) that can be controlled individually and / or uniformly by a respective lighting control device. The load control system 100 can include one or more load control devices or appliances capable of receiving wireless signals 108 directly from the system controller 110, such as a loudspeaker 146 (e.g., part of an audio / visual or intercom system) capable of generating an audible tone, such as an alarm, music, intercom functionality, etc.
[0034] The load control system 100 can include one or more daylight control devices, e.g., motorized window treatments 150, such as motorized cellular shades, for controlling the amount of daylight that enters the room 102. Each motorized window treatment 150 can include a window treatment fabric 152 that is suspended from a shade box 154 in front of a respective window 104. Each motorized window treatment 150 can also include a motor drive unit (not shown) located inside the shade box 154 for raising and lowering the window treatment fabric 152 to control the amount of daylight that enters the room 102. The motor drive unit of the motorized window treatment 150 can be configured to receive messages over the RF signals 108 (e.g., from the system controller 110) and adjust the position of the respective window treatment fabric 152 in response to the received messages. For example, the motorized window treatments can be battery powered. The load control system 100 can include other types of daylight control devices such as, for example, cellular shades, draperies, Roman shades, blinds, Persian windows, pleated windows, tensioned roller shade systems, electrochromic or smart windows, and / or other suitable daylight control devices. Examples of battery powered motorized window treatments are described in greater detail in U.S. Patent No. 8,950,461, entitled “MOTORIZED WINDOW TREATMENT,” issued February 10, 2015, and U.S. Patent No. 9,488,000, entitled “INTEGRATED ACCESSIBLE BATTERY COMPARTMENT FOR MOTORIZED WINDOW TREATMENT,” issued November 8, 2016, the entire disclosures of which are hereby incorporated by reference.
[0035] The load control system 100 can include one or more temperature control devices, e.g., a thermostat 160, for controlling the room temperature in the room 102. The thermostat 160 can be coupled to a heating, ventilation, and air conditioning (HVAC) system 162 by a control link, e.g., an analog control link or a wired digital communication link. The thermostat 160 can be configured to communicate messages wirelessly with a controller of the HVAC system 162. The thermostat 160 can include a temperature sensor for measuring the room temperature of the room 102 and can control the HVAC system 162 to adjust the temperature in the room to a setpoint temperature. The load control system 100 can include one or more wireless temperature sensors (not shown) located in the room 102 for measuring the room temperature. The HVAC system 162 can be configured to turn on and off a compressor to cool the room 102 and turn on and off a heating source to heat the room in response to control signals received from the thermostat 160. The HVAC system 162 can 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 can be configured to control one or more controllable dampers to control airflow flow in the room 102. The thermostat 160 can be configured to receive messages by RF signals 108, e.g., from the system controller 110, and adjust heating, ventilation, and cooling in response to the received messages.
[0036] The load control system 100 can include plug-in load control devices 140 for controlling plug-in electrical loads, e.g., plug-in lighting loads such as a floor lamp 142 or a table lamp and / or appliances such as a television or a computer monitor. For example, the floor lamp 142 can be plugged into the plug-in load control device 140. The plug-in load control device 140 can be plugged into a standard electrical outlet 144 and thus can be coupled in series between an AC power source and the plug-in lighting load. The plug-in load control device 140 can be configured to receive messages by RF signals 108, e.g., from the system controller 110, and turn on and off the floor lamp 142 or adjust the intensity of the floor lamp in response to the received messages.
[0037] The load control system 100 can include one or more other types of load control devices, such as, for example, a screw-in lamp fixture including a dimmer circuit and an incandescent or halogen lamp; a screw-in lamp fixture including a ballast and a compact fluorescent lamp; a screw-in lamp fixture including an LED driver and an LED light source; an electronic switch, controllable breaker, or other switching device for turning on and off an appliance; a plug-in load control device, controllable electrical outlet, or 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 a motorized window treatment or projection screen; a motorized interior or exterior blind; a thermostat for a heating and / or cooling system; a temperature control device for controlling a setpoint temperature of an HVAC system; an air conditioner; a compressor; an electric foot warmer heater controller; a controllable damper; a variable air volume controller; a fresh air intake controller; a ventilation controller; a hydraulic valve for use in a radiator and 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 or computer monitor; a video camera; an audio system or amplifier; an elevator; a power supply; a generator; a charger, such as an electric vehicle charger; and an alternative energy controller.
[0038] The load control system 100 can include one or more input devices, such as, for example, a remote control device 170 and / or a sensor device 140. The input devices can be fixed or movable input devices. The system controller 110 can be configured to transmit one or more messages to load control devices (e.g., the lighting control devices 120, the plug-in load control devices 140, the motorized window treatments 150, and / or the thermostat 160) in response to messages received from the remote control device 170. The remote control device 170 can be configured to transmit messages directly to the lighting control devices 120, the plug-in load control devices 140, the motorized window treatments 150, and / or the temperature control device 160.
[0039] The remote control device 170 can be configured to transmit messages through the RF signals 108 to the system controller 110 (e.g., directly to the system controller) in response to actuation of one or more buttons of the remote control device. For example, the remote control device 170 can be battery powered. The load control system 100 can include other types of input devices, such as, for example, temperature sensors, humidity sensors, radiometers, overcast sensors, shadow sensors, pressure sensors, smoke detectors, carbon monoxide detectors, air quality sensors, motion sensors, security sensors, proximity sensors, fixture sensors, zone sensors, keypads, multi-zone control units, slider control units, power or solar remote controls, key fobs, cellular telephones, smart phones, tablet computers, personal digital assistants, personal computers, laptop computers, clocks, audiovisual controls, security devices, power monitoring devices (e.g., such as power meters, energy meters, utility submeters, utility rate meters, etc.), central control transmitters, residential, commercial, or industrial controllers, and / or any combination thereof.
[0040] The system controller 110 can be coupled to a network, such as a wireless or wired local area network (LAN), for example, for accessing the Internet. The system controller 110 can wirelessly connect to the network, for example, using Wi-Fi technology. The system controller 110 can be coupled to the network through a network communication bus (e.g., an Ethernet communication link). The system controller 110 can be configured to communicate with one or more computing devices, for example, mobile devices 190, such as personal computing devices and / or wearable wireless devices, over the network. The mobile devices 190 can be located on an occupant 192, for example, can be attached to the occupant’s body or clothing, or can be held by the occupant. A feature of the mobile devices 190 can be a unique identifier (e.g., a serial number or address stored in memory) that uniquely identifies the mobile device 190 and, therefore, the occupant 192. Examples of personal computing devices can include smart phones, laptop computers, and / or tablet devices. Examples of wearable wireless devices can include activity tracking devices, smart watches, smart clothing, and / or smart glasses. Additionally, the system controller 110 can be configured to communicate with one or more other control systems (e.g., building management systems, security systems, etc.) over the network.
[0041] The mobile device 190 can 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 can be configured to transmit messages to the system controller 110 over a LAN and / or over the Internet. The mobile device 190 can be configured to transmit messages to an external service over the Internet, and then the messages can be received by the system controller 110. The mobile device 190 can transmit and receive RF signals 109. The RF signals 109 can be the same signal type and / or transmitted using the same protocol as the RF signals 108. Alternatively or additionally, the mobile device 190 can be configured to transmit RF signals according to another signal type and / or protocol. The load control system 100 can include other types of computing devices coupled to the network, such as a desktop personal computer (PC), a television with 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 greater detail in commonly-assigned U.S. Patent Application Publication No. 2013 / 0030589, entitled "LOAD CONTROL DEVICE HAVING INTERNET CONNECTIVITY," published January 31, 2013, the entire disclosure of which is hereby incorporated by reference.
[0042] Operation of the load control system 100 can be programmed and configured using, for example, the 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 the manner in which 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., by 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 operational settings of different load control devices (e.g., the lighting control devices 120, the plug-in load control devices 140, the motorized window treatments 150, and / or the thermostats 160) of the load control system. The load control database can include association information that identifies associations between load control devices and input devices (e.g., the remote control devices 170, etc.). The associations can include device identifiers that are stored together so that a device can recognize the stored identifier of an associated device to enable communication between the devices. The device can recognize the stored identifier of an associated device and communicate messages to and / or identify messages 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 configuration processes for load control systems are described in greater detail in commonly-assigned U.S. Patent No. 7,391,297, issued June 24, 2008, entitled “HANDHELD PROGRAMMER FOR A LIGHTING CONTROL SYSTEM”; U.S. Patent Application Publication No. 2008 / 0092075, published April 17, 2008, entitled “METHOD OF BUILDING A DATABASE OF A LIGHTING CONTROL SYSTEM”; and U.S. Patent Application Publication No. 2014 / 0265568, published September 18, 2014, entitled “COMMISSIONING LOAD CONTROL SYSTEMS,” the entire disclosures of which are hereby incorporated by reference.
[0043] Control devices of a load control system can communicate with each other over a network. For example, a control device can join the network by initiating a joining process. During the joining process, the control device can send and receive join messages, and the join messages can be used to exchange credentials with a network commissioning device. After the credentials are exchanged, the control device can be provided with a network key that can enable the control device to communicate over the network. The control devices can then each attempt to attach to another device (e.g., a router device) that joined the network, forming a mesh network. For example, a control device can attempt to attach to another device that joined the network by initiating an attachment process with the other device. As described herein, the control device can send and / or receive attachment messages to other devices on the network during the attachment process. And, based on the type of attachment messages transmitted during the attachment process, the control device can establish a network link (e.g., a parent-child link, a secondary parent link, a router-to-router link, or other one-hop communication link on the network) with a router device on the network. For example, a control device can transmit attachment messages (e.g., parent request messages and / or parent response messages) configured to establish a parent-child link during the attachment process to establish a parent-child link with a router device, such that the control device can become a child device of the router device and the router device can become a parent device of the control device. Similarly, a control device can transmit attachment messages (e.g., link request messages and / or link response messages) configured to establish a secondary parent link during the attachment process to establish a secondary parent link with a router device. After establishing a parent-child link, the control device can transmit and receive messages over the network through the other device. As described herein, the router device to which a respective control device is attached can also be referred to as a parent device of the control device.
[0044] A control device can also attach to and establish a network link with another device (e.g., a router device) that joined the network. For example, a control device can initiate an attachment process to attach to another router device (e.g., a router device that is not a parent device of the control device). As a result of the attachment process, the control device can establish a secondary parent link with the other router device, such that the other device becomes a secondary parent of the control device. And during the attachment process, for example, the control device can send and receive a plurality of attachment messages configured to establish a secondary parent link, such as a link request message or a link response message, to / from the other router device. The control devices can receive and process messages from the secondary parent devices to which they are attached (e.g., in addition to the parent devices to which they are attached), which can increase the reliability of network information received in the network. As described herein, the process by which a control device joins a network (e.g., through a joining process) and / or attaches to another device that has already joined a network (e.g., through an attachment process) can be referred to as network formation.
[0045] During network formation, multiple control devices can join the network and attach to other devices that have already joined the network (e.g., through an attachment process with another device) as described herein. However, the multiple control devices can each initiate their respective attachment processes, which include sending and receiving attachment messages over the network at the same time or substantially the same time. Thus, the multiple control devices can transmit attachment messages over the network at the same time or substantially the same time. When multiple devices send messages over the network at the same time or substantially the same time, the messages can collide with each other and / or cause the messages to fail to be received. Additionally, the collision of messages during network formation can delay completion of network formation, which can also delay installation and / or operation of the load control system.
[0046] As the size of the network installation increases (e.g., the number of devices attached to the network), the number of collisions that occur during network formation can increase. Additionally, after a device continually fails to attach to the network (e.g., due to message collisions and / or lack of connectivity with the network that has formed), the device can attempt to form another network (e.g., a network partition). Network partitions can communicate with each other in parallel, but can not communicate with each other (e.g., at least for a period of time and / or until the network partitions are combined into a single network partition). For example, a device attached to a first network partition can not be able to communicate with a device attached to a second network partition. As network links are established between devices in one location, each network can grow, and one or more devices in one network can join the other network. When devices that leave a network reconfigure or discover their role in the network, the devices can cause excessive processing delays for devices that remain on the network.
[0047] Figure 2A is an illustration of an example network 200 that can allow for communication between control devices in a load control system (e.g., load control system 100). Network 200 can include any suitable network that facilitates communication in a load control system. For example, network 200 can be a mesh network over which control devices communicate using a mesh network wireless communication protocol (e.g., a THREAD protocol or other suitable protocol). Various control devices of load control system 100 can communicate with each other over network 200. As shown, network 200 can include a single network partition. Additionally, network 200 can be an instance of a network partition (e.g., a subnetwork or subnet) within a larger network. For example, network 200 can be an instance of a network partition within a larger network that is made up of multiple network partitions. Network 200 is an example network and the techniques described herein can be applied to other networks that include more control devices or fewer control devices than network 200, for example. Figure 2A
[0048] Figure 2A The circled nodes of the network 200 can represent devices (e.g., various control devices of the load control system 100) attached to other devices on the network 200. A control device attached to at least one other control device on the network 200 can communicate with other control devices (e.g., a control device attached to another control device on the network 200). Communication within the network 200 can be facilitated by network links (e.g., attachments) established within the network 200. Referring to Figure 2A , network links between devices can be indicated by lines (e.g., solid and dashed lines) connecting the respective control devices.
[0049] A control device attached to at least one other device on the network 200 can assume and / or be assigned a respective role in the network. For example, roles can include: a leader device (e.g., the leader device 210), a router device (e.g., the router devices 220a-220d), a terminal device (e.g., the terminal devices 230a and 230b), a router-eligible end device (REED) (e.g., the router-eligible end device 240), a parent device, a child device, and / or a hibernating end device (e.g., the hibernating end device 250). The role of a control device can indicate the functionality and / or capabilities of the control device with respect to the network 200. As described herein, a terminal device can include and / or can be used for a device terminal device (e.g., the terminal devices 230a and 230b), a router-eligible end device (e.g., the router-eligible end device 240), and / or a hibernating end device (e.g., the hibernating end device 250).
[0050] As shown in Figure 2A , the network 200 can include a leader device 210 and one or more router devices 220a-220d. The leader device 210 can manage other control devices on the network 200. For example, the leader device 210 can assign and maintain a router identifier (e.g., a router ID) for each of the router devices 220. For example, a unique router identifier can be assigned to each of the router devices 220a-220d. The leader device 210 can assign and maintain roles for other devices. The leader device 210 can be configured as a gateway for the network 200. For example, the leader device can be a control device that facilitates communication (e.g., routing and receiving messages to and from) between the network 200 and other networks or network partitions. Referring to Figure 1 , a system controller (e.g., the system controller 110 shown in Figure 1 ) can be an instance of the leader device 210. Additionally, a control device within a load control system that is capable of being assigned the role of a router device can be assigned the role of a leader device.
[0051] Leader device 210 can 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 network 200). Leader device 210 can operate as a router device. Router devices 220a-220d on network 200 (e.g., leader device 210 attached to network 200) can communicate with each other, for example, to form a mesh network. Router devices 220a-220d can communicate with each other via network links (e.g., as indicated by solid lines connecting router devices 220a-220d). Router devices 220a-220d can communicate with leader device 210 directly or through one or more other router devices (e.g., as indicated by solid lines connecting leader device 210 to router devices 220a and 220c). Router devices 220a-220d can receive messages and route them to other devices on network 200 (e.g., terminal devices 230a, 230b, router-compliant terminal device 240, and / or hibernating terminal device 250). For example, router devices 220a-220d can receive and / or transmit messages between or among themselves for conveying messages received from an attached device to another device attached to another router device. Referring now to load control system 100, externally powered devices (e.g., non-battery powered devices) can be assigned the role of router devices such as system controller 110, dimmer switch 120, LED driver 130, plug-in load control device 140, power window cover 150, and / or thermostat 160.
[0052] Network 200 may include one or more terminal devices 230a, 230b (e.g., complete or minimal terminal devices). Terminal devices 230a, 230b may be attached to another device on network 200 (e.g., a parent device, such as leader device 210 and / or router devices 220a, 220b, 220c, 220d) and may transmit and / or receive messages through their attached parent devices (e.g., leader devices and / or router devices). Although in Figure 2A Two terminal devices 230a and 210b are shown, each attached to a different router device, but each router device 220a-220d can support multiple terminal devices (e.g., more than 500 terminal devices). System controller 110, input devices (e.g., remote control device 170) and / or load control devices (e.g., dimmer switch 120, LED driver 130, plug-in load control device 140, power window cover 150 and / or thermostat 160) can be examples of terminal devices 230a and 230b.
[0053] Refer again Figure 2A, the network 200 can include a router-eligible terminal device 240. The router-eligible terminal device 240 can be a terminal device that is capable (e.g., has the hardware and / or software capability) to become a leader device and / or a router device. In certain situations, the role of the router-eligible terminal device 240 can be updated to be a leader device and / or a router device. For example, the router-eligible terminal device 240 can upgrade itself to the role of a router device when the router-eligible terminal device 240 identifies itself to be within the range of terminal devices that are attempting to attach to the network 200. The router-eligible terminal device 240 can transmit and / or receive messages through the attached router device 220d. As shown in Figure 2A , the router-eligible terminal device 240 can be one of the terminal devices attached to the router device 220d. The system controller 110, the dimmer switch 120, the LED driver 130, the plug-in load control device 140, the motorized window treatment 150, and / or the thermostat 160 can be examples of the router-eligible terminal device 240. Referring now to the load control system 100, for example, externally-powered control devices (e.g., non-battery powered control devices) can be assigned the role of a router-eligible terminal device, such as the system controller 110, the dimmer switch 120, the LED driver 130, the plug-in load control device 140, the motorized window treatment 150, and / or the thermostat 160.
[0054] The network 200 can include a hibernating terminal device 250. The hibernating terminal device 250 can include or can be similar to a terminal device. For example, the hibernating terminal device 250 can be a terminal device that is powered by a limited power source (e.g., a battery). The hibernating terminal device 250 can be aware of its role as a hibernating terminal device based on, for example, instructions stored at the hibernating terminal device 250. Communications with the hibernating terminal device 250 can be performed such that the limited power source is conserved and / or efficiently consumed. For example, the hibernating terminal device 250 can periodically disable their respective communication circuitry between message transmissions. The hibernating terminal device 250 can transmit and / or receive messages through the attached router device 220a. As shown in Figure 2A , the hibernating terminal device 250 can be one of the terminal devices attached to the router device 220a. An input device (e.g., the remote control 170) and / or a load control device (e.g., a motorized window treatment 150 when battery powered) can be examples of the hibernating terminal device 250. Additionally, a sensor and / or a battery-powered device can be examples of the hibernating terminal device 250.
[0055] The leader device 210 can update the roles of devices communicating within the network 200 (e.g., or confirm role updates) based on changes to the network 200, for example. In an example, when a control device attaches to the network 200, the device can be assigned a particular role, and the leader device 210 can update the role of the device based on changes in network conditions. Changes in network conditions can include: an increase in message traffic, attachment of other devices, changes in signal strength, etc. The update to the assigned role of the control device can be based on the capabilities of the device. For example, the leader device 210 can update the role of the control device from a router-eligible end device to a router device (e.g., because a router-eligible end device is an end device that is eligible to perform the role of a router device). The leader device 210 can update the role of the control device to a router device by assigning a router identifier (ID) to the device.
[0056] As the leader device 210 updates the roles of devices in the network 200, the leader device can maintain the number of router devices in the network 200 and / or the number of router identifiers used in the network 200. For example, the leader device 210 can store and / or maintain a bitmap 217 that can be used to indicate the number of router devices and / or router identifiers in use in the network 200. The bitmap 217 can include a plurality of bits that each correspond to a different router identifier in use in the network 200. In an example, the leader device 210 can support 64 router devices, and the leader device 210 can store a 64-bit bitmap for tracking router identifiers used in the network 200. Each bit in the bitmap can indicate whether a router identifier is identified by the leader device 210 as being in use (e.g., a value of “1”) or not in use (e.g., a value of “0”). The leader device 210 can determine that a device should be upgraded to a router device, and assign a router identifier to the router device as long as a router identifier is available. The leader device 210 can downgrade a router device (e.g., to an end device) or remove a router device from the network 200. As router devices are added or removed, the bitmap 217 can be updated to indicate the number of router devices and / or router identifiers in use in the network 200.
[0057] The leader device 210 can transmit the bitmap 217 to other router devices in the network 200. Each router device, including the leader device 210, can maintain network information about each of the router devices identified as being in use in the network 200. For example, each router device can maintain network information about each of the router devices in a router table, such as the router table 219. For example, the network information in the router table 219 can identify the router devices in the network 200 and the quality of communication of the corresponding router device with other router devices maintained in the router table stored locally thereon. Each router table, such as the router table 219, can include a row for each router identifier indicated in the bitmap 217. Each router device in the network, including the leader device 210, can perform communication over the network 200 based on the network information stored and maintained in the router table stored locally thereon. For example, router devices, such as the router devices 220a-220d and / or the leader device 210, can transmit messages differently within the network 200 based on the quality of communication with the corresponding router devices identified in the router table stored locally thereon.
[0058] Control devices attached to the network 200 can also operate as parent devices and / or child devices. Leader devices (e.g., leader device 210) and router devices (e.g., router devices 220a-220d) attached to one or more end devices (e.g., end devices 230a, 230b, router-eligible end device 240, and / or hibernating end device 250) can operate as parent devices. End devices (e.g., end devices 230a, 230b, router-eligible end device 240, and / or hibernating end device 250) attached to a leader device (e.g., leader device 210) or a router device (e.g., one of router devices 220a-220d) can operate as child devices. As parent devices, leader device 210 and router devices 220a-220d can each be attached to one or more child devices (e.g., one or more of end devices 230a, 230b, router-eligible end device 240, and / or hibernating end device 250, as described herein). Additionally, leader device 210 and router devices 220a-220d can store and / or relay messages sent by their respective attached child devices. For example, leader device 210 and router devices 220 can receive messages from their respective child devices and route the received messages to intended recipient devices (e.g., directly to intended recipient devices by their respective parent devices, and / or to router devices or leader devices that are located on a path to the intended recipient). Similarly, leader device 210 and router devices 220a-220d can receive messages intended for their respective child devices and route the messages to the appropriate child devices. When a hibernating end device’s communication circuitry is enabled, the hibernating end device’s parent can schedule communications with the hibernating end device.
[0059] As Figure 2AAs indicated, the relationship (e.g., attachment) between a child device and a respective parent device can be indicated by a dashed line. For example, router device 220a can be configured as a parent device to terminal device 230a and hibernating terminal device 250. Similarly, router device 220b can be configured as a parent device to terminal device 230b. Router device 220a can receive a message intended for terminal device 230a and forward the message to terminal device 230a. Since router device 220a is configured as a parent device to terminal device 230a, terminal device 230a can transmit a message to router device 220a, and router device 220a can route the message to the intended recipient. For example, when terminal device 230a intends to transmit a message to terminal device 230b, terminal device 230a can initially transmit the message to router device 220a. Router device 220a can route the message to router device 220b (e.g., the parent device of terminal device 230b). For example, router device 220a can route the message to router device 220b through router device 220c or router device 220d, and router device 220b can then forward the message to terminal device 230b. Additionally, as described herein and shown in FIG. 2, router device 220a can route the message to terminal device 230b through router device 220c (e.g., the secondary parent device of terminal device 230b). Figure 2A
[0060] A child device can be configured to transmit a unicast message to its respective parent device. A control device can transmit a unicast message to another control device in the network directly or via a hop through another device in the network. Each unicast message can be individually addressed to another control device by including a unique identifier of the control device to which the unicast message is transmitted. A control device can generate a separate unicast message for each control device with which it is to communicate and address the unicast message independently to each control device. The unicast message can also include a 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.
[0061] A multicast message and / or a broadcast message can be used to send messages in the network. A multicast message can be sent to a group of control devices in the network. A multicast message can include a group identifier. A control device that is a member of the group can recognize the group identifier and process the message accordingly. A broadcast message can be sent to every control device in the network that is capable of receiving the message. A broadcast message can include an indication that the message is a broadcast message (e.g., a broadcast address). Every device that receives a broadcast message can process the message accordingly. The network can use multicast messages or broadcast messages, and the two terms can be used herein without pedagogical distinction.
[0062] Messages transmitted by child devices to their respective parent devices can include an indication of the intended recipient (e.g., a unique identifier), and the parent devices can route the messages accordingly. Referring again to Figure 2A , the end device 230a can transmit a message to the router device 220a (e.g., a parent device of the end device 230a), and the router device 220a can route the message based on the intended recipient. For example, if the end device 230a transmits a message intended for the end device 230b, the router device 220a can route the message to the router device 220b (e.g., a parent device of the end device 230b that meets the router condition) through the router device 220c or the router device 220d. For example, if the router device 220a routes the message through the router device 220d, the router device 220d can forward the message to the router device 220b, which can forward the message to the end device 230b. The router device 220a can identify, through a lookup table, that the router device 220b is the parent device to which the end device 230b is attached. As shown in Figure 2A , there can be multiple paths to route a message through the network 200, and the router devices can identify the shortest path (e.g., the lowest number of hops) to transmit a message to a respective device.
[0063] A child device can 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 end device 230b can be configured to communicate with a parent device (e.g., a primary parent device), such as the router device 220b (e.g., transmit messages to and receive messages from the parent device). The end device 230b can also be configured to communicate with a secondary parent device, such as the router device 220c (e.g., receive messages from the secondary parent device), as shown by the long and short solid lines in Figure 2A . A child device can receive unicast messages from its parent device (e.g., a primary parent device). The child device can also receive multicast messages (e.g., and / or broadcast messages) from its parent device (e.g., a primary parent device) and one or more secondary parent devices, which can improve the efficiency and reliability of the child device receiving messages. For example, a child device can receive a network advertisement message through a secondary parent device. The number of secondary parents with which a child device is synchronized can be limited to a threshold number of secondary parents (e.g., 3, 5, 10, etc.).
[0064] A child device can attach to a single parent device and synchronize with one or more secondary parents. For example, a child device can send and / or receive unicast messages through a parent device. Similarly, a child device can receive multicast messages through one or more synchronized secondary parents. The number of secondary parents that a respective child device synchronizes with can be limited to a threshold number of synchronized secondary parents, which can be predefined and / or configured. A child device can attempt to synchronize with a secondary parent by transmitting a message (referred to herein as a link request message) to the secondary parent. For example, referring to Figure 2A The terminal device 230b can 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 communicated between devices that share 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 accept message) to the terminal device 230b. The link accept request message can include information that allows the respective child device to decrypt messages from the secondary parent (e.g., a frame counter). As described herein, when a child device is synchronized with a secondary parent, the child device can receive multicast messages through the synchronized secondary parent. For example, referring to Figure 2A The terminal device 230b can receive multicast messages through the parent device (e.g., the router device 220b) and the secondary parent (e.g., the router device 220c), which can improve the efficiency and reliability of the child device 230b receiving multicast messages.
[0065] A child device can receive an advertisement message from a router device other than the parent device of the child device or a router device other than the secondary parent of the child device. For example, a router device can transmit an advertisement message to enable other control devices to determine that a network has been formed and that devices that hear the advertisement message can attempt to attach to the router device (e.g., to communicate through the network). A device can receive and track advertisement messages transmitted by router devices to determine whether the device can communicate through the network. Also, or alternatively, an advertisement message transmitted by a respective router can provide other router devices with the ability to measure a communication quality metric of a communication signal (e.g., RSSI) between respective routers attached to the network (e.g., the router devices can use to update their respective router table or routing information). As described herein, a child device can measure a received signal strength indicator (RSSI) of a received advertisement message.
[0066] Certain messages can be propagated and broadcast by multiple devices in the network 200, which can increase the likelihood that a respective child device hears the message. For example, substantially similar multicast messages (e.g., messages that include the same load control instructions sent to multiple load control devices) can be broadcast instead of multiple transmissions being sent. Referring again to the load control system 100, actuation of a button of the remote control device 170 can adjust the intensity of multiple lighting loads (e.g., the lighting load 122 and the plug-in lighting load 142) and a message can be broadcast to adjust the respective lighting loads. Additionally, devices that receive the broadcast transmission can be configured to process and repeat (e.g., forward the message through the network or otherwise act as a forwarder) the message in response to receiving the broadcast transmission.
[0067] A child device can create and maintain a secondary parent table. The secondary parent table can include a list of secondary parents with which the respective child device is configured to communicate (e.g., synchronize with and / or be able to receive multicast messages from). Additionally, the secondary parent table can include an indication of a received signal strength (e.g., RSSI) of each of the secondary parent devices of the child device. For example, the secondary parent table can include a rolling average of the received signal strength indicator of each of the secondary parent devices of the child device. The child device can similarly create and / or maintain a router table. The router table can include router devices from which the respective child device has received messages (e.g., advertisement messages). Additionally, the router table can include an indication of the RSSI of the messages received from each of the router devices in the router table. Also, or alternatively, the child device can maintain a general router table. The router table can include each of the routers from which the respective child device has received messages and a received signal strength indicator of each of the respective router devices. The router table can also include an indication of whether the respective router device is a parent of the child device or a secondary parent of the child device. As used herein, the term secondary 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 synchronizing secondary parents of the child device.
[0068] As described herein, the network 200 can allow for communication between devices in a load control system (e.g., the load control system 100 shown). The end 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, the end device 230a can communicate with another end device and / or a router device in the load control system through RF communication. Figure 1
[0069] Referring to Figure 1 , the remote control device 170 can operate as an end device or a sleeping end device for communicating messages including user-entered indications and / or control instructions for controlling another end device (e.g., the dimmer switch 120, the LED driver 130, the plug-in load control device 140, the motorized window treatments 150, and / or the thermostat 160). For example, the remote control device 170 can communicate through one or more intermediary parent devices such as leader devices and / or router devices. The leader devices and / or router devices can communicate with one or more other leader devices and / or router devices on the network to route messages to other end devices (e.g., the dimmer switch 120, the LED driver 130, the plug-in load control device 140, the motorized window treatments 150, and / or the thermostat 160) for performing load control.
[0070] A control device can attach to another control device on a network or network partition (e.g., Figure 2A the network 200 shown) to enable the device to communicate (e.g., transmit and / or receive messages) over the network. A control device can initiate attachment to another control device on a 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 a 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 devices attached to the network that can serve as a parent device for the control device.
[0071] Figure 2B is an example illustration of a network 200a having multiple network partitions 201, 202, 203 (e.g., separate network partitions). As Figure 2B shown, the network partition 201 can include the following parent devices: a leader device 211 and router devices 221a, 221b, 221c, 221d. In addition, the network 201 can include child devices such as: end devices 231a, 231b; end devices 241 that qualify as router devices; and a sleeping end device 251. For example, each of the router devices 221a-221d in the network partition 201 can be assigned a unique router identifier. The network partition 202 can include the following parent devices: a leader device 212 and router devices 222a, 222b, 222c, 222d. In addition, the network 202 can include child devices such as: end devices 232a, 232b; end devices 242 that qualify as router devices; and a sleeping end device 252. For example, each of the router devices 222a-222d in the network partition 202 can be assigned a unique router identifier. The network partition 203 can include a single parent device (leader device 213) and a single end device (end device 223).
[0072] As shown in Figure 2B , network partition 203 can include leader device 213 and end device 223. However, network partition 203 can not include a router device. Rather, leader device 213 can act as the only router device within network partition 203. A leader device that is not connected or synchronized with a router device can be referred to as a one-piece device. For example, leader device 213 can be a one-piece device. As shown in Figure 2B , a one-piece device can be connected to one or more child devices (e.g., end device 223). Network partition 203 can be a one-piece partition. As shown in Figure 2B , a one-piece partition can include a leader device (e.g., leader device 213). Additionally, a one-piece partition can include one or more end devices (e.g., end device 223). However, as shown in Figure 2B , a one-piece partition can not include a router device.
[0073] Network 200a can allow for communication between control devices in a load control system (e.g., load control system 100). Additionally, network partitions 201, 202, 203 can form as a result of certain control devices being unable to attach to a network partition that has already formed. For example, as described herein, a control device can 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 of the communication range of a router device of the network partition that has already formed), the control device can attempt to form its own network partition (e.g., become a leader device of a new network partition).
[0074] A control device that is unable to attach to a network partition can form another network partition. For example, with reference to Figure 2B , leader device 213 can have been unable to attach to a router device on network partitions 201, 202 (e.g., because leader device 213 is outside of the communication range of a router device of network partitions 201, 202). Accordingly, leader device 213 can form network partition 203 and end device 223 can attach to network partition 203. Similarly, leader device 212 can have been unable to attach to network partitions 201, 203 (e.g., because leader device 212 is outside of the communication range of a router device of network partitions 201, 203) and form network partition 202.
[0075] A network partition can be associated with a partition identifier (e.g., a partition ID). The partition identifier can be randomly or pseudo-randomly assigned (e.g., randomly assigned from a range or list of identifiers). For example, the priority of a respective network partition can be based on the partition identifier of the network partition. The partition identifier can be assigned by randomly selecting a number from a range of partition identifier values. The partition identifier can be selected at a leader device and transmitted in an advertisement message to other devices that can attach to the leader device. Referring now to Figure 2B , network partitions 201, 202, 203 can each be associated with a respective partition identifier. For example, network partition 202 can be assigned partition identifier 1, network partition 203 can be assigned partition identifier 2, and network partition 201 can be assigned partition identifier 3. Although the partition identifiers of network partitions 201, 202, 203 are sequential (e.g., to provide a simplified explanation), the assignment of partition identifiers to network partitions can be sequential, non-sequential, and / or random. As described herein, the partition identifier can also be an indication of the priority of the respective network partition 201, 202, 203. For example, the partition identifier can also be a priority value of the respective network partition 201, 202, 203 (e.g., the respective priority of network partitions 201, 202, 203 can be 3, 1, and 2). A higher or lower partition identifier can indicate a higher priority value of the network partition priority (e.g., network partition 201 can be a higher priority network partition than network partitions 202, 203 based on the partition identifier).
[0076] A priority can be assigned to a respective network partition based on the control devices (e.g., router devices and / or end device) in the network partition. For example, a network partition that has at least one router device in addition to a leader device can be given a higher priority than a network partition that has only a leader device without other router devices. Referring to Figure 2B , network partition 201 can be given a higher priority than network partition 203 because network partition 201 has router devices 221a-221d and network partition 203 has no router devices in addition to a leader device. Additionally, a priority can be assigned to a respective network partition based on the number of control devices (e.g., router devices and / or end devices) in the network partition. Referring to Figure 2B , network partition 201 can be given a higher priority than network partition 203 because network partition 201 can have a greater number of control devices in the network partition. Each control device in a network partition can locally store the number of control devices in the network partition on it. As described herein, different partition identifiers can be used to give different priorities to network partitions with the same number of control devices. For example, as Figure 2BAs shown, network partition 201 and network partition 202 can have the same number of control devices (e.g., router devices and / or endpoint devices). Network partition 201 can have a higher priority based on network partition 201 having a higher or lower partition identifier.
[0077] As control devices attach to each of network partitions 201, 202, 203, the effective communication range of each of the network partitions can increase. Additionally, control devices that were initially unable to attach to one or more of network partitions 201, 202, 203 (e.g., because the control devices were previously outside the communication range of all of the network partitions) can subsequently be able to attach to one of network partitions 201, 202, 203. Moreover, communication within a load control system can be better facilitated when a single network partition is formed (e.g., network 200 has a single network partition, as shown Figure 2B Figure 2A As shown) than when multiple network partitions are formed (e.g., network 200a has multiple network partitions 201, 202, 203, as shown). For example, communication within a load control system can be better facilitated when a single network partition is formed because devices in the network partition can not be able to transmit messages to control devices attached to another network partition (e.g., devices in the network partition can not be able to communicate with other devices outside the 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 can attempt to detach from the first network partition and attach to the second network partition. For example, the control device can detach from the first network partition and attach to the second network partition when the priority of the second network partition is higher than the priority of the first network partition.
[0078] The router devices attached to each of network partitions 201, 202 can each be associated with a communication range. The communication range of each of the respective router devices can be predefined and / or preconfigured. For example, the communication range of each of the respective router devices can be predefined and / or preconfigured based on the hardware components of each of the respective router devices. The effective communication range of a respective network or network partition can be based on the communication ranges of the router devices attached to the respective network (e.g., the sum of the communication ranges of each of the router devices attached to the respective network). Thus, the communication range of a respective network or network partition can increase as the number of router devices attached to the respective network increases.
[0079] As described herein, a control device attached to a lower priority network partition can attempt to attach to a higher priority network partition. For example, a control device attached to network partition 202 can 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 can receive an advertisement message from a device attached to network partition 201 (e.g., from router device 221d). The advertisement message can include an indication of the partition identifier of network 201 (e.g., 3) can be greater than the partition identifier of network partition 202 and can indicate that network partition 201 is a higher priority network partition than network 202. Router device 222a can determine to attach to network partition 201 (e.g., because network partition 201 has a higher priority).
[0080] Router device 222a can attempt to attach to network partition 201 by transmitting a request to a leader device of network partition 201 (e.g., leader device 211). The request can include, for example, a request to attach to network partition 201 as a router device by requesting to attach to network partition 201 and being assigned a certain router identifier. For example, router device 222a can 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, leader device 211 can deny the request if another router device 212a-212d attached to network partition 201 has already been assigned the requested router identifier. Leader device 211 can accept the request if none of router devices 212a-212d attached to network partition 201 have been assigned the requested router identifier. If router device 222a attaches to network partition 201 and is assigned the requested router identifier, the child devices of router device 222a (e.g., end device 232a and hibernating end device 252) can automatically attach to network partition 201. For example, the child devices use the router identifier to communicate with router device 222a. If leader device 211 of network partition 201 assigns router device 222a the requested identifier (e.g., as the router identifier assigned in network partition 202), the child devices can continue to use the same router identifier to communicate with router device 222a.
[0081] Figure 2C and Figure 2D is a diagram of an example network 200b as network 200b progresses or advances in network formation. As described herein, network 200b can be formed by a plurality of devices (e.g., router devices 221a-221d, end devices 232a-232d, and hibernating end devices 252a-252d) that are initially attached to a network partition (e.g., network partition 202). The devices can attempt to attach to a higher priority network partition (e.g., network partition 201) as network 200b progresses or advances in network formation. For example, router device 222a can attempt to attach to network partition 201 (e.g., because network partition 201 has a higher priority value than network partition 202). Router device 222a can receive an advertisement message from a device attached to network partition 201 (e.g., from router device 221d). The advertisement message can include an indication of the partition identifier of network 201 (e.g., 3) can be greater than the partition identifier of network partition 202 and can indicate that network partition 201 is a higher priority network partition than network 202. Router device 222a can determine to attach to network partition 201 (e.g., because network partition 201 has a higher priority). Figure 2CAs shown, the network 200b can include a leader device 214 and a terminal device 234a. Since the network 200" is in an initial stage of network formation, the network 200b can not yet include router devices. Thus, the terminal device 234a can be attached to the leader device 214 (e.g., when no other router devices yet exist on the network 200b). However, the network link (e.g., parent / child link) between the leader device 214 and the terminal device 234a can be weak (e.g., the received signal strength indicator of messages received by the terminal device 234a can be approximately -60 dB). For example, the network link between the leader device 214 and the terminal device 234a can 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 likelihood of message transmission and / or reception failure between the leader device 214 and the terminal device 234a can increase.
[0082] Figure 2D As shown, the network 200b can include a leader device 214 and a terminal device 234a. Since the network 200" is in an initial stage of network formation, the network 200b can not yet include router devices. Thus, the terminal device 234a can be attached to the leader device 214 (e.g., when no other router devices yet exist on the network 200b). However, the network link (e.g., parent / child link) between the leader device 214 and the terminal device 234a can be weak (e.g., the received signal strength indicator of messages received by the terminal device 234a can be approximately -60 dB). For example, the network link between the leader device 214 and the terminal device 234a can 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 likelihood of message transmission and / or reception failure between the leader device 214 and the terminal device 234a can increase. Figure 2C As shown, the network 200b can include a leader device 214 and a terminal device 234a. Since the network 200" is in an initial stage of network formation, the network 200b can not yet include router devices. Thus, the terminal device 234a can be attached to the leader device 214 (e.g., when no other router devices yet exist on the network 200b). However, the network link (e.g., parent / child link) between the leader device 214 and the terminal device 234a can be weak (e.g., the received signal strength indicator of messages received by the terminal device 234a can be approximately -60 dB). For example, the network link between the leader device 214 and the terminal device 234a can 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 likelihood of message transmission and / or reception failure between the leader device 214 and the terminal device 234a can increase. Figure 2D As shown, the network 200b can include a leader device 214 and a terminal device 234a. Since the network 200" is in an initial stage of network formation, the network 200b can not yet include router devices. Thus, the terminal device 234a can be attached to the leader device 214 (e.g., when no other router devices yet exist on the network 200b). However, the network link (e.g., parent / child link) between the leader device 214 and the terminal device 234a can be weak (e.g., the received signal strength indicator of messages received by the terminal device 234a can be approximately -60 dB). For example, the network link between the leader device 214 and the terminal device 234a can 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 likelihood of message transmission and / or reception failure between the leader device 214 and the terminal device 234a can increase. Figure 2D As shown, the network 200b can include a leader device 214 and a terminal device 234a. Since the network 200" is in an initial stage of network formation, the network 200b can not yet include router devices. Thus, the terminal device 234a can be attached to the leader device 214 (e.g., when no other router devices yet exist on the network 200b). However, the network link (e.g., parent / child link) between the leader device 214 and the terminal device 234a can be weak (e.g., the received signal strength indicator of messages received by the terminal device 234a can be approximately -60 dB). For example, the network link between the leader device 214 and the terminal device 234a can 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 likelihood of message transmission and / or reception failure between the leader device 214 and the terminal device 234a can increase.
[0083] As the network formation progresses or advances, additional devices attach to the network. Thus, if the end device 234a determines to detach 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 end device 234a can experience better communication through the network 200b. For example, as described herein, the updated parent device can be located closer to the end device 234a (e.g., such that the updated parent device and the end device 234a can have a stronger network link) than the initial parent device, which can increase the likelihood of message transmission and / or reception success. Thus, as the network formation advances, an end device can determine whether to attach to an updated parent device. Although Figure 2C and Figure 2D described using an example in which the relative positioning of devices can increase or decrease a network link shared between two devices, other conditions can affect a network link shared between two devices (e.g., line of sight, interference, signal blockage, etc.). To that extent, Figure 2C and Figure 2D the scenarios are merely examples showing that a network can change over time and that changes to a network can be considered to attempt to increase communication through the network.
[0084] Figure 2E is an illustration of an example network 200c. As Figure 2E shown, the network 200c can 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) can periodically transmit advertisement messages that can be used to calculate costs and / or quality of communication in the network 200c. For example, the router device 225c can send an advertisement message that is received by the leader device 215, and the leader device 215 can send an advertisement message that is received by the router device 225c. Each router device can measure a received signal strength indicator (RSSI) of the received advertisement message and calculate a link quality (e.g., a link quality in link quality indicator (LQI)) of the received advertisement message.
[0085] Each router device (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) can send an advertisement message as a multicast message. An advertisement message transmitted by a router device can be received by a neighboring router device that shares a single-hop communication link with the router device that transmitted the advertisement message. A single-hop communication link can be able to convey messages (e.g., messages) directly from a router device to another router device through unicast and / or multicast communications. For example, router devices 225a, 225c can be neighboring devices that share a single-hop communication link with leader device 215 because router devices 225a, 225c are able to send messages directly to leader device 215 and / or receive messages directly from leader device 215. A single-hop communication link can be a network link on which a router device can be able to directly receive an advertisement message above a given link quality (e.g., LQI greater than 0).
[0086] After a router device receives a periodic advertisement message from another router device, the router device can calculate a link quality (e.g., LQI) of the network link through which the advertisement message was received. The LQI can be calculated as a predefined number within a range that indicates different link qualities of the network link between the two devices. For example, the LQI can be indicated by values 0, 1, 2, or 3. The different indicators of LQI can be assigned based on the RSSI of the received advertisement message and a link margin relative to a predefined reception level. The reception level can be a predefined minimum reception level. The reception level can be established as a predefined RSSI value of communications on the network. For example, the reception level can be defined by a noise floor set to an average RSSI value of noise generated on the network over a period of time. In the example of using the reception level as a noise floor, when the RSSI value of the one or more advertisement messages (e.g., an average RSSI of the advertisement messages over a period of time) is at least 2 dB link margin higher than the noise floor, the router device (e.g., router device 215 or router device 225c) can calculate a LQI 1 of the communications received on the network link from the neighboring router device. When the RSSI value of the one or more advertisement messages (e.g., an average RSSI of the advertisement messages over a period of time) is at least 10 dB link margin higher than the noise floor, the router device (e.g., router device 215 or router device 225c) can calculate a link quality 2 of the communications received on the network link with the neighboring router device. When the RSSI value of the one or more advertisement messages (e.g., an average RSSI value of the advertisement messages over a period of time) is at least 20 dB link margin higher than the noise floor, the router device (e.g., router device 215 or router device 225c) can calculate a link quality 3 of the communications received on the network link with the neighboring router device. When the RSSI value of the one or more advertisement messages (e.g., an average RSSI value of the advertisement messages over a period of time) cannot be determined to be higher than the noise floor, a link quality value of zero can indicate that the link quality is unknown or infinite. Although an example of a predefined number indicating different link quality levels and / or different link margins that can be assigned to those levels is provided, other indicators and / or values can be used to define the link quality between two router devices. Additionally, although a separate router device can be provided as an example (e.g., leader device 215 or router device 225c), other router devices can similarly calculate the link quality of the network link between neighboring router devices.
[0087] 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 through an advertisement message to other devices. 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 a link quality output (LQO) of the network link. The LQI and / or LQO can be stored in a local router table at each router device. For example, the leader device 215 can store the LQI and / or LQO of the network link with each router device in the network 200c in the router table 229. Similarly, the router device 225c can store the LQI and LQO for communication with each router device in the network 200c in the router table 261.
[0088] As described herein, from the perspective of the device storing the router table 229, 261, the router table 229, 261 can each identify network information for communication with each router in the network 200c. As described herein, the number of router devices in the network 200c and / or the router identifiers used in the network 200c can be determined from the bitmap 227. The bitmap 227 can be maintained by the leader device 215 and distributed to other router devices for local maintenance of their router tables. For example, the router devices 225a, 225c can receive the bitmap 227 and update their local router tables. The bitmap 227 can indicate the number of rows in the router table (e.g., indicating the number of router devices identified in the network) and / or the router identifiers to include in the router table. The router devices 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 links 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 the table 261 indicated in the bitmap 277, or remove the router devices in the table 261 indicated in the bitmap 277 as failing to be used in the network.
[0089] The leader 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 a link cost for communicating with other router devices over a network link. The link quality of a network link between two router devices can be the lesser of the link quality value (e.g., LQO) of a message transmitted out and the link quality value (e.g., LQI) of a message received over a single hop communication link between the two devices. An LQO or LQI of zero can indicate that a router device failed to establish a direct network link with a router device listed in the router table. The link cost for sending a communication between devices over a network link can directly correspond to the link quality of the communication over the network link. The link cost can indicate a relative cost or loss of a communication over a network link. Figure 2F is an example table 262 illustrating example link costs that can correspond to different link qualities. As shown, a higher link quality can correspond to a lower link cost for a communication over a network link between two neighboring devices. Figure 2F The router devices can use the link cost of each network link to calculate a path cost for a communication between a router device and another device in the network 200c. The path cost can indicate a relative cost or loss of a communication over an entire communication path that can include one or more router devices. The path cost of one communication path can be compared to the path cost of another communication path to determine a higher quality communication path for sending a digital communication that can have a lower relative cost associated with the transmission of the message. The path cost can indicate a total cost for communicating a message from a starting router device to an ending router device. For example, the path cost can be calculated as a total number of link costs for each hop between a starting router device from which a message can originate and an ending router device at which the message can be received in the network 200c. Each router device can calculate a path cost to a neighboring device over a single hop communication link to equal the link cost and store the path cost in a locally stored router table. For example, the router device 225c can set a path cost for communicating with the leader device 215 to equal the link cost (e.g., the lower of LQI and LQO) over the network link and store the path cost in the router table 261. Similarly, the router device 225c can set a path cost for communicating with the router device 225b to equal the link cost (e.g., the lower of LQI and LQO) over the network link and store the path cost in the router table.
[0090] Each router device (e.g., leader device 215 and router devices 225a, 225b, 225c, 225d, 225e, 225f) can update the path cost for communicating messages to / from each router device in their respective router table based on path cost information received from another router device. For example, since router device 225b can not be able to communicate directly with leader device 215, router device 225b can receive path cost information for communicating messages through another router in network 200c. Router 225c can transmit a path cost for communicating messages to / from 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 a path cost for communicating messages between leader device 215 and router device 225c (e.g., path cost = 2). To calculate the total path cost for communicating messages between router device 225b and 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 link cost of the communication between router device 225b and router device 225c can be determined from the link quality between the network link between router device 225b and router device 225c, which can be the lesser of the LQI and LQO of the network link (e.g., link quality = 3).
[0091] Each router device can send / broadcast an advertisement message including path cost to one or more other router devices in network 200c. Router devices that receive path cost information from a router device that sent an advertisement message can update their respective path cost information in their local router tables (e.g., by adding the path cost in the received message to the link cost used to communicate with the router device that sent the advertisement message). Each router device can use locally stored path cost information to identify paths that can be used to communicate messages. For example, a message transmitted from router device 225b to leader device 215 can be communicated through router device 225a or router device 225c. Router device 225b can receive respective advertisement messages from router device 225a and router device 225c that indicate that the path cost for communicating a message between router device 225a and leader device 215 is the same as the path cost for communicating a message between router device 225c and leader device 215 (e.g., path cost = 2 over each network link). Router device 225b can add the link cost calculated for communicating 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 for communicating with leader device 215 through router device 225c (e.g., total path cost = 3). Router device 225b can similarly add the link cost calculated for communicating a message between router device 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 for communicating with leader device 215 through router device 225a (e.g., total path cost = 4). Router device 225b can update the locally stored router table with the lowest calculated path cost for communicating with leader device 215 and / or an identifier of the router device through which a message is to be transmitted (e.g., router 225c). Each router device can similarly update their respective locally stored router tables with the lowest calculated path cost for communicating with other router devices in network 200c. For example, as shown in FIG. 2B, leader device 215 and router device 225c can each calculate the lowest path cost for communicating to other router devices in network 200c and store the path cost in respective router tables 229, 261. Router tables 229, 261 can also store therein a next hop router identifier from the respective device 215, 225c through which a message is to be communicated to achieve communication to a destination router device at the calculated path cost. Figure 2E
[0092] By periodically updating link quality (e.g., LQI and / or LQO), link cost, and / or path cost, and communicating path cost to other router devices in periodic advertisement messages, each router device can have up-to-date path cost information for communicating messages to other router devices in the network 200c. A router device can use a best communication path (e.g., a lowest cost path) to communicate a message to another device. This routing mechanism can allow a router device to detect when other router devices go offline from the network 200c, or when path cost between routers has changed, and to calculate a next lowest cost path to maintain connectivity with other router devices in the network 200c.
[0093] Link quality information can be used when forming a network (e.g., networks 200, 200a, 200b, 200c). Each control device can be configured to determine one or more link quality thresholds TH LQ1 -TH LQ3 for use in attaching to other control devices (e.g., router devices) on the network. When attempting to attach to another device (e.g., form a relationship with a parent device), a control device operating as an end device can transmit a parent request message and receive responses to the parent request message from one or more router devices. The control device can compare a received signal strength indicator of the received responses (e.g., parent responses) to one or more of the link quality thresholds TH LQ1 -TH LQ3 and can select to attach to one of the router devices when the respective received signal strength indicator exceeds one of the link quality thresholds TH LQ1 -TH LQ3 In addition, the control device can determine a link quality between the control device and each of the router devices that transmitted a response to the parent request message and select to attach to one of the router devices based on the determined link quality.
[0094] A control device can be configured to calculate a link quality threshold TH LQ1 -TH LQ3As described herein, link quality or link quality indicators can be used as communication quality metrics to indicate the quality of communication on a network link. Additionally or alternatively, communication quality metrics may include RSSI values, link margin, and / or signal-to-noise ratio (SNR) values, or values calculated based on these values. A SNR value can be the signal-to-noise ratio itself or a value associated with or indicating the SNR. Link margin and / or SNR values can be calculated based on a noise floor value NF to indicate the relative quality of communication from the noise floor. The noise floor value NF can be calculated as the average value of radio frequency energy (e.g., background RF energy) received by the control device when the control device is not currently receiving a message via an RF signal. Whenever the control device is not currently receiving a message, the control device can determine or measure a background communication quality metric value of the radio frequency energy received by the control device, and use the background communication quality metric value of the radio frequency energy to calculate one or more link quality thresholds. The control device can average the background communication quality metrics received over time to determine the noise floor value NF. For example, the noise floor value NF can be calculated as a 10-second average of background RSSI values acquired at 250-millisecond intervals. The control device can then calculate the link quality threshold TH by adding the corresponding link margin to the noise floor. LQ1 -TH LQ3 ,For example,
[0095] TH LQ1 =NF + 2dB;
[0096] TH LQ2 =NF + 10dB; and
[0097] TH LQ3 =NF + 20dB,
[0098] Each link quality threshold in the link quality thresholds may correspond to a different link quality or link quality indicator as described herein (e.g., such as...). Figure 2F (As shown) and can be used to determine the corresponding link cost. In the example, the link quality threshold TH LQ3 This can correspond to network links with the highest link quality (e.g., link quality equal to three) and / or the lowest link cost (e.g., link cost equal to one). Link quality threshold TH LQ3 It can be used to define primary network links. Link quality threshold TH LQ2 This can correspond to a second-level network link or a network link with relatively lower link quality (e.g., link quality equal to level two) and / or higher link cost (e.g., link cost equal to level two). Link quality threshold TH LQ2 This can be used to define secondary network links. Link quality threshold TH LQ1This can correspond to a Level 3 network link or a network link with the lowest link quality (e.g., link quality equal to 1) and / or the highest link cost (e.g., link cost equal to 3). Link Quality Threshold TH LQ1 It can be used to define primary network links. The control device can set the link quality threshold TH. LQ1 -TH LQ3 The data is stored in memory for use when attempting to attach to another device during a subsequent attach process. During network formation, as long as at least one router device with a link quality of three is available, the control device can attach to another control device that has been assigned the role of a router device in the network. If no router device with a link quality of three is available among the control devices currently assigned as router devices, the control device can seek to upgrade to the role of a router device. Although three link quality thresholds are described herein, another number of link quality thresholds may be implemented to indicate different link quality levels and / or corresponding link costs.
[0099] The control device can also be configured to use a percentile-based link identification process to determine the link quality threshold TH. LQ1 -TH LQ3 When the control device is not currently receiving messages, it can periodically determine (e.g., measure) the background RSSI value of the RF energy received by the control device and set the link quality 3-threshold TH. LQ3 Set to the Nth percentile value in the background RSSI values. This is to set the link quality 3-th threshold TH. LQ3 Set to the Nth percentile of the background RSSI values when the measured background RSSI value exceeds the link quality threshold 3TH. LQ3 At that time, the control device can set the link quality 3-th threshold TH. LQ3 Increase the first amount (e.g., increment x), and ensure that the measured background RSSI value does not exceed the link quality 3-th threshold TH. LQ3 At that time, the link quality threshold TH will be set. LQ3 Reduce the second amount (e.g., decrease the amount y). Link quality 3-threshold TH LQ3 The obtained value can be approximated to the Nth percentile value in the background RSSI value, where N depends on the values of the increment x and the decrement y, for example, N = (x / (x+y))·100. For example, to set the link quality 3 threshold TH... LQ3 Set to the 95th of the background RSSI values 个 Percentile values can be set by setting the increment x to 0.95 dB and the decrement y to 0.05 dB. Other link quality thresholds TH LQ2 and TH LQ1 Based on the determined link quality 3-th threshold TH LQ3 To set, for example,
[0100] TH LQ1 = TH LQ3 - z1; and
[0101] TH LQ2 = TH LQ3 - z2,
[0102] where the offsets z1 and z2 are constants and can be, for example, 30 dB and 10 dB, respectively. When using a percentile-based floor link qualification process, the noise floor value can be 30 dB lower than the link quality 3 threshold TH LQ3 and can be equal to the link quality 1 threshold TH LQ1 . The noise floor value NF can be set to a value lower than the link quality 1 threshold TH LQ1 and can be set based on the determined link quality 3 threshold TH LQ3 , for example,
[0103] NF = TH LQ3 - z3,
[0104] where the offset z3 is a constant that can be equal to the offset z1 or can be set to a larger value such that the noise floor value NF is lower than TH LQ1 .
[0105] Figure 3A and Figure 3B Histograms 300, 310 show the number of measurements (e.g., readings) of different background RSSI values recorded by control devices on a network over a period of time. Figure 3A Histogram 300 in FIG. 3 can show the number of measurements of various background RSSI values recorded by a first control device, which can be located in an environment (e.g., an average noise environment) in which the network is experiencing average wireless communication traffic. As shown, the measurements of background RSSI values by the first control device can range up to RSSI values of approximately -50 dB to -44 dB, which can represent RF energy generated by control devices connected to the network and other wireless transmitters in the vicinity of the first control device. Figure 3A
[0106] Figure 3B Histogram 310 can show the number of measurements of various background RSSI values recorded by a second control device, which may be located in an environment where the network is experiencing high wireless communication traffic (e.g., a high-noise environment). For example, the second control device may be located near noise-generating sources (e.g., sporadic but loud noise sources) such as a wireless access point (WAP) or a microwave oven. Most of the measurements of background RSSI values from the second control device can be in the range of RSSI values up to approximately -54 dB to -44 dB, which can represent the RF energy generated by the control device connected to the network and other typical wireless transmitters near the second control device (e.g., similar to histogram 300 for the first control device). However, as... Figure 3B As shown, the second control device can also record background RSSI values in the range of approximately -31dB to -13dB, which can represent the RF energy generated by the noise source.
[0107] Figure 4A and Figure 4B The values of the link quality threshold for control devices on the network relative to time are shown, where the link quality threshold can be determined using an averaging process. Figure 4A The link quality 3-th threshold of the first control device is shown. LQ3 The curve 400 shows that the first control device can be a terminal device located in an environment where the network is experiencing average wireless communication traffic (e.g., according to...). Figure 3A The first control device in the discussion). Figure 4B The link quality threshold 3TH of the second control device is shown. LQ3 The curve in Figure 410 shows that the second control device can be a terminal device located in an environment where the network is experiencing high wireless communication traffic (e.g., according to...). Figure 3B (The second control device in the discussion). Figure 4A and Figure 4B The link quality 3-th threshold TH shown LQ3 It can be determined based on the noise base value NF (e.g., offset) that can be calculated as the average of the background RSSI values (e.g., the ten-second average of the background RSSI values obtained at 250-millisecond intervals).
[0108] Link quality of the first control device in an average noise environment (3-threshold TH) LQ3 The value can range from approximately -58 dB to -50 dB over time. The link quality of the second control unit in a high-noise environment has a 3-threshold TH threshold. LQ3 The value can be higher than the 3TH threshold of the link quality of the first control device. LQ3of the first control device. The value of the link quality 3 threshold TH LQ3 of the second control device can become more sporadic over time than the value of the link quality 3 threshold TH LQ3 of the first control device. The first control device and the second control device can use respective link quality 3 thresholds TH LQ3 to determine a router device to which to attach. Because the value of the link quality 3 threshold TH LQ3 of the second control device is slightly higher than the value of the link quality 3 threshold TH LQ3 of the first control device, the first control device and the second control device can use similar values of the link quality 3 threshold TH LQ3 when attaching to a parent device in an average noise environment and a high noise environment. Thus, the first control device in the average noise environment can create a relatively strong network link with the parent device, while the second control device in the high noise environment can create a relatively weak network link with the parent device that is susceptible to collisions, message loss, and other communication errors when a noise generating source is transmitting signals.
[0109] Figure 5A and Figure 5B show values of link quality thresholds of control devices on a network with respect to time, where the link quality thresholds can be determined using a percentile base link qualification process. Figure 5A shows a plot 500 of a link quality 3 threshold TH LQ3 of a first control device, which can be an end device located in an environment in which the network is experiencing average wireless communication traffic (e.g., the first control device according to the discussion of Figure 3A . Figure 5B shows a plot 510 of a link quality 3 threshold TH LQ3 of a second control device, which can be an end device located in an environment in which the network is experiencing higher wireless communication traffic (e.g., the second control device according to the discussion of Figure 3B . Figure 5A and Figure 5B the link quality 3 threshold TH LQ3 may be determined based on a percentile base link qualification process. For example, Figure 5A and Figure 5B the link quality 3 threshold TH LQ3 may be equal to the 95 个 percentile value of background RSSI values recorded by the first device and the second device.
[0110] Link quality of the first control device in an average noise environment (3-threshold TH) LQ3 The value can range from approximately -57 dB to -50 dB over time. The link quality of the second control unit in a high-noise environment has a 3-threshold TH threshold. LQ3 The value can be higher than the 3TH threshold of the link quality of the first control device. LQ3 The value, for example, ranges from approximately -23 dB to -14 dB over time. As previously mentioned, the first and second control devices can use the corresponding link quality 3 threshold TH. LQ3 To determine the router device to be attached. For example... Figure 5A The link quality of the first control device in the average noise environment shown has a 3-threshold TH threshold. LQ3 The value is approximately equal to Figure 3A The maximum background RSSI value is shown in histogram 300. Therefore, the first control device in an average noise environment can be configured to create a relatively strong network link with the parent device. Figure 5B The link quality 3-threshold TH of the second control device in the high-noise environment shown LQ3 The value is approximately equal to, Figure 3B the histogram Figure 3B The diagram shows the high end of the background RSSI value range representing the RF energy generated by the noise source. Therefore, a second control device in a higher noise environment can also be configured to create a relatively strong network link with the parent device (e.g., as described in more detail below).
[0111] In an average noise environment, the link quality 3-th threshold TH determined using the averaging process is used. LQ3 The value (for example, such as) Figure 4A (As shown) This can be similar to the link quality 3-th threshold TH determined using a percentile-based link identification process. LQ3 The value (for example, such as) Figure 5A (As shown). However, in high-noise environments (e.g., when the control device is near a noise source), the link quality 3-th threshold TH determined using the percentile-based link identification process... LQ3 The value (for example, such as) Figure 5B (As shown) can be relatively larger than the 3TH threshold for link quality determined using the averaging process. LQ3 The value (for example, such as) Figure 4B (As shown). Therefore, when in a high-noise environment, the control device using the percentile-based link identification process can generate a relatively stronger network link compared to the control device using an averaging process to determine the link quality threshold. For example, using the link quality threshold TH determined by the averaging process... LQ3received signal strength indicator from the parent device has a value less than the link quality 3 threshold TH determined using the percentile base link qualification process LQ3 The resulting network links can be susceptible to communication errors, especially when noise generating sources are transmitting signals.
[0112] However, in a high noise environment, using the link quality 3 threshold TH determined using the percentile base link qualification process LQ3 The control device can be more restrictive in selecting a router device to attach to when using the link quality 3 threshold TH determined using the averaging process than when using the link quality 3 threshold TH determined using the percentile base link qualification process LQ3 The control device can not select to attach to a parent device from which a received signal has a received signal strength indicator less than the link quality 3 threshold TH determined using the percentile base link qualification process LQ3 The control device can request a router eligible end device (REED) from which a signal is received to upgrade to a router device if the signal has a received signal strength indicator greater than the link quality 3 threshold TH LQ3 The network can form with more router devices located in a high noise environment (e.g., near a noise generating source) to ensure that control devices in the high noise environment are able to communicate with control devices in other areas.
[0113] Figure 6 are enlarged views of the plots 600, 610 of link quality thresholds determined by a control device operating as an end device in a high noise environment using the averaging process and the percentile base link qualification process. The first plot 600 can show values of the link quality 3 threshold TH determined using the averaging process (e.g., and can be an enlarged portion of the plot 410 as shown in LQ3 Figure 4B The second plot 610 can show values of the link quality 3 threshold TH determined using the percentile base link qualification process (e.g., and can be an enlarged portion of the plot 510 as shown in LQ3 Figure 5B Figure 6 A plurality of background RSSI values 620 recorded by the control device when determining link quality thresholds using the averaging process or the percentile base link qualification process are also shown (e.g., represented by a plurality of dots). The first plot 600 of the link quality 3 threshold TH determined using the averaging process can be, for example, a ten second average of the background RSSI values 620 taken at 250 millisecond intervals. LQ3
[0114] The link quality 3-threshold TH determined using the percentile-based link identification process. LQ3 The second curve 610 can be, for example, the 95th in the background RSSI value 620. 个 Percentile value. To set the link quality 3-threshold (TH) LQ3 Set to the 95th of the background RSSI values of 620. 个 Percentile value, the control device can detect when a background RSSI value exceeds the link quality threshold 3 TH in a background RSSI value of 620. LQ3 (For example, such as) Figure 6 (As shown at position 612 in the text) When the link quality 3 threshold TH is applied. LQ3 Increase the increment x (e.g., 0.95 dB), and ensure that one of the background RSSI values does not exceed the link quality threshold 3 TH. LQ3 (For example, such as) Figure 6 (As shown at position 614) When the link quality threshold TH is set, LQ3 Reduce the reduction y (e.g., 0.05 dB).
[0115] Figure 7 This is a flowchart of an exemplary configuration process 700 (e.g., a link quality threshold configuration process). Process 700 can be performed by a control device operating as a terminal device (e.g., terminal devices such as terminal devices 230a, 230b, router-qualified terminal device 240, and / or dormant terminal device 250) on a network (e.g., networks 200, 200a, 200b, 200c, and / or network partitions 201, 202, 203). For example, configuration process 700 can be performed at 701 on a continuous and / or periodic basis. Configuration process 700 can begin execution when the control device is first powered on (e.g., before attempting to join the network and / or attach to another device on the network).
[0116] At 702, the control device may periodically store background RSSI values (e.g., readings or measurements of background RF energy) when the control device is not currently receiving a message. At 704, the control device may determine the Nth percentile value in the background RSSI values (e.g., using a percentile-based link identification process). For example, the control device may determine the Nth percentile value (e.g., the 95th percentile) by increasing the Nth percentile value by an increment x (e.g., 0.95 dB) when the measured background RSSI value exceeds the Nth percentile value and decreasing the Nth percentile value by a decrement y (e.g., 0.05 dB) when the measured background RSSI value does not exceed the Nth percentile value. 个 Percentile value). Additionally, at 704, the control device can be configured to use different techniques (e.g., such as a rank order filter) to determine the Nth percentile value in the background RSSI value.
[0117] At 706, the control device can set one or more link quality thresholds based on the determined Nth percentile value in the background RSSI values. For example, the control device can set a link quality 3 threshold TH LQ3 equal to the determined Nth percentile value in the background RSSI values at 706. Additionally, the control device can set a link quality 1 threshold TH LQ1 and a link quality 2 threshold TH LQ2 according to the determined Nth percentile value in the background RSSI values. For example, the link quality 1 threshold TH LQ1 and the link quality 2 threshold TH LQ2 may be set lower than the link quality 3 threshold TH LQ3 by respective offsets zl (e.g., 30 dB) and z2 (e.g., 10 dB). At 708, the control device can use the link quality thresholds TH LQ1 - TH LQ3 to select a router device as a parent device to which the control device can attach (e.g., as will be described in greater detail below with reference to Figure 11 .
[0118] Figure 8 is a flowchart of an example configuration procedure 800 (e.g., a percentile floor link qualification procedure). The procedure 800 can be performed by a control device operating as a terminal device (e.g., a terminal device such as terminal devices 230a, 230b, a terminal device meeting router conditions 240, and / or a hibernating terminal device 250) on a network (e.g., networks 200, 200a, 200b, 200c, and / or network partitions 201, 202, 203). The control device can perform the configuration procedure 800 at 801 in order to determine an Nth percentile value in recorded background RSSI values and / or to determine one or more link quality thresholds TH LQ1 - TH LQ3 for the control device. The configuration procedure 800 can be performed, for example, at 702, 704, and / or 706 of the configuration procedure 700 shown in Figure 7 . For example, the values of the link quality thresholds TH LQ1 - TH LQ3 may be initialized to -100 dB prior to the start of the configuration procedure 800.
[0119] At 802, the control device can determine whether the control device is presently receiving a message. When the control device is presently receiving a message at 802, the configuration procedure 800 can simply exit. When the control device is not presently receiving a message at 802, the control device can determine (e.g., measure) a background RSSI value RSSI BG(e.g., the updated background RSSI value). If the background RSSI value RSSI BG is greater than a value of a link quality 3 threshold TH LQ3 , at 808 the control device can increase the value of the link quality 3 threshold TH LQ3 by an increment x (e.g., as shown in Figure 6 ). If the background RSSI value RSSI BG is not greater than a value of the link quality 3 threshold TH LQ3 , at 810 the control device can decrease the value of the link quality 3 threshold TH LQ3 by a decrement y (e.g., as shown in Figure 6 ). After adjusting the value of the link quality 3 threshold TH LQ3 at 808 or 810, at 812 the control device can set values of a link quality 1 threshold TH LQ3 and a link quality 2 threshold TH LQ1 based on the determined link quality 3 threshold TH LQ2 , e.g.,
[0120] TH LQ1 = TH LQ3 - zl; and
[0121] TH LQ2 = TH LQ3 - z2,
[0122] where the offsets zl and z2 are constants and can be, for example, 30 dB and 10 dB, respectively. At 814, the control device can store the link quality thresholds TH LQ1 - TH LQ3 in memory, after which the configuration process 800 exits. The control device can later use the stored link quality thresholds TH LQ1 - TH LQ3 when selecting a router device as a parent device to which the control device can attach (e.g., as will be described in more detail below with reference to Figure 11 ).
[0123] As described herein, a network can be used to facilitate communication between respective devices of a load control system. To enable respective control devices to communicate over the network, the control devices can be commissioned. Figure 9is a flowchart of an example commissioning process 900. The commissioning process 900 can be performed by a control device (e.g., an end device such as end devices 230a, 230b, a router-eligible end device 240, and / or a hibernating end device 250) attempting to join a network (e.g., networks 200, 200a, 200b, 200c, and / or network partitions 201, 202, 203) and / or attach to another device on the network. For example, when a control device is first powered on and attempts to join a network and / or attach to another device on the network, the control device can enter the commissioning process 900 at 901.
[0124] At 902, the control device can perform a declaration process. The declaration process can be used to discover and declare control devices that are to be added to the network. For example, control devices in a load control system (e.g., the load control system 100 shown) can be declared using a user’s mobile device (e.g., the mobile device 190). Each control device can be declared by the user’s mobile device to join the network and / or attach to other devices on the network. Each control device can transmit a beacon (e.g., a control device beacon) over a short-range wireless communication link (e.g., using BLE technology, near-field communication (NFC) technology, or other short-range wireless technology). The mobile device can discover (e.g., receive) the beacons transmitted by the control devices in the load control system. Each beacon can include a unique beacon identifier of the control device that transmitted the respective beacon. The unique beacon identifier can include a unique device identifier (e.g., a serial number) of the control device itself. Figure 1
[0125] The mobile device can identify one or more control device beacons from which the respective beacons were received at a received signal strength indicator (RSSI) that is above a predefined value. For example, the mobile device can identify one or more beacons of the beacons that transmitted the received beacons with the strongest received signal strength indicator, and the mobile device can transmit a connection message to the one or more control devices. The control device performing the commissioning process 900 can receive the connection message from the mobile device and can be configured to establish a connection (e.g., a bidirectional communication connection) with the mobile device.
[0126] The connection message can indicate to the control device that the control device has been selected for commissioning. The connection message can operate as a commissioning message, or a separate commissioning message can be sent after a connection is established between the mobile device and the control device. The commissioning message can indicate that the control device has been commissioned for addition to the network. In response to receiving the commissioning message, the control device can transmit a commissioning confirmation message to the mobile device. The commissioning confirmation message can include configuration information that can be used to join the control device to the network. For example, the configuration information can include a unique device identifier of the control device (e.g., a serial number) and / or network credentials for joining the network. The network credentials can include a network key of the network, a network address of the control device, and / or a joiner identifier of the control device. The unique device identifier of the control device (e.g., a serial number) can be sent in the commissioning confirmation message when the unique beacon identifier is not the unique device identifier of the control device. The network address and / or the joiner identifier can be used during the join process to allow the control device to join the network.
[0127] During the commissioning process at 902, or otherwise during the commissioning process 900, the mobile device can write information to the control device being commissioned. For example, the mobile device can write the time the control device was commissioned, an identifier of the mobile device, and / or an application and / or channel information executing on the mobile device to assist the control device in entering the network through the join process. The information can be sent in a commissioning message or a separate message over the connection established with the mobile device for storage at the control device. When the mobile device receives a commissioning confirmation message from the control device to which the mobile device is connected, the mobile device can store a unique device identifier of the control device, a network address of the control device, and / or a joiner identifier of the control device in memory.
[0128] The user can continue to move the mobile device around the space in which the load control system is installed to perform the commissioning process with additional control devices. When the user completes commissioning of the control devices (e.g., the mobile device has commissioned all or a portion of the control devices of the load control system), the mobile device can upload configuration information from the commissioned devices to a central computing device, such as a commissioning device (e.g., the system controller 110). The uploaded configuration information can be used to identify the devices to be joined to the network. The central computing device can be a system controller or other device capable of communicating with other control devices in the load control system. The central computing device can be installed at the space being commissioned, or can be a remote computing device. Although the mobile device is described as performing communications with one or more control devices during the commissioning process at 902, other computing devices can perform similar communications with one or more control devices during the commissioning process. For example, another computing device, such as a commissioning device or a system controller, can perform communications with one or more control devices to perform the commissioning process or portions thereof.
[0129] At 904, the control device can perform a join procedure. During the join procedure at 904, the control device can seek to join the network. The control device can periodically switch between declaring during the declaration procedure at 902 and listening for a beacon during the join procedure at 904 for a network to join. The control device can start the join procedure at 904 after being declared.
[0130] During the join procedure, the control device can cease to continuously transmit (e.g., periodically transmit) the control device beacon over the first wireless communication medium (e.g., a short-range wireless communication link) and / or the second wireless communication medium (e.g., the wireless communication network). The control device can listen over the wireless communication network to determine whether a request to join the wireless communication network is being transmitted over the wireless communication network. In the case where the mobile device is attempting to reconnect to the control device while the mobile device is performing the declaration procedure, the control device can continue to periodically transmit the control device beacon over the first wireless communication medium (e.g., at a slower rate than during the declaration procedure).
[0131] During the join procedure, the control device can receive a joiner request message from the central computing device or the commissioning device. The control device can respond with a request to join the network. The central computing device or the commissioning device can challenge the control device with one or more portions of the configuration information obtained during the declaration procedure. For example, the joiner request message or another message from the central computing device or the commissioning device can include a request for one or more portions of the network credentials (e.g., a network key) from the user device. In an example, the central computing device or the commissioning device can identify a network address in the network credentials in the joiner request message and request a joiner identifier from the control device. The control device can respond with the joiner identifier or the network address and the joiner identifier to join the network or network partition. The central computing device or the commissioning device can identify the control device as a declared device from the unique identifier in the message and confirm the accuracy of the network credentials to join the control device to the network. The central computing device can transmit the network key to the control device, which can use the network key to connect to the network.
[0132] At 906, the control device can perform an attachment procedure. After the control device joins the network, the control device can attempt to attach to another device (e.g., a leader device or a router device) on the network to form a mesh network (e.g., a shape of the network) at 906. To attach to another device on the network, the control device can send and receive a plurality of messages over the network. For example, the control device can initiate performance of the procedure 600 (e.g., to start a back-off timer) at 906. The control device can also or instead perform other attachment procedures as described herein.
[0133] Although Figure 9The claim process, join process, and attach process are described, but one or more of these processes can be performed. For example, the claim process and / or join process can be omitted or modified because the control device can have network credentials pre-stored thereon (e.g., at the time of manufacture or written to be stored thereon by another device such as a mobile device). Additionally, the central computing device can transmit network credentials to the control device during the claim process at 902. The network credentials can be used by the control device to directly attach to another device on the network. For example, the network device to which the control device attempts to attach can challenge the control device for network credentials as described herein. As described herein, one or more of the claim process, join process, and / or attach process can be performed after the control device is powered on and turned on. One or more of these processes can also be performed to modify the network or re-attach the control device to the network.
[0134] As described herein, control devices can join a network and / or attach to another device on the network in order to communicate with other control devices on the network. However, if control devices attempt to attach to another device on the network at the same time or substantially the same time as other control devices, the likelihood of message collisions can increase and / or the control devices can fail to attach to another device on the network. To reduce the likelihood of message collisions, control devices can delay their respective attach processes such that the control devices sequentially (e.g., rather than simultaneously, which can increase the likelihood of message collisions and / or increase the likelihood that respective control devices fail to attach to another device on the network) attach to other devices on the network. For example, control devices attempting to attach to other devices on the network can delay their respective attach processes based on a coordinated start time. Additionally, the coordinated start time can be individually set for respective control devices such that the coordinated start time triggers the control devices to sequentially begin their respective attach processes.
[0135] As part of an initial startup process, when a control device is initially powered on and / or initially attempts to attach to another device on a network or network partition (e.g., an initial attach after being initially powered on or after being configured and / or reconfigured), the device can perform a coordinated startup process with other devices on the network or network partition. Because the initial startup process can be performed at the control device before the control device establishes a role on the network for performing communications, the coordinated startup of devices on the network can be performed to reduce latency and / or potential message collisions on the network when devices are attempting to perform attach processes.
[0136] Figure 10is a flow diagram of an exemplary process 1000 for a device to attach to a network (e.g., network 200, 200a, 200b, 200c, and / or network partitions 201, 202, 203). Process 1000 can be performed by a control device (e.g., an end device, such as end devices 230a, 230b, an end device eligible to be a router, such as end device 240, and / or a hibernating end device 250) attempting to attach to another device on the network (e.g., a potential parent device, such as leader device 210 and / or router devices 220a-220d). For example, when the control device is powered on, the control device can initiate process 1000 at 1001. In addition, process 1000 can be reinitiated after the control device has attached to a parent device on the network. For example, if the control device is unable to communicate with its parent device (e.g., the parent device is unplugged and / or otherwise unable to communicate with the network), the control device can dismount from the parent device and can reinitiate process 1000 at 1001 to attach to another parent device. In addition, when the control device loses connectivity to the network (e.g., when the control device is unplugged or otherwise loses power), the control device can reinitiate process 1000.
[0137] At 1002, the control device can determine whether the control device performing process 1000 is attached to a parent device on the network. If the control device is not attached to a parent device on the network, the control device can determine whether a back-off timer has been started and is running at 1004. As described herein, after the back-off timer expires, the control device can attempt to attach to another device on the network, e.g., by transmitting a parent request message (e.g., a multicast parent request message). The control device performing process 1000 can refrain from attaching to a parent device on the network (e.g., can not attempt to attach to a parent device on the network) while the back-off timer is running. The resolution of the back-off timer can be in units of milliseconds and / or can be represented by a number of bits (e.g., thirty-two bits). The back-off timer can cause the control device to delay attempting to attach to a parent device on the network to allow other devices to attach to parent devices on network 200. For example, the back-off timer can allow a parent device to process parent request messages from other devices. Thus, if the back-off timer has been started and is still running, process 1000 can exit.
[0138] However, if the back-off timer has not been started and / or is not currently running, a random number can be generated at 1006. For example, the random number can be generated by randomly selecting a number from a predefined back-off time range (e.g., zero to four seconds). At 1008, the back-off timer can be initialized with the random number generated at 1006, and as described herein, the device can refrain from attaching to the network for the back-off timer time period. Initializing the back-off timer to the generated random number can reduce the likelihood of multiple devices attempting to attach to the network at the same time or within the same time frame (e.g., because multiple devices will be unlikely to generate the same random number) and increase the chances of the device successfully attaching to the network. As described herein, when multiple devices attempt to attach to the network at the same time, the messages transmitted to attach to the network (e.g., parent request messages and parent response messages) can collide, which can cause attachment to fail and / or be delayed. At 1010, the back-off timer can be started (e.g., begin counting down) and the process 1000 can exit.
[0139] Figure 11 is a flowchart of an example attachment process 1100 (e.g., a parent attachment process) that can be performed by a control device in response to expiration of a back-off timer (e.g., a back-off timer started at 910 of the commissioning process 900). The attachment process 1100 can be performed by a control device when the control device is attempting to attach to another device (e.g., a parent device) on a network or network partition (e.g., the network 200, 200a, 200b, 200c, and / or the network partitions 201, 202, 203). For example, the attachment process 1100 can be performed by the end devices 230a, 230b, the end device 240 that meets the router condition, and / or the hibernating end device 250 when these devices are not attached to a parent device. When the back-off timer expires at 1101, the control device can transmit a parent request message to a router device on the network at 1102. For example, the parent request message can be transmitted by the control device to attempt to attach to one of the router devices so that the router device can operate as a parent device for the control device. At 1102, the control device can set the parent request link quality threshold TH LQ-PR to be equal to the highest link quality threshold (e.g., the link quality 3 threshold TH LQ3 ).
[0140] After transmitting a parent request message at 1102, the control device may receive multiple parent response messages in response to the transmitted parent request message (e.g., from any router device that received the transmitted parent request message). At 1104, the control device may store identifiers (e.g., the router identifier of the router device) and corresponding received signal strength indicators for the parent response messages received within a response interval (e.g., approximately one second). At 1106, the control device may determine whether any of the received signal strength indicators of the received parent response messages is greater than the link quality threshold 3TH. LQ3 For example, the link quality threshold TH. LQ3 The percentile-based link identification process can be used to determine (e.g., based on the 95th percentile in the background RSSI values). 个 Percentile value), and can be stored in memory at 814 of process 800 (e.g., as shown in the image). Figure 8 (As shown). If any of the received signal strength indicators in the parent response message received at 1106 is greater than the link quality threshold 3 TH. LQ3 At 1108, the control device can determine the identifier (e.g., router identifier) of the router device from which the parent response message, which has the maximum received signal strength indicator for each parent response message received during the response interval, originates. At 1110, the control device can set the router device determined at 1108 as its parent device, after which the attach process 1100 exits.
[0141] If the received signal strength indicator of the parent response message received at 1106 is not greater than the link quality threshold 3TH. LQ3 If, at 1112, the control device determines whether the parent request message should be sent to a router-qualified terminal device (REED) on the network, then at 1112, the control device determines whether to send the parent request message to the router-qualified terminal device. If the control device determines at 1112 to send the parent request message to the router-qualified terminal device, then at 1114, the control device can send the parent request message to both the router device and the router-qualified terminal device on the network. At 1104, the control device can store identifiers (e.g., the router identifier of the router device and / or the unique identifier of the router-qualified terminal device) and the RSSI of the parent response messages received from the router and the router-qualified terminal device during the response interval. If any of the received signal strength indicators of the parent response messages received at 1106 is greater than the link quality threshold 3 TH... LQ3At 1108, the control device can determine the identifier of the router device from which the parent response message with the maximum received signal strength indicator originated and / or the identifier of the terminal device that meets the router criteria. At 1110, the control device can set the router device determined at 1108 as its parent device, after which the attachment process 1100 exits. If a terminal device that meets the router criteria is identified at 1108, the control device can issue a request at 1110 for the terminal device that meets the router criteria to become a router device. If the terminal device that meets the router criteria does not respond to the request and / or does not become a router, the control device can jump to 1116 of the attachment process 1100, or can repeat the process 1100 without setting the router device as a parent device at 1110.
[0142] If the control device determines at 1110 that the parent request message was not sent to a terminal device that meets the router's criteria (e.g., the control device has already sent two parent request messages to a terminal device that meets the router's criteria at 1114), then at 1116 the control device can determine whether any of the received signal strength indicators of the received parent response messages is greater than the link quality threshold TH. LQ1 (For example, as in) Figure 8 The process shown in step 800 is determined at point 812 and stored in memory at point 814. If any of the received signal strength indicators of the parent response message received at point 1116 is greater than the link quality threshold TH... LQ1 Then at 1118, the control device can determine the identifier of the router device from which the parent response message with the maximum received signal strength indicator comes and / or the identifier of the terminal device that meets the router conditions (e.g., whether the received signal strength indicator is greater than the link quality threshold 3 TH). LQ3 (Irrelevant). At 1110, the control device can set the router device determined at 1108 as its parent device, after which the attach process 1100 exits. This is if the received signal strength indicator of the parent response message received at 1116 is not greater than the link quality threshold TH. LQ1 Then the control device can begin operating as a leading device at 1120, and the attachment process 110 can be disengaged.
[0143] While the attachment process 1100 is described herein where the control devices compare the received signal strength indicators of the parent response messages to determine the router device to which to attach (e.g., at 1106 and 1108), the control devices can also use other characteristics of the received parent response messages. For example, the control devices can use the link quality determined from the received parent response messages to determine the router device to which to attach. The control devices can determine a link margin for each of the received parent response messages by subtracting a noise floor value (e.g., which can equal the link quality 1 threshold) from the received signal strength indicator of the received parent response message. The control devices can then determine the link quality from the determined link margin. For example, the control devices can set the link quality to three if the link margin is 30 dB or greater, to two if the link margin is between 10 dB and 30 dB, to one if the link margin is between 0 dB and 10 dB, and to zero if the link margin is less than 0 dB. If the determined link quality is three, the control devices can attempt to attach to the router device.
[0144] After network formation (including attaching one or more end device to router devices and / or leader devices to form network links within the network), a network optimization process can be performed to improve the network links within the network. As described herein, the control devices attached to the network (e.g., the networks 200, 200a, 200b, 200c shown) can each be assigned a respective role during network formation. The control devices assigned certain roles on the network, such as the role of leader device or router device, can be configured to facilitate communication with control devices assigned other roles on the network, such as end devices (e.g., including end devices, sleep end devices, and / or end devices that qualify as router devices, as described herein). The roles of leader device and / or router device can initially be assigned on a first-come, first-served basis, and end devices can attach thereto as described herein. For example, the control devices that first attempt to join the network can be assigned roles configured to facilitate communication of other control devices that subsequently join the network, such as end devices that attach to router devices as described herein. As the network evolves and other devices are added to the network or in the vicinity of the network, this can result in a degradation of network link quality. For example, the control devices can establish network links with one another that at the time provide the best network links. But over time, the quality of these network links can change, and in certain scenarios (e.g., when a noise source is introduced to the network), the quality of these network links can degrade. Figures 2A to 2E
[0145] Noise sources (e.g., noise-generating devices) can be located in a space in which a network is deployed. For example, noise sources that can be located in proximity to a network can be wireless access points (WAPs), microwaves, video cameras, security badge readers, and other noise-generating devices. The presence of noise sources in a network can cause the quality of communications on a network link or on the network to degrade. As noise sources that can degrade the quality of communications on a network link are added to a space, other control devices can be added to the network, and their addition can be able to improve the quality of communications on a network link or on the network. The roles of control devices that join or connect to a network can be updated to improve the quality of communications. For example, the roles of control devices that are located in proximity to noise sources can be assigned in a manner that optimizes or otherwise improves the quality of communications in a space in which a network is deployed. Additionally, for example, if a control device is installed in an isolated location (e.g., a location that is not close to other control devices on a network), the control device can experience a lower quality network link with other control devices.
[0146] The roles of leader devices or router devices can be assigned to control devices according to a predefined procedure (e.g., predefined by a respective network or protocol), and end devices can attach to them, as described herein. At an initial startup of a network (e.g., when control devices in the network are powered on), the roles of leader devices and router devices can initially be assigned to control devices on a first-come, first-served basis. For example, after joining or connecting to a network, a control device can attempt to initiate an attachment with another device on the network (e.g., by transmitting a parent request message). If the control device fails to attach to another device on the network (e.g., fails to receive a response to the parent request message, e.g., because a leader device or a router device fails to be located on the network), the control device can be assigned the role of a leader device. Over time, other control devices can join or connect to the network and attempt to attach to the control device assigned the role of a leader device. For example, the other control devices can initially each be assigned the role of an end device. Further, as described herein, a leader device can determine to adjust the roles of the other control devices, e.g., by upgrading one or more of the other control devices to the role of a router device. However, in determining to adjust the roles of the other control devices, the leader device can fail to consider the quality of communications on a network link experienced by a respective control device.
[0147] When roles are assigned in this manner, a control device that experiences lower quality communications over a network link, which is a control device configured to facilitate communications between other control devices in the network (e.g., control devices assigned the role of a terminal device, which includes a terminal device, a dormant terminal device, a terminal device that meets router conditions, etc., as described herein), can be assigned the role of a leader device or a router device. Similarly, when roles are assigned in this manner, there can not be a control device assigned the role of a leader device or a router device that is in the vicinity of a noise source. Assigning the role of a leader device or a router device to a control device that experiences lower quality communications can generally degrade the overall quality of communications over the network link and / or the network. Over time, a network that assigns the role of a leader device or a router device to control devices that experience lower quality network links with other control devices, especially in locations on the network where a noise source is located, can experience an increased likelihood of communication failure. Accordingly, certain network optimization processes can be performed such that the roles assigned to control devices can be based on the quality of the network links of the respective control devices with other devices on the network.
[0148] After a network is formed (e.g., as described herein), the quality of the network links between control devices and other respective control devices can be considered when assigning roles to the respective control devices. For example, the network can enter a router optimization mode to evaluate and / or determine the quality of the network links between control devices and other respective control devices, and optimize the roles assigned to control devices on the network based on, for example, the quality of the network links between the control devices and other respective control devices on the network. The roles assigned to control devices can be updated as a result of the router optimization mode. For example, while the role of a leader device can initially be assigned to a first control device, the role of a leader device can later be assigned to another control device based on the router optimization mode.
[0149] The router optimization mode can be initiated by a user through an application running on a computing device (e.g., a mobile device 190 as shown or other suitable computing device such as a personal computer). Also, or instead, the router optimization mode can be triggered periodically, for example, by a system controller (such as the system controller 110 as shown) and / or by a control device on the network (e.g., a control device assigned the role of a leader device). For example, a control device can trigger the router optimization mode after detecting a change in network communication quality (e.g., such as by the control device detecting an increase in packet loss within the network). Figure 1 Figure 1 The router optimization mode can be initiated by a user through an application running on a computing device (e.g., a mobile device 190 as shown or other suitable computing device such as a personal computer). Also, or instead, the router optimization mode can be triggered periodically, for example, by a system controller (such as the system controller 110 as shown) and / or by a control device on the network (e.g., a control device assigned the role of a leader device). For example, a control device can trigger the router optimization mode after detecting a change in network communication quality (e.g., such as by the control device detecting an increase in packet loss within the network).
[0150] During the router optimization mode, the control devices communicating over the network can transmit one or more optimization messages (e.g., by unicast messages, multicast messages, and / or broadcast messages). The control devices receiving these optimization messages can measure and store the communication quality metrics of the optimization messages along with an indication (e.g., a unique identifier) of the control device transmitting the optimization message (e.g., optimization data). This optimization data can identify the number and quality of possible network links that the control devices can establish over the network.
[0151] The control devices can transmit optimization data to allow for configuration of the roles of the control devices in the network based on the optimization data. For example, the roles of the control devices can be configured based on one or more communication quality metrics included in the optimization data. As described herein, the communication quality metrics can include RSSI values at which the optimization messages were received, link margin values associated with the received optimization messages (e.g., link margin relative to a noise floor value NF), and / or signal-to-noise ratio values of the optimization messages received from the corresponding control devices or calculated from these values. The control devices can indicate one or more link qualities in the optimization data using the communication quality metrics determined from the optimization messages received from each individual device indicated in the optimization data. For example, the control devices can each indicate in the optimization data the determined link quality of each of the possible network links (e.g., possible attachments) with the other control devices.
[0152] The control devices transmitting link margin or signal-to-noise ratio values can provide more data and / or a higher resolution of the link quality over the network link compared to transmitting link quality indicators (e.g., LQI and / or LQO) determined from the link margin or signal-to-noise ratio. The signal-to-noise ratio values can include the signal strength at which the control device received the optimization message from another control device minus a noise floor value NF that can be set relative to one or more link quality thresholds, as described herein. As described herein, the link quality indicators can be calculated by subtracting the noise floor value determined at the control device. The transmission of the link quality indicators can bring additional processing at the control device from which the link quality is being transmitted, but saves network resources that can be used to transmit the messages. The link quality indicators can include less data, but also a lower resolution of the link quality over the network link.
[0153] As further described herein, optimization data can be used to identify optimized roles for the control devices in the network. Each of the control devices can transmit their respective optimization data to another control device (e.g., a system controller) that processes the optimization data. The system controller or another control device on the network (e.g., a control device assigned the role of a leader device on the network) can process and analyze the optimization data received from the various control devices to generate optimized network data. The system controller can use the optimization data to determine optimized roles for the control devices in the network. The system controller can generate optimized network data based on the optimization data, the optimized network data including optimized roles for the control devices on the network.
[0154] The roles of certain control devices on the network can be updated or changed to comply with the optimized network data. For example, in certain scenarios, a control device previously assigned the role of a leader device can be demoted to the role of a router device or an end device. The leader device can send a message (e.g., a leader abdication message) indicating to other devices that the leader device can be demoted and / or a time at which the leader device will be demoted. Additionally, the message can indicate a control device that will take over the role of the leader device. A control device assigned the role of a router device can similarly be promoted to the role of a leader device or demoted to the role of an end device. For example, a message indicating the updated role of a device to other devices can be multicast throughout the network (e.g., to each of the devices on the network). The message can also include a time at which the updated role of the device will be implemented.
[0155] Further, a control device assigned the role of an end device can be promoted to the role of a leader device and / or a router device based on the optimization data. For example, when a control device is being promoted to the role of a leader device, the leader device can transmit (e.g., by unicast) a message (e.g., a leader abdication message) to the control device indicating that the control device will take over the role of the leader device. When a control device is being promoted to the role of a router device, the leader device can transmit (e.g., by unicast) a message to the control device indicating that the control device will be promoted to the role of a router device. Additionally, the message can include a router identifier assigned to the control device.
[0156] Figure 12A sequence flow diagram 1200 is shown that illustrates example messages transmitted between a system controller 1202 and lighting devices 1204a, 1204b. The system controller 1202 and the lighting devices 1204a, 1204b can be connected to a network that allows the system controller 1202 and the lighting devices 1204a, 1204b to communicate with each other (e.g., a network similar to the networks 200, 200a, 200b, 200c and / or the network partitions 201, 202, 203). As described herein, the system controller 1202 and the lighting devices 1204a, 1204b can each be assigned a role on the network.
[0157] The system controller 1202 can trigger a router optimization mode that can be used to assign roles of control devices on a network as described herein. The assignment of roles can be a reassignment of roles after roles have been established. For example, the system controller 1202 can transmit a message (e.g., a router optimization mode message) 1206 to trigger the lighting devices 1204a, 1204b to enter a router optimization mode. The system controller 1202 can transmit the router optimization mode message 1206 to the lighting devices 1204a, 1204b as a unicast message, a multicast message, and / or a broadcast message. Although Figure 12 Not shown, but the system controller 1202 can transmit the router optimization mode message to additional devices. Also, or instead, another device initiates the router optimization mode and / or transmits the router optimization message.
[0158] Upon receiving the router optimization mode message, a control device can transmit one or more optimization messages. For example, upon receiving the router optimization mode message 1206 from the system controller 1202, the lighting device 1204a can transmit an optimization message 1208. The optimization message 1208 can include an indication of the source of the optimization message (e.g., a unique identifier of the source, such as a network address). As Figure 12 shown, the lighting device 1204a can transmit the optimization message 1208 (e.g., as a unicast message, a multicast message, or a broadcast message) to other devices in the network, for example, the system controller 1202 and the lighting device 1204b as Figure 12 shown. Although Figure 12 Not shown, but the lighting device 1204a can transmit the optimization message to additional devices.
[0159] The control devices that receive the optimization messages from another control device with which a possible network link (e.g., attachment) can be created can measure and store a communication quality metric of the optimization messages along with an indication of the device that transmitted the optimization message (e.g., network address). The communication quality metric can include a received signal strength indicator (RSSI) of the optimization message. The communication quality metric can be calculated from the RSSI of the optimization message. For example, the communication quality metric can include a link margin or a signal-to-noise ratio value. The link margin can be a value relative to a predefined reception level. For example, the link margin can indicate a relative value above a noise floor value, NF. Each link margin value can indicate whether the optimization message received at the control device is above or below a link quality threshold. The link margin value and / or the signal-to-noise ratio value of the message can be calculated by subtracting a noise floor value of the noise floor at the control device (e.g., the difference between the received signal strength indicator and the noise floor) from the received signal strength at which the message was received (e.g., RSSI). Additionally or alternatively, the communication quality metric can include the link quality value (e.g., link quality in or link quality out) itself, which can also be calculated as a predefined value above the noise floor value, NF. The communication quality metric can be calculated for each optimization message received, or can be averaged over multiple optimization messages received over time.
[0160] The control devices can use one or more link quality thresholds (e.g., a link quality 3 threshold, TH LQ3 , a link quality 2 threshold, TH LQ2 , and / or a link quality 1 threshold, TH LQ1 ) to calculate a communication quality metric of an optimization message received from another control device with which a possible network link (e.g., attachment) can be created. For example, as described herein, the control devices can each set the link quality 3 threshold, TH LQ3 , to an Nth percentile (e.g., 95th percentile) value of background RSSI values measured at the control devices. The other link quality thresholds, TH LQ3 and TH LQ1 , can be set based on the determined link quality 3 threshold, TH LQ2 . The noise floor value, NF, can depend on the Nth percentile of the background RSSI values. For example, the link quality 1 threshold, TH LQ1 , can be set equal to the noise floor value, NF, or set to a link margin value above the noise floor value, NF. Thus, the link margin value or the signal-to-noise ratio value at which the optimization message is received can be a value that depends on the Nth percentile value of the background RSSI values at which the link quality 3 threshold, TH LQ3 , can be set.
[0161] Since the communication quality metric can be a link quality indicator, the control devices can use one or more of the link quality thresholds to calculate the link quality of the optimization messages received from each individual device. For example, the communication quality metric of the optimization message 1220 measured at the lighting device 1204a can be greater than the link quality 3 threshold TH LQ3 and the communication quality metric of the optimization message 1214 measured at the lighting device 1204a can be greater than the link quality 2 threshold TH LQ2 The control devices can each indicate in the optimization data the determined link quality indicator for each of the possible network links (e.g., attachments) with the other control devices. In another example, the communication quality metric (e.g., RSSI value) of the optimization messages can be sent in the optimization data with one or more link quality thresholds, such that the system controller 1202 can determine the communication quality metric that satisfies one or more of the link quality thresholds.
[0162] At 1210, the lighting device 1204b can measure and store the communication quality metric of the optimization message 1208 transmitted by the lighting device 1204a. At 1212, the system controller 1202 can measure and store the communication quality metric of the optimization message 1208 transmitted by the lighting device 1204a. The communication quality metric of the optimization message 1208 can be measured and stored at the system controller and the lighting device 1204b of each device to identify the quality of the communication received from the lighting device 1204a. In addition to the communication quality metric, the lighting device 1204b and the system controller 1202 can store an indication of the source of the optimization message, such as the network identifier of the lighting device 1204a.
[0163] In response to the router optimization mode message 1206, the lighting device 1204b can transmit an optimization message 1214 including its network identifier to the lighting device 1204a and the system controller 1202. The lighting device 1204b can transmit the optimization message 1214 (e.g., as a unicast message, a multicast message, or a broadcast message) to other devices in the network, for example, the system controller 1202 and the lighting device 1204a. Likewise, although the lighting device 1204a is shown as transmitting the optimization message 1214 to the system controller 1202, the lighting device 1204a can transmit the optimization message 1214 to other devices in the network, for example, the system controller 1202 and the lighting device 1204b. Figure 12The lighting device 1204b, not shown, can also transmit optimization messages to the other devices. At 1218, the lighting device 1204a can measure and store a communication quality metric of the optimization message 1214 transmitted by the lighting device 1204b. At 1216, the system controller 1202 can measure and store a communication quality metric of the optimization message 1214 transmitted by the lighting device 1204b. The communication quality metric of the optimization message 1214 can be measured and stored at the system controller and the lighting device 1204a of each device to identify the quality of communications received from the lighting device 1204b. In addition to the communication quality metric, the lighting device 1204a and the system controller 1202 can store an indication of the source of the optimization message, such as a network identifier of the lighting device 1204a.
[0164] The device that initially transmits the router optimization mode message can also transmit optimization messages to other control devices. For example, the system controller 1202 can transmit an optimization message 1220 to the lighting devices 1204a, 1204b. At 1224, the lighting device 1204a can measure and store a communication quality metric of the optimization message 1220 transmitted by the system controller 1202. At 1222, the lighting device 1204b can measure and store a communication quality metric of the optimization message 1220 transmitted by the system controller 1202. The communication quality metric of the optimization message 1220 can be measured and stored at the lighting devices 1204a, 1204b of each device to identify the quality of communications received from the system controller 1202. In addition to the communication quality metric, the lighting devices 1204a, 1204b can store an indication of the source of the optimization message, such as a network identifier of the system controller 1202. Although the flowchart shows the system controller 1202 transmitting a separate optimization message 1220 that can be transmitted and measured at the lighting devices 1204a, 1204b to identify the quality of communications transmitted by the system controller 1202, the lighting devices 1204a, 1204b can measure and store a communication quality metric of the router optimization mode message 1206 transmitted from the system controller 1202 to initiate the router optimization process.
[0165] As described herein, a control device that receives an optimization message can aggregate the communication quality metrics of the received optimization messages in link quality information and generate optimization data that includes the link quality information. The optimization data from a given control device can indicate the number of control devices from which optimization messages were received and the quality of the network links over which optimization messages were received. For example, the optimization data can include a network address of each control device from which an optimization message has been received and a corresponding communication quality metric of the optimization message received from the control device.
[0166] After generating the optimization data, the control device can transmit the optimization data to another control device for processing and analysis of the optimization data. The control device to which the optimization data is transmitted can be the same control device that transmitted the router optimization mode message, or another control device. As Figure 12 shown, lighting device 1204a can transmit optimization data 1228 to system controller 1202. Optimization data 1228 can include the network identifier of lighting device 1204b and the network identifier of system controller 1202, each with the respective communication quality metrics of optimization messages 1214, 1220 received from lighting device 1204b and system controller 1202. Optimization data 1228 can include one or more link quality thresholds and / or a noise floor value NF measured at lighting device 1204a. Lighting device 1204b can transmit optimization data 1226 to system controller 1202. Optimization data 1226 can include the network identifier of lighting device 1204a and the network identifier of system controller 1202, each with the respective communication quality metrics of optimization messages 1208, 1220 received from lighting device 1204a and system controller 1202. Optimization data 1226 can include one or more link quality thresholds and / or a noise floor value NF measured at lighting device 1204b. System controller 1202 can store its own optimization data in memory, including the network identifiers of lighting devices 1204a, 1204b, each with the respective communication quality metrics of optimization messages 1208, 1214 received from lighting devices 1204a, 1204b. The optimization data of system controller 1202 can include one or more link quality thresholds and / or a noise floor value NF measured at system controller 1202.
[0167] At 1230, the system controller 1202 can process the optimization data, for example, to determine a number of higher quality communications experienced at the device. For example, the system controller 1202 can process the communication quality metrics in the optimization data to determine control devices that are to be assigned as leader devices and / or router devices in the network. In generating the optimized network data, the system controller 1202 can determine control devices that are capable of communicating with other devices on higher quality network links that are to be assigned as leader devices and / or router devices based on the optimization data received from each of the control devices. For example, where the optimization data received from each control device identifies a communication quality metric indicative of a quality of possible network links that the respective control device can establish with other control devices on the network, the system controller 1202 can assign the role of leader device and / or router device to control devices having a greater number of possible network links that can be established above a defined quality threshold before control devices without a greater number of possible network links that can be established above the defined quality threshold.
[0168] The defined quality threshold can be set as a link quality value or a link quality indicator (e.g., link quality 3, 2, 1, etc.). The system controller 1202 can receive a link margin or signal-to-noise ratio value of the optimization message received on the network link and determine a strength of the network link based on the link quality indicated by the link margin or signal-to-noise ratio. For example, a link margin or signal-to-noise ratio value indicating a signal strength at least 20 dB above a noise floor value NF can indicate a link quality of 3. A link margin or signal-to-noise ratio value indicating a signal strength at least 10 dB above a noise floor value NF can indicate a link quality of 2. A link margin or signal-to-noise ratio value indicating a signal strength at least 2 dB above a noise floor value NF can indicate a link quality of 1.
[0169] In another example, the system controller 1202 can receive an RSSI value at which the optimization message was received on the network link and compare the RSSI value to a noise floor value NF or one or more link quality thresholds (e.g., a link quality 3 threshold TH LQ3 , a link quality 2 threshold TH LQ2 , and / or a link quality 1 threshold TH LQ1 ) to identify a link margin of the optimization message relative to the noise floor. The system controller 1202 can then determine a strength of the network link based on the link quality indicated by the link margin of the optimization message received on the network link. As described herein, the system controller 1202 can directly receive a link quality indicator in the optimization data indicating a link quality of the network link on which the optimization message was received from the control device.
[0170] The system controller 1202 can evaluate the strength of the possible network links for each of the control devices to identify control devices that have the greatest number of possible preferred network links to other control devices. A preferred network link can have a link quality equal to or greater than 3 (e.g., at least 20 dB above the noise floor). The system controller 1202 can assign the role of router device to the control devices that have the greatest number of possible preferred network links. One of the router devices can be assigned the role of leader device. For example, the control device with the highest quality possible preferred network link or the greatest number of possible preferred network links to the devices assigned as router devices can be assigned the role of leader device. The system controller 1202 can continue to assign the role of router device to the control devices that have the greatest number of possible preferred network links until a number of available router devices for the network have been assigned or each of the control devices with possible preferred network links has been assigned the role of router device. The system controller 1202 assigns the role of router device to the control devices in this manner is an attempt to have each of the end devices in the network have a preferred network link (e.g., a link quality equal to or greater than 3) to a router device on the network.
[0171] If there are additional router devices that can be assigned in the network, the system controller 1202 can evaluate the strength of the possible network links for each of the control devices using a second quality threshold. The system controller 1202 can use the second quality threshold to consider control devices that have possible secondary network links to other control devices assigned the role of router device. A secondary network link can have a link quality equal to 2 (e.g., at least 10 dB above the noise floor). The system controller 1202 can assign the role of router device to the control devices that have possible secondary network links or assign the role of leader device if the previous quality threshold was not used to assign a leader device. The system controller 1202 can continue to assign the role of router device to the control devices that have possible secondary network links until a number of available router devices for the network or control devices with possible secondary network links have been assigned the role of router device.
[0172] If there are additional router devices that can be assigned in the network, the system controller 1202 can use a third quality threshold to evaluate the strength of possible network links for each of the control devices. The system controller 1202 can use the third quality threshold to identify control devices that have possible tertiary network links to other control devices. The tertiary network links can have a link quality equal to 1 (e.g., at least 2 dB above the noise floor or set equal to the noise floor). The system controller 1202 can assign the role of router device to the control devices that have possible tertiary network links, or assign the role of leader device when the previous quality threshold does not assign a leader device. The system controller 1202 can continue to assign the role of router device to control devices that have possible tertiary network links until the number of available router devices for the network or the control devices that have possible tertiary network links have been assigned the role of router device.
[0173] The tertiary network links for each control device can include control devices that have a substandard connection to a particular control device. The control devices that have tertiary network links to one or more control devices can be control devices that can be promoted to router devices in the fault prone area to perform network communications. These router devices (e.g., router devices that have tertiary network links to other control devices) can be located in portions of the network where the noise sources are stronger and can be used to intentionally backfill router devices in these potentially more fault prone areas around the noise sources of the network. If there are additional router devices to be assigned in the network, router devices can be assigned around the router devices that have tertiary network links to help strengthen communications in these areas of the network.
[0174] For example, the system controller 1202 can assign the role of router device to one more additional control devices until there is at least a minimum number of router devices in the network. If the minimum number of router devices is not met by assigning router devices using the assigned value of the quality threshold, the quality threshold used by the system controller 1202 can be lowered and the system controller 1202 can perform the process again to assign the roles of leader device and / or router device. The process of reassigning the roles can be performed using previously received optimization data, or the system controller 1202 can receive updated optimization data from the control devices.
[0175] The system controller 1202 can assign router devices in the network such that the router devices can be grouped or bunched around noise sources (e.g., assign the role of router device to the control devices around a noise source). As described herein, a noise source can cause a degradation in communication quality over a network link or network, and grouping or bunching the control devices assigned the role of router device around a noise source can counteract the degradation in communication quality over the network link or network. For example, the system controller 1202 can be configured to assign additional router devices in portions of the network where noise sources are stronger.
[0176] The system controller 1202 can transmit updated network data 1232a, 1232b including optimized network data to the lighting devices 1204a, 1204b. The updated network data 1232a, 1232b can include a list of router devices including a list of control devices to be assigned as router devices in the network. The updated network data 1232a, 1232b can include an indication of a leader device in the network. The updated network data 1232a, 1232b can include an indication of end devices in the network, or the indication can be inferred from a lack of identifiers corresponding to the role of router device or leader device. The updated network data 1232a, 1232b can be sent as a multicast or broadcast message to the lighting devices 1204a, 1204b. The updated network data 1232a, 1232b indicating the role of each of the devices can be sent as a unicast message to the lighting devices 1204a, 1204b. After receiving the updated network data 1232a, 1232b, the lighting devices 1204a, 1204b can update their respective roles as indicated in the updated network data 1232a, 1232b.
[0177] Although Figure 12 Although Figure 12 Although Figure 12An instance is shown in which each device transmits a single optimization message, but the devices can each transmit and separately measure multiple optimization messages, which can improve the accuracy of the network data generated by the system controller 1220. Router optimization messages can also or instead be transmitted at periodic intervals (e.g., with slight randomization). For example, the router optimization process can be triggered periodically (e.g., on a regular schedule). Figure 12 The illustrated process can be an optimization data collection phase, which can include a time period during which devices on the network transmit, receive, and measure multiple optimization messages.
[0178] As described herein, a control device can enter a router optimization mode, for example, based on receipt of a router optimization mode message. While the system controller 1202 can be described as a control device that can trigger the router optimization mode at other control devices and / or process optimization data, other control devices can similarly be implemented. For example, a lighting device or another control device in the system can be implemented to trigger the optimization mode and / or process optimization data.
[0179] The router optimization mode can be triggered multiple times. For example, the router optimization mode can first be triggered or entered by a first device in the load control system (e.g., a system controller, such as the system controller 110 of the load control system 100). And after completion of the first router optimization mode, a subsequent entry into the router optimization mode can be triggered by a second control device in the load control system. The second control device can be a control device assigned a role in the network (e.g., a control device assigned a role of a leader device), for example.
[0180] Figure 13 is a flow diagram of an example process 1300 for collecting optimization data to optimize selection of router devices in a network (e.g., the network 200, 200a, 200b, 200c, and / or network partitions 201, 202, 203). The process 1300 can be performed by one or more control devices (e.g., each of a leader device, a router device, and / or a terminal device) in a load control system that joins or connects to a network as part of a router optimization process. For example, each of the control devices in the network can perform the process 1300 or portions thereof simultaneously to collect optimization data. The control devices can be part of a load control system (e.g., the load control system 100).
[0181] The control device can begin the process 1300 at 1302 and enter the router optimization mode at 1304. The control device can begin the process 1300 at 1302 in response to receiving a router optimization mode message at 1302. The router optimization mode message can be transmitted by a computing device directly to the control device or a system controller (e.g., system controller 110, 1202) of the load control system to cause the system controller to transmit the router optimization mode message to the control devices on the network. A user of the load control system can use an application running on a computing device (e.g., mobile device 190 or other suitable computing device such as a personal computer) to initiate the router optimization process. The user can initiate the router optimization process after introducing a noise source (e.g., wireless access point (WAP)) within the network that can cause network communication problems at the control devices. Also, or alternatively, the router optimization process can be initiated periodically (e.g., by a device assigned the role of leader device). In one example, a noise source (e.g., wireless access point (WAP)) is introduced within the network that can cause network communication problems at the control devices, and the roles of the devices can be updated to optimize the locations of the devices relative to the noise source to improve network communication.
[0182] The user can also or alternatively initiate the router optimization process in response to receiving network information at the mobile device. For example, prior to entering the router optimization process at 1302, the mobile device running the application or the system controller (e.g., by initiation of the mobile device) can send a message to the control devices to query the control devices on the network to receive network information that can indicate the quality of communication on the network and / or whether the control devices are experiencing communication problems on the network. For example, the query can request network information from the control devices such as the most recent messages received at the control devices over a period of time, the link quality of the communication, the link cost of the communication, the noise floor at the control device, and / or other network information that can indicate the quality of communication at the control device. In response to receiving the network information, the user or the mobile device can determine to initiate the process 1300 to attempt to improve network communication. For example, the user can initiate the process 1300 at the mobile device to cause the mobile device to send the router optimization mode message at 1302. The user can initiate the router optimization process when the control devices fail to receive messages that have been transmitted on the network, the link quality of the communication is below a threshold, the link cost of the communication is above a threshold, or the noise floor at the control device is above a threshold.
[0183] The control device can initiate the router optimization process on its own (e.g., when the control device is a system controller). The control device can be configured to initiate the router optimization process periodically (e.g., every 20 minutes) so that the control device can periodically evaluate the quality of communications on the network and correct router placement if there are any communication issues. For example, the control device can initiate the router optimization process by periodically transmitting a router optimization mode message at 1302 to attempt to update the control device’s role to improve communications on the network. The control device can periodically query other control devices and transmit a router optimization message at 1302 in response to receiving network information from other control devices. For example, before entering the router optimization process at 1302, the control device can send a message to other control devices to query other control devices on the network to receive network information that can indicate the quality of communications on the network and / or whether the control device has communication issues on the network. The system controller can initiate the router optimization process by sending a router optimization mode message at 1302 when the control device fails to receive messages that have been transmitted on the network, the link quality of communications is below a threshold, the link cost of communications is above a threshold, or the noise floor at the control device is above a threshold.
[0184] Also, or alternatively, the control device can determine that it is experiencing communication issues and automatically determine to transmit a router optimization mode message to other control devices on the network (e.g., and perform the process 1300 at 1302). For example, the control device can monitor its own network information and determine that the control device has communication issues on the network. The system controller can initiate the router optimization process by sending a router optimization mode message at 1302 when the control device fails to receive messages that have been transmitted on the network, the link quality of communications at the control device is below a threshold, the link cost of communications at the control device is above a threshold, or the noise floor at the control device is above a threshold.
[0185] At 1306, the control device can transmit and receive optimization messages. The control devices on the network can use the optimization messages to determine the quality of network links with other nearby control devices. Each optimization message can include a unique identifier (e.g., network address) of the control device transmitting the optimization message. For example, at 1306, the control device can periodically transmit its optimization message to other control devices (e.g., as a multicast or broadcast message). Additionally, at 1306, the control device can receive optimization messages from other control devices that are within the control device’s communication range.
[0186] At 1308, the control device can store a unique identifier and a communication quality metric for each optimization message received at 1306. For example, the communication quality metric can indicate a signal strength at which the optimization message was received. The communication quality metric can include, for example, a received signal strength indicator (RSSI), a link margin, and / or a signal-to-noise ratio value of the received optimization message. The control device can calculate the communication quality metric based on one or more link quality thresholds (e.g., a link quality 3 threshold TH LQ3 , a link quality 2 threshold TH LQ2 , and / or a link quality 1 threshold TH LQ1 , as described herein. For example, the control device can set the link quality 3 threshold TH LQ3 to an Nth percentile (e.g., a 95th percentile) value of background RSSI values measured at the control device. The other link quality thresholds TH LQ2 and TH LQ1 may be set based on the determined link quality 3 threshold TH LQ3 . The noise floor value NF can depend on the Nth percentile of the background RSSI values. For example, the link quality 1 threshold TH LQ1 may be set equal to the noise floor value NF, or set to be a link margin value above the noise floor value NF. Thus, the link margin value or signal-to-noise ratio value at which the optimization message was received can be a value that depends on the Nth percentile value of the background RSSI values to which the link quality 3 threshold TH LQ3 may be set. Additionally or alternatively, the communication quality metric can include a link quality or a link quality indicator (e.g., a link quality input or a link quality output).
[0187] The communication quality metric can be averaged over time (e.g., a difference between an average of the communication quality metrics of optimization messages received from a particular control device over time and a noise floor). The control device can continue to store the unique identifier and the communication quality metric of the received optimization messages at 1308 until optimization data collection is complete at 1310. For example, the control device can collect optimization data for a predetermined amount of time and / or another control device (e.g., a system controller, a mobile device, and / or another control device in the network) can transmit a message to the control device to cause the control device to stop collecting optimization data.
[0188] When optimization data collection is complete at 1310, the control device can transmit the optimization data to a system controller at 1314, and the process 1300 can end at 1316. If the communication quality metric is a received signal strength indicator or another value that has not been calculated relative to a noise floor, the optimization data can include the noise floor value and / or the link quality thresholds calculated at the control device.
[0189] The system controller can use the optimization data (e.g., generated using process 1300 in FIG. 13) to define optimal roles for the control devices on the network based on the optimization data. As described herein, the system controller can be configured to use the optimization data to generate optimized network data. The optimized network data can define optimized control devices as being assigned the role of leader device and / or router device. The optimized network data can be used to optimize the selection of leader devices and router devices in the network. Figure 13
[0190] Figure 14 is an example process 1400 that can be executed at a control device for determining its role in a network (e.g., network 200, 200a, 200b, 200c, and / or network partitions 201, 202, 203). Process 1400 can be executed by a control device (e.g., one of a leader device, a router device, and / or a terminal device) in a network as part of a router optimization process. For example, process 1400 can be executed by a control device of a load control system (e.g., system controller 110 of load control system 100) after the system controller assigns the control device to a router list. During process 1400, the control device can determine its role and operate according to the role as described herein.
[0191] The control device can start process 1400 at 1402 and identify optimized network data received from a system controller or another control device on the network at 1404. Process 1400 can be triggered by receiving a message including the optimized network data at 1402. The optimized network data can indicate leader devices and / or router devices that have been assigned by a system controller or another control device on the network. For example, the optimized network data can include a router list or an indication of a unique identifier (e.g., a network identifier) of a control device that has been assigned as a router device in a router list.
[0192] At 1406, the control device can determine whether it is presently assigned as a router device in the network. If the control device is presently assigned another role on the network other than a router device (e.g., a terminal device), the control device can determine whether the control device is assigned as a router device in the optimized data at 1410. If the control device is not assigned as a router device in the optimized network data, the process 1400 can end, e.g., such that the control device can maintain its role in the network (e.g., as a terminal device). If the control device is assigned as a router device in the optimized network data at 1410, the control device can upgrade its role to be a router device and begin operating as a router device as described herein at 1414. For example, the control device can send a router request message to the leader device to be a router device on the network. The control device can be added to the router table by the leader device and can begin advertising and operating as a router device as described herein.
[0193] One of the control devices can be assigned as a leader device in the optimized network data. At 1410, the control device can determine that it is assigned the role of leader device in the optimized network data. If the control device is assigned the role of leader device in the optimized network data, the control device can upgrade its role to be a leader device (e.g., from a router device or a terminal device) at 1414.
[0194] The control device can wait for the current leader device to identify that it is not assigned the role of leader device in the optimized network data and transmit an indication that it is going to demote its role from the leader device. For example, the current leader device can send a leader abdicate message that can be received by the control device before upgrading its role to be a leader device at 1414. The leader abdicate message can indicate to the control device that the leader device is going to relinquish its position as a leader device and the control device can take over the role as a leader device. After the control device upgrades its role to be a leader device on the network, the control device can take over the responsibilities of the leader device on the network. For example, the control device will begin transmitting advertisement messages as a leader device and perform other leader responsibilities described herein.
[0195] If the control device determines that it is currently assigned the role of a router device in the network at 1406, the control device can determine whether it is assigned as a router device in the optimized network data at 1408. If the control device is currently assigned as a router device and is assigned as a router device in the optimized network data, the control device can remain as a router device in the network and the process 1400 can end. If the control device is currently assigned the role of a router device in the network and is not assigned the role of a router device in the optimized network data, the control device can demote its role to a terminal device at 1412. The control device can also multicast a message indicating that it is going to be demoted to the role of a terminal device, which can allow terminal devices attached to the control device to initiate an attachment process with the best router device based on the optimized network data as described herein.
[0196] In demoting the role of the control device from a router device to a terminal device, the control device can send a router release message to the leader device to be released from the router table as a router device by the leader device. The router release message can be sent directly to the leader device as a unicast message or sent as a multicast message. The router release message can include a unique identifier of the router device to be released from the router table (e.g., a router identifier or other unique identifier). The leader device can receive the router release message and release the control device from the router table. The leader device can remove the router identifier of the control device from the router table. Receiving the router release message at the leader device can allow the leader device to proactively release the control device from the router table before the control device leaves the network or the leader device otherwise waits to determine that the control device has left due to unresponsiveness, which will allow the leader device to update the router table and / or bitmap more quickly compared to having to wait a period of time to determine that the control device has lost its role as a router device.
[0197] Proactive removal of the control device from the router table and / or bitmap will allow the end devices to identify earlier that their router device is lost from the network, as the end devices 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 a period of time to determine that their router device has been lost due to unresponsiveness. Upon receiving the router release message, the leader device can transmit an advertisement message including the updated router table with the bitmap indicating that the identified router device has been removed from the network. The router devices on the network can retransmit the advertisement message until the advertisement message is transmitted to every router device and end device on the network. The child end devices that are control devices that have been removed from the router table can identify that their parent router device is no longer a router device and send a parent request message to another router device on the network to attach to a parent in response to receiving the advertisement message (e.g., from a parent router device, a secondary parent device, or another router device).
[0198] The control device can be assigned the role of leader device and can similarly maintain its role or degrade its role based on the indication of leader devices in the optimized network data. At 1408, the control device can currently be assigned the role of leader device in the network and determine that it is assigned the role of leader device in the optimized network data. In this case, the control device can maintain its role as a leader device in the network. In another example, the control device can currently be assigned the role of leader device and determine at 1408 that it is assigned the role of router device or end device in the optimized network data and can degrade its role. If the control device is currently assigned the role of leader device and is assigned the role of end device in the optimized network data, the control device can degrade its role from leader device to router device and then degrade its role from router device to end device.
[0199] If the control device is to be degraded from leader device to router device, the leader device can identify a next leader device that is to take over as leader device. For example, if another control device is identified as a leader device based on the optimized network data, the control device can be degraded from leader device to router device. Other control devices can be identified as leader devices based on the optimized network data. After sending a leader abdicate message to the leader device indicated in the optimized network data and / or receiving an indication that the next leader device has taken over as leader device, the control device can change its role from leader device. The leader abdicate message can indicate to the next leader device that the control device is to relinquish its position as leader device and the next leader device can take over the role of leader device, as described herein. The control device can degrade its role from leader device to router device.
[0200] If the control device determines that it is a terminal device in the optimized network data, the control device can downgrade its role to a terminal device at 1412. As described herein, the control device can send a router release message to the most recently upgraded leader device to release as a router device before downgrading to a terminal device. The control device that sent the router release message can downgrade its role to a terminal device at 1412. The process can end at 1416.
[0201] After performing the optimization process, a terminal device (e.g., a device that has downgraded to a terminal device) can perform one or more portions of an attachment process to attach to a parent device for communicating on the network, as described herein. For example, the attachment process can be similar to Figure 11 the attachment process 1100 shown using one or more of the link quality thresholds (e.g., one or more of the link quality thresholds TH LQ1 -TH LQ3 ) described herein. The terminal device can perform the attachment process based on the background RSSI values and / or link quality thresholds established prior to and / or after performing the optimization process. For example, after the optimization process has been performed to update the background RSSI readings and / or link quality thresholds (e.g., one or more of the link quality thresholds TH LQ1 -TH LQ3 ), the terminal device can perform Figure 7 the process 700 shown or portions thereof and / or Figure 8 the process 800 shown or portions thereof.
[0202] As a result of having selected a leader device and / or router devices during the optimization process, one or more terminal devices can be able to attach to a parent device and improve the link quality between the terminal device and its parent. Additionally, when the attachment process is performed by a terminal device after the optimization process, the attachment process can be performed collectively using less processing resources and / or time at the terminal device, as the link quality of the network link between the terminal device and the router device can be higher as a result of the performance of the optimization process (e.g., resulting in the link quality threshold being met earlier).
[0203] Figure 15is a block diagram illustrating an example mobile device 1500 as described herein. The mobile device 1500 can include a control circuit 1502 for controlling the functions of the mobile device 1500. The control circuit 1502 can include one or more general purpose processors, special purpose processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application specific integrated circuits (ASICs), or the like. The control circuit 1502 can perform signal coding, data processing, power control, input / output processing, or any other functionality that enables the mobile device 1500 to perform as described herein. The control circuit 1502 can store or retrieve information in or from a memory 1504. The memory 1504 can include non-removable memory and / or removable memory. The non-removable memory can include random access memory (RAM), read only memory (ROM), a hard disk, or any other type of non-removable memory storage. The removable memory can include a subscriber identity module (SIM) card, a memory stick, a memory card, or any other type of removable memory.
[0204] The mobile device 1500 can include a communication circuit 1508 for transmitting and / or receiving information. The communication circuit 1508 can perform wireless and / or wired communication. The communication circuit 1508 can include an RF transceiver or other circuitry capable of performing wireless communication through an antenna. The communication circuit 1508 can be in communication with the control circuit 1502 for transmitting and / or receiving information.
[0205] The control circuit 1502 can also be in communication with a display 1506 for providing information to a user. The control circuit 1502 and / or the display 1506 can generate a GUI for display on the mobile device 1500. The display 1506 and the control circuit 1502 can be in two-way communication, as the display 1506 can include a touch screen module capable of receiving information from a user and providing such information to the control circuit 1502. The mobile device 1500 can also include an actuator 1512 (e.g., one or more buttons) that can be actuated by a user to communicate user selections to the control circuit 1502.
[0206] Each of the modules within the mobile device 1500 can be powered by a power source 1510. The power source 1510 can include, for example, an AC power supply or a DC power supply. The power source 1510 can generate a supply voltage V CC for powering the modules within the mobile device 1500.
[0207] Figure 16is a block diagram illustrating an example system controller 1600 as described herein. The system controller can be a gateway system controller, a target system controller, a remote system controller, and / or a combination thereof. The system controller 1600 can include a control circuit 1602 for controlling the functions of the system controller 1600. The control circuit 1602 can include one or more general purpose processors, special purpose processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application specific integrated circuits (ASICs), or the like. The control circuit 1602 can perform signal coding, data processing, power control, input / output processing, or any other functionality that enables the system controller 1600 to perform as described herein. The control circuit 1602 can store or retrieve information in or from a memory 1604. The memory 1604 can include non-removable memory and / or removable memory. The non-removable memory can include random-access memory (RAM), read-only memory (ROM), a hard disk, or any other type of non-removable memory storage. The removable memory can include a subscriber identity module (SIM) card, a memory stick, a memory card, or any other type of removable memory.
[0208] The system controller 1600 can include a first communication circuit 1606 for transmitting and / or receiving information. The first communication circuit 1606 can 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 1600 can also or instead include a second communication circuit 1608 for transmitting and / or receiving information. The second communication circuit 1606 can perform wireless and / or wired communication over a second wireless communication link and / or network. The first communication circuit 1606 and the second communication circuit 1608 can be in communication with the control circuit 1602. The first communication circuit 1606 and the second communication circuit 1608 can include an RF transceiver or other communication module capable of performing wireless communication through an antenna. The communication circuit 1606 and the communication circuit 1608 can be capable of performing communication over the same communication channel or different communication channels. For example, the first communication circuit 1606 can be capable of communicating over a first wireless communication link and / or network (e.g., with control devices and / or other devices in a load control system) using a first communication protocol (e.g., a wireless communication protocol such as the CLEAR CONNECT and / or THREAD protocol). And the second communication circuit 1608 can be capable of communicating over a second wireless communication channel and / or network using a second wireless communication protocol.
[0209] The control circuit 1602 can be in communication with the LED indicators 1612 to provide indications to a user. The control circuit 1602 can be in communication with the actuators 1614 (e.g., one or more buttons) which can be actuated by a user to communicate user selections to the control circuit 1602. For example, the actuators 1614 can be actuated to place the control circuit 1602 in an association mode and / or to communicate an association message from the system controller 1600.
[0210] Each of the modules within the system controller 1600 can be powered by the power supply 1610. The power supply 1610 can include, for example, an AC power supply or a DC power supply. The power supply 1610 can generate a supply voltage V CC for powering the modules within the system controller 1600.
[0211] Figure 17 is a block diagram illustrating an example control target device (e.g., a load control device 1700) as described herein. The load control device 1700 can be a dimmer switch, an electronic switch, an electronic lighting control device for a light fixture, 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 motorized window treatments, or other load control device. The load control device 1700 can comprise a communication circuit 1702. The communication circuit 1702 can comprise a receiver, an RF transceiver, or other communication module capable of performing wired and / or wireless communication over the communication link 1710. The communication circuit 1702 can be in communication with a control circuit 1704. The control circuit 1704 can comprise one or more general -purpose processors, special -purpose processors, conventional processors, digital signal processors (DSPs), microprocessors, integrated circuits, programmable logic devices (PLDs), application specific integrated circuits (ASICs), or the like. The control circuit 1704 can perform signal coding, data processing, power control, input / output processing, or any other functionality that enables the load control device 1700 to perform as described herein.
[0212] The control circuit 1704 can store information in and / or retrieve information from the memory 1706. For example, the memory 1706 can maintain a registry of associated control devices and / or control configuration instructions. The memory 1706 can include non-removable memory and / or removable memory. The load control circuit 1408 can receive instructions from the control circuit 1704 and can control the electrical load 1716 based on the received instructions. The load control circuit 1708 can send state feedback to the control circuit 1704 regarding the state of the electrical load 1716. The load control circuit 1708 can receive power through the hot connection 1712 and the neutral connection 1714 and can provide an amount of power to the electrical load 1716. The electrical load 1716 can include any type of electrical load, such as a lighting load (e.g., an LED, a fluorescent lamp, etc.).
[0213] The control circuit 1704 can communicate with an actuator 1718 (e.g., one or more buttons) that can be actuated by a user to communicate a user selection to the control circuit 1704. For example, the actuator 1718 can be actuated to place the control circuit 1704 in an association mode and / or to communicate an association message from the load control device 1700.
[0214] Figure 18 is a block diagram illustrating an example input device 1800 or control source device as described herein. The input device 1800 can be a remote control device, an occupancy sensor, a daylight sensor, a temperature sensor, etc. The input device 1800 can include a control circuit 1802 to control the functions of the input device 1800. The control circuit 1802 can include one or more general
[0215] The control circuit 1802 can store information in and / or retrieve information from the memory 1804. The memory 1804 can include non-removable memory and / or removable memory, as described herein.
[0216] The input device 1800 can include a communication circuit 1808 to transmit and / or receive information. The communication circuit 1808 can transmit and / or receive information through wired and / or wireless communication. The communication circuit 1808 can include a transmitter, an RF transceiver, or other circuitry capable of performing wired and / or wireless communication. The communication circuit 1808 can communicate with the control circuit 1802 to transmit and / or receive information.
[0217] The control circuit 1802 can also be in communication with an input circuit 1806. The input circuit 1806 can include an actuator (e.g., one or more buttons) or a sensor circuit (e.g., an occupancy sensor circuit, a daylight sensor circuit, or a temperature sensor circuit) for receiving input that can be sent to the device for controlling an electrical load. For example, a control source device can receive input from the input circuit 1806 to place the control circuit 1802 in an association mode and / or communicate an association message from the control source device. The control circuit 1802 can receive information from the input circuit 1806 (e.g., an indication that a button has been actuated or sensed information). Each of the modules within the input device 1800 can be powered by the power supply 1810.
[0218] While features and elements are described herein in particular combinations, each feature or element can be used alone or in any combination with the other features and elements. The methods described herein can be implemented in a computer program, software, or firmware incorporated in a computer- readable medium for execution by a computer or processor. Examples of computer- readable media include electronic signals (optical, electrical or the like) transmittable over a wire or wirelessly and computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, removable floppy disks, RAM, RAM disk, hard drives, or optical media such as CD-ROM disks or digital universal disks (DVDs).
Claims
1. A control device for communicating with one or more other devices on a network, the control device comprising: wireless communication circuitry configured to receive messages over radio frequency (RF) signals; and control circuitry configured to: measure background RF energy over the wireless communication circuitry when the wireless communication circuitry is not receiving messages; store a plurality of measurements of the background RF energy; determine an Nth percentile value of the stored measurements of the background RF energy; set a link quality threshold equal to the Nth percentile value of the stored measurements of the background RF energy; and use the link quality threshold to determine another device to attach to as a parent device on the network.
2. The control device of claim 1, wherein the control circuit configured to determine the Nth percentile value in the stored measurements of the background RF energy further comprises: the control circuitry is configured to: calculate a mean value of the background RF energy; and use the mean value of the background RF energy to determine the Nth percentile value.
3. The control device of claim 1, wherein the link quality threshold is a first link quality threshold, and wherein the control circuitry is further configured to: set a second link quality threshold relative to the first link quality threshold for use in determining the another device to attach to as the parent device on the network.
4. The control device of claim 3, wherein the mean value of the background RF energy is a noise floor value, wherein the control circuitry is further configured to: calculate the second link quality threshold by adding a respective link margin to the noise floor value.
5. The control device of claim 1, wherein the control circuitry is further configured to: increase the link quality threshold when the background RF energy increases, and decrease the link quality threshold when the background RF energy decreases, to maintain the Nth percentile value of the background RF energy.
6. The control device of claim 1, wherein the control circuitry is further configured to: attach to the parent device for performing communications on the network.
7. The control device of claim 6, wherein the control circuit, being configured to attach to the parent device using the link quality threshold, comprises: the control circuitry is configured to: transmit, over the wireless communication circuitry, a parent request message configured to attempt to attach to one of a plurality of control devices assigned a role of a router device; receive a plurality of parent response messages in response to the transmitted parent request message, each parent response message including an identifier of the control device from which the parent response message was received; store the identifiers and a corresponding communication quality metric of each of the parent response messages; determine the identifier of the control device assigned the role of the router device having a greatest communication quality metric of the parent response messages above the link quality threshold; and set the identifier of the control device having the greatest communication quality metric above the link quality threshold as the parent device of the control device for performing communications on the network.
8. The control device of claim 7, wherein the link quality threshold is a first link quality threshold, the first link quality threshold is lower than a second link quality threshold, and wherein the control circuit is further configured to: determine that none of the communication quality metrics of the plurality of parent response messages are above the second link quality threshold before setting the identifier of the control device having the maximum communication quality metric above the first link quality threshold as the parent device.
9. The control device of claim 1, wherein a communication quality metric comprises one of a link quality value or a received signal strength indicator value.
10. The control device of claim 1, wherein the Nth percentile is at least the 95th percentile.
11. The control device of claim 1, wherein the control circuit is further configured to: determine a link quality based on a communication quality metric of a received message and the link quality threshold; and transmit the link quality to another device configured to perform an optimization process.
12. The control device of claim 1, wherein the control circuit is further configured to: set a noise floor value based on the Nth percentile value; determine a link margin at which a message is received by subtracting the noise floor value from a received signal strength of the message; and transmit the link margin to another device configured to perform an optimization process.
13. A method comprising: measuring, by a wireless communication circuit, background RF energy when the wireless communication circuit is not receiving a message; storing a plurality of measurements of the background RF energy; determining an Nth percentile value of the stored measurements of the background RF energy; setting a link quality threshold equal to the Nth percentile value of the stored measurements of the background RF energy; using the link quality threshold to determine another device to attach to as a parent device on a network; and attaching to the parent device for performing communications on the network.
14. The method of claim 13, wherein determining the Nth percentile value of the stored measurements of the background RF energy further comprises: calculating a mean value of the background RF energy; and using the mean value of the background RF energy to determine the Nth percentile value.
15. The method of claim 13, wherein the link quality threshold is a first link quality threshold, and the method further comprises: setting a second link quality threshold relative to the first link quality threshold for use in determining the another device to attach to as the parent device on the network.
16. The method of claim 13, wherein the mean value of the background RF energy is a noise floor value, the method further comprising: calculating a second link quality threshold by adding a respective link margin to the noise floor value.
17. The method of claim 13, further comprising: increasing the link quality threshold as the background RF energy increases to maintain the Nth percentile value of the background RF energy; and decreasing the link quality threshold to maintain the Nth percentile value of the background RF energy when the background RF energy decreases.
18. The method of claim 13, wherein attaching to the parent device using the link quality threshold further comprises: transmitting, by the wireless communication circuit, a parent request message, the parent request message configured to attempt to attach to one of a plurality of control devices assigned a role of a router device; receiving, in response to the transmitted parent request message, a plurality of parent response messages, each parent response message including an identifier of the control device from which the parent response message was received; storing the identifiers and corresponding communication quality metrics of each of the parent response messages; determining the identifier of the control device assigned the role of the router device having a greatest communication quality metric of the parent response messages that is above the link quality threshold; and setting the identifier of the control device having the greatest communication quality metric that is above the link quality threshold as the parent device of the control device for performing communications on the network.
19. The method of claim 18, wherein the link quality threshold is a first link quality threshold, the first link quality threshold being lower than a second link quality threshold, the method further comprising: determining that none of the communication quality metrics of the plurality of parent response messages are above the second link quality threshold prior to setting the identifier of the control device having the greatest communication quality metric that is above the first link quality threshold as the parent device.
20. The method of claim 13, wherein a communication quality metric comprises one of a link quality value or a received signal strength indicator value.
21. The method of claim 13, wherein the Nth percentile is at least the 95th percentile.
22. The method of claim 13, further comprising: determining a link quality based on a communication quality metric of a received message and the link quality threshold; and transmitting the link quality to another device configured to perform an optimization process.
23. The method of claim 13, further comprising: setting a noise floor value based on the Nth percentile value; determining a link margin at which a message is received by subtracting the noise floor value from a received signal strength of the message; and transmitting the link margin to another device configured to perform an optimization process.
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