Bluetooth Low Energy
The Bluetooth Low Energy component is called BLE. It handles bluetooth services of a device. The Bluetooth Low Energy component uses BLE as RPC namespace and provides the methods:
BLE.GetConfigto obtain the component's configurationBLE.SetConfigto update the component's configurationBLE.GetStatusto obtain the component's statusBLE.StartPairingto enable pairing mode (since 2.0.0)BLE.StopPairingto disable pairing mode (since 2.0.0)BLE.ListPairedDevicesto list bonded devices (since 2.0.0)BLE.DeletePairedDeviceto remove a bonded device (since 2.0.0)BLE.AdvertiseOnceto trigger a one-time BLE advertisement (since 2.0.0)
It uses the key ble when enumerated in objects including multiple component payloads, like Shelly.GetStatus.
BLE Security and Bonding
(Since firmware 2.0.0)
RPC over Bluetooth requires pairing for all devices (except during the initial setup window). The device uses GATT security with encryption and authentication for all BLE RPC connections.
To use BLE RPC outside the initial setup window:
- Enable the RPC service by setting
rpc.enabletotruein the configuration - Call
BLE.StartPairingto allow new devices to bond
Bonding (Pairing)
The device supports bonding with up to 20 BLE clients. Bonding establishes a trusted relationship between the Shelly device and a BLE client, storing encryption keys for future connections.
Bonding process:
- Client initiates a connection to the Shelly device
- Device uses "Just Works" pairing method
- Upon successful pairing, bond information is stored on both devices
- Subsequent connections from the bonded client are automatically authenticated
Bond storage limits:
- Maximum of 20 bonded devices
- When the limit is reached, new bonding attempts will fail until an existing bond is removed
- Bonds persist across device reboots
- Factory reset clears all stored bonds
Provisioning Integration
During the device provisioning window, pairing is not required for BLE RPC connections:
pendingandconfirmedstates: RPC connections are accepted without pairingcompleteandlockedstates: Pairing is enforced for all BLE RPC connections
This allows initial device setup via Bluetooth without requiring pairing, while ensuring security once the device is fully provisioned.
Observer
Observer is obsoleted as of 1.5.0-beta1. Since 1.5.0-beta1 observer functionality is automatic using the Enhanced Scan Manager.
To support Shelly Bluetooth peripheral devices, the BLE component can act as a perpetual BT LE Observer. When enabled via the observer.enable configuration flag, the device will run a constant passive Bluetooth LE scan. The observer functionality is applicable for the CloudRelay and BTHome features.
Enabling the observer relay functionality might impact BLE advertisement scanner in scripts. A requested interval and window for scanning in scripting might get adjusted to allow for the coexistence of both functionalities.
Observer is not applicable for battery-operated devices.
CloudRelay
CloudRelay is a feature of the BLE component supporting Shelly BLU devices managed by the Shelly Cloud relaying received advertisement packets to Shelly Cloud service, to enable scene triggers. It publicly exports List and ListInfos methods, while other functions are internal only. Prior to 1.5.0-beta1 CloudRelay functionality required the Bluetooth Observer to be enabled. Since 1.5.0-beta1 necessary functionality is enabled automatically if needed.
CloudRelay is not supported on Gen 4 devices in Zigbee mode.
Bluetooth Scan
Shelly devices hardware supports only one running Bluetooth scan at a given moment, but several device features require using such scan and a scan manager is needed. The scan manager serves as an arbiter of the scan requests and clients can request receiving the results of the scan. Currently Bluetooth Cloud Relay, BTHome and the Scripts BLE Scanner can act as Scan Manager clients. The Scan Manager was rewritten and improved since 1.5.0-beta1. The Scan Manager interface itself is not exposed externally but the two implementaions introduce some differences in the behavior of clients.
Bluetooth Scan is not supported on Gen 4 devices in Zigbee mode.
ScanManager
Effective prior to 1.5.0-beta1This Scan Manager is based on the concept of scan owner. The first client requesting a Bluettoth scan becomes the owner and further requests will fail, but the clients can subscribe for events of the currently running scan. The owner is cleared when the scan ends. The owner also determines the scan options and they cannot be changed until ownership is released. With this Scan Manager Cloud Relay and BTHome share the scan with the Observer functionality and Scripts compete for the scan.
Enhanced Scan Manager
Effective since 1.5.0-beta1This Scan Manager effectively is the owner of the scan and it starts and stops it as needed. Clients request delivery of scan events and the manager keeps track and tries to satisfy all requests, starting a scan and merging the options supplied with each request effectively applying the most aggressive combination. A client needs to submit a scan request and cannot just subscribe to existing scan. With this Scan Manager Cloud Relay and BTHome transparently for the user submit scan requests when needed and share the same scan options. In Scripts each script can submit a scan request with the BLE.Scanner.start method and receive scan events after subscribing. The Scan Manager will adjust the scan parameters according to the options supplied and its merge algorithm. In some cases if there are more than one scan requests the effective scan options may be different from the requested.
Date/Time Broadcast
Effective since 2.0.0-beta1Some BLU devices need to be time-aware and need a method to automatically sync their internal clock to the correct wall time. To make this possible, Shellies which have BTHome devices registered, or are enrolled as a Cloud BLE Gateway for any BLU devices will periodically send a "current time" beacon message. The message includes information about the current date, time and timezone settings in a manufacturer-specific AD structure with Manufacturer ID 0xFCD2, with the following format, where all multi-byte numbers are little-endian:
| Offset | Length | Type | Meaning |
|---|---|---|---|
| 0 | 1 | byte | 0x0d, Time and Timezone info block identifier |
| 1 | 4 | uint32 | Current UNIX timestamp |
| 5 | 4 | int32 | Standard timezone UTC offset, seconds |
| 9 | 4 | uint32 | UNIX timestamp of DST start for current year |
| 13 | 4 | uint32 | UNIX timestamp of DST end for current year |
| 17 | 4 | int32 | DST shift in seconds |
Scan Options
| Property | Type | Description |
|---|---|---|
| number | duration of the scan in ms, |
| boolean | start an active scan if |
| number | scan interval in ms. Defaults to 241. |
| number | scan window in ms. Defaults to 61 in Scripts. |
since 1.5.0-beta1| Property | Type | Description |
|---|---|---|
| number | RSSI threshold for delivered scan results, filtered to those with RSSI greater than the threshold. Defaults to |
Scan Filters
since 2.0.0Available on Gen3, Gen4 and Pro devices.
Exposed only in scripts through the BLE.Scanner.start
| Property | Type | Description | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| array of filter objects | Collection of filters to match against. Match is done by the Scanner and only matching results are delivered to clients. Each client can specify its own filters. A match is considered when any of the filters matches. A single filter maches when all of its conditions are satisfied. Omitted conditions are considered
|
Methods
BLE.SetConfig
Parameters:
| Property | Type | Description |
|---|---|---|
| object | Configuration that the method takes |
Find more about the config properties in config section
BLE.GetConfig
Find the BLE.GetConfig response properties in config section
BLE.GetStatus
Find more about the status response properties in status section
BLE.CloudRelay.List
Returns a list of MAC adresses for the devices managed by the Cloud.
Request:
The method doesn't take any paramters.
Response:
| Property | Type | Description |
|---|---|---|
| number | Internal revision of the list |
| array of strings | The list of MAC addresses for the managed devices |
BLE.CloudRelay.ListInfos
Returns extended information about data received from the devices managed by the Cloud. The response is paginated.
Request:
| Property | Type | Description |
|---|---|---|
| number | optional offset of the first item to return, defaults to |
Response:
| Property | Type | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| number | Unix timestamp of the repsonse | ||||||||||||||||||||||||
| number | Offset in the list of the first item in the current page | ||||||||||||||||||||||||
| number | Number of items in the current page | ||||||||||||||||||||||||
| number | Total number of items in the list | ||||||||||||||||||||||||
| array of objects |
|
BLE.StartAssociations
Available since 2.0.0.
This is a new method which implements generic mechanism to associate a bluetooth device with a Shelly device. Currently it is used only in Shelly BLU Gateway Gen3 and supports Shelly BLU TRV. It can be extended to support other devices. Usually the result of this method would be creating a dynamic component in the host device, corresponding to the requested target device, but implementing other behavior is also possible.
Request:
| Property | Type | Description |
|---|---|---|
| number | required Target device bluetooth model ID. The method will trigger the behavior specific for this target. It will also accept |
| any | optional Parameter passed to the target specific implementation. |
| number | optional Max discovery duration, seconds. Defaults to 30 if not provided. |
| number | optional Defaults to -80 if not provided. |
Response:
null on success or error
StartAssociations will add a status entry when active and will emit status change notifications on start and end.
AssociationsStarted status change:
{"ble_assoc":{"duration":30,"started_at":1729259344}}
AssociationsEnded status change:
{"ble_assoc":null}
BLE.StartBluTrvAssociations
As of 2.0.0 this method is deprecated and replaced with the new more general method BLE.StartAssociations. It is kept for backward compatibility but new implementations should use the new method and where possible this method should be replaced with the new, since it may be removed in a future release.
Available only on devices that support BLUTRV devices. Currently Shelly BLU Gateway Gen3
Associate BLUTRV device with the gateway or associate already associated BLUTRV device with BTHome temperature and/or window sensors (BLUHT, BLUDW) which can either be existing or will be added.
Request:
| Property | Type | Description |
|---|---|---|
| number | optional If not specified discover and associate new BLUTRV device with the gateway or Id of the BluTrv component instance to perform sensor associations (device doesn't need to be in pairing mode in this case) |
| number | optional Max discovery duration, seconds. Defaults to 30 if not provided. |
| number | optional Defaults to -80 if not provided. |
Response:
null on success or error
StartBluTrvAssociations will add a status entry when active and will emit status change notifications on start and end.
AssociationsStarted status change:
{"blutrv_assoc":{"duration":30,"started_at":1729259344}}
AssociationsEnded status change:
{"blutrv_assoc":null}
BLE.StartPairing
(Since firmware version 2.0.0)
Enables pairing mode on the device, allowing BLE clients to bond with the device.
Request:
| Property | Type | Description |
|---|---|---|
| number | Duration in seconds for which pairing mode will be enabled. Defaults to |
Response:
| Property | Type | Description |
|---|---|---|
| number | The actual timeout value applied |
When pairing is started, the device will emit a status change notification:
{"pairing":{"started_at":1729259344,"duration":30}}
BLE.StopPairing
(Since firmware version 2.0.0)
Disables pairing mode on the device.
Request:
The method takes no parameters.
Response:
null on success
When pairing is stopped, the device will emit a status change notification:
{"pairing":null}
BLE.ListPairedDevices
(Since firmware version 2.0.0)
Returns a list of all BLE devices that are bonded with the Shelly device.
Request:
The method takes no parameters.
Response:
An array of objects, each containing:
| Property | Type | Description |
|---|---|---|
| string | MAC address of the bonded device |
| number | Unix timestamp when the bond was created |
| number | Unix timestamp of last access (connection) |
BLE.DeletePairedDevice
(Since firmware version 2.0.0)
Removes a bonded device from the device's bond storage.
Request:
| Property | Type | Description |
|---|---|---|
| string | MAC address of the bonded device to delete. Required |
Response:
null on success or error
BLE.AdvertiseOnce
(Since firmware version 2.0.0)
Triggers a single one-time BLE advertisement using the device's user advertising slot. The advertisement is transmitted once for approximately 3 seconds, then automatically stops. This method preempts any currently active advertisement.
The user advertising slot is shared with scripts. This method is available on all mains-powered devices (scripting support enabled).
The Flags AD structure is automatically prepended to adv_data by the firmware. Do not include a Flags entry in adv_data or scan_rsp.
Request:
| Property | Type | Description |
|---|---|---|
| string | Hex-encoded binary advertisement data. Must not include a Flags AD entry - default flags are prepended automatically. Maximum effective payload is 28 bytes (31 bytes total minus 3 bytes for auto-prepended flags). Required |
| string | Hex-encoded binary scan response data. Maximum 31 bytes. Optional |
Response:
null on success or error
Configuration
The configuration of the Bluetooth Low Energy component controls the RPC service over Bluetooth.
(Since 2.0.0) The enable property has been removed. Bluetooth scanning now auto-activates when needed by scripts, BLU gateway, or BTHome, and automatically stops when no longer needed. Only the rpc.enable property remains to allow device control over the Bluetooth RPC channel.
| Property | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
| object | Configuration of the rpc service
|
as of 1.6.0-beta1| Property | Type | Description |
|---|---|---|
| boolean | When set to |
Obsoleted as of 1.5.0-beta1| Property | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
| object | Configuration of the BT LE observer
|
Runtime change of bluetooth status introduced with 1.6.0-beta1 is handled transparently in BTHome, Cloud Relay and Scripts stopping and starting initiated bluetooth scans as needed.
Status
| Property | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| string | The device's Bluetooth MAC address with type suffix: | |||||||||
| array of strings | (Since 2.0.0) When Bluetooth is active, contains one or more of: | |||||||||
| object | (Since 2.0.0) Present only when pairing mode is active
| |||||||||
| object | BluTrvAssociations information, present only when associations are active
|
Events
(Since firmware version 2.0.0)
The BLE component emits the following notification events related to pairing:
paired_device_added
Emitted when a new BLE device has been successfully bonded.
{
"component": "ble",
"event": "paired_device_added",
"info": {
"addr": "AA:BB:CC:DD:EE:FF",
"ctime": 1729259400,
"atime": 1729259400
}
}
paired_device_removed
Emitted when a bonded device is removed (via BLE.DeletePairedDevice).
{
"component": "ble",
"event": "paired_device_removed",
"info": {
"addr": "AA:BB:CC:DD:EE:FF",
"ctime": 1729259400,
"atime": 1729259500
}
}
Examples
BLE.GetStatus example
- BLE.GetStatus HTTP GET Request
- BLE.GetStatus Curl Request
- BLE.GetStatus Mos Request
http://192.168.33.1/rpc/BLE.GetStatus
curl -X POST -d '{"id":1,"method":"BLE.GetStatus"}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.GetStatus
Response when Bluetooth is idle:
Response
- BLE.GetStatus HTTP GET Response
- BLE.GetStatus Curl Response
- BLE.GetStatus Mos Response
{
"addr": "44:17:93:ce:3f:08,p"
}
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": {
"addr": "44:17:93:ce:3f:08,p"
}
}
{
"addr": "44:17:93:ce:3f:08,p"
}
Response when Bluetooth is active:
Response
- BLE.GetStatus HTTP GET Response
- BLE.GetStatus Curl Response
- BLE.GetStatus Mos Response
{
"addr": "44:17:93:ce:3f:08,p",
"flags": [
"scanning",
"advertising"
]
}
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": {
"addr": "44:17:93:ce:3f:08,p",
"flags": [
"scanning",
"advertising"
]
}
}
{
"addr": "44:17:93:ce:3f:08,p",
"flags": [
"scanning",
"advertising"
]
}
BLE.GetConfig example
- BLE.GetConfig HTTP GET Request
- BLE.GetConfig Curl Request
- BLE.GetConfig Mos Request
http://192.168.33.1/rpc/BLE.GetConfig
curl -X POST -d '{"id":1,"method":"BLE.GetConfig"}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.GetConfig
Response
- BLE.GetConfig HTTP GET Response
- BLE.GetConfig Curl Response
- BLE.GetConfig Mos Response
{
"rpc": {
"enable": true
}
}
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": {
"rpc": {
"enable": true
}
}
}
{
"rpc": {
"enable": true
}
}
BLE.SetConfig example
- BLE.SetConfig HTTP GET Request
- BLE.SetConfig Curl Request
- BLE.SetConfig Mos Request
http://192.168.33.1/rpc/BLE.SetConfig?config={"rpc":{"enable":true}}
curl -X POST -d '{"id":1,"method":"BLE.SetConfig","params":{"config":{"rpc":{"enable":true}}}}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.SetConfig '{"config":{"rpc":{"enable":true}}}'
Response
- BLE.SetConfig HTTP GET Response
- BLE.SetConfig Curl Response
- BLE.SetConfig Mos Response
{
"restart_required": true
}
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": {
"restart_required": true
}
}
{
"restart_required": true
}
BLE.CloudRelay.List example
- BLE.CloudRelay.List HTTP GET Request
- BLE.CloudRelay.List Curl Request
- BLE.CloudRelay.List Mos Request
http://192.168.33.1/rpc/BLE.CloudRelay.List
curl -X POST -d '{"id":1,"method":"BLE.CloudRelay.List"}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.CloudRelay.List
Response
- BLE.CloudRelay.List HTTP GET Response
- BLE.CloudRelay.List Curl Response
- BLE.CloudRelay.List Mos Response
{
"rev": 8,
"addrs": [
"5c:c7:c1:f0:db:60"
]
}
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": {
"rev": 8,
"addrs": [
"5c:c7:c1:f0:db:60"
]
}
}
{
"rev": 8,
"addrs": [
"5c:c7:c1:f0:db:60"
]
}
BLE.CloudRelay.ListInfos example
- BLE.CloudRelay.ListInfos HTTP GET Request
- BLE.CloudRelay.ListInfos Curl Request
- BLE.CloudRelay.ListInfos Mos Request
http://192.168.33.1/rpc/BLE.CloudRelay.ListInfos
curl -X POST -d '{"id":1,"method":"BLE.CloudRelay.ListInfos"}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.CloudRelay.ListInfos
Response
- BLE.CloudRelay.ListInfos HTTP GET Response
- BLE.CloudRelay.ListInfos Curl Response
- BLE.CloudRelay.ListInfos Mos Response
{
"ts": 1732804839,
"offset": 0,
"count": 1,
"total": 1,
"devices": [
{
"5c:c7:c1:f0:db:60": {
"name": null,
"model": 0,
"sdata": {
"fcd2": "RAAVAWQ6AQ=="
},
"mdata": {},
"last_seen": 1732804835
}
}
]
}
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": {
"ts": 1732804839,
"offset": 0,
"count": 1,
"total": 1,
"devices": [
{
"5c:c7:c1:f0:db:60": {
"name": null,
"model": 0,
"sdata": {
"fcd2": "RAAVAWQ6AQ=="
},
"mdata": {},
"last_seen": 1732804835
}
}
]
}
}
{
"ts": 1732804839,
"offset": 0,
"count": 1,
"total": 1,
"devices": [
{
"5c:c7:c1:f0:db:60": {
"name": null,
"model": 0,
"sdata": {
"fcd2": "RAAVAWQ6AQ=="
},
"mdata": {},
"last_seen": 1732804835
}
}
]
}
BLE.StartAssociations example
- BLE.StartAssociations HTTP GET Request
- BLE.StartAssociations Curl Request
- BLE.StartAssociations Mos Request
http://192.168.33.1/rpc/BLE.StartAssociations?target=8¶m=200&duration=120&rssi_thr=-80
curl -X POST -d '{"id":1,"method":"BLE.StartAssociations","params":{"target":8,"param":200,"duration":120,"rssi_thr":-80}}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.StartAssociations '{"target":8,"param":200,"duration":120,"rssi_thr":-80}'
Response
- BLE.StartAssociations HTTP GET Response
- BLE.StartAssociations Curl Response
- BLE.StartAssociations Mos Response
null
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": null
}
null
BLE.StartBluTrvAssociations example
- BLE.StartBluTrvAssociations HTTP GET Request
- BLE.StartBluTrvAssociations Curl Request
- BLE.StartBluTrvAssociations Mos Request
http://192.168.33.1/rpc/BLE.StartBluTrvAssociations?blutrv_id=200&duration=120&rssi_thr=-80
curl -X POST -d '{"id":1,"method":"BLE.StartBluTrvAssociations","params":{"blutrv_id":200,"duration":120,"rssi_thr":-80}}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.StartBluTrvAssociations '{"blutrv_id":200,"duration":120,"rssi_thr":-80}'
Response
- BLE.StartBluTrvAssociations HTTP GET Response
- BLE.StartBluTrvAssociations Curl Response
- BLE.StartBluTrvAssociations Mos Response
null
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": null
}
null
BLE.StartPairing example
- BLE.StartPairing HTTP GET Request
- BLE.StartPairing Curl Request
- BLE.StartPairing Mos Request
http://192.168.33.1/rpc/BLE.StartPairing?timeout=60
curl -X POST -d '{"id":1,"method":"BLE.StartPairing","params":{"timeout":60}}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.StartPairing '{"timeout":60}'
Response
- BLE.StartPairing HTTP GET Response
- BLE.StartPairing Curl Response
- BLE.StartPairing Mos Response
{
"timeout": 60
}
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": {
"timeout": 60
}
}
{
"timeout": 60
}
BLE.StopPairing example
- BLE.StopPairing HTTP GET Request
- BLE.StopPairing Curl Request
- BLE.StopPairing Mos Request
http://192.168.33.1/rpc/BLE.StopPairing
curl -X POST -d '{"id":1,"method":"BLE.StopPairing"}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.StopPairing
Response
- BLE.StopPairing HTTP GET Response
- BLE.StopPairing Curl Response
- BLE.StopPairing Mos Response
null
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": null
}
null
BLE.ListPairedDevices example
- BLE.ListPairedDevices HTTP GET Request
- BLE.ListPairedDevices Curl Request
- BLE.ListPairedDevices Mos Request
http://192.168.33.1/rpc/BLE.ListPairedDevices
curl -X POST -d '{"id":1,"method":"BLE.ListPairedDevices"}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.ListPairedDevices
Response
- BLE.ListPairedDevices HTTP GET Response
- BLE.ListPairedDevices Curl Response
- BLE.ListPairedDevices Mos Response
[
{
"addr": "AA:BB:CC:DD:EE:FF",
"ctime": 1729259400,
"atime": 1729259500
}
]
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": [
{
"addr": "AA:BB:CC:DD:EE:FF",
"ctime": 1729259400,
"atime": 1729259500
}
]
}
[
{
"addr": "AA:BB:CC:DD:EE:FF",
"ctime": 1729259400,
"atime": 1729259500
}
]
BLE.DeletePairedDevice example
- BLE.DeletePairedDevice HTTP GET Request
- BLE.DeletePairedDevice Curl Request
- BLE.DeletePairedDevice Mos Request
http://192.168.33.1/rpc/BLE.DeletePairedDevice?addr="AA:BB:CC:DD:EE:FF"
curl -X POST -d '{"id":1,"method":"BLE.DeletePairedDevice","params":{"addr":"AA:BB:CC:DD:EE:FF"}}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.DeletePairedDevice '{"addr":"AA:BB:CC:DD:EE:FF"}'
Response
- BLE.DeletePairedDevice HTTP GET Response
- BLE.DeletePairedDevice Curl Response
- BLE.DeletePairedDevice Mos Response
null
{
"id": 1,
"src": "shellyplus1pm-441793ce3f08",
"params": null
}
null
BLE.AdvertiseOnce example
- BLE.AdvertiseOnce HTTP GET Request
- BLE.AdvertiseOnce Curl Request
- BLE.AdvertiseOnce Mos Request
http://192.168.33.1/rpc/BLE.AdvertiseOnce?adv_data="07095368656c6c79"
curl -X POST -d '{"id":1,"method":"BLE.AdvertiseOnce","params":{"adv_data":"07095368656c6c79"}}' http://${SHELLY}/rpc
mos --port ${PORT} call BLE.AdvertiseOnce '{"adv_data":"07095368656c6c79"}'
Response
- BLE.AdvertiseOnce HTTP GET Response
- BLE.AdvertiseOnce Curl Response
- BLE.AdvertiseOnce Mos Response
null
{
"id": 1,
"params": null
}
null