Patent Description:
The patent document <CIT> discloses an access point for a wireless communication network, comprising a processor and memory storing data and instructions, arranged to dynamically select an optimum channel by carrying out the following steps: (a) selecting a channel from a plurality of possible channels; (b) collecting data as to at least level of Medium Activity on said channel during a predetermined scanning time; (c) storing a channel interference parameter indicative of a time period in said scanning time that said level of Medium Activity exceeded a first threshold value; (d) repeating steps (b) and (c) for all other channels of said plurality of channels; (e) selecting said optimum channel in accordance with a predetermined rule taking said channel interference parameter into account.

In one aspect, an example method is disclosed. The method includes monitoring, by a hub station, a first channel activity level associated with a first channel of a plurality of channels within a particular frequency range. The hub station communicates with a low-energy device using the first channel. The method also includes determining, by the hub station, that the first channel activity level satisfies a threshold activity level. The method also includes switching, by the hub station, to a second channel of the plurality of channels to communicate with the low-energy device, at least in part, in response to determining that the first channel activity level satisfies the threshold activity level. The method also includes notifying the low-energy device that the hub station switched to the second channel by sending an acknowledgement message to the low-energy device on the second channel in response to receiving a message from the low-energy device on the second channel. The message is sent to the hub station on the second channel after at least one unsuccessful attempt to send the message to the hub station on the first channel.

In another aspect, an example hub station is disclosed. The hub station includes a memory and a processor coupled to the memory. The processor is configured to monitor a first channel activity level associated with a first channel of a plurality of channels within a particular frequency range. The hub station communicates with a low-energy device using the first channel. The processor is also configured to determine that the first channel activity level satisfies a threshold activity level. The processor is also configured to switch to a second channel of the plurality of channels to communicate with the low-energy device, at least in part, in response to determining that the first channel activity level satisfies the threshold activity level. The processor is also configured to notify the low-energy device that the hub station switched to the second channel by sending an acknowledgement message to the low-energy device on the second channel in response to receiving a message from the low-energy device on the second channel. The message is sent to the hub station on the second channel after at least one unsuccessful attempt to send the message to the hub station on the first channel.

In another aspect, an example non-transitory computer-readable medium is disclosed. The computer-readable medium has stored thereon instructions that, upon execution by a processor within a hub station, cause the processor to perform operations. The operations include monitoring a first channel activity level associated with a first channel of a plurality of channels within a particular frequency range. The hub station communicates with a low-energy device using the first channel. The operations also include determining that the first channel activity level satisfies a threshold activity level. The operations also include switching to a second channel of the plurality of channels to communicate with the low-energy device, at least in part, in response to determining that the first channel activity level satisfies the threshold activity level. The operations also include notifying the low-energy device that the hub station switched to the second channel by sending an acknowledgement message to the low-energy device on the second channel in response to receiving a message from the low-energy device on the second channel. The message is sent to the hub station on the second channel after at least one unsuccessful attempt to send the message to the hub station on the first channel.

A hub station can communicate with a plurality of low-energy devices using channels (e.g., frequencies) within a particular frequency range. For example, when the hub station and a particular low-energy device are tuned to a first channel within the particular frequency range, the hub station can send data to the particular low-energy device over the first channel, and the hub station can receive data from the particular low-energy device over the first channel.

If a transmission energy level associated with the first channel is relatively high, possibly indicating a relatively large amount of jamming activity, the hub station can switch to a second channel within the particular frequency range. To illustrate, the hub station can monitor the transmission energy level on each channel within the particular frequency range. In response to a determination that second channel has a lower transmission energy level than the transmission energy level associated with the first channel, the hub station can tune a transceiver (e.g., a radio) to the second channel. After the hub station switches to the second channel, the particular low-energy device is not immediately notified of the switch. Thus, the particular low-energy device remains tuned to the first channel.

In response to an event (e.g., a wake-up event) at the particular low-energy device, the particular low-energy device can attempt to send a message to the hub station over the first channel. To illustrate, if the particular low-energy device is a motion sensor, in response to detecting motion, the particular low-energy device can attempt to send the message (indicating the detected motion) to the hub station over the first channel. However, because the hub station switched to the second channel, the hub station does not receive the message from the particular low-energy device and does not send an acknowledgment message to the particular low-energy device over the first channel.

After one or more unsuccessful attempts to send the message to the hub station over the first channel, the particular low-energy device can switch to another channel. As used herein, an "unsuccessful attempt" to send the message occurs when an acknowledgment message is not received in response to sending the message. If the particular low-energy device switches to the second channel and sends the message to the hub station over the second channel, the hub station sends an acknowledgment message to the particular low-energy device. Upon receiving the acknowledgment message, the particular low-energy device is put on notice that the hub station has switched to the second channel. As a result, the particular low-energy device uses the second channel to send all message to the hub station until another attempt to send a message is unsuccessful, indicating that the hub station has again switched channels.

The techniques described herein can help reduce power consumption at the particular low-energy device. For example, the particular low-energy device can remain in a low-energy mode for prolonged periods of time (e.g., until the occurrence of a wake-up event) because the particular low-energy device does not have to "listen" on the first channel for the switching notification messages from the hub station. By waiting until the occurrence of a wake-up event to "find" the hub station, the particular low-energy device can remain in a low-energy mode for prolonged periods of time, thus conserving battery power.

Below, particular embodiments are described herein with reference to the drawings. In the description, common features are designated by common reference numbers throughout the drawings. In some figures, multiple instances of a particular type of feature are used. Although these features are physically and/or logically distinct, the same reference number is used for each, and the different instances are distinguished by addition of a letter to the reference number. When the features as a group or a type are referred to herein (e.g., when no particular one of the features is being referenced), the reference number is used without a distinguishing letter. However, when one particular feature of multiple features of the same type is referred to herein, the reference number is used with the distinguishing letter. For example, referring to <FIG>, multiple channels are illustrated and associated with reference numbers 106A, 106B, etc. When referring to a particular one of these channels, such as the channel 106A, the distinguishing letter "A" is used. However, when referring to any arbitrary one of these channels or to these channels as a group, the reference number <NUM> is used without a distinguishing letter.

<FIG> is a block diagram of an example communication system <NUM>. The communication system <NUM> includes a hub station <NUM> and a plurality of low-energy devices <NUM>. For example, the communication system <NUM> includes a low-energy device 104A and a low-energy device 104B. Although two low-energy devices <NUM> are illustrated in <FIG>, in other implementations, the communication system <NUM> can include additional (or fewer) low-energy devices. For example, in one implementation, the communication system <NUM> can include a single low-energy device <NUM>, such as the low-energy device 104A. However, in another implementation, the communication system <NUM> can include five low-energy devices <NUM>.

The hub station <NUM> corresponds to a central transmitting and receiving device of a network. For example, the hub station <NUM> can be associated with a plurality of peripheral devices, such as the low-energy devices <NUM>, within a particular network. Data transmitted from the peripheral devices in the particular network is typically transmitted to the hub station <NUM>. In some implementations, the hub station <NUM> can serve as a gateway device for peripheral devices to communicate with other peripheral devices or with a device outside of the particular network.

The hub station <NUM> includes a processor <NUM>, a memory <NUM> coupled to the processor <NUM>, a transceiver <NUM> coupled to the processor <NUM>, and a transceiver <NUM> coupled to the processor <NUM>. Although transceivers <NUM>, <NUM> are depicted, in some implementations, one or more of the transceivers <NUM>, <NUM> can be replaced with a separate receiver and a transmitter. The memory <NUM> can correspond to a non-transitory computer-readable medium that stores instructions <NUM> executable by the processor <NUM> to perform the operations described herein.

Each transceiver <NUM>, <NUM> in the hub station <NUM> can be tuned to a different frequency (e.g., a different channel). To illustrate, the transceiver <NUM> can be tuned to communicate data using a channel within a first frequency range (e.g., a lower frequency range), and the transceiver <NUM> can be tuned to communicate data using a channel within a second frequency range (e.g., a higher frequency range). As a non-limiting example, the transceiver <NUM> can be tuned to send and receive data (e.g., data packets) using a frequency channel below <NUM> Gigahertz (GHz), and the transceiver <NUM> can be tuned to send and receive data using a frequency channel associated with an Institute of Electrical and Electronics Engineers (IEEE) <NUM> ("Wifi") protocol. Thus, the hub station <NUM> can include at least two radios (e.g., a first radio for the transceiver <NUM> and a second radio for the transceiver <NUM>) to communicate data over different frequency ranges. According to one implementation, the transceiver <NUM> can be tuned to send and receive data using a <NUM> Megahertz (MHz) frequency and/or frequencies relatively close to <NUM>. It should be understood that the above frequency ranges for the transceiver <NUM> are merely for illustrative purposes and should not be construed as limiting. The techniques described herein can be applied to the transceiver <NUM> if the transceiver <NUM> is tuned to send and receive data using frequencies range above <NUM>, as well.

The hub station <NUM> can communicate with the low-energy devices <NUM> using channels <NUM> (e.g., frequency channels) within a particular frequency range. As used herein, the "particular frequency range" can span from <NUM> to <NUM>; however, it should be understood that in other implementations, the particular frequency range can include frequencies above <NUM> and/or frequencies below <NUM>. In the illustration of <FIG>, the transceiver <NUM> of the hub station <NUM> can be tuned to communicate with the low-energy devices <NUM> using a channel 106A, a channel 106B, or a channel 106C. According to one implementation, the channel 106A can correspond to a primary channel that has a higher compatibility rating, associated with communications between the hub station <NUM> and the low-energy devices <NUM>, than the other channels 106B, 106C. Although three channels 106A, 106B, 106C are illustrated in <FIG>, in other implementations, the system <NUM> can include additional channels <NUM>.

The processor <NUM> includes a channel activity monitor <NUM>, a channel activity processing unit <NUM>, a channel evaluation unit <NUM>, a channel selector <NUM>, and a message generator <NUM>. In some implementations, one or more components <NUM>, <NUM>, <NUM>, <NUM>, <NUM> of the processor <NUM> can be implemented using dedicated circuitry, such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA) device. In some implementations, operations associated with one or more components <NUM>, <NUM>, <NUM>, <NUM>, <NUM> of the processor <NUM> can be performed by executing the instructions <NUM> stored in the memory <NUM>. In some implementations, two or more of the components <NUM>, <NUM>, <NUM>, <NUM>, <NUM> of the processor <NUM> can be integrated into a single component. As a non-limiting example, the channel activity monitor <NUM> and the channel activity processing unit <NUM> can be integrated into a single component (e.g., a single unit or module).

The techniques described herein enable the hub station <NUM> to monitor activity (e.g., jamming activity or noise) on the channels <NUM> and select a particular channel <NUM> for communication with the low-energy devices <NUM> based on the activity. For example, at a given point in time, the transceiver <NUM> can be tuned to communicate with the low-energy devices <NUM> using the primary channel 106A. While tuned to communicate with the low-energy devices <NUM> using the channel 106A, the transceiver <NUM> can switch frequencies every clock period to enable the processor <NUM> to monitor channel activity levels <NUM> associated with each channel <NUM>. Based on the channel activity levels <NUM> associated with the each channel <NUM>, the processor <NUM> can select a channel <NUM> for communicating with the low-energy devices <NUM>. For example, based on the channel activity levels <NUM> associated with each channel <NUM>, the processor <NUM> can select to remain on the primary channel 106A or select to switch to one of the secondary channels 106B, 106C.

To illustrate, the channel activity monitor <NUM> can be configured to monitor a channel activity level 130A associated with the channel 106A, a channel activity level 130B associated with the channel 106B, and a channel activity level 130C associated with the channel 106C. As a non-limiting example, each clock period can correspond to one second. During a first interval (e.g., a fifty millisecond (ms) interval) of a clock period, the transceiver <NUM> can switch to the channel 106B, and the channel activity monitor <NUM> can monitor (e.g., measure) the channel activity level 130A associated with the channel 106A during the first interval. During a second interval of the clock period, the transceiver <NUM> can switch to the channel 106C, and the channel activity monitor <NUM> can monitor the channel activity level 130B associated with the channel 106B during the second interval. During a third interval of the clock period, the transceiver <NUM> can switch back to the channel 106A, and the channel activity monitor <NUM> can monitor the channel activity level 130A associated with the channel 106A during the third interval. The remaining portion of the clock period can be used to communicate with the low-energy devices <NUM> using the active (e.g., currently selected) channel <NUM> (e.g., the channel 106A).

It should be understood that the duration of the clock period and the duration of the intervals are merely for illustrative purposes and should not be construed as limiting. In other implementations, the clock period can have a longer or shorter duration. Additionally, in other implementations, the time intervals for monitoring channel activity levels <NUM> on each channel <NUM> can have a longer or shorter duration than the <NUM> duration described above. In some implementations, the first interval, the second interval, and the third interval can be consecutive time intervals within the clock period. In other implementations, the first interval, the second interval, and the third interval can be non-consecutive time intervals within the clock period such that the transceiver <NUM> can communicate with the low-energy devices <NUM> using the active channel <NUM> between the intervals for monitoring channel activity levels <NUM>. In these implementations, the transceiver <NUM> can be configured to switch back to the active channel 106A after monitoring the channel activity level <NUM> on a non-active channel <NUM>.

The hub station <NUM> can be configured to monitor a channel activity level <NUM> for a single channel at any given point in time. For example, if the hub station <NUM> monitors the channel activity level 130A associated with the channel 106A, the channel activity levels 130B, 130C associated with the other channels 106B, 106C are unmonitored by the hub station <NUM>.

In some implementations, the channel activity level 130A can correspond to a radio transmission (Tx) energy 132A on the channel 106A, the channel activity level 130B can correspond to a radio transmission energy 132B on the channel 106B, and the channel activity level 130C can correspond to a radio transmission energy 132C on the channel 106C. The radio transmission energy <NUM> for a particular channel <NUM> can be based on transmission activity on the channel <NUM>. To illustrate, if data is transmitted on a particular channel <NUM>, a magnitude of the radio transmission energy <NUM> for the particular channel <NUM> increases. Thus, the radio transmission energy <NUM> for a particular channel <NUM> correlates to jamming activity on the channel <NUM>. Monitoring the radio transmission energy <NUM> on each channel <NUM> is described in greater detail with respect to <FIG>.

In some implementations, the channel activity processing unit <NUM> can be configured to determine a moving average of channel activity levels <NUM> on each channel <NUM>. For example, at a particular instance of time, data can be transmitted on an otherwise relatively "quiet" channel. By determining the moving average of channel activity levels <NUM> on each channel <NUM>, the processor <NUM> can determine whether there is substantially continuous jamming activity on the channel or whether there was isolated activity on an otherwise quiet channel.

To illustrate, the channel activity processing unit <NUM> can determine (e.g., compute) a channel activity level moving average 134A for the channel 106A, a channel activity level moving average 134B for the channel 106B, and a channel activity level moving average 134C for the channel 106C. In some implementations, the channel activity level moving averages <NUM> can be based on channel actively level <NUM> measurements for five consecutive clock cycles. For example, to determine the channel activity moving average 134A for the channel 106A, the channel activity processing unit <NUM> can determine an average of the last five channel activity level 130A measurements associated with the channel 106A. Determining the channel activity level moving average <NUM> is described in greater detail below with respect to <FIG>. It should be understood that basing the channel activity level moving average <NUM> on the last five channel activity level <NUM> measurements is merely one example on how to determine the channel activity level moving average <NUM>. In other implementations, the channel activity level moving average <NUM> can be based on a different number of consecutive channel activity level <NUM> measurements or can be based on non-consecutive channel activity level <NUM> measurements.

In some implementations, the channel activity level moving average <NUM> for a particular channel <NUM> can correspond to a weighted moving average. For example, when determining the channel activity level moving average <NUM>, a most current channel activity level <NUM> measurement can be assigned a first weight, a second most current channel activity level <NUM> measurement can be assigned a second weight, a third most current channel activity level <NUM> measurement can be assigned a third weight etc. In these implementations, the first weight is greater than the second weight, the second weight is greater than the third weight, etc. Thus, in these implementations, the channel activity level moving average <NUM> is more indicative of the recent channel activity level <NUM> measurements.

The channel evaluation unit <NUM> can be configured to determine whether the channel activity level 130A (or the channel activity level moving average 134A) satisfies a threshold activity level <NUM>. For example, the channel evaluation unit <NUM> can determine whether the channel activity level 130A (or the channel activity level moving average 134A) is above the threshold activity level <NUM>. The threshold activity level <NUM> can correspond to a programmable level that is indicative of noise on a channel. As a non-limiting example, and as further described with respect to <FIG>, the threshold activity level <NUM> can be equal to -<NUM> decibels (dB). The channel evaluation unit <NUM> can determine whether there is sustained noise over -<NUM> dB on the channel 106A by comparing the channel activity level moving average 134A to the threshold activity level <NUM>. The channel evaluation unit <NUM> can determine whether there is current noise over -<NUM> dB on the channel 106A by comparing the latest channel activity level 130A measurement to the threshold activity level <NUM>. It should be understood that -<NUM> dB is merely used for illustrative purposes and should not be construed as limiting. In other implementations, the threshold activity level <NUM> can have a different value.

The channel selector <NUM> can be configured to switch the hub station <NUM> to a different channel 106B, 106C to communicate with the low-energy devices <NUM>, at least in part, in response to determining that the channel activity level 130A (or the channel activity level moving average 134A) satisfies the threshold activity level <NUM>. As used herein, "switching" to a particular channel corresponds to tuning the transceiver <NUM> to a frequency associated with the particular channel to enable the transceiver <NUM> to send and receive data using the particular channel. According to one implementation, if the channel evaluation unit <NUM> determines that the channel activity level 130A (or the channel activity level moving average 134A) associated with the channel 106A satisfies the threshold activity level <NUM> and the channel activity level 130B (or the channel activity level moving average 134B) associated with the channel 106B fails to satisfy the threshold activity level <NUM>, the hub station <NUM> can switch to the channel 106B to communicate with the low-energy devices <NUM>.

According to another implementation, if the channel evaluation unit <NUM> determines that the channel activity level 130A (or the channel activity level moving average 134A) associated with the channel 106A satisfies the threshold activity level <NUM> and the channel activity level 130B (or the channel activity level moving average 134B) associated with the channel 106B is less than the channel activity level 130A (or the channel activity level moving average 134A), the hub station <NUM> can switch to the channel 106B to communicate with the low-energy devices <NUM>. In this implementation, channel selector <NUM> can select the channel 106B with less noise (e.g., less jamming activity), even if the channel 106B with less noise has a channel activity level 130B above the threshold activity level <NUM>.

Although the above examples describe switching from the channel 106A to the channel 106B, it should be understood that the techniques described herein are not limited to switching between the channels 106A, 106B. In other implementations, the hub station <NUM> can switch from the channel 106A to the channel 106C if the channel activity level 130C (or the channel activity moving average 134B) associated with the channel 106C is below the threshold activity level <NUM> or below the channel activity level 130A associated with the channel 106A. In some scenarios, the hub station <NUM> can switch from the channel 106A to whichever channel 106B, 106C has a lower channel activity level <NUM> (or channel activity level moving average <NUM>). For example, if the channel evaluation unit <NUM> determines that the channel activity level 130B associated with the channel 106B is less than the channel activity level 130C associated with the channel 106C, the hub station <NUM> can switch to the channel 106C in response to determining that the channel activity level 130A (or the channel activity level moving average 134A) satisfies the threshold activity level <NUM>. However, if the channel evaluation unit <NUM> determines that the channel activity level 130C associated with the channel 106C is less than the channel activity level 130B associated with the channel 106B, the hub station <NUM> can switch to the channel 106B.

For ease of explanation, unless otherwise noted, the following description is based on the assumption that the hub station <NUM> switched from the primary channel 106A to the channel 106B. In response to switching to the channel 106B, the hub station <NUM> bypasses sending a notification to the low-energy devices <NUM> that the hub station <NUM> switched to the channel 106B. Thus, when the hub station <NUM> switches to the channel 106B, the low-energy devices <NUM> continue to use the channel 106A in an attempt to communicate with the hub station <NUM>. As described below, the low-energy devices <NUM> are notified of the hub station's <NUM> switch from the primary channel 106A to the channel 106B by receiving an acknowledgment message <NUM> on the channel 106B in response to sending a message to the hub station <NUM> on the channel 106B. The acknowledgment message <NUM> can be generated by the message generator <NUM>.

The low-energy devices <NUM> can correspond to any device that can enter into a low-energy mode. A non-limiting example of a low-energy device <NUM> is a motion sensor. When no motion is detected, the low-energy device <NUM> can operate in the low-energy mode. However, upon motion detection, the low-energy device <NUM> can transition from the low-energy mode into a normal operating mode.

The low-energy device 104A includes a sensor unit 150A, a processor 152A, and a transceiver 154A. According to one implementation, the sensor unit 150A can correspond to a motion detection module that is operable to detect motion. For example, the sensor unit 150B can include a camera and an image processor that are usable to detect motion in a field of view of the camera. In response to detecting motion, the processor 152A can transition into a normal operating mode and a message generator 160A within the processor 152A can generate a message 164A indicating that motion has been detected. The transceiver 154A can be configured to send the message 164A to the hub station <NUM> using one of the channels <NUM>. Thus, the low-energy device 104A can remain in an idle state (e.g., the low-energy mode) absent detection of a wake-up event (e.g., motion detection), and the message 164A can be sent to the hub station <NUM> in response to the wake-up event.

It should be understood that motion detection is merely an example of a wake-up event that triggers transmission of a message 164A to the hub station <NUM>. In other implementations, the low-energy device 104A can send a message 164A to the hub station <NUM> in response to other wake-up events. As a non-limiting example, the low-energy device 104A can correspond to an entry sensor and the wake-up event can correspond to detection of someone entering a premises (e.g., a home premises). As another non-limiting example, the low-energy device 104A can correspond to a keypad and the wake-up event can correspond to compression of a key.

As described above, the hub station <NUM> switched from the primary channel 106A to the channel 106B without notifying the low-energy device 104A. Thus, the transceiver 154A of the low-energy device 104A remains tuned to the primary channel 106A and sends the message 164A to the hub station <NUM> using the primary channel 106A. Because the hub station <NUM> has switched to the channel 106B, the hub station <NUM> will not receive the message 164A sent from the low-energy device 104A using the primary channel 106A, and thus, will not send the acknowledgement message <NUM> to the low-energy device 104A. As a result, the low-energy device's 104A attempt to send the message 164A to the hub station <NUM> on the primary channel 106A is unsuccessful. An unsuccessful attempt to send the message 164A to the hub station <NUM> on the primary channel 106A occurs when the low-energy device 104A fails to receive the acknowledgement message <NUM> from the hub station <NUM> on the primary channel 106A.

In some scenarios, the low-energy device 104A can switch from the primary channel 106A to another channel 106B, 106C after one unsuccessful attempt to send the message 164A to the hub station <NUM> on the primary channel 106A. In other scenarios, the low-energy device 104A can switch from the primary channel 106A to another channel 106B, 106C after two or more unsuccessful attempts to send the message 164A to the hub station <NUM> on the primary channel 106A.

The low-energy device 104A can select another channel 106B, 106C on which to send the message 164A to the hub station <NUM> after the unsuccessful attempt(s) to send the message 164A on the primary channel 106A. In some scenarios, the low-energy device 104A can select the other channel 106B, 106C at random. In other scenarios, the low-energy device 104A can select the channel 106B, 106C that is closer (in frequency) to the primary channel 106A. In other scenarios, the low-energy device 104A can select the channel 106B, 106C according to a hierarchy. For example, if the channel 106B is more compatible with communications between the low-energy device 104A and the hub station <NUM> than the channel 106C, the low-energy device 104A can select the channel 106B after the unsuccessful attempt(s) to send the message 164A on the primary channel 106A. For ease of illustration, let's assume that the low-energy device 104A selected the channel 106B (e.g., the channel on which the hub station <NUM> switched).

After switching to the channel 106B, the low-energy device 104A can send the message 164A to the hub station <NUM> using the channel 106B. Because the hub station <NUM> switched to the channel 102B, the hub station <NUM> can receive the message 164A from the low-energy device 104A on the channel 106B. In response to receiving the message 164A from the low-energy device 104A on the channel 106B, the hub station <NUM> can be configured to notify the low-energy device 104A that the hub station <NUM> switched to the channel 106B by sending the acknowledgment message <NUM> to the low-energy device 104A on the channel 106B. Once the low-energy device <NUM> receives the acknowledgment message <NUM> on the channel 106B, the attempt to send the message 164A to the hub station <NUM> is determined to be successful at the low-energy device 104A. As a result, the low-energy device 104A will send messages to the hub station <NUM> on the channel 106B going forward (e.g., until the low-energy device 104A experiences one or more unsuccessful attempts to send a message to the hub station <NUM> on the channel 106B).

The low-energy device 104B includes a sensor unit 150B, a processor 152B, and a transceiver 154B. The low-energy device 104B can operate in a substantially similar manner as the low-energy device 104A. For example, the sensor unit 150B can detect motion, and, in response to detecting the motion, the processor 152B can transition into a normal operating mode. A message generator 160B within the processor 152B can generate a message 164B indicating that motion has been detected. The transceiver 154B can be configured to send the message <NUM> to the hub station <NUM> using one of the channels <NUM>. In a similar manner as described above, if the low-energy device 104B fails to receive the acknowledgment message <NUM>, the low-energy device 104B can switch channels and resend the message 164B on the different channel and wait to receive the acknowledgment message <NUM>. Once the low-energy device 104B sends the message 164B on a particular channel and receives the acknowledgment message <NUM> on the same channel, the low-energy device 104B can remain on the channel to communicate with the hub station <NUM>.

As described above, in some scenarios, the channel 106A can correspond to a primary channel that has a higher compatibility rating, associated with communications between the hub station <NUM> and the low-energy devices <NUM>, than the other channels 106B, 106C. As a result, in some implementations, the hub station <NUM> may attempt to switch back to the primary channel 106A after switching to the channel 106B. For example, the channel activity monitor <NUM> can monitor the channel activity level 130A associated with the primary channel 106A after switching to the channel 106B. In response to determining that the channel activity level 130A fails to satisfy (e.g., is lower than) the threshold activity level <NUM>, the channel selector <NUM> can switch back to the primary channel 106A to communicate with the low-energy devices <NUM>. Alternatively, in response to determining that the channel activity level 130A is lower than the channel activity level 130B associated with the channel 106B, the channel selector <NUM> can switch back to the primary channel 106A to communicate with the low-energy devices <NUM>.

The techniques described with respect to <FIG> provides the hub station <NUM> with the agility to quickly switch channels <NUM> without notifying the low-energy devices <NUM> of the switch. For example, the hub station <NUM> can monitor (e.g., listen on) the channels <NUM> to select a channel <NUM> that does not have consistent radio energy (e.g., jamming). After selecting the channel <NUM>, instead of directly notifying the low-energy devices <NUM>, the low-energy devices <NUM> will find the channel <NUM> (e.g., the frequency) to which the hub station <NUM> moved by sending messages to the hub station <NUM> on different channels and awaiting an acknowledgment message. Thus, if the hub station <NUM> frequently switches between multiple channels <NUM>, battery power can be conserved at the low-energy devices <NUM> because the hub station <NUM> bypasses sending channel switching notifications to the low-energy devices <NUM>, which would cause the low-energy devices to "wake-up". As a result, the low-energy devices <NUM> can remain in a low-energy mode until detecting a wake-up event.

<FIG> is a simplified block diagram of an example computing system <NUM>. The computing system <NUM> can be configured to perform and/or can perform various operations, such as the operations described in this disclosure. The computing system <NUM> can include various components, such as a processor <NUM>, a data storage unit <NUM>, a communication interface <NUM>, and/or a user interface <NUM>.

The processor <NUM> can be or include a general-purpose processor (e.g., a microprocessor) and/or a special-purpose processor (e.g., a digital signal processor). The processor <NUM> can execute program instructions included in the data storage unit <NUM> as described below.

The data storage unit <NUM> can be or include one or more volatile, nonvolatile, removable, and/or non-removable storage components, such as magnetic, optical, and/or flash storage, and/or can be integrated in whole or in part with the processor <NUM>. Further, the data storage unit <NUM> can be or include a non-transitory computer-readable storage medium, having stored thereon program instructions (e.g., compiled or non-compiled program logic and/or machine code) that, upon execution by the processor <NUM>, cause the computing system <NUM> and/or another computing system to perform one or more operations, such as the operations described in this disclosure. These program instructions can define, and/or be part of, a discrete software application.

In some instances, the computing system <NUM> can execute program instructions in response to receiving an input, such as an input received via the communication interface <NUM> and/or the user interface <NUM>. The data storage unit <NUM> can also store other data, such as any of the data described in this disclosure.

The communication interface <NUM> can allow the computing system <NUM> to connect with and/or communicate with another entity according to one or more protocols. Therefore, the computing system <NUM> can transmit data to, and/or receive data from, one or more other entities according to one or more protocols. In one example, the communication interface <NUM> can be or include a wired interface, such as an Ethernet interface or a High-Definition Multimedia Interface (HDMI). In another example, the communication interface <NUM> can be or include a wireless interface, such as a cellular or WI-FI interface.

The user interface <NUM> can allow for interaction between the computing system <NUM> and a user of the computing system <NUM>. As such, the user interface <NUM> can be or include an input component such as a keyboard, a mouse, a remote controller, a microphone, and/or a touch-sensitive panel. The user interface <NUM> can also be or include an output component such as a display screen (which, for example, can be combined with a touch-sensitive panel) and/or a sound speaker.

The computing system <NUM> can also include one or more connection mechanisms that connect various components within the computing system <NUM>. For example, the computing system <NUM> can include the connection mechanisms represented by lines that connect components of the computing system <NUM>, as shown in <FIG>.

The computing system <NUM> can include one or more of the above-described components and can be configured or arranged in various ways. For example, the computing system <NUM> can be configured as a server and/or a client (or perhaps a cluster of servers and/or a cluster of clients) operating in one or more server-client type arrangements, such as a partially or fully cloud-based arrangement, for instance.

The hub station <NUM> can take the form of a computing system, such as the computing system <NUM>. In some cases, some or all of these entities can take the form of a more specific type of computing system.

<FIG> depicts diagrams of radio transmission energy levels on different channels. For example, in <FIG>, the radio transmission energy levels <NUM> for each channel <NUM> are illustrated.

For each channel <NUM>, the radio transmission levels <NUM> span between -<NUM> dB and <NUM> dB. It should be understood that this range of radio transmission levels <NUM> is for illustrative purposes and should not be construed as limiting. In other implementations, the range for the radio transmission levels <NUM> can span lower than -<NUM> dB, higher than <NUM> dB, or both. Additionally, in <FIG>, the threshold activity level <NUM> is -<NUM> dB. It should be understood that the threshold activity level <NUM> is for illustrative purposes and should not be construed as limiting. In other implementations, the threshold activity level <NUM> can be lower than -<NUM> dB or higher than -<NUM> dB. In some implementations, the threshold activity level <NUM> is programmable.

In other implementations, the threshold activity level <NUM> can be based on historical radio transmission levels <NUM>. For example, historically, if radio transmission levels <NUM> on the channels <NUM> are consistently above -<NUM> dB, the threshold activity level <NUM> can be raised to reduce the amount of times channel switching is initiated. However, historically, if radio transmission levels <NUM> on the channels <NUM> are consistently below -<NUM> dB, the threshold activity level <NUM> can be lowered to increase the amount of times channel switching is initiated and ensure that the hub station <NUM> selects the channel <NUM> with the least amount of jamming activity.

Referring to the channel 106A in <FIG>, the radio transmission energy 132A can be monitored and measured (e.g., recorded) at six different clock cycles. For example, the radio transmission energy 132A for the channel 106A is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132A for the channel 106A is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132A for the channel 106A is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132A for the channel 106A is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132A for the channel 106A is approximately -<NUM> dB at clock cycle (t-<NUM>), and the radio transmission energy 132A for the channel 106A is approximately -<NUM> dB at clock cycle (t). At clock cycle (t-<NUM>), the moving average of the radio transmission energy 132A for the last five clock cycles satisfies (e.g., is greater than) -<NUM> dB. For example, the channel activity level moving average 134A is greater than the threshold activity level <NUM>. As a result, the channel switching operation described with respect to <FIG> is initiated.

Referring to the channel 106B in <FIG>, the radio transmission energy 132A can be monitored and measured (e.g., recorded) at six different clock cycles. For example, the radio transmission energy 132B for the channel 106B is approximately -<NUM> dB at each clock cycle (t-<NUM>, t-<NUM>, t-<NUM>, t-<NUM>, t-<NUM>, and <NUM>). Thus, at clock cycle (t-<NUM>), the moving average of the radio transmission energy 132B for the last five clock cycles satisfies (e.g., is less than) -<NUM> dB. For example, the channel activity level moving average 134B is less than the threshold activity level <NUM>. As a result, the channel 106B is a viable channel for the hub station <NUM> to select.

Referring to the channel 106C in <FIG>, the radio transmission energy 132C can be monitored and measured (e.g., recorded) at six different clock cycles. For example, the radio transmission energy 132C for the channel 106C is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132C for the channel 106C is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132C for the channel 106C is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132C for the channel 106C is approximately -<NUM> dB at clock cycle (t-<NUM>), the radio transmission energy 132C for the channel 106C is approximately -<NUM> dB at clock cycle (t-<NUM>), and the radio transmission energy 132C for the channel 106C is approximately -<NUM> dB at clock cycle (t). Thus, at clock cycle (t-<NUM>), the moving average of the radio transmission energy 132C for the last five clock cycles satisfies (e.g., is less than) -<NUM> dB. For example, the channel activity level moving average 134C is less than the threshold activity level <NUM>. As a result, the channel 106C is a viable channel for the hub station <NUM> to select.

In one implementation, because both channels 106B, 106C are viable channels, the hub station <NUM> can select the channel with the lowest channel activity level moving average <NUM> (e.g., the channel 106B). In another implementation, because channels 106B, 106C are viable channels, the hub station <NUM> can select the channel that is most compatible with communications between the hub station <NUM> and the low-energy devices <NUM>.

Additionally, referring to the channel 106A in <FIG>, a return to primary channel threshold activity level <NUM> is depicted. For example, in <FIG>, the threshold activity level <NUM> is -<NUM> dB. It should be understood that the return to primary channel threshold activity level <NUM> is for illustrative purposes and should not be construed as limiting. In other implementations, the return to primary channel threshold activity level <NUM> can be different (e.g., lower or higher). After the hub station <NUM> switches to one of the other channels 106B, 106C in response to the radio transmission energy 132A for the channel 106A (or the channel activity level moving average 134A) raising above the threshold activity level <NUM>, the hub station <NUM> can switch back to the channel 106A in response to the radio transmission energy 132A for the channel 106A (or the channel activity level moving average 134A) falling below the return to primary channel threshold activity level <NUM>. Using the return to primary channel threshold activity level <NUM> to trigger the hub station <NUM> switching back to the channel 106A prevents frequent channel switching when the radio transmission energy 132A for the channel 106A (or the channel activity level moving average 134A) is near the threshold activity level <NUM>.

<FIG> is a flow chart illustrating an example method <NUM>. The method <NUM> can be carried out by a communication system, such as the communication system <NUM>, or by a hub station, such as the hub station <NUM>.

The method <NUM> includes monitoring, by a hub station, a first channel activity level associated with a first channel of a plurality of channels within a particular frequency range, at block <NUM>. The hub station communicates with a low-energy device using the first channel. For example, referring to <FIG>, the hub station <NUM> can monitor the channel activity level 130A associated with the channel 106A of the plurality of channels 106A, 106B, 106C within a particular frequency range. The hub station <NUM> communicates with the low-energy device 104A using the channel 106A.

The method <NUM> also includes determining, by the hub station, that the first channel activity level satisfies a threshold activity level, at block <NUM>. For example, referring to <FIG>, the hub station <NUM> determines that the channel activity level 130A satisfies (e.g., is greater than) the threshold activity level <NUM>.

The method <NUM> also includes switching, by the hub station, to a second channel of the plurality of channels to communicate with the low-energy device, at least in part, in response to determining that the first channel activity level satisfies the threshold activity level, at block <NUM>. For example, referring to <FIG>, the hub station <NUM> switches to the second channel 106B of the plurality of channels 106A, 106B, 106C to communicate with the low-energy device 104A, at least in part, in response to determining that the channel activity level 130A satisfies (e.g., is greater than) the threshold activity level <NUM>.

The method <NUM> also includes notifying the low-energy device that the hub station switched to the second channel by sending an acknowledgement message to the low-energy device on the second channel in response to receiving a message from the low-energy device on the second channel, at block <NUM>. The message is sent to the hub station on the second channel after at least one unsuccessful attempt to send the message to the hub station on the first channel. For example, referring to <FIG>, the hub station <NUM> notifies the low-energy device 104A that the hub station <NUM> switched to the channel 106B by sending the acknowledgement message <NUM> to the low-energy device 104A on the channel 106B in response to receiving the message 164A from the low-energy device 104A on the channel 106B. The message 164A is sent to the hub station <NUM> (from the low-energy device 104A) on the channel 106B after at least one unsuccessful attempt to send the message 164A to the hub station <NUM> on the channel 106A.

According to one implementation, the method <NUM> includes monitoring, by the hub station, a second channel activity level associated with the second channel. For example, referring to <FIG>, the hub station <NUM> can monitor the channel activity level 130B associated with the channel 106B. The method <NUM> can also include determining, by the hub station, that the second channel activity level fails to satisfy the threshold activity level. For example, referring to <FIG>, the hub station <NUM> can determine that the channel activity level 130B fails to satisfy (e.g., is less than or equal to) the threshold activity level. In this implementation, the hub station switches to the second channel in response to determining that the second channel activity level fails to satisfy the threshold activity level.

According to one implementation, the method <NUM> includes monitoring, by the hub station, a second channel activity level associated with the second channel. For example, referring to <FIG>, the hub station <NUM> can monitor the channel activity level 130B associated with the channel 106B. The method <NUM> can also include determining, by the hub station, that the second channel activity level is lower than the first channel activity level. For example, referring to <FIG>, the hub station <NUM> can determine that the channel activity level 130B is lower than the channel activity level 130A. In this implementation, the hub station switches to the second channel in response to determining that the second channel activity level is lower than the first channel activity level.

According to one implementation of the method <NUM>, the first channel activity level corresponds to a level of radio transmission energy on the first channel. According to one implementation of the method <NUM>, the first channel activity level corresponds to a moving average of channel activity levels on the first channel. The moving average of channel activity levels can be based on channel activity level measurements on the first channel for five consecutive clock cycles.

According to one implementation of the method <NUM>, the low-energy device remains in an idle state absent detection of a wake-up event. The message can be sent to the hub station, from the low-energy device, in response to the wake-up event. According to one implementation of the method <NUM>, the low-energy device corresponds to a motion sensor. According to other implementations of the method <NUM>, the low-energy device corresponds to a keypad or an entry sensor.

According to one implementation of the method <NUM>, an unsuccessful attempt to send the message to the hub station on the first channel occurs when the low-energy device fails to receive the acknowledgment message from the hub station on the first channel. According to one implementation of the method <NUM>, the message is sent to the hub station on the second channel after two unsuccessful attempts, by the low-energy device, to send the message to the hub station on the first channel. For example, the hub station may monitor radio transmission energy levels on the different channels during a brief monitoring period. During the monitoring period, the low-energy device may wake up and attempt to send a message to the hub station on the first channel (e.g., a primary channel). Because the hub station is monitoring radio transmission energy levels on different channels, the attempt may be unsuccessful. As a result of the unsuccessful attempt, the hub station may lose the message transmitted by the low-energy device. The low-energy device can retransmit the message after an acknowledgement period. After the monitoring period, the hub station can return to normal operation on the first channel, receive the retransmitted message from the low-energy device, and send an acknowledgement to the low-energy device. Thus, to ensure that message is not lost, the acknowledgment period is greater than the monitoring period.

According to one implementation of the method <NUM>, the hub station bypasses, in response to switching to the second channel, sending a notification to the low-energy device that the hub station switched to the second channel. According to one implementation of the method <NUM>, the low-energy device sends messages to the hub station on the second channel after receiving the acknowledgment message.

According to one implementation, the method <NUM> includes monitoring, by the hub station, the first channel activity level after switching to the second channel. For example, referring to <FIG>, the hub station <NUM> can monitor the channel activity level 130A after switching to the channel 106B. The method <NUM> can also include switching back to the first channel to communicate with the low-energy device in response to determining that the first channel activity level is lower than a second channel activity level associated with the second channel. For example, referring to <FIG>, the hub station <NUM> can switch back to the channel 106A to communicate with the low-energy device 104A in response to determining that the channel activity level 130A is lower than the channel activity level 130B associated with the channel 106B.

According to one implementation, the method <NUM> includes monitoring, by the hub station, the first channel activity level after switching to the second channel. For example, referring to <FIG>, the hub station <NUM> can monitor the channel activity level 130A after switching to the channel 106B. The method <NUM> can also include switching back to the first channel to communicate with the low-energy device in response to determining that the first channel activity level fails to satisfy the threshold activity level. For example, referring to <FIG>, the hub station <NUM> can switch back to the channel 106A to communicate with the low-energy device 104A in response to determining that the channel activity level 130A fails to satisfy (e.g., is less than or equal to) the threshold activity level <NUM>. In this implementation, the first channel is a primary channel that has a higher compatibility rating, associated with communications between the hub station and the low-energy device, than the second channel.

According to one implementation of the method <NUM>, the plurality of channels includes the first channel, the second channel, and at least one other channel. The hub station is configurable to communicate with the low-energy device using any channel in the plurality of channels. According to one implementation, when the hub station monitors the first channel activity level, channel activity levels associated with other channels of the plurality of channels are unmonitored by the hub station. According to one implementation of the method <NUM>, the particular frequency range correspond to a frequency range under one gigahertz (GHz). According to one implementation of the method <NUM>, the threshold activity level is programmable.

The method <NUM> of <FIG> provides the hub station <NUM> with the agility to quickly switch channels <NUM> without notifying the low-energy devices <NUM> of the switch. For example, the hub station <NUM> can monitor (e.g., listen on) the channels <NUM> to select a channel <NUM> that does not have consistent radio energy (e.g., jamming). After selecting the channel <NUM>, instead of directly notifying the low-energy devices <NUM>, the low-energy devices <NUM> will find the channel <NUM> (e.g., the frequency) to which the hub station <NUM> moved by sending messages to the hub station <NUM> on different channels and awaiting an acknowledgment message. Thus, if the hub station <NUM> frequently switches between multiple channels <NUM>, battery power can be conserved at the low-energy devices <NUM> because the hub station <NUM> bypasses sending channel switching notifications to the low-energy devices <NUM>, which would cause the low-energy devices to "wake-up". As a result, the low-energy devices <NUM> can remain in a low-energy mode until detecting a wake-up event.

Additional methods <NUM>, <NUM> are disclosed with respect to <FIG> and <FIG>. According to the method <NUM> of <FIG>, the hub station <NUM> listen for messages on the primary channel 106A if radio transmission energy 132A on the primary channel 106A is less than a threshold level. Thus, according to the method <NUM> of <FIG>, if the radio transmission energy 132A on the primary channel is below a threshold level, the hub station <NUM> listens for messages on the primary channel 106A regardless of whether the radio transmission energy 132B on the secondary channel 106B is less than the radio transmission energy 132A on the primary channel 106A. It may be beneficial to switch to the primary channel 106A because the primary channel 106A may have a higher compatibility rating, associated with communications between the hub station <NUM> and the low-energy devices <NUM>, than the secondary channel 106B.

However, according to the method <NUM> of <FIG>, the hub station <NUM> listens for messages on whichever channel <NUM> has the lowest radio transmission energy <NUM>. Thus, according to the method <NUM> of <FIG>, one channel 106A may not present improved compatibility than the other channel 106B. As a result, it may be beneficial to switch to whichever channel <NUM> has the lowest radio transmission energy <NUM>.

<FIG> is a flow chart illustrating another example method <NUM>. The method <NUM> can be carried out by a communication system, such as the communication system <NUM>, or by a hub station, such as the hub station <NUM>.

According to the method <NUM>, at block <NUM>, a hub station monitors a radio transmission energy level on a primary channel. For example, referring to <FIG>, the hub station <NUM> monitors the radio transmission energy 132A on the channel 106A.

At decision block <NUM>, the hub station determines if the radio transmission energy level on the primary channel greater than a threshold. For example, referring to <FIG>, the hub station <NUM> determines whether the radio transmission energy 132A on the channel 106A is greater than the threshold activity level <NUM>.

If the radio transmission energy level on the primary channel is not greater than the threshold, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station listens for messages on the primary channel. For example, referring to <FIG>, the hub station <NUM> listens for messages <NUM> from the low-energy devices <NUM> on the channel 106A.

At decision block <NUM>, the hub station determines whether a message from a low-energy device been received on the primary channel. For example, referring to <FIG>, hub station <NUM> determines whether a message <NUM> has been received from one of the low-energy devices <NUM> on the channel 106A.

If a message from the low-energy device has not been received on the primary channel, at decision block <NUM>, the method <NUM> moves back to block <NUM>. However, if a message from the low-energy device has been received on the primary channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station sends an acknowledgment message to the low-energy device on the primary channel. For example, referring to <FIG>, if the message 164A from the low-energy device 104A has been received by the hub station <NUM> on the channel 106A, the hub station <NUM> sends the acknowledgment message <NUM> to the low-energy device 104A on the channel 106A. After sending the acknowledgment message, at block <NUM>, the method <NUM> moves back to block <NUM>.

If the radio transmission energy level on the primary channel is greater than the threshold, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station switches to a secondary channel having a lower radio transmission energy level than the threshold. For example, referring to <FIG>, the hub station <NUM> switches to the channel 106B (assuming that the radio transmission energy 132B on the channel 106B is lower than the threshold activity level <NUM>).

At block <NUM>, the hub station listens for messages on the secondary channel. For example, referring to <FIG>, the hub station <NUM> listens for messages <NUM> from the low-energy devices <NUM> on the channel 106B.

At decision block <NUM>, the hub station determines whether a message from a low-energy device been received on the secondary channel. For example, referring to <FIG>, the hub station <NUM> determines whether a message <NUM> has been received from one of the low-energy devices <NUM> on the channel 106B.

If a message from the low-energy device has not been received on the secondary channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station remains on the secondary channel and periodically monitors the radio transmission energy level on the primary channel. For example, referring to <FIG>, the hub station <NUM> remains on the channel 106B and periodically monitors the radio transmission energy 132A on the channel 106A.

However, if a message from the low-energy device has been received on the secondary channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station sends an acknowledgment message to the low-energy device on the secondary channel. For example, referring to <FIG>, if the message 164A from the low-energy device 104A has been received by the hub station <NUM> on the channel 106B, the hub station <NUM> sends the acknowledgment message <NUM> to the low-energy device 104A on the channel 106B. After sending the acknowledgment message, at block <NUM>, the method <NUM> moves to block <NUM>.

If the radio transmission energy level on the primary channel is not greater than the threshold, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station switches to the primary channel. For example, referring to <FIG>, the hub station <NUM> switches back to the channel 106A. After the hub station switches back to the primary channel, at block <NUM>, the method <NUM> moves back to block <NUM>. If the radio transmission energy level on the primary channel is greater than the threshold, at decision block <NUM>, the method <NUM> moves to block <NUM>.

The method <NUM> of <FIG> provides the hub station <NUM> with the agility to quickly switch from a primary channel 106A to a secondary channel 106B based on whether the primary channel 106A has consistent radio energy (e.g., jamming). Thus, according to the method <NUM> of <FIG>, hub station <NUM> reverts back to the primary channel 106A if the radio energy on the primary channel 106A is less than a threshold, regardless of whether the secondary channel 106B has less radio energy than the primary channel 106A. It may be beneficial to switch (e.g., revert back) to the primary channel 106A because the primary channel 106A may have a higher compatibility rating, associated with communications between the hub station <NUM> and the low-energy devices <NUM>, than the secondary channel 106B.

According to the method <NUM>, at block <NUM>, a hub station monitors a first radio transmission energy level on a first channel and a second radio transmission energy level on a second channel. For example, referring to <FIG>, the hub station <NUM> monitors the radio transmission energy 132A on the channel 106A and the radio transmission energy level 132B on the channel 106B.

At decision block <NUM>, the hub station determines if the second radio transmission energy level is less than the first radio transmission energy level. For example, referring to <FIG>, the hub station <NUM> determines whether the radio transmission energy 132B is less than the radio transmission energy 132A.

If the second radio transmission energy level on the second channel is not less than the first radio transmission energy level on the first channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station listens for messages on the first channel. For example, referring to <FIG>, the hub station <NUM> listens for messages <NUM> from the low-energy devices <NUM> on the channel 106A.

At decision block <NUM>, the hub station determines whether a message from a low-energy device been received on the first channel. For example, referring to <FIG>, hub station <NUM> determines whether a message <NUM> has been received from one of the low-energy devices <NUM> on the channel 106A.

If a message from the low-energy device has not been received on the first channel, at decision block <NUM>, the method <NUM> moves back to block <NUM>. However, if a message from the low-energy device has been received on the first channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station sends an acknowledgment message to the low-energy device on the first channel. For example, referring to <FIG>, if the message 164A from the low-energy device 104A has been received by the hub station <NUM> on the channel 106A, the hub station <NUM> sends the acknowledgment message <NUM> to the low-energy device 104A on the channel 106A. After sending the acknowledgment message, at block <NUM>, the method <NUM> moves back to block <NUM>.

If the second radio transmission energy level on the second channel is less than the first radio transmission energy level on the first channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station switches to a second channel. For example, referring to <FIG>, the hub station <NUM> switches to the channel 106B.

At block <NUM>, the hub station listens for messages on the second channel. For example, referring to <FIG>, the hub station <NUM> listens for messages <NUM> from the low-energy devices <NUM> on the channel 106B.

At decision block <NUM>, the hub station determines whether a message from a low-energy device been received on the second channel. For example, referring to <FIG>, the hub station <NUM> determines whether a message <NUM> has been received from one of the low-energy devices <NUM> on the channel 106B.

If a message from the low-energy device has not been received on the second channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station remains on the second channel and periodically monitors the first and second radio transmission energy levels. For example, referring to <FIG>, the hub station <NUM> remains on the channel 106B and periodically monitors the radio transmission energy 132A on the channel 106A and the radio transmission energy 132B on the channel 106B.

However, if a message from the low-energy device has been received on the second channel, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station sends an acknowledgment message to the low-energy device on the second channel. For example, referring to <FIG>, if the message 164A from the low-energy device 104A has been received by the hub station <NUM> on the channel 106B, the hub station <NUM> sends the acknowledgment message <NUM> to the low-energy device 104A on the channel 106B. After sending the acknowledgment message, at block <NUM>, the method <NUM> moves to block <NUM>.

If the second radio transmission energy level on the second channel is not less than the first radio transmission energy level, at decision block <NUM>, the method <NUM> moves to block <NUM>. At block <NUM>, the hub station switches to the first channel. For example, referring to <FIG>, the hub station <NUM> switches back to the channel 106A. After the hub station switches back to the first channel, at block <NUM>, the method <NUM> moves back to block <NUM>. If the second radio transmission energy level is less than the first radio transmission energy level, at decision block <NUM>, the method <NUM> moves to block <NUM>.

The method <NUM> of <FIG> provides the hub station <NUM> with the agility to quickly switch from a first channel 106A to a second channel 106B based on whether the first channel 106A has consistent radio energy (e.g., jamming). According to the method <NUM> of <FIG>, the hub station <NUM> listens for messages on whichever channel <NUM> has the lowest radio transmission energy <NUM> because one channel 106A may not present improved compatibility than the other channel 106B. As a result, it may be beneficial to switch to whichever channel <NUM> has the lowest radio transmission energy <NUM>.

<FIG> is a flow chart illustrating another example method <NUM>. The method <NUM> can be carried out by a communication system, such as the communication system <NUM>, or by a low-energy device, such as the low-energy device 104A or the low-energy device 104B.

According to the method <NUM>, at block <NUM>, a low-energy device transmits a message to a hub station using a current channel. For example, referring to <FIG>, the low-energy device 104A transmits the message 164A to the hub station <NUM> using the channel 106A.

At block <NUM>, the low-energy device waits for an acknowledgment message from the hub station. For example, referring to <FIG>, the low-energy device 104A waits for the acknowledgment message <NUM> from the hub station <NUM> in response to sending the message 164A.

At decision block <NUM>, the low-energy device determines whether the acknowledgment message was receiving during an acknowledgment period. For example, referring to <FIG>, the low-energy device 104A determines whether the acknowledgment message <NUM> was received from the hub station <NUM> during a time period (e.g., an acknowledgment period) after transmitting the message 164A. If the acknowledgment message was received during the acknowledgment period, at decision block <NUM>, the method <NUM> continues to block <NUM>. At block <NUM>, the low-energy device stays on the current channel and enters into a low-power mode. However, if the acknowledgement message was not received during the acknowledgment period, at block <NUM>, the method <NUM> continues to block <NUM>.

At block <NUM>, the low-energy device transmits a message to a hub station using a current channel. For example, referring to <FIG>, the low-energy device 104A retransmits the message 164A to the hub station <NUM> using the channel 106A.

At block <NUM>, the low-energy device waits for an acknowledgment message for the retransmitted message from the hub station. For example, referring to <FIG>, the low-energy device 104A waits for the acknowledgment message <NUM> from the hub station <NUM> in response to sending the message 164A.

At decision block <NUM>, the low-energy device determines whether the acknowledgment message for the retransmitted message was receiving during an acknowledgment period. For example, referring to <FIG>, the low-energy device 104A determines whether the acknowledgment message <NUM> was received from the hub station <NUM> during a time period (e.g., an acknowledgment period) after retransmitting the message 164A. If the acknowledgment message was received during the acknowledgment period, at decision block <NUM>, the method <NUM> continues to block <NUM>. However, if the acknowledgement message was not received during the acknowledgment period, at block <NUM>, the method <NUM> continues to block <NUM>.

At block <NUM>, the low-energy device switches to a different channel and different channel becomes the new "current channel". For example, referring to <FIG>, the low-energy device 104A switches to the channel 106B and the channel 106B becomes the new current channel (e.g., the channel that the low-energy device 104A uses to communicate with the hub station <NUM>). After switching, at block <NUM>, the method <NUM> returns to block <NUM> and the low-energy device transmits the message to the hub station using the new current channel.

Although some of the acts and/or functions described in this disclosure have been described as being performed by a particular entity, the acts and/or functions can be performed by any entity, such as those entities described in this disclosure. Further, although the acts and/or functions have been recited in a particular order, the acts and/or functions need not be performed in the order recited. However, in some instances, it can be desired to perform the acts and/or functions in the order recited. Further, each of the acts and/or functions can be performed responsive to one or more of the other acts and/or functions. Also, not all of the acts and/or functions need to be performed to achieve one or more of the benefits provided by this disclosure, and therefore not all of the acts and/or functions are required.

Although certain variations have been discussed in connection with one or more examples of this disclosure, these variations can also be applied to all of the other examples of this disclosure as well.

Claim 1:
A method comprising:
monitoring, by a hub station, a first channel activity level associated with a first channel of a plurality of channels within a particular frequency range, wherein the hub station communicates with a low-energy device using the first channel;
determining, by the hub station, that the first channel activity level satisfies a threshold activity level;
switching, by the hub station, to a second channel of the plurality of channels to communicate with the low-energy device, at least in part, in response to determining that the first channel activity level satisfies the threshold activity level; and
notifying the low-energy device that the hub station switched to the second channel by sending an acknowledgment message to the low-energy device on the second channel in response to receiving a message from the low-energy device on the second channel, wherein the message is sent to the hub station on the second channel after at least one unsuccessful attempt to send the message to the hub station on the first channel.