bluetooth_mesh.models¶
-
class
bluetooth_mesh.models.Model(element)[source]¶ Base class for mesh models.
-
MODEL_ID= (None, None)¶
-
OPCODES= []¶
-
async
bind(app_key_index)[source]¶ Bind to application key with index app_key_index.
You probably don’t want to call this directly, see
Model.subscribe()instead.- Parameters
app_key_index (
int) –- Return type
ModelBindStatus
- Returns
A tuple of: - unicast address of the element the bound model belongs to - index of the bound application key - class object of the bound model
-
async
bulk_query(requests, statuses, *, send_interval=0.5, progress_callback=None, timeout=5.0)[source]¶ Bulk query
- Parameters
requests (
Mapping[Hashable,Callable[[],Awaitable[None]]]) –statuses (
Mapping[Hashable,Future]) –send_interval (
float) –progress_callback (
Optional[Callable[[Hashable,Any,Mapping,Mapping],None]]) –timeout (
float) –
- Return type
Mapping[Hashable,Any]
-
expect_app(source, app_index, destination, opcode, params)[source]¶ Create an asyncio.Future that gets fulfilled when a specific application message is received.
opcode is the expected message’s numeric opcode, as defined in the mesh spec. See
bluetooth_mesh.messagesfor a list of well-known opcodes.params define the message contents. After a received message is parsed using
bluetooth_mesh.messages.AccessMessage, it’s compared recursively, key-by-key, with params. If all keys match, the future’s result is set to the parsed message. If the keys are not specified, they will be ignored.One can specify wildcards by specifying key value as
typing.Anyor(Ellipsis) - these match with anything, including composite fields.- Parameters
source (
int) – Sender addressapp_index (
int) – Index of the application keydestination (
Union[int,UUID,None]) – Destination addressopcode (
int) – Expected message opcode.params (
Mapping[str,Any]) – Expected message parameters.
- Return type
Future
-
expect_dev(source, net_index, opcode, params)[source]¶ Create an asyncio.Future that gets fulfilled when a specific device message is received.
Unlike application keys, device keys are bound to all subnets, so you need to explicitly provide net_index.
See
expect_app()- Parameters
source (
int) – Sender addressnet_index (
int) – Index of the network keyopcode (
int) – Expected message opcode.params (
Mapping[str,Any]) – Expected message parameters.
- Return type
Future
-
async
query(request, status, *, send_interval=0.1, timeout=2.0)[source]¶ Query
- Parameters
request (
Callable[[],Awaitable[None]]) –status (
Future) –send_interval (
float) –timeout (
float) –
- Return type
Any
-
async
repeat(request, *, retransmissions=6, send_interval=0.05)[source]¶ Application retransmissions
- Parameters
request (
Callable[[],Awaitable]) –retransmissions (
int) –send_interval (
float) –
-
async
send_app(destination, app_index, opcode, params)[source]¶ Send a message using an application key.
- Parameters
destination (
int) – Destination addressapp_index (
int) – Index of the application keyopcode (
int) – Message opcode.params (
Mapping[str,Any]) – Message parameters.
-
async
send_dev(destination, net_index, opcode, params)[source]¶ Send a message using a device key.
destination determines which device key is going to be used. For local destinations, the key is always known, but if destination is a remote node, the caller must first import its device key using
import_remote_node().Unlike application keys, device keys are bound to all subnets, so you need to explicitly provide net_index.
See
send_app()- Parameters
destination (
int) – Destination addressnet_index (
int) – Index of the network keyopcode (
int) – Message opcode.params (
Mapping[str,Any]) – Message parameters.
-
async
subscribe(app_keys, subscription_address, callback)[source]¶ Subscribe to messages sent to subscription_address and encrypted with either of application keys
This method ensures that the application key is bound to the model.
This causes callback to be called whenerver such message is received.
- Parameters
app_keys (
Sequence[Tuple[int,int,ForwardRef]]) –subscription_address (
int) –callback (
Callable[[int,Union[int,UUID],int,Mapping[str,Any]],None]) –
- Return type
ModelSubscriptionStatus
- Returns
A tuple of: - unicast address of the element the bound model belongs to - subscription address (usually a group address) - class object of the bound model
-
async
unsubscribe()[source]¶ Unubscribe from messages sent to subscription_address and encrypted with application key with index app_key_index.
This method ensures that the application key is bound to the model.
This causes callback to be called whenerver such message is received.
- Return type
ModelSubscriptionStatus
- Returns
A tuple of: - unicast address of the element the bound model belongs to - subscription address (usually a group address) - class object of the bound model
-