---
name: "bluetoothctl-monitor"
section: "1"
platform: "linux"
package: "bluez-utils"
version: "5.87-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/bluetoothctl-monitor"
---

# bluetoothctl-monitor(1)

Monitor Submenu

## Name

bluetoothctl-monitor - Monitor Submenu

## SYNOPSIS

**bluetoothctl** \[--options\] \[monitor.commands\]

This submenu configures advertisement monitors using the **[org.bluez.AdvertisementMonitor(5)](/org.bluez.AdvertisementMonitor/5.md)** and **[org.bluez.AdvertisementMonitorManager(5)](/org.bluez.AdvertisementMonitorManager/5.md)** interfaces.

## Monitor Commands

### set-rssi-threshold

Set RSSI threshold parameter

- **Usage**

  **\> set-rssi-threshold \<low\_threshold\> \<high\_threshold\>**

- **\<low\_threshold\>**

  Lower RSSI threshold value in dBm for monitoring

- **\<high\_threshold\>**

  Higher RSSI threshold value in dBm for monitoring

- **Example Set low threshold to -80 dBm and high threshold to -40 dBm**

  ```
  > set-rssi-threshold -80 -40
  ```

- **Example Set low threshold to -70 dBm and high threshold to -30 dBm**

  ```
  > set-rssi-threshold -70 -30
  ```

- **Example Set very sensitive low threshold and moderate high threshold**

  ```
  > set-rssi-threshold -90 -50
  ```

- **Example Set less sensitive thresholds for close range monitoring**

  ```
  > set-rssi-threshold -60 -20
  ```

### set-rssi-timeout

Set RSSI timeout parameter

- **Usage**

  **\> set-rssi-timeout \<low\_timeout\> \<high\_timeout\>**

- **\<low\_timeout\>**

  Timeout value in seconds for low RSSI threshold

- **\<high\_timeout\>**

  Timeout value in seconds for high RSSI threshold

- **Example Set low timeout to 5 seconds, high timeout to 10 seconds**

  ```
  > set-rssi-timeout 5 10
  ```

- **Example Set quick timeout response for both thresholds**

  ```
  > set-rssi-timeout 1 5
  ```

- **Example Set longer timeout periods for stable monitoring**

  ```
  > set-rssi-timeout 10 30
  ```

- **Example Set asymmetric timeout values**

  ```
  > set-rssi-timeout 3 15
  ```

### set-rssi-sampling-period

Set RSSI sampling period parameter

- **Usage**

  **\> set-rssi-sampling-period \<sampling\_period\>**

- **\<sampling\_period\>**

  Sampling period in 100ms units (0-255, where 0 means report all, 255 means report only first)

- **Example Set sampling period to 100ms (1 unit)**

  ```
  > set-rssi-sampling-period 1
  ```

- **Example Set sampling period to 500ms (5 units)**

  ```
  > set-rssi-sampling-period 5
  ```

- **Example Set sampling period to 1 second (10 units)**

  ```
  > set-rssi-sampling-period 10
  ```

- **Example Report all advertisements (no sampling)**

  ```
  > set-rssi-sampling-period 0
  ```

- **Example Report only first advertisement**

  ```
  > set-rssi-sampling-period 255
  ```

### add-or-pattern

Register 'or pattern' type monitor with the specified RSSI parameters

Each pattern requires 3 arguments: \<start\_position\> \<ad\_data\_type\> \<content\_of\_pattern\> Multiple patterns can be specified to create an OR condition.

- **Usage**

  **\> add-or-pattern \<start\_pos\> \<ad\_type\> \<content\> \[start\_pos ad\_type content ...\]**

- **Uses**

  **[org.bluez.AdvertisementMonitorManager(5)](/org.bluez.AdvertisementMonitorManager/5.md)** method **RegisterMonitor**

- **\<start\_pos\>**

  Byte position in advertisement data where pattern matching starts (0-based)

- **\<ad\_type\>**

  Advertisement data type (e.g., 9 for Complete Local Name, 1 for Flags)

- **\<content\>**

  Hexadecimal pattern content to match

- **Example Monitor for "Samsung" in Complete Local Name (type 9)**

  ```
  > add-or-pattern 0 9 53616d73756e67
  ```

- **Example Monitor for devices with Flags type (type 1) containing 0x06**

  ```
  > add-or-pattern 0 1 06
  ```

- **Example Monitor for two different patterns (OR condition)**

  ```
  > add-or-pattern 0 9 53616d73756e67 0 9 4170706c65
  ```

- **Example Monitor for specific manufacturer data (type 255)**

  ```
  > add-or-pattern 0 255 4c000215
  ```

### get-pattern

Get advertisement monitor

- **Usage**

  **\> get-pattern \<monitor-id/all\>**

- **\<monitor-id/all\>**

  Monitor ID number to retrieve details for, or "all" for all active monitors

- **Example Get details of monitor ID 0**

  ```
  > get-pattern 0
  ```

- **Example Get details of monitor ID 1**

  ```
  > get-pattern 1
  ```

- **Example Get details of monitor ID 5**

  ```
  > get-pattern 5
  ```

- **Example Get details of all active monitors**

  ```
  > get-pattern all
  ```

### remove-pattern

Remove advertisement monitor

- **Usage**

  **\> remove-pattern \<monitor-id/all\>**

- **Uses**

  **[org.bluez.AdvertisementMonitorManager(5)](/org.bluez.AdvertisementMonitorManager/5.md)** method **UnregisterMonitor**

- **\<monitor-id/all\>**

  Monitor ID number to remove, or "all" to remove all active monitors

- **Example Remove monitor with ID 0**

  ```
  > remove-pattern 0
  ```

- **Example Remove monitor with ID 1**

  ```
  > remove-pattern 1
  ```

- **Example Remove monitor with ID 3**

  ```
  > remove-pattern 3
  ```

- **Example Remove all active advertisement monitors**

  ```
  > remove-pattern all
  ```

### get-supported-info

Get advertisement manager supported features and supported monitor types

- **Usage**

  **\> get-supported-info**

- **Uses**

  **[org.bluez.AdvertisementMonitorManager(5)](/org.bluez.AdvertisementMonitorManager/5.md)** properties

- **Example Display supported monitor features and types**

  ```
  > get-supported-info
  ```

### print-usage

Print the command usage

- **Usage**

  **\> print-usage \<add-or-pattern\>**

- **\<add-or-pattern\>**

  Command name to display detailed usage information for

- **Example Show detailed usage for add-or-pattern command**

  ```
  > print-usage add-or-pattern
  ```

## RESOURCES

\<http://www.bluez.org\>

## REPORTING BUGS

\<linux-bluetooth@vger.kernel.org\>

## Copyright

Free use of this software is granted under the terms of the GNU Lesser General Public Licenses (LGPL).
