Changes

no edit summary
Line 1: Line 1: −
This page contains instructions on how to use CLI / SSH command '''UBUS''' for scanning and pairing new Bluetooth devices on RUTX.
+
==Introduction==
 +
This page contains instructions on how to use '''ubus''' commands in [[CLI]] / SSH to scan and pair '''Bluetooth''' devices on '''RUTX10/11'''.
    
----
 
----
The '''ubus''' command line tool allows to interact with the '''ubusd''' server (with all currently registered services). It's useful for investigating/debugging registered namespaces as well as writing shell scripts. For calling procedures with parameters and returning responses it uses the user-friendly JSON format. Below is an '''Help output''' of this command:
     −
root@Teltonika-RUTX11:~# ubus
+
The '''ubus''' command line tool allows to interact with the '''ubusd''' server (with all currently registered services). It's useful for investigating/debugging registered namespaces as well as writing shell scripts. For calling procedures with parameters and returning responses it uses the user-friendly JSON format.  
Usage: ubus [<options>] <command> [arguments...]
  −
Options:
  −
-s <socket>:          Set the unix domain socket to connect to
  −
-t <timeout>:          Set the timeout (in seconds) for a command to complete
  −
-S:                    Use simplified output (for scripts)
  −
-v:                    More verbose output
  −
-m <type>:            (for monitor): include a specific message type
  −
                        (can be used more than once)
  −
-M <r|t>              (for monitor): only capture received or transmitted traffic
  −
Commands:
  −
- list [<path>]                        List objects
  −
- call <path> <method> [<message>]    Call an object method
  −
- listen [<path>...]                  Listen for events
  −
- send <type> [<message>]              Send an event
  −
- wait_for <object> [<object>...]      Wait for multiple objects to appear on ubus
  −
- monitor                              Monitor ubus traffic
      
----
 
----
Steps to use '''UBUS''' for Bluetooth on RUTX:
+
Before you start using ubus commands to control Bluetooth, make sure to enable it first. You can do that in '''Network → Bluetooth → General''' settings. Click '''Enable Bluetooth''' and press '''Save & Apply'''.
 +
 
 +
[[File:Networking_rutx_configuration_example_bluetooth_enable_v1.png]]
   −
* Enable Bluetooth in Web UI menu '''Network -> Bluetooth -> General'''. Click ''"Save&Apply"''.
+
*Now login to [[CLI]] or SSH and initialize blesemd, run '''blesemd -D''' command:
 
+
 
* Login using [[CLI]] and run '''scan.start''' command to start Bluetooth scan:
+
...
 +
root@Teltonika-RUTX11:~# blesemd -D
 +
Initializing blesemd...
 +
Warning: debug messages will be shown!
 +
Preparing bluetooth interface...
 +
Reading config...
 +
Devices loaded: 0
 +
Creating database...
 +
modbus_data table already exists
 +
SENT_ID_TABLE already exists
 +
Create DB done
 +
Initializing uloop...
 +
Connecting to ubus...
 +
Initializing BLE device...
 +
Initializing BLE ubus interface...
 +
Adding ubus object...
 +
...
 +
 
 +
*Run '''scan.start''' command to start Bluetooth scan:
   −
  ---
+
  ...
 
  ubus call blesem scan.start
 
  ubus call blesem scan.start
  ---
+
  ...
   −
* To see scan results, use command '''scan.result''':
+
*To see scan results, use command '''scan.result''':
   −
  ---
+
  ...
 
  ubus call blesem scan.result
 
  ubus call blesem scan.result
  ---
+
  ...
   −
Kuri parodys sąrašą tokiu formatu:
+
The scan process takes about 30 seconds. If you can see '''"scanning": 1''' in the output, it means, that scanning is still in progress. After it finishes you should see a similar output:
   −
{  
+
...
 +
{  
 
       "scanning": 0,  
 
       "scanning": 0,  
 
       "devices": [  
 
       "devices": [  
Line 47: Line 52:  
                       "name": "RT_T",  
 
                       "name": "RT_T",  
 
                       "rssi": -72,  
 
                       "rssi": -72,  
                       "address": "FF:CB:FA:6A:23:CB"  
+
                       "address": "FF:CB:FF:6F:23:FB"  
 
               }  
 
               }  
 
       ]  
 
       ]  
}
+
}
 +
...
 +
 
 +
The list of devices always contains '''"rssi"''' and '''"address"''', but '''"name"''' output might be missing if the device is not supported:
 +
 
 +
...
 +
{
 +
      "scanning": 0,
 +
      "devices": [
 +
              { 
 +
                      "rssi": -42,
 +
                      "address": "2F:2A:0A:0A:7A:AA"
 +
              },
 +
              {
 +
                      "name": "RT_T",
 +
                      "rssi": -77,
 +
                      "address": "CF:0A:52:5E:35:D7"
 +
              }
 +
      ]
 +
}
 +
...
 +
 
 +
*In order to pair devices use this command:
 +
 
 +
...
 +
ubus call blesem pair '{"address":"FF:CC:FF:6A:23:CB"}'
 +
...
 +
 
 +
If the pairing process was successful you should see this output:
 +
 
 +
...
 +
{
 +
      "success": "device successfully paired"
 +
}
 +
...
 +
 
 +
*To get the statistics from paired devices, use '''stat''' command:
 +
 
 +
...
 +
ubus call blesem stat '{"address":"FF:CB:FA:6A:23:CB"}'
 +
...
 +
 
 +
You should see similar output:
   −
Skanavimas vyksta apie 30sek., todėl su „scanning“ rodoma ar vis dar yra vykdomas skanavimas. Šiuo atveju, galima užklausinėti „scan.result“ kol „scanning“ = 1.
+
...
 +
{
 +
      "success": "successfully requested status",
 +
      "model": "3901",
 +
      "battery": 98,
 +
      "temperature": "20.34",
 +
      "humidity": 20,
 +
      "firmware": "23",
 +
.
 +
}
 +
...
 +
[[Category:Hardware application]]