Professional Documents
Culture Documents
Fundamental State Model
Fundamental State Model
Mesh Network
The term “mesh network” refers to a type of wireless network topology, where each
network Node participates in the distribution of data across the network, by relaying data to
other Nodes which are in range. There are two primary techniques used to relay data across the
mesh networks, namely routing and flooding. Bluetooth mesh networking uses a specialised
and highly optimized version of flooding called managed flooding.
Routing
Mesh networks which use the routing technique, send data along a selected path, via
specific Nodes to reach its destination. Dedicated devices called routers are responsible for
determining the paths which data must follow. This reliance on routers can give rise to single
points of failure and a network which is not robust or reliable.
Flooding
Mesh networks which use the flooding technique, broadcast data such that it is received by
all Nodes within direct range. They, in turn, relay the received data by broadcasting it again
such that it is received by another set of in-range Nodes. Only Nodes to which the data
was addressed will act upon the data.
Flooding means that messages take multiple paths to reach their destination. There is no
reliance on routers and as such, substantially less risk of the network containing single points of
failure. This makes mesh networks which use flooding, highly reliable.
Managed Flooding
Bluetooth mesh networking leverages the strengths of the flooding approach and optimises its
operation such that it is both reliable and efficient. A number of features of design of Bluetooth
mesh networking, contribute to the efficiency of managed flooding:
TTL – TTL is a field which all Bluetooth mesh PDUs include. It controls the maximum number of
hops, over which a message will be relayed. Setting the TTL allows nodes to exercise control
over relaying and conserve energy, by ensuring messages are not relayed further than is
required. Heartbeat messages allow nodes to determine what the optimum TTL value should be
for each message published.
Message Cache – a Network Message Cache must be implemented by all nodes. The cache
contains all recently seen messages and if a message is found to be in the cache, indicating the
node has seen and processed it before, it is immediately discarded.
Subnets – Subnets are a mechanism which allow a Bluetooth mesh network to be partitioned.
This is primarily for security purposes but it does also have the benefit that messages sent using
a subnet are not relayed beyond that subnet. This conserves energy.
Device
Node
Network
Subnet
Networks may contain one or more subnets. Subnets are intended to allow secure isolation of
different areas such as, for example, individual rooms in a hotel. A Node is a member of a
subnet by virtue of it possessing the subnet’s Network Key. A Node may belong to one or more
subnets by possessing one or more subnet NetKeys.
Element
Elements in General
An Element is an addressable entity within a device. This means that it is some part of a device
which has at least one, independent State value which represents some condition of the
Element. All nodes must have at least one Element. Some Nodes will have multiple Elements. A
composite light switch containing multiple switches might be a Node which has multiple
Elements, for example.
Primary Elements
The Element in a Node which contains the Configuration Server Model, is known as the Primary
Element.
Address
Bluetooth mesh uses a system of various address types to identify individual Elements or sets
of Elements.
Unicast Addresses
Group Addresses
Virtual Addresses
A Virtual Address is an address which may be assigned to one or more Elements, spanning one
or more Nodes. It takes the form of a 128-bit UUID value with which any Element can be
associated, and is much like a label.
This is a special address type, with a value of 0x0000. Its use indicates that an Element has not
yet been configured or had a Unicast Address assigned to it.
Publish Address
An address used as the destination to which messages are published is termed the Publish
Address. A Publish Address may be a Unicast Address, a pre-configured Group Address or a
Virtual Address.
Destination (DST)
Source
TTL
TTL stands for Time To Live and is a field in mesh network PDUs. Its purpose is to control
whether or not a received message should be relayed, and to limit the total number of hops over
which a message is ultimately relayed within the network. A value of zero indicates that a
message has not been relayed and should not be relayed. This means that a node can send a
message to other nodes which are in direct radio range (Neighbors) and indicate that receiving
node(s) should not relay the message. If a message is sent with a TTL of 2 or more, then each
time it is relayed, the TTL value is decremented. A value of 1 then means that the message may
have been relayed at least once, but that it should not be relayed again.
Neighbors
The Nodes that are in direct radio range (i.e. a single hop away), are known as Neighbors.
Feature
Features define some of the most fundamental functionality of a Node. All Nodes have the
ability to transmit and receive mesh Messages. Nodes can also optionally support one or more
additional features, of which the following are currently defined. Note that a feature may be
enabled or disabled on a particular device.
The ability to receive and retransmit mesh Messages over the advertising bearer to enable
larger networks. A Node that supports the Relay feature and has the Relay feature enabled is
known as a Relay Node.
The ability to receive and retransmit mesh Messages between GATT and advertising bearers.
A Node that supports the Proxy feature and has the Proxy feature enabled is known as a
Proxy Node.
The Low Power Feature
The ability to operate within a mesh network at significantly reduced receiver duty cycles when
working in conjunction with a Node supporting the Friend feature. A Node that supports the Low
Power feature and has the Low Power feature enabled is known as a Low Power Node (LPN).
The ability to help a Node supporting the Low Power feature to operate efficiently, by
storing Messages destined for that Node and only delivering them when the Low Power
Node polls the Friend Node. A Node that supports the Friend feature and has the Friend feature
enabled is known as a Friend Node. The relationship between the Friend and the Low Power
Node is known as Friendship.
Model
There are three broad categories of model; Server, Client and Controller.
A model may extend another model. Models which do not extend other models are called “root
models”. Changing a model by adding or removing a behavior is not permitted. The correct
response to new requirements is to extend the existing model.
The simplest generic model is the Generic OnOff Server Model. It defines a single State, called
Generic OnOff, which may have a value of 0x00 representing Off or 0x01 representing On. The
model defines four types of Message. The four Messages are:
Models defined by the Bluetooth SIG are known as SIG Models. Vendors may define their own
models too and these are known as Vendor Models.
Configuration Model
There are numerous ways in which a mesh network device may be configured and this is
represented by the Statesdefined by the Configuration Server Model. For example, the Secure
Network Beacon state indicates whether or not the node is broadcasting as a Secure Network
Beacon, the Friend state indicates support or otherwise for the Friend Feature and the AppKey
List contains the list of Application Keys for applications this node is associated with. The
Configuration Server Model allows the configuration of such State values via the Configuration
Client Model.
Composition Data
Application
Mesh applications use the mesh network and some combination of one or more client, server
and/or controller Modelsto provide user level functionality, typically involving related types of
device. So for example, a mesh lighting application might involve the Generic OnOff Server
Model and the Generic OnOff Client Model for controlling simple lights, plus the Generic Level
Server Model and the Generic Level Client Model for controlling dimmable lights.
State
A State represents the condition of some aspect of an Element together with some associated
behaviors. For example, a simple light bulb node which contains a Primary Element only, might
support the Generic OnOff Model which includes the Generic OnOff State. This State defines a
value of 0x00 which indicates that the light bulb is currently OFF and 0x01 which means that it is
ON.
States may be multi-dimensional. For example, the Light HSL state combines Hue, Lightness
and Saturation state values into a single State.
Characteristic
Property
Characteristic values are deemed to be either scalar values or non-scalar values. In either case,
the raw value of a property must be interpretted according to certain rules. Non-scalar values
are simply interpretted according to the associated characteristic’s Format field in its definition.
Scalar values are interpretted by applying an equation to each of the characteristic’s fields,
involving a series of parameters that are defined for each of the characteristic’s fields
individually. The equation used is:
R = C * M * 10d * 2b
where:
R = represented value
C = raw value
M = multiplier
d = decimal exponent
b = binary exponent
States involved in mesh operations are inferred from the opcode of the mesh message whereas
Properties are explicitly referenced by a property ID in property related messages such as the
Generic User Property Get message.
State Transition
Changes from one State to another are called State Transitions. Various things can trigger a
State Transition. A “set message” arriving and being processed at an Element would probably
cause a State Transition. Implementations may trigger State Transitions as a consequence of
asynchronous actions such as, for example, an action being triggered by a local timer. Physical
interactions with a device by a user, such as pressing a button, might also cause a State
Transition.
State transitions may take place instantaneously or may take a period of time to complete. The
time it takes for a Stateto transition from one state value to another target state value is called
the Transition Time.
State Binding
Models may define relationships between one State, and another whereby a change to the first
state will give rise to a defined change in the other state. The relationship between these two
states and the definition of the changes that one may trigger in the other, is called a State
Binding. State Bindings may exist between States in the same model or different models. One
State may be bound to multiple, other States.
Time State
The Time State represents the current time in terms of the present TAI time, the TAI-UTC
Delta and local time zone offset. It plays a key role in the execution of Scenes.
Time Authority
Time Authority is a bit field within the Time State. When set to 1, this indicates that
the Element has access to a reliable source of time. The reliable time source may be an
external source, such as GPS or NTP or be a real time clock, integral to the Element or its
parent Node.
A Node may play various roles in propagating time across the mesh and the particular role
played by a node is indicated by the Time Role State. A node which plays the role of Mesh Time
Client, processes received Time Status messages but does not publish them.
A Node may play various roles in propagating time across the mesh and the particular role
played by a node is indicated by the Time Role State. A node which plays the role of Mesh Time
Relay, both publishes Time Status messages and processes received Time Status messages.
TAI
The International Atomic Time, the time standard which Bluetooth mesh times are based upon.
TAI-UTC Delta
UTC
Message
Control Message
Control Messages are a type of mesh Message which are concerned with the operation of the
mesh network. Examples include Heartbeat messages and Friend Request messages. Control
Messages are processed in the Upper Transportand Lower Transport layers of the mesh
protocol stack.
Acknowledged Message
unacknowledged message
Mesh Beacon
Mesh beacons are packets advertised periodically by nodes and unprovisioned devices. The
mesh beacon payload is contained within a Bluetooth GAP AD Type called the Mesh Beacon
AD Type. See the Bluetooth Core Specification Supplement for more information on AD Types
in general.
Currently, two types of mesh beacon are defined; the Unprovisioned Device Beacon and the
Secure Network Beacon.
The Unprovisioned Device Beacon allows a Provisioner to discover the device and initiate
the Provisioning procedure.
The Secure Network Beacon is used to indicate the security status of a Node with respect to a
particular Subnet the node is a member of, regarding the IV Update and Key Refresh security
procedures.
Status Message
Idempotence
An operation which produces the same result when executed once or multiple times is said to
be idempotent. Mesh Acknowledged Messages must be associated with idempotent operations.
Publish / Subscribe
Messages sent and received across the mesh network conform to a publish-subscribe model of
communication.
Sending messages from one node to a set of one or more other nodes is referred to as
Publishing. Configuring a node to receive certain messages is known as Subscribing.
Nodes may publish unsolicited messages or may publish messages in reply to other messages.
The list of Publish Addresses a node has subscribed to is stored in a Subscription List which is
part of the Configuration Server Model. Addresses in the Subscription List are used to select or
filter out messages received.
Server
In a mesh network, an Element which is a Server, implements a server model and has one or
more items of State which may be subject to State Transitions. State Transitions may be
triggered by Messages received from Clients.
Client
In a mesh network, a Client is an Element which implements a client model and which sends
messages to a Server. Unlike a Server, a Client does not have State.
Control Model
A Control Model implemented by an Element gives it the ability to act as both a Client, with the
ability to communicate with other, compatible Servers, and a Server, able to communicate with
other, compatible Clients. Control Models may include control logic which specifies the rules for
coordinating the interactions between the Control Model and other client and server models.
Bearer
A Bearer is a communications system or protocol stack which is used to transport data between
end points on behalf of another system or protocol stack. The bearer is usually described or
depicted as sitting underneath and providing services to, another stack which sits above it. As
an example, the Wireless Application Protocol, an early mobile internet technology, could be
used over a choice of several different bearers, including SMS and GPRS. Bluetooth mesh may
be used over either of two bearers, the Advertising Bearer or the GATT Bearer.
Advertising Bearer
One of the available bearers in the Bluetooth mesh stack. This bearer makes use of Bluetooth
GAP advertising and scanning to receive Messages and broadcast Messages from / to
other Nodes.
GATT Bearer
One of the available bearers in the Bluetooth mesh stack. This bearer allows a device which
does not support the Advertising Bearer to communicate indirectly with nodes of a mesh
network which do, using a protocol known as the Proxy Protocol. A node which is able to relay
mesh messages between nodes which use the Advertising Bearer and nodes which use the
GATT Bearer is known as a Proxy Node.
Proxy Protocol PDUs are sent by a GATT Bearer Client by writing to a GATT Characteristic in
the Proxy Node called the Mesh Proxy Data In characteristic. PDUs are received by a GATT
Bearer Client as notification messages relating to the GATT Mesh Proxy Data Out
characteristic.
The Mesh Provisioning Service is a GATT service, implemented by a Proxy Node, which
supports those Proxy Protocol PDUs concerned with Provisioning.
Proxy Client
The Mesh Proxy Service, in common with all GATT services defines a client role and a server
role. A Bluetooth device which connects to and interacts with a node which implements the
Mesh Proxy Service is said to be the Proxy Client with respect to its interaction with the other
device, which is referred to in this context as the Proxy Server.
Proxy Server
The Mesh Proxy Service, in common with all GATT services defines a client role and a server
role. A Bluetooth mesh proxy node which implements the Mesh Proxy Service is said to be the
Proxy Server with respect to its interaction with a connected GATT client, which is referred to in
this context as the Proxy Client.
Proxy Clients can exercise fine control over precisely what network traffic they receive by
configuring a filter which the Proxy Server applies. Proxy configuration messages are
exchanged between a Proxy Client and Proxy Server and allow the configuration of the proxy
filter.
Proxy Filter
Proxy Clients can control what network traffic they receive by configuring a filter which the Proxy
Server applies. This filter is called a proxy filter. Filters take the form of white lists and black lists
and they each specify lists of destination addresses. Addresses in the list may be any mix of the
supported address types, namely unicast, group or virtual addresses. Messages with
destination addresses not included in a white list filter are dropped by the Proxy Server’s proxy
filter. Similarly, messages with destinations which are included in black list filters are dropped.
Proxy configuration messages are exchanged between the Proxy Client and Proxy Server and
allow the configuration of the proxy filter. .
Node Identity
Node Identity is the name of a field which is included in the Service Data field within advertising
packets broadcast by Bluetooth mesh proxy nodes. Its value is derived from a combination of
the Proxy node’s Unicast Address and a network identifier, such as the network ID for one of the
subnets it is enabled on.
Heartbeat
Nodes can be configured to send a message known as a Heartbeat message, periodically. The
purpose of the Heartbeat message is to indicate to other nodes that the node sending the
Heartbeat message is still active and to allow its distance from the recipient to be determined, in
terms of the number of hops needed to deliver the Heartbeat message.
Heartbeat behavior is configured using the Configuration Server Model. Amongst other things, it
is possible to configure the address to which Heartbeat messages must be sent (typically
a Group Address), the frequency with which a Heartbeat message must be sent and whether to
send heartbeat messages indefinitely or for a limited and specified number of times.
Heartbeat messages contain and retain unchanged, the initial TTL set by the heartbeat
originator. This allows recipients to determine how many hops it took for the message to arrive
and therefore to optimise messages they subsequently address to the heartbeat source node by
setting the TTL to a value no higher than it needs to be.
Friend Request
A Friend Request is a type of Control Message which is sent by a Low Power Node to initiate
the finding of a Friend.
More Data
MD is an acronym which stands for More Data and is the name of a single bit field, found within
Access Layer PDUs to indicate to a low power node (LPN) that the Friend which sent the
message has at least one more message to send.
Scene
A Scene is a stored collection of States which may be recalled and made current by the receipt
of a given message or at a specified time. Scenes are identified by a 16-bit Scene Number,
which is unique within the mesh network.
Scenes make it easy for entire environments, such as a room, to have each of its mesh nodes,
its lights, heating system, air conditioning system and so on, all switch to a predefined,
complimentary state, in a single, coordinated action.
Scene Register
The Scene Register is an array of 17 memorized Scene Numbers with the first array member at
index position zero, containing the Scene Number of the currently active Scene or a value of
0x0000 if no Scene is active. The other array members contain the Scene Number of a
memorized Scene or the value 0x0000 if no Scene is memorized in that member of the Scene
Register array.
Security Keys
The Bluetooth mesh specification defines two main types of security key; Network Keys
(NetKeys) and Application Keys (AppKeys) plus a special type of AppKey, known as Device
Keys (DevKeys).
Each Node possesses a unique DevKey. Only the node which the DevKey belongs to plus
a Provisioner know the DevKey, which is used to secure communication between the node and
the Provisioner.
Network ID
A Network ID is a unique, public identifier derived from a Network Key. Its purpose is to enable
the fast and efficient lookup of network keys for use in authentication and encryption operations.
Key Index
NetKeys and AppKeys are too long to be transported in single segment messages. To make
messaging as efficient as possible therefore, keys are allocated a globally unique 12-bit index
value known as the Key Index and which acts as a short identifier for the key. Messages include
key index values which may be referenced against key lists maintained by Configuration Clients.
Key Bindings
Application Keys may be used within a single network only. As such, there is an association
between an Application Key and a Network Key. This association is known as a Key Binding.
IV Index
The IV (Initialisation Vector) Index is a 32-bit value which is shared by all Nodes in a network. Its
purpose is to provide entropy (randomness) in the calculation of message Nonce values. It is
updated by the IV Update procedure.
Nonce
A Nonce is a number which may only be used once. In communications security, a nonce can
be used as a way of safeguarding against replay attacks since copies of old communications
cannot be reused without detection. In a Bluetooth mesh network, each time a message is
encrypted, it is given a new nonce value. The nonce has various parts to it, including a
sequence number and a value known as the IV Index. The IV Index gets changed whenever
required, to ensure that Nonce values cannot wrap round and be repeated. See the IV
Update procedure.
IV Update
Nonce values must be unique. The sequence number inside a nonce must not be allowed to
wrap around, therefore. The IV Index serves this purpose. Whenever a node determines that it
is at risk of exhausting its sequence number values within a maximum of 96 hours, or if it
determines that another node is in this situation, it initiates the IV Update procedure, which
causes a new IV Index value to be selected and used for subsequent communication. During
execution of the IV Update procedure, both the old and new IV Index values are accepted.
Key Refresh
If the security of any one or more of a mesh network’s network or application keys is deemed
compromised or at risk of compromise then the Key Refresh Procedure is used to generate and
distribute replacement keys. A prime example of keys being compromised concerns the removal
of a node from the network. If, for example, a mesh light was faulty and disposed of, then the
keys it contains could in theory be harvested and used in what is known as a “trash can attack”.
To address the risk of trash can attacks, a Node Removal Procedure is defined. Node Removal
includes triggering of the Key Refresh Procedure.
All Nodes must implement a cache which stores all recently seen messages. If a message, on
being processed by the network layer, is found to be in the Network Message Cache, it is
immediately discarded. This helps optimise performance and energy utilisation of the Node and
of the mesh network overall.
Provisioning
“Provisioning” is the process by which a device is added to a mesh network. After being
provisioned, a device is referred to as a Node.
Step 1. Beaconing
An unprovisioned device which is not yet in the process of being provisioned indicates its
availability to be provisioned by advertising as an Unprovisioned Device beacon.
Step 2. Invitation
The Provisioner and the device to be provisioned, exchange their public keys, either directly or
using an Out Of Band (OOB) method.
Step 4. Authentication
During the authentication step, the device to be provisioned outputs a random, single or multi-
digit number to the user in some form, using an action appropriate to its capabilities. For
example, it might flash an LED a number of times. The user enters the digit(s) output by the new
device into the Provisioner and a cryptographic exchange takes place between the two devices,
involving the random number, to complete the authentication of each of the two devices to the
other.
After authentication has successfully completed, a session key is generated and used to secure
the subsequent distribution of the data required to complete the provisioning process, including
the NetKey.
Provisioner
A Provisioner is a device which is able to add another device to the network. As such, it is
responsible for generating and distributing NetKeys. It is expected that Provisioners will typically
be smartphone or tablet applications. Other implementations are possible, however.
Network Interface
A special network interface, the Local Interface is defined and allows the sending of messages
between Elements in the same Node.
Input Filter
An instance of a Network Interface has an associated input filter which decides whether or not a
message, received via a particular Bearer should be delivered to the Network Layer.
Outut Filter
An instance of a Network Interface has an associated output filter which decides whether or not
a message, received from the Network Layer should be passed to a Bearer or if instead it
should be dropped.
System Architecture
Model Layer
The Model Layer is concerned with the implementation of Models and as such, the
implementation of behaviors, Messages, States, State Bindings and so on, as defined in one or
more model specifications.
Access Layer
The Access Layer of the Bluetooth mesh protocol stack is responsible for defining how
applications can make use of the Upper Transport Layer. This includes defining the format of
application data, defining and controlling the encryption and decryption process which is
performed in the Upper Transport Layer and verifying that data received from the Upper
Transport Layer is for the right network and application, before forwarding the data up the stack.
The Upper Transport Layer of the Bluetooth mesh protocol stack is responsible for the
encryption, decryption and authentication of application data passing to and from the Access
Layer. It also has responsibility for transport control Messages, which are internally generated
and sent between the upper transport layers on different peer Nodes. These
include Messages related to Friendship and Heartbeats.
The Lower Transport Layer takes PDUs from the Upper Transport Layer and sends them to the
Lower Transport Layer on a peer device. Where required, it performs segmentation and
reassembly of PDUs. For longer packets, which will not fit into a single Transport PDU, the
Lower Transport Layer will perform segmentation, splitting the PDU into multiple Transport
PDUs. The receiving Lower Transport Layer on the other device, will reassemble the segments
into a single Upper Transport Layer PDU and pass this up the stack.
Network Layer
Bearer Layer
The Bearer Layer defines how PDUs are transported between nodes using an underlying
Bluetooth Low Energy stack. Currently, two bearers are defined, the Advertising Bearer and
the GATT Bearer.
Limits
32767 Elements in a mesh network
A Node that is away from a network for longer than 48 weeks must be reprovisioned
State Models:
Bluetooth® mesh networking creates new opportunities for interacting with your environment,
whether you’re making your home or office smarter using intelligent lighting, heating/cooling,
and security systems, or enhancing the efficiency of an industrial wireless sensor network
(IWSN). Bluetooth mesh networking provides the foundation you need to create truly large-scale
device networks, allowing you to enable tens, hundreds, or even thousands of wireless devices
to reliably and securely communicate with each other. This article takes a deeper look into the
fundamental concepts behind this innovative network topology.
Nodes
Imagine a network made up of thousands of devices, each communicating via Bluetooth Low
Energy (LE) short-burst wireless connections. These devices on a Bluetooth mesh network are
called nodes. Each node sends and receives messages. Information may be relayed from node
to node, enabling messages to travel greater distances than radio waves normally allow. This
web of nodes (Figure 1) may be spread across manufacturing facilities, office buildings,
shopping centers, business campuses, and more.
Bluetooth mesh nodes are diverse and capable of facilitating any number of roles within the
mesh network. Light fixtures, machinery, security cameras, smoke detectors, and environmental
sensors are just a few examples of roles a node can fulfill.
Elements
Some nodes, such as sensors, run off batteries while other nodes, like light fixtures,
manufacturing machinery, and security cameras, draw power from the main grid. Some nodes
have more processing power than others. These nodes can take on more complex tasks within
the mesh network, assuming different roles and possessing any of the following four node
features.
Low-Power Feature: Power constrained nodes may use the low-power feature to reduce radio-
on time and conserve power. Low-power nodes (LPNs) work in conjunction with friend nodes.
Friend Feature: Nodes without power constraints are great candidates for being friend nodes.
Friend nodes store incoming messages and security updates destined for LPNs; when the LPN
requests these messages, the friend node delivers the stored information to the LPN.
Relay Feature: Relay nodes receive and retransmit messages, enabling a larger network as
messages are relayed from node to node. Depending on power source and computational
ability, a node may take on this feature.
Proxy Feature: Proxy nodes enable transmitting and receiving mesh messages between GATT
and Bluetooth mesh nodes. A node with this role needs a solid power source and computational
resources.
Some nodes are more complicated than others and consist of multiple independent parts called
elements. Each node has at least one element, known as the primary element, and may have
additional elements (Figure 3). Elements are composed of entities that define a nodes’
functionality and the condition of the element. A light bulb, for example, has one element with
two functions:
1. On/Off
2. Brightness
Condition/State of Element
1. On or Off
2. 0 – 10 (Brightness Level)
Figure 2 – Nodes must have at least one element and may have multiple elements.
Each element within a node has a unique address known as a unicast address, enabling each
element to be addressable. We’ll explain addressing in a later part of the Bluetooth Mesh
Networking Series.
FEATURED WEBINAR
What Makes Bluetooth Mesh So Disruptive?
Watch our on-demand webinar to discover how Bluetooth mesh is disrupting building
automation, wireless sensor networks, asset tracking, and more.
Using our light bulb example, the model’s functionality is On/Off and Brightness. The associated
states are On/Off and 0-10 respectively:
Bluetooth mesh supports composite states, which are states composed of two or more values.
A color changing lamp is an example, as the hue may change independently of color saturation
or brightness.
The term bound states is defined as when a change in one state causes a change in another
state. A common binding is between level states and On/Off states. If the level changes from 0
to 1 then the On/Off state has also transitioned from off to on.
Every model has a unique identifier. Bluetooth SIG adopted models are 16 bits while vendor
models are 32 bits (16-bit Bluetooth assigned company identifier and a 16-bit vendor assigned
model identifier). This makes each model uniquely addressable.
Clients access states request, change, or consume the states of a server. An example of a
simple client model is a Generic On/Off Client model (binary switch). This Generic On/Off Client
Model controls the Generic On/Off Server Model by sending it messages. For example, the
client uses this mechanism to turn a light on or off.
Server Model
o Composed of one or more states spanning over one or more elements.
o Defines messages the model may transmit/receive and defines the element’s
behavior given these messages.
o Examples:
On/Off switch – may expose state of switch
Sensors – may expose state of sensor (Potentially a value for
temperature or full/refill/empty for sensor measuring)
Power level – may expose state of power (Levels 1-10)
Client Model
o Defines the set of messages used by the client to request, change or consume
corresponding states of a server.
o Examples:
On/Off switch – Client sends a message of on or off
Power level – Messages defining the state of power (0-10)
Control Model
o Control Models have multiple functionality and may contain one or more of the
following:
Client Model(s)
Server Model(s)
Control logic (rules and behaviors) coordinating interactions between
models it connects with.
o Example: We may use a Control Model for a pump that circulates liquid coolant
around a machine.
Scenario – A temperature sensor records the temperature of a machine.
If the machine gets above a defined temperature, the cooling pump turns
on.
Control Module for cooling pump
A client to the temperature sensor (accepts temperature value)
A server to the On/Off switch (turns pump on or off)
Control logic (rules and behaviors) – defines that if temperature
sensor is over a defined value, turn pump on.
Model definitions allow you to configure nodes and their functionality within the mesh network.
Model definitions, as well as other model concepts, are explored in greater detail in later
articles.
Fundamentals Continued
Bluetooth mesh networking uses proven, global interoperability and a mature, trusted
ecosystem to create industrial-grade device networks. Now that you understand some of the
basic concepts behind Bluetooth mesh, check back next week for an overview of
other Bluetooth mesh networking fundamentals, including addressing,
publications/subscriptions, messages, lists, and how it all works together to create a Bluetooth
mesh network.