Comment on page

Profile Service

The profile service allows you to send and receive MsgPack formatted profiles to control motion detection, lighting setup, and the device name.

Overview

The profile service lets you send and receive configuration for motion, lighting, and effects to and from the Amp. Currently, there are five commands that you can utilize:
Command
Description
get:config
Retrieves configuration as binary MsgPack
raw:<binary data>
Sends Amp profile as MsgPack (also the format that get:config returns config)
name:<name>
Sets the name of the Amp
effect:<action>,<region>,<effect>
Changes the effect for how a lighting region reacts to an action
saveEffect:<action>,<region>,<effect>
Saves the effect for how a lighting region reacts to an action
When sending / receiving data to the amp, you must take into account the MTU. The data will be received or needs to be sent in packets of MTU - 3 bytes.
In both directions, a flow control characteristic is sent with the size of the data in bytes so that both the Amp and the client knows how much data is being sent (i.e. how many notifications to look for before parsing the data)
Get a refresher on MTU considerations here

Amp Receive (Client Transmit)

Transmits profile data to the amp as a series of notifications. Must be preceded by an Amp Flow Control message with value 1,<data size in bytes>

Amp Transmit (Client Receive)

Receives profile data from the amp as a series of notifications. Will be preceded by an Amp Flow Control with value 2,<data size in bytes>

Amp Flow Control

Dictates between the Amp and a Bluetooth LE client the direction of data being received and the amount of data being sent
Bytes 1-4 are a packed unsigned 32-bit integer that dictates the size of the data being sent
Byte
Operations
Description
0
R/W
FlowControl
1
R/W
Data size byte 1 (MSB)
2
R/W
Data size byte 2
3
R/W
Data size byte 3
4
R/W
Data size byte 4 (LSB)